From 5a4aa5b4662c0a536540f90a331e38f523a83e20 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Wed, 11 Oct 2023 09:16:01 -0300 Subject: [PATCH 01/22] archivos actualizados de la api --- api/HELP.md | 20 ++ api/mvnw | 308 ++++++++++++++++++ api/mvnw.cmd | 205 ++++++++++++ api/pom.xml | 70 ++++ .../java/com/mobeats/api/Application.java | 12 + .../api/controller/DepositoController.java | 106 ++++++ .../controller/MovimientoTipoController.java | 107 ++++++ .../api/controller/ProductoController.java | 110 +++++++ .../exception/ResourceNotFoundException.java | 22 ++ .../java/com/mobeats/api/model/Deposito.java | 44 +++ .../com/mobeats/api/model/MovimientoTipo.java | 57 ++++ .../java/com/mobeats/api/model/Producto.java | 99 ++++++ .../api/repository/DepositoRepository.java | 9 + .../repository/MovimientoTipoRepository.java | 11 + .../api/repository/ProductoRepository.java | 9 + .../mobeats/api/service/DepositoService.java | 21 ++ .../api/service/MovimientoTipoService.java | 21 ++ .../mobeats/api/service/ProductoService.java | 21 ++ api/src/main/resources/application.properties | 5 + .../api/DepositosApplicationTests.java | 13 + api/target/classes/application.properties | 5 + .../classes/com/mobeats/api/Application.class | Bin 0 -> 719 bytes .../api/controller/DepositoController.class | Bin 0 -> 5527 bytes .../controller/MovimientoTipoController.class | Bin 0 -> 5806 bytes .../api/controller/ProductoController.class | Bin 0 -> 5797 bytes .../exception/ResourceNotFoundException.class | Bin 0 -> 615 bytes .../com/mobeats/api/model/Deposito.class | Bin 0 -> 1879 bytes .../mobeats/api/model/MovimientoTipo.class | Bin 0 -> 2353 bytes .../com/mobeats/api/model/Producto.class | Bin 0 -> 3289 bytes .../api/repository/DepositoRepository.class | Bin 0 -> 437 bytes .../repository/MovimientoTipoRepository.class | Bin 0 -> 455 bytes .../api/repository/ProductoRepository.class | Bin 0 -> 437 bytes .../mobeats/api/service/DepositoService.class | Bin 0 -> 794 bytes .../api/service/MovimientoTipoService.class | Bin 0 -> 836 bytes .../mobeats/api/service/ProductoService.class | Bin 0 -> 794 bytes .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 14 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 1 + .../api/DepositosApplicationTests.class | Bin 0 -> 544 bytes 40 files changed, 1290 insertions(+) create mode 100644 api/HELP.md create mode 100644 api/mvnw create mode 100644 api/mvnw.cmd create mode 100644 api/pom.xml create mode 100644 api/src/main/java/com/mobeats/api/Application.java create mode 100644 api/src/main/java/com/mobeats/api/controller/DepositoController.java create mode 100644 api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java create mode 100644 api/src/main/java/com/mobeats/api/controller/ProductoController.java create mode 100644 api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java create mode 100644 api/src/main/java/com/mobeats/api/model/Deposito.java create mode 100644 api/src/main/java/com/mobeats/api/model/MovimientoTipo.java create mode 100644 api/src/main/java/com/mobeats/api/model/Producto.java create mode 100644 api/src/main/java/com/mobeats/api/repository/DepositoRepository.java create mode 100644 api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java create mode 100644 api/src/main/java/com/mobeats/api/repository/ProductoRepository.java create mode 100644 api/src/main/java/com/mobeats/api/service/DepositoService.java create mode 100644 api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java create mode 100644 api/src/main/java/com/mobeats/api/service/ProductoService.java create mode 100644 api/src/main/resources/application.properties create mode 100644 api/src/test/java/com/mobeats/api/DepositosApplicationTests.java create mode 100644 api/target/classes/application.properties create mode 100644 api/target/classes/com/mobeats/api/Application.class create mode 100644 api/target/classes/com/mobeats/api/controller/DepositoController.class create mode 100644 api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class create mode 100644 api/target/classes/com/mobeats/api/controller/ProductoController.class create mode 100644 api/target/classes/com/mobeats/api/exception/ResourceNotFoundException.class create mode 100644 api/target/classes/com/mobeats/api/model/Deposito.class create mode 100644 api/target/classes/com/mobeats/api/model/MovimientoTipo.class create mode 100644 api/target/classes/com/mobeats/api/model/Producto.class create mode 100644 api/target/classes/com/mobeats/api/repository/DepositoRepository.class create mode 100644 api/target/classes/com/mobeats/api/repository/MovimientoTipoRepository.class create mode 100644 api/target/classes/com/mobeats/api/repository/ProductoRepository.class create mode 100644 api/target/classes/com/mobeats/api/service/DepositoService.class create mode 100644 api/target/classes/com/mobeats/api/service/MovimientoTipoService.class create mode 100644 api/target/classes/com/mobeats/api/service/ProductoService.class create mode 100644 api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 api/target/test-classes/com/mobeats/api/DepositosApplicationTests.class diff --git a/api/HELP.md b/api/HELP.md new file mode 100644 index 0000000..d401127 --- /dev/null +++ b/api/HELP.md @@ -0,0 +1,20 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.1.4/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.1.4/maven-plugin/reference/html/#build-image) +* [Spring Web](https://docs.spring.io/spring-boot/docs/3.1.4/reference/htmlsingle/index.html#web) +* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/3.1.4/reference/htmlsingle/index.html#data.sql.jpa-and-spring-data) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) +* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/) +* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) + diff --git a/api/mvnw b/api/mvnw new file mode 100644 index 0000000..66df285 --- /dev/null +++ b/api/mvnw @@ -0,0 +1,308 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.2.0 +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "$(uname)" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=$(java-config --jre-home) + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=$(cygpath --unix "$JAVA_HOME") + [ -n "$CLASSPATH" ] && + CLASSPATH=$(cygpath --path --unix "$CLASSPATH") +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && + JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="$(which javac)" + if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=$(which readlink) + if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then + if $darwin ; then + javaHome="$(dirname "\"$javaExecutable\"")" + javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" + else + javaExecutable="$(readlink -f "\"$javaExecutable\"")" + fi + javaHome="$(dirname "\"$javaExecutable\"")" + javaHome=$(expr "$javaHome" : '\(.*\)/bin') + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=$(cd "$wdir/.." || exit 1; pwd) + fi + # end of workaround + done + printf '%s' "$(cd "$basedir" || exit 1; pwd)" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + # Remove \r in case we run on Windows within Git Bash + # and check out the repository with auto CRLF management + # enabled. Otherwise, we may read lines that are delimited with + # \r\n and produce $'-Xarg\r' rather than -Xarg due to word + # splitting rules. + tr -s '\r\n' ' ' < "$1" + fi +} + +log() { + if [ "$MVNW_VERBOSE" = true ]; then + printf '%s\n' "$1" + fi +} + +BASE_DIR=$(find_maven_basedir "$(dirname "$0")") +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +log "$MAVEN_PROJECTBASEDIR" + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" +if [ -r "$wrapperJarPath" ]; then + log "Found $wrapperJarPath" +else + log "Couldn't find $wrapperJarPath, downloading it ..." + + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + fi + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; + esac + done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget > /dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + fi + else + log "Falling back to using Java to download" + javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + log " - Compiling MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + log " - Running MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +# If specified, validate the SHA-256 sum of the Maven wrapper jar file +wrapperSha256Sum="" +while IFS="=" read -r key value; do + case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; + esac +done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +if [ -n "$wrapperSha256Sum" ]; then + wrapperSha256Result=false + if command -v sha256sum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + elif command -v shasum > /dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then + wrapperSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." + echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + exit 1 + fi + if [ $wrapperSha256Result = false ]; then + echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 + echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 + echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 + exit 1 + fi +fi + +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") + [ -n "$CLASSPATH" ] && + CLASSPATH=$(cygpath --path --windows "$CLASSPATH") + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +# shellcheck disable=SC2086 # safe args +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/api/mvnw.cmd b/api/mvnw.cmd new file mode 100644 index 0000000..95ba6f5 --- /dev/null +++ b/api/mvnw.cmd @@ -0,0 +1,205 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.2.0 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file +SET WRAPPER_SHA_256_SUM="" +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +) +IF NOT %WRAPPER_SHA_256_SUM%=="" ( + powershell -Command "&{"^ + "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ + "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ + " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " exit 1;"^ + "}"^ + "}" + if ERRORLEVEL 1 goto error +) + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/api/pom.xml b/api/pom.xml new file mode 100644 index 0000000..4a2eaf9 --- /dev/null +++ b/api/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.1.4 + + + com.mobeats + api + 0.0.1-SNAPSHOT + depositos + Demo project for Spring Boot + + 17 + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-web + + + + javax.validation + validation-api + 2.0.1.Final + + + + + org.hibernate.validator + hibernate-validator + 6.2.0.Final + + + + mysql + mysql-connector-java + 8.0.28 + + + + + com.mysql + mysql-connector-j + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/api/src/main/java/com/mobeats/api/Application.java b/api/src/main/java/com/mobeats/api/Application.java new file mode 100644 index 0000000..cba98c1 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/Application.java @@ -0,0 +1,12 @@ +package com.mobeats.api; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/controller/DepositoController.java b/api/src/main/java/com/mobeats/api/controller/DepositoController.java new file mode 100644 index 0000000..264163c --- /dev/null +++ b/api/src/main/java/com/mobeats/api/controller/DepositoController.java @@ -0,0 +1,106 @@ +package com.mobeats.api.controller; +import com.mobeats.api.model.Deposito; +import com.mobeats.api.repository.DepositoRepository; +import com.mobeats.api.exception.ResourceNotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * The type User controller. + * + * @author Givantha Kalansuriya + */ +@RestController +@RequestMapping("/api/v1") +public class DepositoController { + + @Autowired + private DepositoRepository depositoRepository; + + /** + * Get all users list. + * + * @return the list + */ + @GetMapping("/depositos") + public List getAllDepositos() { + return depositoRepository.findAll(); + } + + /** + * Gets users by id. + * + * @param depositoId the user id + * @return the users by id + * @throws ResourceNotFoundException the resource not found exception + */ + @GetMapping("/depositos/{id}") + public ResponseEntity getDepositoById(@PathVariable(value = "id") Long depositoId) + throws ResourceNotFoundException { + Deposito deposito = + depositoRepository + .findById(depositoId) + .orElseThrow(() -> new ResourceNotFoundException("Deposito not found on :: " + depositoId)); + return ResponseEntity.ok().body(deposito); + } + + /** + * Create user user. + * + * @param deposito the user + * @return the user + */ + @PostMapping("/depositos") + public Deposito createProducto(@Valid @RequestBody Deposito deposito) { + return depositoRepository.save(deposito); + } + + /** + * Update user response entity. + * + * @param depositoId the user id + * @param depositoDetails the user details + * @return the response entity + * @throws ResourceNotFoundException the resource not found exception + */ + @PutMapping("/depositos/{id}") +public ResponseEntity updateDeposito( + @PathVariable(value = "id") Long depositoId, @Valid @RequestBody Deposito depositoDetails) + throws ResourceNotFoundException { + + Deposito deposito = + depositoRepository + .findById(depositoId) + .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + depositoId)); + + deposito.setName(depositoDetails.getName()); + final Deposito updateDeposito = depositoRepository.save(deposito); // Cambio de variable a updatedProducto + return ResponseEntity.ok(updateDeposito); // Cambio de variable a updatedProducto +} + + /** + * Delete user map. + * + * @param depositoId the user id + * @return the map + * @throws Exception the exception + */ + @DeleteMapping("/depositos/{id}") + public Map deleteProducto(@PathVariable(value = "id") Long depositoId) throws Exception { + Deposito deposito = + depositoRepository + .findById(depositoId) + .orElseThrow(() -> new ResourceNotFoundException("deposito not found on :: " + depositoId)); + + depositoRepository.delete(deposito); + Map response = new HashMap<>(); + response.put("deleted", Boolean.TRUE); + return response; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java new file mode 100644 index 0000000..d7c5b72 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java @@ -0,0 +1,107 @@ +package com.mobeats.api.controller; +import com.mobeats.api.model.MovimientoTipo; +import com.mobeats.api.repository.MovimientoTipoRepository; +import com.mobeats.api.exception.ResourceNotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * The type User controller. + * + * @author Givantha Kalansuriya + */ +@RestController +@RequestMapping("/api/v1") +public class MovimientoTipoController { + + @Autowired + private MovimientoTipoRepository movimientoTipoRepository; + + /** + * Get all users list. + * + * @return the list + */ + @GetMapping("/movimiento_tipos") + public List getAllMovimientoTipos() { + return movimientoTipoRepository.findAll(); + } + + /** + * Gets users by id. + * + * @param movimientoTipoId the user id + * @return the users by id + * @throws ResourceNotFoundException the resource not found exception + */ + @GetMapping("/movimiento_tipos/{id}") + public ResponseEntity getMovimientoTipoById(@PathVariable(value = "id") Long movimientoTipoId) + throws ResourceNotFoundException { + MovimientoTipo movimientoTipo = + movimientoTipoRepository + .findById(movimientoTipoId) + .orElseThrow(() -> new ResourceNotFoundException("User not found on :: " + movimientoTipoId)); + return ResponseEntity.ok().body(movimientoTipo); + } + + /** + * Create user user. + * + * @param movimientoTipo the user + * @return the user + */ + @PostMapping("/movimiento_tipos") + public MovimientoTipo createMovimientoTipo(@Valid @RequestBody MovimientoTipo movimientoTipo) { + return movimientoTipoRepository.save(movimientoTipo); + } + + /** + * Update user response entity. + * + * @param movimientoTipoId the user id + * @param movimientoTipoDetails the user details + * @return the response entity + * @throws ResourceNotFoundException the resource not found exception + */ + @PutMapping("/movimiento_tipos/{id}") +public ResponseEntity updateMovimientoTipo( + @PathVariable(value = "id") Long movimientoTipoId, @Valid @RequestBody MovimientoTipo movimientoTipoDetails) + throws ResourceNotFoundException { + + MovimientoTipo movimientoTipo = + movimientoTipoRepository + .findById(movimientoTipoId) + .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + movimientoTipoId)); + + movimientoTipo.setDescription(movimientoTipoDetails.getDescription()); + movimientoTipo.setName(movimientoTipoDetails.getName()); + final MovimientoTipo updatedMovimientoTipo = movimientoTipoRepository.save(movimientoTipo); // Cambio de variable a updatedProducto + return ResponseEntity.ok(updatedMovimientoTipo); // Cambio de variable a updatedProducto +} + + /** + * Delete user map. + * + * @param movimientoTipoId the user id + * @return the map + * @throws Exception the exception + */ + @DeleteMapping("/movimiento_tipos/{id}") + public Map deleteMovimientoTipo(@PathVariable(value = "id") Long movimientoTipoId) throws Exception { + MovimientoTipo movimientoTipo = + movimientoTipoRepository + .findById(movimientoTipoId) + .orElseThrow(() -> new ResourceNotFoundException("Product not found on :: " + movimientoTipoId)); + + movimientoTipoRepository.delete(movimientoTipo); + Map response = new HashMap<>(); + response.put("deleted", Boolean.TRUE); + return response; + } +} diff --git a/api/src/main/java/com/mobeats/api/controller/ProductoController.java b/api/src/main/java/com/mobeats/api/controller/ProductoController.java new file mode 100644 index 0000000..bafbea4 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/controller/ProductoController.java @@ -0,0 +1,110 @@ +package com.mobeats.api.controller; +import com.mobeats.api.model.Producto; +import com.mobeats.api.repository.ProductoRepository; +import com.mobeats.api.exception.ResourceNotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * The type User controller. + * + * @author Givantha Kalansuriya + */ +@RestController +@RequestMapping("/api/v1") +public class ProductoController { + + @Autowired + private ProductoRepository productoRepository; + + /** + * Get all users list. + * + * @return the list + */ + @GetMapping("/productos") + public List getAllProductos() { + return productoRepository.findAll(); + } + + /** + * Gets users by id. + * + * @param productoId the user id + * @return the users by id + * @throws ResourceNotFoundException the resource not found exception + */ + @GetMapping("/productos/{id}") + public ResponseEntity getProductoById(@PathVariable(value = "id") Long productoId) + throws ResourceNotFoundException { + Producto producto = + productoRepository + .findById(productoId) + .orElseThrow(() -> new ResourceNotFoundException("User not found on :: " + productoId)); + return ResponseEntity.ok().body(producto); + } + + /** + * Create user user. + * + * @param producto the user + * @return the user + */ + @PostMapping("/productos") + public Producto createProducto(@Valid @RequestBody Producto producto) { + return productoRepository.save(producto); + } + + /** + * Update user response entity. + * + * @param productoId the user id + * @param productoDetails the user details + * @return the response entity + * @throws ResourceNotFoundException the resource not found exception + */ + @PutMapping("/productos/{id}") +public ResponseEntity updateProducto( + @PathVariable(value = "id") Long productoId, @Valid @RequestBody Producto productoDetails) + throws ResourceNotFoundException { + + Producto producto = + productoRepository + .findById(productoId) + .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + productoId)); + + producto.setDescription(productoDetails.getDescription()); + producto.setName(productoDetails.getName()); + producto.setPrecio(productoDetails.getPrecio()); + producto.setCantidad(productoDetails.getCantidad()); + producto.setUpdatedBy(productoDetails.getUpdatedBy()); + final Producto updatedProducto = productoRepository.save(producto); // Cambio de variable a updatedProducto + return ResponseEntity.ok(updatedProducto); // Cambio de variable a updatedProducto +} + + /** + * Delete user map. + * + * @param productoId the user id + * @return the map + * @throws Exception the exception + */ + @DeleteMapping("/productos/{id}") + public Map deleteProducto(@PathVariable(value = "id") Long productoId) throws Exception { + Producto producto = + productoRepository + .findById(productoId) + .orElseThrow(() -> new ResourceNotFoundException("Product not found on :: " + productoId)); + + productoRepository.delete(producto); + Map response = new HashMap<>(); + response.put("deleted", Boolean.TRUE); + return response; + } +} diff --git a/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java b/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java new file mode 100644 index 0000000..ce2df9a --- /dev/null +++ b/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java @@ -0,0 +1,22 @@ +package com.mobeats.api.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + * The type Resource not found exception. + * + * @author Givantha Kalansuriya + */ +@ResponseStatus(value = HttpStatus.NOT_FOUND) +public class ResourceNotFoundException extends Exception { + + /** + * Instantiates a new Resource not found exception. + * + * @param message the message + */ + public ResourceNotFoundException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Deposito.java b/api/src/main/java/com/mobeats/api/model/Deposito.java new file mode 100644 index 0000000..2d16e0a --- /dev/null +++ b/api/src/main/java/com/mobeats/api/model/Deposito.java @@ -0,0 +1,44 @@ +package com.mobeats.api.model; + +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import jakarta.persistence.*; + +@Entity +@Table(name = "depositos") +@EntityListeners(AuditingEntityListener.class) +public class Deposito { +@Id // Anotación para marcar un campo como clave primaria + @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria + @Column(name = "id") // Nombre de la columna en la base de datos + private Long id; // Campo de identificación + + @Column(name = "nombre", nullable = false) + private String name; + + // Getters y setters para id y name + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Deposito{" + + "id=" + id + + ", name='" + name + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java new file mode 100644 index 0000000..61c1810 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java @@ -0,0 +1,57 @@ +package com.mobeats.api.model; + +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import jakarta.persistence.*; + +@Entity +@Table(name = "movimientos_tipo") +@EntityListeners(AuditingEntityListener.class) +public class MovimientoTipo{ + + @Id // Anotación para marcar un campo como clave primaria + @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria + @Column(name = "id") // Nombre de la columna en la base de datos + private Long id; // Campo de identificación + + @Column(name = "nombre", nullable = false) + private String name; + + @Column(name = "descripcion", nullable = false) + private String description; + + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + + @Override + public String toString() { + return "MovimientoTipo{" + + "id=" + id + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Producto.java b/api/src/main/java/com/mobeats/api/model/Producto.java new file mode 100644 index 0000000..2ea6ce0 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/model/Producto.java @@ -0,0 +1,99 @@ +package com.mobeats.api.model; + +import org.hibernate.annotations.UpdateTimestamp; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import jakarta.persistence.*; +import java.util.Date; + +@Entity +@Table(name = "productos") +@EntityListeners(AuditingEntityListener.class) +public class Producto { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(name = "nombre", nullable = false) + private String name; + + @Column(name = "descripcion", nullable = false) + private String description; + + @Column(name = "precio", nullable = false) + private Long precio; + + @Column(name = "cantidad", nullable = false) + private Long cantidad; + + @UpdateTimestamp + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "fecha_actualizacion", nullable = false) + private Date updatedAt; + + @Column(name = "updated_by", nullable = false) + @LastModifiedBy + private String updatedBy; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public long getCantidad() { + return cantidad; + } + + public void setCantidad(long cantidad) { + this.cantidad = cantidad; + } + + public long getPrecio() { + return precio; + } + + public void setPrecio(long precio) { + this.precio = precio; + } + + public String getUpdatedBy() { + return updatedBy; + } + + public void setUpdatedBy(String updatedBy) { + this.updatedBy = updatedBy; + } + + @Override + public String toString() { + return "Producto{" + + "id=" + id + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", precio='" + precio + '\'' + + ", cantidad='" + cantidad + '\'' + + ", updatedBy='" + updatedBy + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/repository/DepositoRepository.java b/api/src/main/java/com/mobeats/api/repository/DepositoRepository.java new file mode 100644 index 0000000..e889840 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/repository/DepositoRepository.java @@ -0,0 +1,9 @@ +package com.mobeats.api.repository; + +import com.mobeats.api.model.Deposito; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface DepositoRepository extends JpaRepository {} diff --git a/api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java b/api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java new file mode 100644 index 0000000..97f0dd3 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java @@ -0,0 +1,11 @@ +package com.mobeats.api.repository; + +import com.mobeats.api.model.MovimientoTipo; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface MovimientoTipoRepository extends JpaRepository {} + diff --git a/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java b/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java new file mode 100644 index 0000000..8c21da8 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java @@ -0,0 +1,9 @@ +package com.mobeats.api.repository; + +import com.mobeats.api.model.Producto; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface ProductoRepository extends JpaRepository {} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/DepositoService.java b/api/src/main/java/com/mobeats/api/service/DepositoService.java new file mode 100644 index 0000000..a55633e --- /dev/null +++ b/api/src/main/java/com/mobeats/api/service/DepositoService.java @@ -0,0 +1,21 @@ +package com.mobeats.api.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.mobeats.api.model.Deposito; +import com.mobeats.api.repository.DepositoRepository; + +@Service +public class DepositoService { + + @Autowired + private DepositoRepository depositoRepository; + + public List findAll() { + return depositoRepository.findAll(); + } + +} diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java new file mode 100644 index 0000000..e66df06 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java @@ -0,0 +1,21 @@ +package com.mobeats.api.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.mobeats.api.model.MovimientoTipo; +import com.mobeats.api.repository.MovimientoTipoRepository; + +@Service +public class MovimientoTipoService { + + @Autowired + private MovimientoTipoRepository movimientoTipoRepository; + + public List findAll() { + return movimientoTipoRepository.findAll(); + } + +} diff --git a/api/src/main/java/com/mobeats/api/service/ProductoService.java b/api/src/main/java/com/mobeats/api/service/ProductoService.java new file mode 100644 index 0000000..e5d6378 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/service/ProductoService.java @@ -0,0 +1,21 @@ +package com.mobeats.api.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.mobeats.api.model.Producto; +import com.mobeats.api.repository.ProductoRepository; + +@Service +public class ProductoService { + + @Autowired + private ProductoRepository productoRepository; + + public List findAll() { + return productoRepository.findAll(); + } + +} diff --git a/api/src/main/resources/application.properties b/api/src/main/resources/application.properties new file mode 100644 index 0000000..0c65050 --- /dev/null +++ b/api/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/control_stock +spring.datasource.username=root +spring.datasource.password= +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/api/src/test/java/com/mobeats/api/DepositosApplicationTests.java b/api/src/test/java/com/mobeats/api/DepositosApplicationTests.java new file mode 100644 index 0000000..7e53852 --- /dev/null +++ b/api/src/test/java/com/mobeats/api/DepositosApplicationTests.java @@ -0,0 +1,13 @@ +package com.mobeats.api; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DepositosApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/api/target/classes/application.properties b/api/target/classes/application.properties new file mode 100644 index 0000000..0c65050 --- /dev/null +++ b/api/target/classes/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/control_stock +spring.datasource.username=root +spring.datasource.password= +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/api/target/classes/com/mobeats/api/Application.class b/api/target/classes/com/mobeats/api/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..16d82660374ca8ac64045f4307caeceb0792644f GIT binary patch literal 719 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 literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class new file mode 100644 index 0000000000000000000000000000000000000000..2c2bf8ef742335011400cbee7ac6f70469f31c68 GIT binary patch literal 5806 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 bfT&;%k0`K>_zk}&*ygFo-M4s(XXyV2!3G&j literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/model/Producto.class b/api/target/classes/com/mobeats/api/model/Producto.class new file mode 100644 index 0000000000000000000000000000000000000000..d5a21f02a14f7fd23fe725efd27e92cf6870e553 GIT binary patch literal 3289 zcmai0ZFAd15Z-efzr}fL)3l{+k_Lyov{V$@LP?Y2I7yq}ytHv#Xn}H;F3BabwXbc}4u$S9NCb;Knydg0* zgsE*iw$ao*n^8gR7`Yz6yNr%z)+0NFr$2MXKVQV6TMm6hfrnF!EtkN;-{ z_NyE>1Xd)AyOk|QS7ZH`Y_nOnV3o4$dd&e-8LMfU9Kd@JTk2#6IIudQFCtUJglKxw z)Rut>UT&0aXJ0#zHQ`v8(Rk{N;y+eoTCp&#&T(hZQ3C6pYa!Lqc(X0wiiR#dQ5f!R7YtK5-F4kwe|fduUn<+BS{9d%!L zYpAkbH~1z|7FEP}LwE^Od@u{F<4sEs(wnD^dD%LV^RQ5{`;l!Hd(-Yya!8OCKb7^UA zvw^Jiv|`hc9#ZCAKX5a&WZRx9&PG6)JD8&HbHu5ZCSA2CkXz`mA+1;Tk1sQO+%HkuLc_r6V{RFya0_MIK591RPqG`Cd1s+tBN1ho3@;*6!38uQO{vgDiJRt* zM1f}r4f|<}u%D!{z-~^c`(mmuHuo9P!mH0D~Wz9mPE1BGN zg_|Y``cA|uE(B>hLLWKX6wNJ&7hT6Cl0a8WsP zA&kYAF>b@qcm$wA?ZZI(1(ps#i~kI~i;y&Y8NR)9e-is0g9I(%t<*&QRKi<@1O~KB zEBG>6rE7QxixYuv?lq-xo6|{h*HRyVA72(5ZoxW^iY8~h`_5TKC6w~ckOl8_=V@d?O&E0rI{oR=E0@J-y zFa@a*VjA=@ZN_36?#6UK7SmQdrr~Z(3&6B^3Z@_-Lrmv=OxtblRAMMzGvIFI54zM% zUoiqJ)8_t3o4#U5Uv_T%FB*G8Bi+bWP*#2XDIUjE4dUs?GmK{v&j_BWw=_f44fc5i>{v)llAgg&g1+(_;1%%uHRR{;jxP6t fzQJJr1u>nzrSG7~Kz@lw&_1LbMhA3ACSCpy!(F|I literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/repository/DepositoRepository.class b/api/target/classes/com/mobeats/api/repository/DepositoRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..ad00f306abba22bf12179f1b0be80e04d6bda8a8 GIT binary patch literal 437 zcmbVJ!Ab)`41H6zYpa4c@f$?vo;rRO|ET8_NjHwxS??UJ2o**%Q(KC?XN8wylR7W{MSD?f z+UjJ^?b1=cwx|$W=U2JHcqYBC_|~*Z%F%E0XJ6tJj;FnirsI1POxg0awGt^Bu|eVF oPq`toXNe2PdgVM%H&fV3v6J3`gtC+e*v06(jmHWqRcNF@E-WjyA*-C1_`A}ReX3qQb*5?2co z4s9%E-oOm+J>I;3yuJaz6&z(SP;g#}(MC$b7&JQ8o}2`Z;@A3KR&1DTlm~V)`&neL ztKhi773vmkt*2!}Rm@8&rYA-zq(v+n>fPEN!;}{MS4%7Y+;1f0ol==Vw literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/repository/ProductoRepository.class b/api/target/classes/com/mobeats/api/repository/ProductoRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..85fd9b56018d89ccfd1216b2bc702b194d55c2f0 GIT binary patch literal 437 zcmbVJu};H441HIip#>y1#5W+gi79}@!hj-yT8Z6BOmrbRpYAT8ia%rE1NbP!!O&KP ziNSuBEj_!&u>5e4~T&#x{?hdVUfAq-%<#TSx1xw~khX3X{2MEXBdI!fUZfofrS2 zy(l(q^-^=Ubd;|xD#SMVRjx3d%it@%FX94*?Ith`9AOkcD{{| literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/service/DepositoService.class b/api/target/classes/com/mobeats/api/service/DepositoService.class new file mode 100644 index 0000000000000000000000000000000000000000..4ccce6ec4b5d466a655f58a4bd5bffb9fe8d01a6 GIT binary patch literal 794 zcmb7CO>fgc5Ph4bF>wPep%lueIFVFp_tHb9luA(%Ckvzo<-Tz?VT!#Qt=FycuRuaV z<-iZ%Ma!~^ZF7tL~_Pw2%ogY8HeFyLg&qFk@7NFU|I$8o-=juYqM47pKH#yg_ z7ib-mA%7yU*6WYkxP^9ru!9YB1YX8Am8qR*fkQA0{j2P76@i!ro$xRYI^;s>@@e3$cQpO5ZFD- zji*$PDWgfEhsId1JXw7Oz*HQ(qQU?(v}zS5WDP&;_q3cARkubaPJF( hE8G_N#L)(>6}o>Ygq6ah^3G$v_oO^Mt;>4``~n!X%)9^q literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class b/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class new file mode 100644 index 0000000000000000000000000000000000000000..1727c81ba3a05dda0f419d312d1d210a7058067b GIT binary patch literal 836 zcmbVKO>fgc5Pj>UHE{ziDIab561TJx>;aGvDU~85P6ni=%6;Q(!W4VgTCY>}Ux9># z;J^>yM0N+GE@aGAHWGyC4m?ELuo?K^;%cn~5Gc$C;oW_F~NFQm#z7TV1y(ejO* zQAXN$dqTM#{Jss*6xcddGbK}Hrt;nBR3~0wC;Kb=Sm(ANZ{4}Tvv^s-Euu>z7teYE zyT_&Rl<6TAG)i^f80(cMYYKtqv2{~fPU4c$)6O|5?qspIOHvN0z zLgY$w{~RCdhZ8d6ews3GcR#KtS$axkOoiugYd}+@eCb&D#Y)2Aid@F!r%Pk(9raoe zxZTDY);F+=J0bQ2p8Ur@w9&z~Ks2zWOZ021=COC_W<0K15$Im}GlkbqTYsKwIbWn6 z9&(8dUPOVQs*^Efufi*g0VDqh+YR<4qhMS+_=5JQI(&_7l?=48S=%}RTe!|1PZ!%v qa)ZwSZq_7E=Ood=XWaUV9f6N^^n$7L2U9d>3UIg1y0<9rKJW`J3Em6< literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/service/ProductoService.class b/api/target/classes/com/mobeats/api/service/ProductoService.class new file mode 100644 index 0000000000000000000000000000000000000000..a154e31cd91618c481cf0ad2f7f77793d5948597 GIT binary patch literal 794 zcmb7C%Wl&^6g`usF>wPep*+e{tVk-gv*`jUrBZ~%$^z7&>?h77++xpI<8iC}6-Y=3 z7JL97g}64BiyBz4xp(g4oVl+bKfiqk@B&Xlw6GDN-NPn20y}5wT**Y4rF=6x)3F!m z9Frk`BCs(SPP@2U(+q%-Z_DW>NlA{(n@svMPe?QHw^#QzP~Ci9QU@(0}sEsgSpW6qs^oVl#isv=OtM3 znXtaaR)_U2>lSOiHI}#8lB@;m&HXPBpQ`X3mSq?Wy<5pD0r#-SmMC}6BqjK$28a8f i5q!mUfsgEM;gX^M2SZph+^=#TaNfh}^{6TDG4KnMXw3Tn literal 0 HcmV?d00001 diff --git a/api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..36f8142 --- /dev/null +++ b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,14 @@ +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/DepositoController.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/DepositoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/Producto.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/DepositoService.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/ProductoController.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/Application.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/Deposito.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/ProductoService.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java diff --git a/api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..be85f5f --- /dev/null +++ b/api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +/home/pc-1/Descargas/api/src/test/java/com/mobeats/api/DepositosApplicationTests.java diff --git a/api/target/test-classes/com/mobeats/api/DepositosApplicationTests.class b/api/target/test-classes/com/mobeats/api/DepositosApplicationTests.class new file mode 100644 index 0000000000000000000000000000000000000000..935b40bfdc2546083959c4ae11c42def273bf909 GIT binary patch literal 544 zcma)2O-lno49&E))wbGNy$B*6tp(@i#Sf^8r$xb*-e`~dH;BQ1Ar6QY(fR94XCwY3F-p6bM>HPs?1DY$8()H0rg`v=uQPx z_xh6tEDPu-l*x=@tz02hj`Bk1RG_0`nCB@b$|0GtE?gm?c1}|*pcA3dS7jD!J63VZ zOfRBDr4wb*=L@pt?vO=;=-)3K31}x|oPKfcAgKz+o^ea*JkmYgMKn$==JD$Vtb3axs=1 zg^n}k!!xi84L-X6Jo4E=zzY9Kj>0qhFCd;nxyk6uz>*eY`>TQDDrW#|T&)E0fHU9s bOW67$ Date: Wed, 11 Oct 2023 09:16:41 -0300 Subject: [PATCH 02/22] Delete beta directory --- beta/HELP.md | 14 - beta/LICENSE | 21 -- beta/README.md | 184 ----------- beta/bin/LICENSE | 21 -- beta/bin/README.md | 184 ----------- beta/bin/er-model.png | Bin 33810 -> 0 bytes beta/bin/mvnw | 308 ------------------ beta/bin/mvnw.cmd | 205 ------------ beta/bin/pom.xml | 68 ---- .../java/com/mobeats/beta/Application.class | Bin 1332 -> 0 bytes .../beta/controller/UserController.class | Bin 7520 -> 0 bytes .../beta/exception/ErrorResponse.class | Bin 2852 -> 0 bytes .../exception/GlobalExceptionHandler.class | Bin 3235 -> 0 bytes .../exception/ResourceNotFoundException.class | Bin 999 -> 0 bytes .../java/com/mobeats/beta/model/User.class | Bin 6196 -> 0 bytes .../beta/repository/UserRepository.class | Bin 378 -> 0 bytes .../mobeats/beta/service/UserService.class | Bin 1559 -> 0 bytes .../mobeats/control_stock/Application.class | Bin 1176 -> 0 bytes .../controller/UserController.class | Bin 7445 -> 0 bytes .../exception/ErrorResponse.class | Bin 2879 -> 0 bytes .../exception/GlobalExceptionHandler.class | Bin 3280 -> 0 bytes .../exception/ResourceNotFoundException.class | Bin 1026 -> 0 bytes .../mobeats/control_stock/model/User.class | Bin 6223 -> 0 bytes .../repository/UserRepository.class | Bin 387 -> 0 bytes .../control_stock/service/UserService.class | Bin 1586 -> 0 bytes .../src/main/resources/application.properties | 12 - beta/bin/target/classes/META-INF/MANIFEST.MF | 6 - .../bin/target/classes/application.properties | 12 - .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 17 - beta/er-model.png | Bin 33810 -> 0 bytes beta/mvnw | 308 ------------------ beta/mvnw.cmd | 205 ------------ beta/pom.xml | 72 ---- .../main/java/com/mobeats/Application.java | 12 - .../controller/ProductoController.java | 109 ------- .../exception/ResourceNotFoundException.java | 22 -- .../main/java/com/mobeats/model/Producto.java | 84 ----- .../repository/ProductoRepository.java | 9 - .../com/mobeats/service/ProductoService.java | 21 -- .../src/main/resources/application.properties | 12 - .../java/com/mobeats/ApplicationTests.java | 13 - beta/target/classes/application.properties | 12 - .../classes/com/mobeats/Application.class | Bin 711 -> 0 bytes .../controller/ProductoController.class | Bin 5657 -> 0 bytes .../mobeats/controller/UserController.class | Bin 5863 -> 0 bytes .../exception/ResourceNotFoundException.class | Bin 607 -> 0 bytes .../mobeats/model/Producto$Productos.class | Bin 3174 -> 0 bytes .../com/mobeats/model/Producto$User.class | Bin 3158 -> 0 bytes .../classes/com/mobeats/model/Producto.class | Bin 2974 -> 0 bytes .../repository/ProductoRepository.class | Bin 429 -> 0 bytes .../com/mobeats/service/ProductoService.class | Bin 774 -> 0 bytes .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 17 - .../com/mobeats/ApplicationTests.class | Bin 509 -> 0 bytes 55 files changed, 1948 deletions(-) delete mode 100644 beta/HELP.md delete mode 100644 beta/LICENSE delete mode 100644 beta/README.md delete mode 100644 beta/bin/LICENSE delete mode 100644 beta/bin/README.md delete mode 100644 beta/bin/er-model.png delete mode 100644 beta/bin/mvnw delete mode 100644 beta/bin/mvnw.cmd delete mode 100644 beta/bin/pom.xml delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/Application.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/controller/UserController.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/exception/ErrorResponse.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/exception/GlobalExceptionHandler.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/exception/ResourceNotFoundException.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/model/User.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/repository/UserRepository.class delete mode 100644 beta/bin/src/main/java/com/mobeats/beta/service/UserService.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/Application.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/controller/UserController.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/exception/ErrorResponse.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/exception/GlobalExceptionHandler.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/exception/ResourceNotFoundException.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/model/User.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/repository/UserRepository.class delete mode 100644 beta/bin/src/main/java/com/mobeats/control_stock/service/UserService.class delete mode 100644 beta/bin/src/main/resources/application.properties delete mode 100644 beta/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 beta/bin/target/classes/application.properties delete mode 100644 beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 beta/er-model.png delete mode 100644 beta/mvnw delete mode 100644 beta/mvnw.cmd delete mode 100644 beta/pom.xml delete mode 100644 beta/src/main/java/com/mobeats/Application.java delete mode 100644 beta/src/main/java/com/mobeats/controller/ProductoController.java delete mode 100644 beta/src/main/java/com/mobeats/exception/ResourceNotFoundException.java delete mode 100644 beta/src/main/java/com/mobeats/model/Producto.java delete mode 100644 beta/src/main/java/com/mobeats/repository/ProductoRepository.java delete mode 100644 beta/src/main/java/com/mobeats/service/ProductoService.java delete mode 100644 beta/src/main/resources/application.properties delete mode 100644 beta/src/test/java/com/mobeats/ApplicationTests.java delete mode 100644 beta/target/classes/application.properties delete mode 100644 beta/target/classes/com/mobeats/Application.class delete mode 100644 beta/target/classes/com/mobeats/controller/ProductoController.class delete mode 100644 beta/target/classes/com/mobeats/controller/UserController.class delete mode 100644 beta/target/classes/com/mobeats/exception/ResourceNotFoundException.class delete mode 100644 beta/target/classes/com/mobeats/model/Producto$Productos.class delete mode 100644 beta/target/classes/com/mobeats/model/Producto$User.class delete mode 100644 beta/target/classes/com/mobeats/model/Producto.class delete mode 100644 beta/target/classes/com/mobeats/repository/ProductoRepository.class delete mode 100644 beta/target/classes/com/mobeats/service/ProductoService.class delete mode 100644 beta/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 beta/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 beta/target/test-classes/com/mobeats/ApplicationTests.class diff --git a/beta/HELP.md b/beta/HELP.md deleted file mode 100644 index b105e64..0000000 --- a/beta/HELP.md +++ /dev/null @@ -1,14 +0,0 @@ -# Read Me First -The following was discovered as part of building this project: - -* The original package name 'com.mobeats.' is invalid and this project uses 'com.mobeats' instead. - -# Getting Started - -### Reference Documentation -For further reference, please consider the following sections: - -* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) -* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.1.4/maven-plugin/reference/html/) -* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.1.4/maven-plugin/reference/html/#build-image) - diff --git a/beta/LICENSE b/beta/LICENSE deleted file mode 100644 index e2795e0..0000000 --- a/beta/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 progmatt1 - -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. diff --git a/beta/README.md b/beta/README.md deleted file mode 100644 index e031089..0000000 --- a/beta/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# control_stock -Proyecto usando Java 17+ en Spring Boot para crear una API. Se trata de un control de stock -# Inicio -Este es el inicio basico para empezar. -## Modelo ER -Este es el modelo que estariamos utilizando -![alt text](https://raw.githubusercontent.com/progmatt1/control_stock/main/er-model.png?token=GHSAT0AAAAAACGO5MURR57A4EOBQ5KV6GWEZIRSXHQ) -## Crea estas tablas en MySql -La logica aqui es crear distintas tablas en orden y configurar sus respectivas relaciones. Despues en el codigo del proyecto en Java -se da la logica. -### productos -``` -CREATE TABLE `productos` ( - `id` int NOT NULL AUTO_INCREMENT, - `nombre` text NOT NULL, - `descripcion` text NOT NULL, - `precio` float NOT NULL, - `cantidad` text NOT NULL, - `fecha_creacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP, - `fecha_actualizacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -``` -### movimientos_tipo -``` -CREATE TABLE `control_stock`.`movimientos_tipo` ( - `id` INT NOT NULL AUTO_INCREMENT, - `nombre` TEXT NOT NULL, - `descripcion` TEXT NOT NULL, - PRIMARY KEY (`id`)); -``` -### depositos -``` -CREATE TABLE `control_stock`.`depositos` ( - `id` INT NOT NULL AUTO_INCREMENT, - `nombre` TEXT NOT NULL, - PRIMARY KEY (`id`)); -``` -### movimientos -``` -CREATE TABLE `control_stock`.`movimientos` ( - `id` INT NOT NULL AUTO_INCREMENT, - `cantidad` INT NOT NULL, - `fecha` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - `id_movimiento_tipo` INT NOT NULL, - `id_producto` INT NOT NULL, - `id_deposito` INT NOT NULL, - PRIMARY KEY (`id`), - INDEX `id_movimiento_tipo_idx` (`id_movimiento_tipo` ASC) VISIBLE, - INDEX `id_producto_idx` (`id_producto` ASC) VISIBLE, - INDEX `id_deposito_idx` (`id_deposito` ASC) VISIBLE, - CONSTRAINT `id_movimiento_tipo` - FOREIGN KEY (`id_movimiento_tipo`) - REFERENCES `control_stock`.`movimientos_tipo` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION, - CONSTRAINT `id_producto` - FOREIGN KEY (`id_producto`) - REFERENCES `control_stock`.`productos` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION, - CONSTRAINT `id_deposito` - FOREIGN KEY (`id_deposito`) - REFERENCES `control_stock`.`depositos` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION); -``` - -### productos_deposito -``` -CREATE TABLE `productos_deposito` ( - `id` int NOT NULL AUTO_INCREMENT, - `id_deposito` int NOT NULL, - `id_producto` int NOT NULL, - `cantidad` int NOT NULL, - `fecha_actualizacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `id_deposito_idx` (`id_deposito`), - KEY `id_producto_idx` (`id_producto`), - CONSTRAINT `id_deposito_foreign` FOREIGN KEY (`id_deposito`) REFERENCES `depositos` (`id`), - CONSTRAINT `id_producto_foreign` FOREIGN KEY (`id_producto`) REFERENCES `productos` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -``` -## Inserta estos datos de ejemplo -Estos datos nos va a servir de ejemplo para empezar a tener algo y empezar a trabajar con sus respectivas relaciones y un pequeño bug en productos_deposito para mayor entendimiento (cantidad: -6) - -``` --- Inserta datos en la tabla deposito -INSERT INTO depositos(nombre) VALUES ('Deposito A'); -INSERT INTO depositos(nombre) VALUES ('Deposito B'); -INSERT INTO depositos(nombre) VALUES ('Deposito C'); -INSERT INTO depositos(nombre) VALUES ('Deposito D'); - --- Inserta datos en la tabla productos. La cantidad es la cantidad general que hay en todos los depositos -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto A', -'Esta es la descripcion para el Producto A', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto B', -'Esta es la descripcion para el Producto B', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto C', -'Esta es la descripcion para el Producto B', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto D', -'Esta es la descripcion para el Producto B', -999.99, -15 -); - --- Los tipos de movimiento que se pueden realizar. Despues en el proyecto de Java segun el tipo de movimiento se crea la logica -INSERT INTO movimientos_tipo(nombre, descripcion) VALUES( -'Baja', -'Esta es la descripcion de Baja.' -); - -INSERT INTO movimientos_tipo(nombre, descripcion) VALUES( -'Subida', -'Esta es la descripcion de Subida.' -); - --- Insertamos algunos datos en la tabla movimientos - --- En el primer ejemplo estamos añadiendo 10 productos 'Producto A' en el deposito 'Deposito B' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -10, -2, -1, -2 -); --- En el primer ejemplo estamos añadiendo 14 productos 'Producto A' en el deposito 'Deposito A' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -14, -2, -1, -1 -); --- En el primer ejemplo estamos añadiendo 12 productos 'Producto C' en el deposito 'Deposito C' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -12, -2, -3, -3 -); --- En el primer ejemplo estamos quitando 6 productos 'Producto D' en el deposito 'Deposito A' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -6, -1, -4, -1 -); - --- Aqui insertamos de modo de ejemplo como quedaria la cantidad de un producto en un deposito --- Aqui se añade la logica despues en el codigo de Java -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -2, -1, -10 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -1, -1, -14 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -3, -3, -12 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -1, -4, --6 -); -``` diff --git a/beta/bin/LICENSE b/beta/bin/LICENSE deleted file mode 100644 index e2795e0..0000000 --- a/beta/bin/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 progmatt1 - -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. diff --git a/beta/bin/README.md b/beta/bin/README.md deleted file mode 100644 index e031089..0000000 --- a/beta/bin/README.md +++ /dev/null @@ -1,184 +0,0 @@ -# control_stock -Proyecto usando Java 17+ en Spring Boot para crear una API. Se trata de un control de stock -# Inicio -Este es el inicio basico para empezar. -## Modelo ER -Este es el modelo que estariamos utilizando -![alt text](https://raw.githubusercontent.com/progmatt1/control_stock/main/er-model.png?token=GHSAT0AAAAAACGO5MURR57A4EOBQ5KV6GWEZIRSXHQ) -## Crea estas tablas en MySql -La logica aqui es crear distintas tablas en orden y configurar sus respectivas relaciones. Despues en el codigo del proyecto en Java -se da la logica. -### productos -``` -CREATE TABLE `productos` ( - `id` int NOT NULL AUTO_INCREMENT, - `nombre` text NOT NULL, - `descripcion` text NOT NULL, - `precio` float NOT NULL, - `cantidad` text NOT NULL, - `fecha_creacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP, - `fecha_actualizacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -``` -### movimientos_tipo -``` -CREATE TABLE `control_stock`.`movimientos_tipo` ( - `id` INT NOT NULL AUTO_INCREMENT, - `nombre` TEXT NOT NULL, - `descripcion` TEXT NOT NULL, - PRIMARY KEY (`id`)); -``` -### depositos -``` -CREATE TABLE `control_stock`.`depositos` ( - `id` INT NOT NULL AUTO_INCREMENT, - `nombre` TEXT NOT NULL, - PRIMARY KEY (`id`)); -``` -### movimientos -``` -CREATE TABLE `control_stock`.`movimientos` ( - `id` INT NOT NULL AUTO_INCREMENT, - `cantidad` INT NOT NULL, - `fecha` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - `id_movimiento_tipo` INT NOT NULL, - `id_producto` INT NOT NULL, - `id_deposito` INT NOT NULL, - PRIMARY KEY (`id`), - INDEX `id_movimiento_tipo_idx` (`id_movimiento_tipo` ASC) VISIBLE, - INDEX `id_producto_idx` (`id_producto` ASC) VISIBLE, - INDEX `id_deposito_idx` (`id_deposito` ASC) VISIBLE, - CONSTRAINT `id_movimiento_tipo` - FOREIGN KEY (`id_movimiento_tipo`) - REFERENCES `control_stock`.`movimientos_tipo` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION, - CONSTRAINT `id_producto` - FOREIGN KEY (`id_producto`) - REFERENCES `control_stock`.`productos` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION, - CONSTRAINT `id_deposito` - FOREIGN KEY (`id_deposito`) - REFERENCES `control_stock`.`depositos` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION); -``` - -### productos_deposito -``` -CREATE TABLE `productos_deposito` ( - `id` int NOT NULL AUTO_INCREMENT, - `id_deposito` int NOT NULL, - `id_producto` int NOT NULL, - `cantidad` int NOT NULL, - `fecha_actualizacion` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `id_deposito_idx` (`id_deposito`), - KEY `id_producto_idx` (`id_producto`), - CONSTRAINT `id_deposito_foreign` FOREIGN KEY (`id_deposito`) REFERENCES `depositos` (`id`), - CONSTRAINT `id_producto_foreign` FOREIGN KEY (`id_producto`) REFERENCES `productos` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -``` -## Inserta estos datos de ejemplo -Estos datos nos va a servir de ejemplo para empezar a tener algo y empezar a trabajar con sus respectivas relaciones y un pequeño bug en productos_deposito para mayor entendimiento (cantidad: -6) - -``` --- Inserta datos en la tabla deposito -INSERT INTO depositos(nombre) VALUES ('Deposito A'); -INSERT INTO depositos(nombre) VALUES ('Deposito B'); -INSERT INTO depositos(nombre) VALUES ('Deposito C'); -INSERT INTO depositos(nombre) VALUES ('Deposito D'); - --- Inserta datos en la tabla productos. La cantidad es la cantidad general que hay en todos los depositos -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto A', -'Esta es la descripcion para el Producto A', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto B', -'Esta es la descripcion para el Producto B', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto C', -'Esta es la descripcion para el Producto B', -999.99, -15 -); -INSERT INTO productos(nombre, descripcion, precio, cantidad) VALUES ( -'Producto D', -'Esta es la descripcion para el Producto B', -999.99, -15 -); - --- Los tipos de movimiento que se pueden realizar. Despues en el proyecto de Java segun el tipo de movimiento se crea la logica -INSERT INTO movimientos_tipo(nombre, descripcion) VALUES( -'Baja', -'Esta es la descripcion de Baja.' -); - -INSERT INTO movimientos_tipo(nombre, descripcion) VALUES( -'Subida', -'Esta es la descripcion de Subida.' -); - --- Insertamos algunos datos en la tabla movimientos - --- En el primer ejemplo estamos añadiendo 10 productos 'Producto A' en el deposito 'Deposito B' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -10, -2, -1, -2 -); --- En el primer ejemplo estamos añadiendo 14 productos 'Producto A' en el deposito 'Deposito A' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -14, -2, -1, -1 -); --- En el primer ejemplo estamos añadiendo 12 productos 'Producto C' en el deposito 'Deposito C' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -12, -2, -3, -3 -); --- En el primer ejemplo estamos quitando 6 productos 'Producto D' en el deposito 'Deposito A' -INSERT INTO movimientos(cantidad, id_movimiento_tipo, id_producto, id_deposito) VALUES ( -6, -1, -4, -1 -); - --- Aqui insertamos de modo de ejemplo como quedaria la cantidad de un producto en un deposito --- Aqui se añade la logica despues en el codigo de Java -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -2, -1, -10 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -1, -1, -14 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -3, -3, -12 -); -INSERT INTO productos_deposito(id_deposito, id_producto, cantidad) VALUES ( -1, -4, --6 -); -``` diff --git a/beta/bin/er-model.png b/beta/bin/er-model.png deleted file mode 100644 index c2e557b88916d616d6b10341ebd1d15b4855289a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33810 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 diff --git a/beta/bin/mvnw b/beta/bin/mvnw deleted file mode 100644 index 66df285..0000000 --- a/beta/bin/mvnw +++ /dev/null @@ -1,308 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.2.0 -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "$(uname)" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME - else - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=$(java-config --jre-home) - fi -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=$(which readlink) - if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" - else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" - fi - javaHome="$(dirname "\"$javaExecutable\"")" - javaHome=$(expr "$javaHome" : '\(.*\)/bin') - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) - fi - # end of workaround - done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - # Remove \r in case we run on Windows within Git Bash - # and check out the repository with auto CRLF management - # enabled. Otherwise, we may read lines that are delimited with - # \r\n and produce $'-Xarg\r' rather than -Xarg due to word - # splitting rules. - tr -s '\r\n' ' ' < "$1" - fi -} - -log() { - if [ "$MVNW_VERBOSE" = true ]; then - printf '%s\n' "$1" - fi -} - -BASE_DIR=$(find_maven_basedir "$(dirname "$0")") -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR -log "$MAVEN_PROJECTBASEDIR" - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" -if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" -else - log "Couldn't find $wrapperJarPath, downloading it ..." - - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -# If specified, validate the SHA-256 sum of the Maven wrapper jar file -wrapperSha256Sum="" -while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; - esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" -if [ -n "$wrapperSha256Sum" ]; then - wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." - exit 1 - fi - if [ $wrapperSha256Result = false ]; then - echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 - echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 - echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 - exit 1 - fi -fi - -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -# shellcheck disable=SC2086 # safe args -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/beta/bin/mvnw.cmd b/beta/bin/mvnw.cmd deleted file mode 100644 index 95ba6f5..0000000 --- a/beta/bin/mvnw.cmd +++ /dev/null @@ -1,205 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/beta/bin/pom.xml b/beta/bin/pom.xml deleted file mode 100644 index 5d2aecf..0000000 --- a/beta/bin/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.1.4 - - - com.mobeats.control_stock - beta - 0.0.1-SNAPSHOT - beta - Demo project for Spring Boot - - 17 - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-devtools - runtime - - - mysql - mysql-connector-java - runtime - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/beta/bin/src/main/java/com/mobeats/beta/Application.class b/beta/bin/src/main/java/com/mobeats/beta/Application.class deleted file mode 100644 index 3a5ace456976cb23ed93ee231e4ed7399290ab21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmb_cO>fgc5S>laCNY7O&{Cj)mYmWG*%wX(kV*woBo`zSDj`m5dy{Ojcg^lPYX1g* z1_>m%^P>>6cA-IvAcr2jpX2vt=FRMnpI^QKz*D&2fEs~)qvIfBLIx*n&VpEFL8c6JcmrAlIv2Jt zv{t$aS4i#CTdBEG>6|AN*>aJV;564NN_l1;Q?E6iaca+UP91>n$oz_o#!O0OX~gMo z5T6b$6^06#2#x-vXLvQ?n#&j&CR$~<|5)H%Lj5>p#?XmKxmn6`Sl(YYNy3rW@#if5 zz^0t`FmT^kcB-v!3#+tXX^$p~8|tFVn2l%DViNdijv+1niE{Z)F278T!#S7BcXIWr zs6>`4ZK=}JB?()}WRz6nX0B9(rKZTaMscOFx`;76TB+CH zb3zp|;S(X9ICz6=R-|^(+NVc_vF-+~D3dM=74QP2*BV*p;(vUq;`nzAo(E01+J<$w zMqs-iUQ}&GF>qDg3DKEXMHX>AW>}~Mx}l0$ddyHf+@BxT?MxT~55v{lYJe@{6eZB^ zzYqUVHsL0LY=vgIygU%_Myk*;e~Ar(t-g@9vfK#lzA2;?86V2IFapCqaP3$&Fh;!- zE-jlu1McE0QTd5c9tmSmxiL1lfd_!^2EIoCHC(O3296EfJ;GChv-cI6@4DV+Xn!wl zIygETz;6@Bc4YaV|l|AUC`(+i7AjJ}Md+vspF zXuRaxyy1qOMkibsTt$s_q4bSF$&i5}Z8e=q-yyWv>v+->GrEnFai5Oxn zA-6qOFgoq%w|bXNMsKggf$}3Xu}^@`MY?uA*2XgSlEzZ2iHHv z+E=^o`aFv44bK-*YNai3OF!yz_eZ`d?3?hZ9x1*fRb3%S>2be40QaWd4n<^ZA39vQ zTegC$Vy6qkStUqTT_>xa1fW&+l2zBq%IZtq@H*X4Dvd`@gl|S9lzC_m`7#<24be_f z*a?oY^8Di_xFRAo7;HJ-*($Vo!sbeO1w@4W67P2N$($8l>~ww4^^_gOT_M4ZAW|}R zK}kCu!?kJ6`#5Ne4KL7K#}l0M*w;+zOV{nCI8yovq--8&x~7UVLX~oVL>I)6sS^c~ zkA-2RjtBqtkL)ZM+Nyy_uYeUu8asyMb^)YVKrK|e1zHVUT;^))IY&uBr7O_pgt^r& ziwV37W9f>gp?Va81`9i`=;{hxpxVGu^CTBSR4Ffqrj$4E>^b*6OdR{Bfni{hVKx`G zN02jfD9qzLa5BqAahxNK4M%n%JF)>AWPh{+=*SU179;i{S4G9gAQR@pqL2fX@nL+F9A`lSHBtp4S$7LW|3AGZ*x^cS ziUy`-RI@CURl~>=kVAE8*d*f zkf~l(XSv^tgSGcqNt)o^f9LSDW5eP&FMy9c-v`b#1uzs%}~xbPy<| z{Ye)MUehA%443;5#e0gT$M zZ)LZ6F#?{T)9A6oqHpktL^t3TIrDr@dQ{|w2YZ{xaeB60x@meqE)OcGT>W; zRZZs8PRdfOB9^=;!UnT$vLm`dP>wH2j7oHpPT^?bN*~8@v~Vm_1^*Mcx&ujuW91c9 ze>ivMH=6nrS0y@+fBlBm@)rK9sT5tHi^;u9bQw}ta9*OTIhx+d(R4RglMR1Q(oJX@ zgN=84I^Uz)xMMNgdLJiyu9k3~x?0OIFrQ=KI^HM~(_U*us7CZ5V%FLxG(aEWq^>XU z(_joNG;%Do4zMsqC2ax9^g-)m^a*`xX6UmVLofb?q0i}y90czsF`g~;5ZoWBrbvqA zS2+%B9pJzvI?==OBG{n=#vu*3Ni!Kg?)NhJbx|f~bFBYzfb~o!PtZI9DAB_{yBBc% ZJ$@I#?#K9!x=7#B5*YQ2zM~ec{R8ZLMXmq< diff --git a/beta/bin/src/main/java/com/mobeats/beta/exception/ErrorResponse.class b/beta/bin/src/main/java/com/mobeats/beta/exception/ErrorResponse.class deleted file mode 100644 index 1e3e1df512488233923f8dcbd32099ec1d5de892..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2852 zcmeHJTW`}a6h0|k+hk)KW8;4D#;t{sydVUOiv$B{q63MQNj&i2re5nUi6h&Yx?hF_ z61?-H5XWgtS}jN|nx;MQVmm(PeE!ZC=bZff_4PXdJOi%`1q&W3>3bpNk+)0tsppH( z3q_Mrt-L1F)MH(r#hQ!Ado87qADD_oq*xh>7R;w10gc+;`{pk5wFS23Ayb-$u?402 zI@N3q7r3DlWx+x{i`deVM{Ts0F+kBa!&M7U(*$;UjPCR-9q(F|Cqo)E`wbQozdKcEtwV(RZ9 zTe5=QE+*EM+SQ2`lGDKbqt*&(38qLSGzqEpJ47P}>&7V3Fb0b68u492%{7R9@m(YS z5L}N04`U%UNu3kT1LD)j9MNQCkc49!(Q^z$3qpxLh?!&ev_CedjW7HpH6y)yQ>_uMND{T!4v$#NC7X%TMy@n0I3PUQ7ki9QOtv$Ma1!%9d2e70M#tuI z%$M)~aYy&LJ1`4pXJ8r@Em*1^uE3_=&eib~ewTzzCL0t>sHytGr@=PG3W?AC&7$sb zEcB1+|JHx7Z_KorZe-o2Qmyq`MFp-{&>5qwAIXhJ9%_V#-S1dN3mYkJ^?TnU^2-`f z?^do=V8w!946a9Zi;)!a9guR6;O3zHI%voq(6T;g$HtO9Y>7nr>!$o$dbYq_d5l(=dbM zX|z7Ts41MCZ!r65Vg3s&{77S#a4ew@z!IFp(fFemoQDfITW}FB4I!kq6yb6X!sA?o zt8i@ypi*S1a d4k8!f&IBB~IS2));`=K=4P2Z{xVj6gzX7BI4zK_K diff --git a/beta/bin/src/main/java/com/mobeats/beta/exception/GlobalExceptionHandler.class b/beta/bin/src/main/java/com/mobeats/beta/exception/GlobalExceptionHandler.class deleted file mode 100644 index 0ce3cb936a88e74d5fe04071ca9de1d0a9ac5624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3235 zcmd^BU2hXd6ulDywznyvDWRfK%aDHA6s=!)!ax<#P>>udB`H-OXV({J=ep6NTj%{ow-PX2B5mFyK-r2o-=G=47+?|(y{Q4XKZo~B&tO)qZyR@Av zZQ4)NK($kww{x4IBHvDsR2z>|EJ$0^{wA}D%64DP?<>>G(A8j7z=h$vnKJ$Mx5*Ps zNx->V+Gx5X;7qgiNWkh{+rt_(1guYEcb&7Y4)2K7-@h{sz0C&LlT4w|nF?#l!r3Il z+~1T@_n7SC(-N7+U#mHr^Vf>z z$#S2lI3Pu(ufQ5PBS$*2J=sUvL+{zbRZ0b$2B9TqVoR6eLreE8t2q%OYAluHKN1@y zIZ(WJc(X07_JmVK&a?V0MR-xrH(0%;_%9=P1a)|K4bH-O0h`V4v_Bq@)281E{d2v` z8{}b`C+H4Cl>}^bZK|?IJ#tq zlo*=9=`&NO2A^}=nkZI-rhxM&+1B71uQC-&z}lYnp4)sdriZJ*CuTmL1CQKW;2e)N zp4}ME0ixfa{=-J}3#`51yDPBHV~7FRgbO^b4X-134>ouv;C;BrQJZ|d0+%L8VTBRW vhZRV1CDKRm@dW8g1(K{lx?O>E2DXQ6K7kMTKXCt)|G(s4opbyQzJS)BBA+E_ diff --git a/beta/bin/src/main/java/com/mobeats/beta/exception/ResourceNotFoundException.class b/beta/bin/src/main/java/com/mobeats/beta/exception/ResourceNotFoundException.class deleted file mode 100644 index 88066238f9d839037809eff389f6ae6bc550fdc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmbtTO>Yx15FLj!n=FBbK*UD@xjn&U_ri$+5+AKvDHN#*l{k7GD{Z+O!f-Bo3ZgduHD}zZw7d`Q;k`JckDn)EK<-PNs#>COsBYkxE;nh0T;e zpJob0s%BD^sI5s4mA93X>cHZzt;}fWG!j9bL1+GZF3dQ6mmMpK3>we0(fEQv?@@mh z9iY=@y#4ryLH)HIsR&vO)>rWz=d5eORmMKOH;!uNQ#InmtJJv&M0n|JmaD=)<#B5` zQGBFiE*vG5LVgru#kVLs@hD~v6RglWE%M~-B3pc9mFLDHF9ga7N5W9Ek~p8oAYGE6 zOA@Fh0dc8I5_CBSw;-X5(mLeUjky#ifM<%I(*LIv(zmq6s{snE{BKY=S}r)AlqzoR zA(odUP6geYgo;~dow@{c(VD*}#n6OnZCHZ_b*-O$?CsrH&Uz6`yY&k<4T^e>7|@M}|% zSA^W#H!bXp@He}(3UZu}YA-)UEa>tsU?Ko8c*w&&k5bl?W<>d+-ygPU-Re8}sOzfB9^ LKCK4D?!diY;?OW8 diff --git a/beta/bin/src/main/java/com/mobeats/beta/model/User.class b/beta/bin/src/main/java/com/mobeats/beta/model/User.class deleted file mode 100644 index 071c225d6fa22c9dfef945e65499919bd38004e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6196 zcmeHLOLH4V5bl*7YbBeC?Igt`gp5rHG7pJIc*RM;cI+Utc1ZlFg4<|!EKk^nYIoLU zU$}DR%9Sfus;GhjZXCF9<-l*D=-$<1WlgeDl`G|>IB2yq)BVlYJw3hC^XI=m{{{dz zVW$WM0~Vstu6bPgwFmrw*X+Qnc|k*P71bI-acnrkt?fi2EW)?}(}|SJ{bucM5003AS2mu#ggv_iYpoTkpbgY-C0Bc>yGe6$dzz*xf=`YG9yLp z=8*xVJsC!7lY7E|S*thKmI|fcBw1@EaAVKM*Kt1)GyT|gInIWIF7GIx5onW(fOd$s z2xke2PFT0`6*bRUE7Xg;wvle6xYxqovb8O|RuFO*8)puPTu*-)$xWte!dX5-iBjBh zI>eVm|LK9v# zrmpPxp@;(aKsXGSs3qNmK5K;mTJA;HS-G^mFPI~2mxn0S;`Ud(DcC$pSJA@5P*qi| zf>3g|nyl$Oa{>`DTp{LhW$!bE`r@#KYns)^@TgLFREbuV(AwcqrSND&rISnYo?=1R zWHzUzXAQwRw4ZVj^3GwN*@+8dC0(uHDsCQiq#0r=V4SI=mOv*`r02+_K$eUY?X)OI zdMS3K!p+sMm7`SmTCTLEVo}@@A%>)ndpNc+zF3+TDho_TEcP9-Cw+{kJsiPz9=j?l zU1b|_q-X@C822dvQ{W6_xm3rfABd=|Tl#a#aKg0x(Weg;KH#`n(A(uwnsOd0n66Bk zqH=^zCDQR+m}5gHOAaY^l0K&VoipuF9!}CfCE^^gq1Nd%3E3cT0Q=O zRC;1vFvOmGY$B)8iI2_rAtpMF{<(V~!caPSdHpm}KPiu&5Kb8wyfOus;Hm)^DudM% z)fs0kJZNpkUPFY*QIg86z~=65`>@mQ99R1iYqr;|p{qlxnVLe?u@=ONX5ECU0dtS8 zTCiwAr6^SzudEZlDa2Uo)qv+K3xjr;aLoYs(b!2vbYd}sypU#w*Cf)U&tO`qPU2v% zW#ZUsT78;0(0(Pu+Q$y6MNKq}mVMELn+EI;VayOgk}r}PlHpORq%=Cd@1BhMB&mia z1Ja{TQcROWvd!LTBHSCLrm2E-EvU-wYcqg*hKwRCIce$$<^WR$-bk5HfHN?Gts=I{*fR0Iguenz!c@DT#-B<0rZs&tn!Z^$ zm%%)bx~cxNU0Iro`kqU0pYM}@p(}rJK>kG>n?>wP@De^RW9u4PV&H%I7hqq^&i@2g ze#ce;Ud1Od2e<$ge3CU};{v>f|Cngu4SWtFys1IBr$wm2TNwoMXUai`@TC^vZFnbx z(6i!Q4F_9`@E%;vAQZYBbO^2%;r$Uf#9D+8M&R(Z7U9DYIDDf;_-F(U-)a%A!(zsh zy|uWZS&Q$q2)E$l3_@=$bO_&T5k48g4?k!TmPYWyk6MJ~5&ZD07GY%sKm4IZxIKa& z{?a0>j^KyCwFqm-VJyjultu2~&Kk@WpK4;`9}U_%YMWqSA|#wK_za%~u)0}y1KXSU N+s5Anj(iUH{{y3Lwv+$> diff --git a/beta/bin/src/main/java/com/mobeats/beta/repository/UserRepository.class b/beta/bin/src/main/java/com/mobeats/beta/repository/UserRepository.class deleted file mode 100644 index b15a885be5ee71faba339a787ed0138d6d0034de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmZ8d-AcnS6#lZ+#??)y!z451j9x&o2OXSa6IOZoDf+qqGqlwN;|Djc9B^DtJ*)P{L7by$;s(;@y*5{f!(6 z!+a;Im8ryQv7s_BWNX{Gk{)$U42wg}^+0EstaW8n=v-t7`QIX!&#l_$+{(ctm(rRl zzt0)2R-FmDp{3bsuZx-Xr3T;W?e{OHwa9%R`&@^KUWF&;4*>6 z$oC7am99dAR6guU&5cU?JfWCHF4B^f=31ef%si!jZTFDVgvTjE2Q+8#Th`-r1<`@A z>{#2tqI)e^8erTm?G>6RZYYLGGiKvMYLS5-=a}y}18NvJ4FeZg;P{3b22R6MvOxeM z%ayjYgceq$G-gf%+U4|T0%w3q_x=F{gF27pcaY(=PdHAkqKw*;ocpz{EKfx&EHy>W zHC}-2$gtMWL>Uz z8P+m^g-FFL-Dg;;Xb(51?V-RPT8sX^qp{gMlsnl>Qv%i2YUG5#&00tFB(sG^pUvU+ zdfC+Njdm4o6L^1tuKWM067V~!&@q20oLo(JX~QZmTNE>khIZS7Wqey)j2_&_mBV`Q z5TCQNr9+^;EsViS*~NM{unhPx;X_KG0+(P0XAdnmS8=Z3Tmv7+S+v#=NpSW*L;cOd z+(&4BEiqScbSE6kRUGRB6fDBEa_>6aK&G3xuE4DcOiL4(<|i;s!JU%h?rDto(0+tp L6(ggt0uO!wp!Cr@ diff --git a/beta/bin/src/main/java/com/mobeats/control_stock/Application.class b/beta/bin/src/main/java/com/mobeats/control_stock/Application.class deleted file mode 100644 index 17cf5250578018685fcf14712f4ebd778f06590f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 zcmb_bO>Yx15FMv!lPrOR&<~)1Oin3>-2-qTfK(7jl~RyMsDwBmXX7SrckPuu8LoeP`n+6-q}(VlJZCq)}?d zQlO()qczC~hbBIbcC#!|u|Q>X4XO;<1wIja8oeGL$ru@|Jyu%bQwA%&odX8d=Vl^n z&|uIy!@jWA*g9Nd?8jSer8CJ~PB>kgsiYw1nKk1?rtT3B8l#!y6B#GM5-1b#v6xEU zC3NUeoLCGoM`M*px_n}!k0t+|^MxS8%ql&7W(+Raw}gzN;ezAGOa_g;)EljkyF8PYtkDi_9+OU9 z8r|FB%JE!J(f2*k8c;H?@^mciNKly>bOt6C$$_9M()x6>iZkUHJRJN(clN3C ze2p1w_TDecq7Iu3(hGFo|FeccFf_T1!-r)(eITVOL;_#tK}A8#H_Vn>631 IuS)UuFQl7bFaQ7m diff --git a/beta/bin/src/main/java/com/mobeats/control_stock/controller/UserController.class b/beta/bin/src/main/java/com/mobeats/control_stock/controller/UserController.class deleted file mode 100644 index 563da3bc5359f94438c7c8396235177416a02859..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7445 zcmds6TXWM!6h3PLiXB4&lxwFTD5Xw2wR@puiUXY_1W2nu8V5?BIvaUO1hS+`t28|J zC-m2Jrp&bO{Y8E1^jk}|W#VMFQ%}hB!IoA!doJI(?Ag_yfB*J75#6Sz7L^#yC$Zb; za4%>)=i9vDhMh(y+z?zQxDR9;`adKxbYJvFzK9!-6A>?FFEO-eg3(NOw$Fpj#-okr z!j+7sQjoPoyzRMy(Q!x3%7;xxZ?C0+^g3cW*!B`{!x!^G5K1n+Fi0@hnNMZ-lNXCN zXphZ#fhX@UI#Qc`!f0YKYzvEyGnyVqU5eu{o}_6u_1EJd7D?!Di?$7OBG2z~wWBzM zm`-xbu9Vlegxwad&mq8$xch={3i~Rk>xtw$v8+pok3H_!a}Z$XRl6OE#DwJX&mOA`&)!He&h+s*Q5Z|5vh8vOhP@%|o+WRFB#bw8 zx{QZJVYQLwR2qTIzVvZ+F}m!BA2SNb(w^p)^(u&W!-1SVFmyFEv~ZR9xk9 z>j_6~K{3*Bb3$!^K)W!FUGXrK_d~R!aNk31 z-&G`w!IG!hLf9UI&&;7Px3eW%L;C+| zIuRXijFSwZ0Ah5amZjEgc2P$Xg>DV8WI5et0C&d`Xx&|!Y9Ha=j~S~NxVOMg1G0h3 z4!ki@I<>Onn*Fs0lyHW;6Pr_BBkpn0qwD6(VTTOg`i-GjD!p4v2=R#p#=e7k4;=;2j=S~v+t z?N*P9=e@{)2k12N=&YL{`qWI&XCnkX{TG5hr!Phzc(ZHc$x@EsZc9~& zWLSPVLV>M46gWpmaxBjxI+Ve>AFJUKr?`pL_MN!sYQ?f0bIK+RsaA1 diff --git a/beta/bin/src/main/java/com/mobeats/control_stock/exception/ErrorResponse.class b/beta/bin/src/main/java/com/mobeats/control_stock/exception/ErrorResponse.class deleted file mode 100644 index 111b0ab2c6bbe900913fa8e0abe0ad0458d90497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2879 zcmeHJS#Q%o5FUp#iQUqc(sCc$awQ!03p_wM1Qeu-6eJod@qp0A-X`1HUTb$jadC&JNw9jw=Eu z5N$@a!g;8r@INap++BzDTo!3ALg$r~LcV7z5}{&MC>t=J+WIu?IPcm!%+&^%ng>j2 z8bk(Enrl?ERh;04j+Frm&CFs`OCEMmT15jzI}B$Y)0F$DSb5AtuAd^$dLQJV;W#^u zEd$Cgg@<(K44BIfPkpJuDP!uvhfp#l{5|Foj6%eHns`ehDcU{@)FWb?8|zLd{MP z2U);*E(8N2atML_T-9 zCMu4Y#CV5F%h<)>k^Tj$HwafG4n4NbL+06JBUU&Yl&?-c@J^_bMg$Oq$ j;ILhYaB~6_%6#+}**mdWuE5jMFu<)yK=xx%&j$|&GPE?pv zX3n+~O#M$Xs_g8d>|mTI$3dBj_f!|<8b{YXseMOv%E>ydlKP1An(SEg(pZwIqIg#l zW8i+q3@0&Ii+a$a9;np=;!q17PiQfLJ7A;J%sP_Rb!Dtfn5B*KQyyPzNI%J(bW%wA z!60LH_I{_QV=M@gWTleyD#NJqB+U{XYmz?C(6M*Mlgnc^LJlgST9ew#+;s4{HZ1yc z{=#FGCo~ydmz%k#@P(tKGQp(*@C0O3Ib3~H*lnTDm=UfU()4Od@Nd}O!k0NRjnCbj z%=w|BX|ik(W!t1E_XSvk%1DuRZAW&IHqm>ok@dA08r)_jQ!6gC9EgP%k+0eD&%X!+>Uck?-VKGtg)A=W zW@~I`v(`E&I5Vki>#pI|q#d5vE9>(_V!U@Lz$J~x)5)Uzg9-2HO2jdOKwW=Q9)0z_GaQgOOF;1ZTFkjBORLW zYVoPKf07K%;P7#(S%M$9e~lC?K~=!ngKSH1lV=%=C17z=d(S&SC`=F6flt+ZmIuCa zZ-LW%E%DQj{bzvaJ(Pc6j^4uJM}9j8OMDG604s2guZ#V01m|Iyp9EZhiyXDW<2krA zLJBhskiITJsuv<%g>Obk*9wqi0n*(9q*JigXY(yw=6m4&9p7*9ugp1q4>zFpH=0y9 A9smFU diff --git a/beta/bin/src/main/java/com/mobeats/control_stock/exception/ResourceNotFoundException.class b/beta/bin/src/main/java/com/mobeats/control_stock/exception/ResourceNotFoundException.class deleted file mode 100644 index 07d99057660106abba00d0eaaf0d0fae1f670308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmb_bO>Yx15FLj!n=FBbK*UD@xjn&U_ri$+5<;z7krt^5l{g{CYb9=X?Ug;dN`DN$ z0|_L!^P>>6N!p|mP!1eCV|zw##_x@P{QU9_0A9kQ0BQ{0dMD#dXcM1^QpD0`ab`zK zpr^e-XVZ@!tvrp@RH_`cHSv-1ws2A%THLjTNp{X70n{0EW;m%ZQ!b z*%z){xpL*o6$uFh+&FOInghQDQ8lxVS#Kw^D_M~faoE{@RDJVRb#+Zw|Ml-LzXQMx z*eXK7fU8kx*E}x$+I@b&Yj)t(ykJLg6=B;~Vc>opsla}KqmFQETagHhFl@j?BJOg3 zuXbnWzOa=61?d=ItQv6PUhFIBiMoFvBe~;>1>X-8S2FM;1BR`-Gmik)ZQ+ZME8%Q& zHx@W#MvD4-M+TI3Wf-Y-?g;~?tj@bOR4DyDlC_osH}-sN4*Q9i>Bp|i@ohNi@|N<5 zK;v8lv_mvXI15O0)VhUD)I4h~(J1oTM7ojUUIRzV)~4_pLC9U~j2sZTj{YK&8%x!M zvv`COrMTg=kSDFJq?3hf&6DPYWg)Y*z>&MMsXlsL`cmCAV5l;?jm9jYpNlYUz?qKK z%V8LVCcJ8lU)l0Q5e4pna2T#tL%Iol)(8W%+>5TUa%pp4Fh|%f4^gPW?FW2Muo;xD zqJ@W{s;XE8q2z8gS<@Nj1R`R%Ld@gJ-e(H+#bE>2G^>wsQl&Vl60ItsHRA-^nK)@; zrYt16QL!N0V>YK4U^{}f_&?(!Q{W6_xm3sS?}@0aTe_1=f5Map(5H_SKH#`((A(uw zntL88n66Bkt8#=+CDQSvm}5gLUG^zliF!P$^24hAXQ?bR02OI#uDh%51MeCd?V&J{~)%kxndlkQdU-@ESv! z^gT>#*D;*z^h}&vPU}$eNKTX#M9+xM9G4AI9_%E%_p;AsHT}N=l>U z`}Ps3OOmQuG9W$kB;_?ZB-`!GCc>Rr>Y6G@*MjQq*3L)M>xSX=VR}pBDLixJFG+t# zfD^(o;L`DH8#<_WUEP#7f;hCrilj@H65RzQw*hn;lNO7()r(e=F|ak+9BkK}^F_Fe zHylK`2pe5@NUazcUz1UUwI{tgf@#2%ftOV#6kr5Ku~)=i8G9!Fm+)7BF&J--)BJPE z*o0|fH&|-%mL0r1)pRM**FVt;=ciJ!Q1%kMYy6txT{5|!8;iQ@@L9H zhwzma;a#|zLFicVo`!?1MR*@BXAlZ)4mt!^i}1k!9AYiPhXZi_7CM9_(y}birOX^mS5dOA}jg75ViznZ~eSoOYi&%*Wt)68Qmbf*U4ZE8{Ud@9K;6sU%9xQc- z;hTl;hner6&o2PCn8z3hEW9gZtqjSH+A3MtTGlq#DtMkLI9t8>V2cmwbYr~<)^+mL zYq$FQ#)t%FJ9VX~l+XD_7eOFd+twBO-c(v(eyF+b=>p@mDM^LaF+*nmEz<0m ztoKN>%u<=&r2<#0mV&AElD5X1ywVFI8&oisyuc*eOPPGRB;LmxA2fvrqn&cadlzFW zFg=KgaV8M;Au-N*>O$#`$5eCZnPM*;#vK4SllxPSphhPbD$A@;(h!)AHVUgg2+b43POS^gyo=E@#{$yX}j z9$Y6dJM{fpYo)6&ODbo(Qgfry9#1HylZ&)urMXt zE+aZHmYrxDSah!iO9PDCrM*lO#SO&}X~t}PNG&q(lN|FMWk4|lCuZOR3mo4-OteSD zJZJ4kBC=d*OUpBb6)BCG6N7d*{h7%Hpwiuc0Kw=kWBDCqaQ|bDQ>!SW_B7{yZ8OVL z5erLAk#miAA&u2VjKb1>r8HNlFtm^fKM)dSJitF_vm&*l=zwk&#=1Xm7zgO<+D!F-!Lt)-0|Eo0IlXU^A^nf6?REeje(cY@{iHYI7xWir{9gExMA~ zLZkD>V0*P}^VWK+3ikS;Tu>2e5&w`B~XEDFom;+D>qkhuHak)AIE82y+9ZMcI>chRoEy)jISW0>Z~FipUNlH=id RjE`{r48JNyMqwGA`~Yh)-3|Z% diff --git a/beta/bin/src/main/resources/application.properties b/beta/bin/src/main/resources/application.properties deleted file mode 100644 index 518cb11..0000000 --- a/beta/bin/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -## Database Properties -spring.datasource.url = jdbc:mysql://localhost:3306/user_database?useSSL=false -spring.datasource.username = root -spring.datasource.password = - - -## Hibernate Properties -# The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect - -# Hibernate ddl auto (create, create-drop, validate, update) -spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/beta/bin/target/classes/META-INF/MANIFEST.MF b/beta/bin/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 5e9e7d9..0000000 --- a/beta/bin/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,6 +0,0 @@ -Manifest-Version: 1.0 -Build-Jdk-Spec: 17 -Implementation-Title: beta -Implementation-Version: 0.0.1-SNAPSHOT -Created-By: Maven Integration for Eclipse - diff --git a/beta/bin/target/classes/application.properties b/beta/bin/target/classes/application.properties deleted file mode 100644 index 518cb11..0000000 --- a/beta/bin/target/classes/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -## Database Properties -spring.datasource.url = jdbc:mysql://localhost:3306/user_database?useSSL=false -spring.datasource.username = root -spring.datasource.password = - - -## Hibernate Properties -# The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect - -# Hibernate ddl auto (create, create-drop, validate, update) -spring.jpa.hibernate.ddl-auto = update \ No newline at end of file diff --git a/beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 739ad22..0000000 --- a/beta/bin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,17 +0,0 @@ -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/repository/UserRepository.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/ResourceNotFoundException.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/model/User.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/repository/UserRepository.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/ResourceNotFoundException.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/Application.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/service/UserService.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/GlobalExceptionHandler.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/GlobalExceptionHandler.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/ErrorResponse.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/service/UserService.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/controller/UserController.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/ErrorResponse.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/Application.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/model/User.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/controller/MovimientosController.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/controller/UserController.java diff --git a/beta/er-model.png b/beta/er-model.png deleted file mode 100644 index c2e557b88916d616d6b10341ebd1d15b4855289a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33810 zcmbq*bzD{5+U=H5=~6&IT2LuLx?7O$+#oI8-6$n3(xrrybhk=(gLHRy!<`$?d*1V& z@0@$Sd+z3s{bTL5*Pe5(`OIfLV~n{1Wu;%CArl}&AP_WhF=2TK1kM8jfhWEX2acdJ zCXa!)ySfsugdsPuzt44H{v}izPEX>r?;+xgagrn zxX?U%6cLwnCfVDHaY1cf*(R&uq zR(r<1BId6bj0IZxR3vg8*63(lVFn1qD;2X2{PRKZ5FC4o+>Zi*e17_GKY-?-KvXN+ z+uH{-Wx}TM2dxruJw@r!e8k9cRB#_my6*H$PEIPuz!zc?@rq$9t`B7^sQBlf9r+9J5O!>)(+)xkv}+tj^Ia97*xzf(Tm+(~c|CM(#`)q+4^5*p zs&U0aXsu0#7q$0`V|WhxR1}~n-!I=ppbxDyV(=vq-u6g*MT9*;AwiKdtuR_(3M$uX#zxOv=N$C%KpK(LQ*5EA+9Z> zuk&s{da0{QJ9l_btS-*>DW)34_PysnSsZmW4*d#P>1Ym^dH!@dF-aT0Qe?4I9jzE| z2%#Uv9VA} zYh5-bXYmE$AHCluUJ88W7XLuGaeHB)cV$V6FL>oymx|8XvCb$7^(+5Hx+Qn1Noou5n7rE#e8k`=1SkdcJz7rV`l3j}+j_0@PqsbltHHtYCX~~es=aoDYU+nYN#bT z3cPtfFjyfy6o6#^TZ z;?Zxc-<~lq()X&BaC&yH!%62FrQ)|r?libp#$;V?UkIk9t_JQ*G89w}EZI)g2``mb z8?oIpBjV=cs;;zy$4YXUU4 zaR)uzZ}$;cxgS4%tg>J3XI9Jmba}}HaZS*uB~~n$F+x0yLo_&`Hgd2Bhp%?W)YE|3 z9A%no*G9A2UL@bm_aN^e9*cf5$=Q_#t6TFq_W>4eM1?SVY4izTQ0=nm4jgC?xH&-Ad{PU@-Df1Fgaa_P3b znK*f=#K!=EB_~(%Fr@sB{XQR0kxF+IMS`eWOBPSl5b>Xr@=pWh&%DiSH;L=m z5C|?hNDQ{iU2!p5F3*OQ_+5<6%$mRnM8ArRRIsdx|wzg&P8Nb@3OE@VQInmH+_ zhicv_O_@y){`f`%#Q*M5a0J;Bu6>)fhnM1Pn%kW2s`3HNoj=Eh7djWSG zS3;-_s?-J+qN8z*YaR?J=SHDWVL%|U3?L6q7qiI7ph9soseg6v?Pc%TQVh%cbhx;< zEGITC*{IRtW~-E|(r#^SSyXUY-EE2G_G2`xn83LfhP(;nKNJ*gyTHwaF4u94vz3}o z`I#dkA`*1xjh0UyRZm%D8?hvG7p<7Sef!qL8raJ8&eI_L(C3^=4Dic8n1POdu;CS59*%Ebnw!_xO zrc~X$R7W~fq1x$r4}aOjmc6|_QZ6>cD*z-i#`p7sm**sT8Wqw7qpt`Ttk}B@U$$Cb zU0spQFeP+LXTH2dEoz(-bIXGimd@dLk_tVzeFp-SH%-H&8 zGJP6|O?WHH(()4``b(7>u9X_!Mxq-MuF7eLdodu(_xe%R9rPB1rYksUHKe+@o=p?2 zv~atsEGAnxZ*_dnv^hUM{3Z2_&ZZvmuri)5+7OS+go0c`O3l^&P5HPhzFu&5uugE1 zA|D?lmITbUiHlZ`GSfj(2V2Qn#^=GPD2*!3*1cPu%st1R2Tt4rv7f&xtmAas_q=`S z7Zy=rHG<2gmRDBhZEn088)xp#m6t^KIitE~?b}NU9N#VM=Ep~92KG{n{t&MmQWt@# zV?~d;i$fB(H0}EojX%o-W@1;yy8~xX)Hd>5>$EJ}X4P$>aeCzj!Av@*vFf&-@R8+; zWhxbwN$!rNj4k-KL#4`H>0fJOa;s#A(!Sk{Z!R8}$0?V!S|HCnc|IX`ubUA8 zq6mQ6dbCQRZmV~PqYK|L8pc^`s~B%Sh)3Ee--D2>~j=J6btwixi zgajs$TrNfN z(2%gHR%0uXJ&Q&+5w-ioKy8bf(eipgKvv5S!+bh)e1(NKtmLUj_}Evh-DkXZkgmKN9o?2D+H zM`!NDCKE4ymJ9brt8f-oLQRE^Hwg~%z#q{_wZrU{THi+tZWotL@oYp$G^*YIL;dyF z02TDx4Gy)tJU!ZIZ1ia08!m%DntTAfvC`9D?6TxKHfO0j86<&LxwWqxG!ySQ)Z{6f z>Y9qRBtpU?FzY_Mu!)Mg%-E=wTlAl1o-UBhCqx#s`-ymd6-__=4)N0i5nzRotN3HYiw!hSYtV*oSm8J&qx)f6Fjz6 zSpe_F37cWle8;)a1lHmNz4;J19eq{&`sbmp7TRB}%Wo1|7b05P=)O*DMH2{@j1igt z{O(trn=3Icuc1L>pR$iS5QDXX%AI(rI-Lt%)z#x`cCXz{PT%)4gBJ@6-DV~N#26G! z>*bmI8&jD#vxHZI_>XY&(au}AM=hi;wc6Azr#6mUgzhGE8~Qhru>|!~*>NVBo0|tS z`ZvnS$&s07fBW{STE^LLd3kw!e4KryR6TD1za_TY(A3m4QeCNLikMf2nKdCKAid!( zgnt+es)aKmjRR4ZTjq)0%x<`+o0*etvH$2pKAX>lg?(>cyhjBoP2Q{dO_8c36;8Kk z(!>_}q=ZMU=gsxV$O!w&C!-*z%5WsTtbzhQyVbtLRyZ$au#VafuGwvbR7CMzZEbru zpoYxY?N@(%h5qT&C;X6>%gakem6$hFk=Z#pIVB}8hkYU6Q^DXK9lBikNoAb4osjh6 z5lDsIl=Z&_VF&W0dLFBO`rz89e8mscb=B3?i|FiDca7UCN=iz;ex;gE1ewYO)9F*V zudcJ?>HDIwtz&Q!hyNXZ&cTdoh!;ZN#!+*I_PI&78Neh+X zTj>7qojs5o-17ng(ry-3*80N%iS~pUld_z{ZZQe9V(o{JKwl6*1C=j8cxTfiLzswg z6LrKJb1)!JG5-5x7fvSH+Tt-e%;I)cJ+mVN=mSU*DZmQBPTWwVUJK{bxtoKF8SU#! z+mzmzTD__%i`?OAkl+gS0bg+>%AH)nd+oHbJ;j^nFh~)0c{*7o5hOkHeN$2~pu_QP zIB`X3DFSgPEQH!%A@t}jn31gWdzZ%xVHKOxJmPkdZzXfPZ^lQjPtFeD12^1p>@fsl zIt_|c(+OEsX`_#i9V#XsJ3aV20J719h_Qi1wc_S-_MMdWSqFPRS}H?8J|nAi`b^P6 z$Y3T9aTvFx#gm%qYISw>MTU&s5_OQu%Jw1TIr;exoJsN<&+O|gDl`a4XU2Hll6M&y ze}~MI1tYlMF@CI~ys_pu{pjI)tW?wBkiE<9T$QycM@KwdmpU!u;9(Pcb|QHi$=D|VbTG&C7>{^*a%Q_IU)voAhr$druHO3m9;rPIwFyblZfVOW9{@#zp! zm<|hl+MYA2emx*K56Yfv5r+;Ijp1QctDDl;=$S)xd;h7zTQ=B!$hBcKL^ zYfR@uBTItD`4z@ENr2Oml9Ga+!9x@Q#>mMW-C#5SC0pTs5kHto(y+yv28$9DWMmNQ z+*DT3QQe|gNh~ z#>~)rr^?IAKYTzwd!AEV%(Q0h>FHUD1dy4Ol+-Mj8wdb!&LjP8cUB*{HHq*aUTHd2oIgE4>rdvcg9N8 zbIbS+`((~97|_x0W?HJ4i)fbwWo+_7x1$l$*M7n|>A04uR$-3do@|x_q_NR;lhUu$ zX-yXKH#!9$;F_wBvQ_06%HA|n}eEUZVR zUEI0NjE2bE!&zU#Y7mc=cU4v3;2z(@+_H=(n`6ye zp&dDK;hQEoG`Tq+I8?8NS{)9v=*CGMjkuJCRiZiIiyiaRemyr$yvjctK@T^C&Gwr? z6Zfkr$5upvX&Vpy#b51_7|Tn}AS65Gs%F-UM&mCC)34i=hP9^l9Y>IDx(-cWnG5$+ zU%$?-$uUmas+W8TCDaQouKs#I;vw(nCr;|F6OwnZxCS^@QqJnr{Ajz6%KP@nT0aiQ zZ*&mJSB$BUJuy!=!s9Ec`|>S6yK~AWtDwrm^E+Fj{qk(aVn_VQhpL6CsWEA#3#sys z`0tw`E)R@TqJ{FJxw;O%5s^;a2KvE%eZBog0}&tZ^ZUYfpxH-`Gwv^_Gk<5qu${

F%?{cU?f9L_vd_;e!XD-gIg$zL`l7wXh+{41Scz#-JY=aDlhRqZ zNqO43p5RXZ^-3vvL=W1ZJjD&hN}Z<5-T>`~rvL&y`^hgU;qo*vEuM!puNN47R58(q zFJ_yUGaQ_n)LK&S`@qSs4odgxHM?r5jS-$YbB%?)1!{jkkD;k6Sqlqs@xcDKUA?_w zg+hIS?P+_I;Yz%=YbK%W9zA!05>wiy#1@PIHsj`G2Okt5Psp_pvB8NrpMM){PmT|V9SWLc!wM*w9=vR1)Nt%v(oxw)n1VgI#KZm=j=aA==C?K3Hx zd)JvLU|Oy8z&emEHpAp*Q%Rub^saEMGOrNF#q5ZgZ8rnrPG0lk>|TGe&!yy4(pFF9 zf(<&AD@KsVzC-lUi1R**d&H%~GOwr)E@v8-Wi1(3o6^QD>O>`ZgAq5PZ<%GBH_L7sq;Va}?bLIYU|4`1 zNrm!=#N}I|kqLUomUCfzMsDMBH6_iiCWDc=wL+9;cvW2voqWprHmZ6g2GsU$o0VqA z^xFMG(vXl4hPp%foLsL%9~Hzblxi(6=c*&=C^0UACZZ^&pkM+tVYb9MD?js)P=Y1!fbordxAV~I^kvu=@@ zR@^!#Y4!E>b$var+yfY;FF%WHBwH7iKsPbcbV#g7>1W1ln_vE5986VR3&yto101msi146cTbF9qq)!5I$bI28y3tI znQuv& z)|%6S{$1(^j95$*C8wgMZQvzIXO=j=;f{-9FaV{U>&bRrRu=!Zpr61fN{-{k(32?BW4Xc|;lX6`f0fj}Pkt^%I!uXNj7x5#JSv@|fQ??B$nfd!nYwypj}ETVM6 zx*#d^?V|>l$)xq?f0Lqui)eo&tUo6W(MQs9Fv@1Nh%Ciol zpQ!-$i*wzX%037&3anJX#KbZ{QsA8FhSoS_RAYKM^8-3^ad|mkyT%YGXUxF>(uV62 zv=r=LXEF)n?3V$K{~Iidj!39gFota`{m+xzoNsGg;{I*amOtK42k%wB~$% zxYkdoM-W;{u(T@teVzsV2broN}%oVi~N7gS^#(BQAtUoi< z(_4spX~a%ncP%Rm{Q=4Gv#o;!p8P~%AmVmGAk-n9*8JW#=$N{vGwEKJq0K{f6F|(#Z&210tvgskDjoB7s%CM8rt8eMqIb?p-3-xSl5gM9U&LPif$VKjepsuZ zU|l6$Q*@*t9e#-VnSS*@UjLsbJZu!D?b+bu!985}>HP-UC;Q-c-~Mb9=kU~hF<7rr zdXC^Ilh!Q|(!r4bcNq5{+P)jda*K6G|Egh&XI2y5$p$mP{zsJ-Y;;4sZpRbG8A14$ zV-pj(-OmqKLm1Iojf--!Xay)E0%=f?x9c2@EG#T?Is*|sCt$6N7aM+Y$8 zuWcFI_wclg11^(nULHC$@S{|+3%j<{Ijo1R-eYSVTC*)>FD^Gnf)Cn9dwJOShZlgp zT~Wn~)9K zV)bvtZY=_;BN|alx9IifJEbXc9}W=tQa<`9nVXn3*)HieSw4JV z+0(;-I!SJ$o=5e#1TRMI4!DcFF>+uiy!&Q$$o1g#6g;eLKAcFS40&2--+SUvOk(k>*Ny{rPof1>_fVKSx?nGgu%h`~nP`PF0fkz%a&66i|AoW8?_x`QaJz23cbm5=k zxqJ;Tlf3ElE`ZgN;bw%d;dq{ngevs{gZqr_X1ADm6Eu1es&zfKmpUIJ)yreQ=eA>8 zP_I>P+PfRo$>4D?*FDi`F5~$seye8+qn9JkZMEUdKPKZ*`q|Q*{Ze7OJvRm{C7u&F zEOA?6kLyR|oCEG;y3WFf2RjW+tNO0U+?xrv9s%0#5T&nF6EI z2I94P*`rAmYOZOglNj@TM~38`D=;EdB4!tJD#UK7=inUde$acMd<&NDPhS~KfF|T5 zyUu~%jq!AFo8!|ArK#WW{*Kn{$iuH0pHKG+$XjC70O={lyx_~BVMhyu+revN2-n8E ztZh43#0kI?CSln3X+!A((y`&;Yn^hB$iSc2%#_L*_f~i>r$R4?NmE}=L4}!}+NFdC zqS-Ui4v!hMs8hKd`6Pu+U%y^LdXi8PBLV$3bnO?QoXq@AQA=*G#kZ^$yOChw19s%0 zlW)J7s_TSL=4&KC0rSuAdHi7bINEygH8b<8`*ilRnZwdvwyh)Sv&+HSloJ%mfZ|!A zi9Vwkq4KtVRmEECgJT=x$EW(Ogf{&2X6odemzOWWsFKrBc=FDw^Ot!q@$3)1gx%&H zAZi04TjC929Rzg$yK!lvXvtg;Pf#576ObFgTy)Z!b=HYfexn}2K7YlVBuYxR0DD_3 zX7&-2R24h)i&TzX5pJ`$aAW6pPpETV26nlkjo;p)(TAf{1;zSW~O;=!eShbYYsh*&w!G+L?p zFGIDn`;;3U^~Dw!?m>x^PhdHaavCp9%m0AE$L`BZJxR)z*tYamA_`IA>Gn0mUeELk zpHed#_h;IIv;`c!rez$O;HH2Xa@lOjOG_fiDNfY=PDU|hZQF$J@->)T>AAV&(bU>Z zbzrjU_8h&oJMY85Qb2JNV+T|FY>?!=CM!{XmJi6-tgJ^|1D+hJ}PQZ@W)fR1BLaeG?R;gH2)|>v$rn z={^&2F6$3Y(_D%SF@NyTB^ z5f4A1ldkD+(m@p6>OP; zQJhzBYux7zQ>>-9)WNCnx@Hoj}}9>e+qSgzitVSLRa;h5^8#BMpFLl0oK6@v>SN2 zU6$DJ#>`mP@&sOm5u-V`VkLL3 zj;ck)gh?5_2kKKmri06BG$=uTtQj^fIBx(_eS3Oq(1eX=zb&jcsit)G5Us06*!L-$ zgv;c>0JanD??R69E~eTBsgFi!sa292Nfn9 zY#_uu4a$-|R+8id@X4xMe&P4d)Vf4XyE{7Sd>P${YEjKo1_D;uN7jUHiwcRb$LRhK zJV3ErTr59sv)V^SZUW@0YMH7d=7jD6O8OXyaco|h(^z~nFn`6xF~nh&t5~{EZSAWH z^NR%yOX$LxwLmOB0k(9aQ+ig`El=0hn4TEfR%Z-KcWrGFEMU(t<`1?|BF5?Ew$3Ri zi1|qT5#}BZ7yIuC`DKu2A!09pR&3npSG_ecn#g-~YF_au1W;tEva+9tO_mtFH>z=i zn)R8m)x#g2P0sUw|e zr^W%H#AwalB#8$&Ca56`l4VYW|Uu z`U8uD(&sO$_8;b)e^t(TrQ;J2x(?4(x-9tJ>Qmubu+=P(?SI4B3wFSw3)`%3;jFjB zsG-iN*CcP`x=)C2ZKr{q9Y3)iTK3Srn?Cv%m+(Ka^f5uRm1A!!{+XoTr51F1g@j*p zczfM7+prZCqu%Q<9#@-yfVR)WBYgX95i-2i_r4Zf2$DpZGd?-(J0@ovjDjXdjUoT{%OT1p9x|n3-7&jGW(!HhhGJ(k8DnB6d)(nvS)o+|@X)|Qy zDSD3TPc)uCM=Vj({v`@86#|! zGmB#B@ffW&=_UR1Ue1>8^W}|<&bT{jVlL9Hyb=vf;y!z$l?pr4E1HVQtCH^q;PNe?g&dNVCQ%{7gm`I$F1Evq~_v}D0CG^*La zH%r*VX}c?LV<2VPJc-h{-Q$omZdt4}f?#Mll-5>LMr2Ypsgta-_6V3iK!o`^J8REW zA8Ch@kUT^n=j3DBKd;&0jg3@LRek#c|7Yuo_!dK}^)hE>$;}Iv(R&WD(PIqVj+5%; zQ4`Z2l-Fxs^crYrfZy`1%K!F*xODb$;F&W`ECh1XS>S~wvO=ATsPd2VWQqs z%<^+Xlwn0ts37_y_fL$kq&A8I#x}Oi9DCA@MQ9L>ESu8WWE_xI=)ns8;B(8-#JhVK z#jAqzMuB0dH)|lOyEjHhEhdhSUy*ESmvz82?G_&&xIAS--pZ~=rG}a!*0f|AImf+P zbBl?lW(a@s<5f$5AIJL}KfYxBn;-8OfWdpt$@_1S1~!hq9&I$Z&bS+vaENYW_sgl+ zYB!t7n46EyIBayj&8fMxsHm0~U5M=puorJs-bY8kKxw|C@n%4dcBbLmwC&_7?#$aA*A; z3}P39{)*NJhcX^-Xy2SCyKbLdG~Bov1o=q9@=R(9Tv;ZW>9h!`E&2 z-GR>pf>{7QyDYdlY5=;tmfK#lrP~7GoaH)Vz&&v5-dNm+ijl&WM#TXR=vvYkVB`nV z!gxRQ`8GFJO_O49@A7x>eL|;rX-SEdohlt1%xYt0RajARve!y7`j&Z)0_jciuCyn_ zt1bO7>YA;^$JWK;Exg#kK?97w@~Q$3eIXbFhvBjN4m5ykr}kjx=4z(D;=2zFOwId3 z{ND2)-j!Q;Y)E=FXCI|Q?6UerAyfJ>r`_tXigw*fvTG{Z!9Q49wA=T=iJF#}=p?on z;$EXlUqAAS71z{oU7F1U`x&r?Ihc<-T{bFcdu(nHT1;e(Zs49N2Zd{2|qvt!)6f{!EXH*%KiqqfzH&;2@8|4MmrxS2k8o+k4_b(wVSIaoY2!H z8Bw@CbS@RE(hj6X{M`kES^1|6=J>r*q9hE$3A^0!0x zYZ<$?Bo2E;KvCfZvJ*|9ti=yqNG~rg zFIPU7C(wjKx9m7GmYFX5=HOZ-ULlz&WpFISy&CE3>l+$kUMV~Twi1x^d7`v;c(3lw ztm6G_E3`82V_U9ru$?~<9C6vuDi|eX`t{o$X&=P;WpK^R)YO)p2uSh+?|=u=cXN7j zQd2`iLYRexMLrz>;o+g7rkCPx80B|Xf#^T!@X-BjwuR({S? zMfE&9Jc`3CO2&ZOGXNlW8RV+db|c9r?a!==B&igDg}}(jC`lp4!yiF`~@EMe?w2;;s!1r}iBcsgPT1{{P4Gj$?rLx&E-LOFGRs01Z zJ9~Ta$5x342*tPd(7j+ujY?ZAQ0s%M|0`D;y1$TmPsmGq!AebfXBO3Mg_E5bZ55RY zuW}YE)}Ur=-tYQM;C@&UjZRJy?e#IXNNA+z=EI$Q;0Zg-+jVSt#jTP@?v&{n4py7_ zcmAYvyVV_LYiD23*4jHt_3L>^e3n{G2@^#QV>B@;~e{3V)E?9}!B@ z;NkA{Yv&{rY}{dhO^+tvB(+(tczjVFKYg(lmakdAcyOj0=2$bOoXb+gLa8S$c3;>s zoVoS~qCTWHKRTX}f}+lngI1&B?d9ObYl)uA^rHg_c<;3Yi$HuMvCb2b-_D$Ei!yZ~ zixg4}FU){x($nvJVt2u}KM_)BAJz}+jG5?8i|;M7vn`L+ke}FfnyTF8jT%(RaKy6u z?QfIvxs7a$S~fWu84Nv1;zscF+)&PUIp8s<`JzwO*Vln@ zC)z@H22?P>aRzh=;3Pr0ct&S^8#?0(XGhzEp1UC)WWd-ude>bq*_4gigF!#9V*ALY zj_h5xVM*g$czp9)9DvS&Ij1GIaV{$>E4*A$SsC_YLbkTH!1tDDtDdK945}K#5?~h+ z&jXbvM#>9CB__GNRV1y$^Abz6%MU@zbSI5kurY=9< zqDKc)>^3_yg=-Zs&|eLxnAX2!VTp=~iAhNzNv;uIv|>*W`l9~FGitC zs)qbe8qV*Xd;$Zzg6wS&C+Ho1QejI>w^u79bDry}JW)(QxU0pW6{wkpyb3<9RX3?PS zrgyk4B#MvMznhhvylBBsc+`lmm+j%P25hPTC-0D44ChM`j&(EcwPd|uqD9qy*veDE zFvvb})4i}Krsoqcoh`#W%8}NM&nr6pQ%z%1ziedWZh6KRJ;QRu?NWzwujqAvqI+ni z9+XQwa2#U$G|bXW1jl$A+r~0Wqct)&KiJNF!L>CB4?~>urxH)=!po+sM>mfAQ1e+v zqc{vTTAt$gg=Mpxu)Q#rP;#{oniz9@MW`1HaIa~zq)CTsRs2P|`Ebb~d&hY}x3q<2 zg0Yh8=GR?lYVl+HJ|ZE~ySK?|>EX9u)}Qy2ro-GDg|7FC<^tP^wNx(Kyl>rdm`s(u z1DcizdOvp=-G|i4PJZ-Un?~nc4V>ra75kmjSH3%D+A1h6CEg%^o;HGFurrxB^U62TJGeiqUEq^Jx^g7<`xqazBJk=)rvziwYjpmr(ni3Y??m2#IjnDhF z>(P>=>1ff&7`iI)0w@SZ6vqQhG$w(Ir)$`3E$zF*@YqgjTTPQ;F`F#(P+KNT8M(|CH zE%H!!h}Q=I?!P+dG@6(jH`X|(ik*2T1>9yy-fEM*wFeTARJQxLcgeu==2JNqT8wFX zQu6G^3mt5P`D3hZljg0&OJ9Qg)B4n#e;#1uF~ArD$4isV?00X)7))eK;Ez%Lrj)Ck zQH>B_W@pDd{6yFbEE2bSd;TST@Ia#qY+X@hEs(T-Y|=L~Gc!6${XrK7UNq;3DAD-V zahM=lDiYltFms7f13rmWGNGgaOI-8HK@yMa$db*J{V1?#o4>Z_KzX0fcAs|_$GrIGSm2MaI*xX_QCBk81Nd z_Mah%WAJs-vGkqt7X&$c@<+FgP?KJLz$b^u*g_AjwmVu^O6ZPGNl96^nfFCp`CEQN z4hW#igrl%t$|)0OW_IDR5Def6`&D zv2Hy#^G#OFu_mejjv4uV z7CnHAhsQ3ZOI}g2)OMvOH8oWckI51?e)8YBIHZNE#ss$3hK4Ay9=#3{nl>u60bOQ3 z3M{Vv8W;gT|}LPTKnx+jl`uQ8L_EUHzUEG%x~OSp?I}vdx|_RXz&~ z)J^}e3+*3f>a^wq1jkr!fGVCZgoK8EtwxZ=sa*kn8M)A_b2e@KF1So7dos+|ou|VK z+a0aM;GZwB$SQpLhhfGC_-2x)p1?|6Ic3}jz$lZQ4@a)r!0?bm zvnC#wIhY|H|EZP+?Di;*V&8#PyUpWerYc&;#i@aJcwA2-aEx&I^ z4Z9K@7Kyu^%kH|8wsNvcgRXicobCh|hu_ZyptDhjZHK3OEZK-qHw)c9(Lb}aP;H<$ zw~fK9Bip6Hz6~=y8=L*ZwZSyD7G@%2mNuve5;@MJJoShM)6sn3oH4$5n>sNU>v(-u=0_(PBi1vOa(1##z+QH6D$zw9y8>DY!6p_%vkA*}e2rJa2w_n_A z&{aAaSBCy5`m%xMBf|g(@zU?iYM_8%(==Z9`33vutI+)w^jTtRT48uwZIcWk7O0lB zWep!RcNPvJK_JDWTCP$amzM{<4d?5*0}Gz#nVzrZL~QTVo;C&IVDKD>CO;~M`_)?a-;cs) zNo=Z^&1Mhs8@sMQ04G8CrxYFYnG0tD2Q}$_GWCp>s%ZC>JEk26=KX?uvN5OHMLArf z2|73UFW1{?wfwF|eMNq50NW1$ zI;Qn@2&J;$mFYc1Nonb1UU!$nmRP@qQdK2Q0)z-*s(jj~l_%3lRaI4cn?5tN5IHgz z9j$-q)p|J;4}w2+Ho9KZ(|3;>SG~ zAKQ$z3o1Y&GDcyz`W)5f$;OQCI_wzd2ff&z4CLSkYt zBdU}ZCQ!j&X#ZayNP#n2#_<`~ce?k34GZu;hOk0X=1?)C)_Kh^$n}EdrjfUR;A}QiRg>kEHXtIzB(<&*Jbg;r0%3L*=sOZ5 zttBQUw!A)PYrGrz9nqd?WAqcRgMVm%Fjd{zdxQui^1WauZ>NYer}gWD#a@qH#}oIh zg5a;_&vG7r6l^?YS=eqRab+Hdz@+@3)c^fsDr(BVt|V7G)t>$N~?y)mpZw+DT+~KC``o{p$7dm}uFcN7&5Cy)Saq3mOakIJ}E;{K0+Fk}}$)I}U zo66CRlQVhwjYN;@D?H#J*_+HQh}jyCTvs1x{#VbWu&pgXg}Iz4lb_!A5%bVWT#oDQ zy+B|EW*y$&W}Ova);WOVJIPQDr((~uXhb(XJw|h!E*LiGc4WP^El}T2wX;#d3|uhm z+1ZCXL!1`@e~9zWWaHbwV<9LEoE_TSGZMl|y>+{@IK%Fl(|o{waYEv>54<)cz)fTP zNR8l`^O;dA*ffr=U3Ce(JLqw;N!rvAWulJbFTA1Q*C<7=1x_a^XaH{v=vClYqjyyI} zw7CY{bq~6_b%Yo*-=`r(Iv7i@b{L}OqvsDDGS0*q-12IE@~AN>eq}@EXOyJ_Rlh%`F8MPG2MS~^u>RaCnu;~jIN)Q zH3?$~f^yGX07n?Ov-{f&6Cdp=nHB$hu!H6)%iG_-;_SWRYoJah zL1V%Kw{x<_EEpZV=aC{!v3_fl37~Pw@Nm4MQqXK<^$7IQSZw-ecs+2;Adys2%1l?* zAkkD@`%q+=0nhwdFY7nWT}l}7V&%ureu9D0^1pM*IDG}K6lAQe${p|UEeu{csXIl~ zJWikY6TAsCa!cPjY^h(%yI8Gk`v+!iWb%Dty}rC)c#V-B8zav;FUPxeGYDK(!iQ}N zy|Ra*+zNR#7ai4GCv=8)-Be{T-CVFBT`I3$wMNzEkr5VPd~mK(7pU%wW2C~?lhhy3 z3&o-!-&rg@Xu_cIh*z3@*v#xISLEhvJ6kopYZ^9lWsvY`gxNKu)DB6hX=_e}T_P+) z;`6hPhdq`z^Y&-^%irtxmE8_{@1YX~978FkFhK#_rP8$exZdXMat$MW;Drj)o&WCKh5@8P)!z?S;Fp5&mO(blU60((k>9^HGYj5ZCZ}b;_oIOX zWGPlqywye`Kp-E{{!Xy)%m4X&h1NkqKuTiLvI~(WUic&4nr5sFjeDg$&FUF#B38~6 zRS=93`Uw$Iv=F>^Gx2G=hK5HrQzxELCk)0I7%ffJz9k_f44S$CBw_Awj;e3C`Yq4$ zzkk$%*KeA?(7-e~8NZrVTBa~zVL@SGMKmV^A?oPxu!|$`R-%wEFe_3WpO}~eJRR!a zoeh_P{2xKlmHN}?C9URk1^X7$PIrI(7w87784cL6^48+2KB`8mVuJ4I8xYKn-G1|u z;k z;FeR7K~_gQ$k&W8dU1KPHRUc#Xp~I7n}QjAheC%???AU%Hd^eyY{`!$b~zlbp5`90 zhtiPM?jD#Ki;)cCQqlKT((AySiU?wtiw)p&pm? z_)^2wp7U|%kQfn<%OOBe)`aBg=rAEj4nZv%v!S2^sAIq=4z?BUtz*i=oGX}~91|Wd z4y+cxe4}S$Q=yOXH)%QG=5l`ili%Ff80u{QVc^J0Hy{A>2*tzw1&3!k~cix&E)}?<4*O|HoHTQwI-44yG5bH^B)y>cfNOo za3!r2XnR)IPt(Q3kZ_;MdERU}Wm=lChen>gOz6HN0X9h$-$%A>Bh-Xne$tN)W`zROlw%48*D;@!20sVTbqK2sK>Yj!@Q_kH>X2FQ60 zfjHd%R=?eZHDPSa`(1wQ_~^%eSQqvVCvsIfwcYwf4#QXP^t%gKVLdZ3?L9tZPm&(- zTc})KHdN*vH)AE&Eu*3+*D3qjZHPk>pn=sX3yd~fFFw;8o0Wpy%#u`*fLm9kov-sI z3;lgvy3ma(JL8`lkEyE}?kf=Yrn#Q1?k}DHpU%EIF6wVxcMzl-5d{Q9LP_Z^NonaW z>CT};kd}}XDM1m*p^@$`=@O9c?!IgI?K)@gbMF0I|59hZF>Ag3KJT-do0F0rj|Hus z2L&OE;O47sh7!<*Nac-!in|D|mbP|saIqUhiL>Uy?=jYes3#_U5s8n%2%_Z5@%}#Tu~5QGxWgB+OiQ9-MaGZ)no;MEH&^eT>$%o z4iio}`oQ6qqAlo)4Vr(j7Zo81*KPZds@vARMhLwxVv_9vst0+|uQGl-XXLP*c*)0? zoSqI-%4uF=!kgTNI!L=uD#brZrKU`krPeHH5th_&}XKglI0e)Zcpt$ z9ES<%>hC7>^x%+P{b;y_t{v%Cp|_UKjfeL^$VDQpSo$Qe7w9! zB1KvS$N`4ybVf1`n*{|0pc7-QJC;0ZDd4csS_1pH>dsQzCT3@2!|@0cOd2|za}?Ub z9jzN(=fJIm>L~d@dc*Gi&)V6JuU}^sgakBHR5UbxsL*MWq{@Sc?ZKu&+G-oM80g%! z`@|KNl%as;^PqXFX}&YImS5N=8L#t?x;ouzvHa$iSb6U7!-@F#_>cJ*@USBUwzXyL z;;?_3muIK{^AGW3JSN?Xi?M>~N;~zuQM!1#5iJBsh0qXzXnBlmo`5EUaxKj+?D?m_ zwoivc43;0Di@RIodq@`m)!G1Pm@1uq;ywO>+@bz{d571HB5KgF7z$M0 z)JTrVz32JBn9=|Fk{2=!I%vQ`vNZJi4FW@?#@hicbCc_mKZXopz|HMX#pe$Qv$EQ; zNKDPl4i67i>Eb`th#8k_O^y_P@`BdrrfiL_JI~C_(8PAZF?m*2c@kgO*Vb@Jij+eT zixy#9EP2VI1(Y)hN9GPo-=>Y8XfZtGJnZEp)~>V)#%!SQQ#5A1LVUOUM97E#2~96| zWcc>MQ>piRp7(+C`KPyv$IikOey@07iYo>q_wvM(n*aLf-#rp48qj69Q}c`dn<`>N zKh*O%H`(6@@BrhC*H#W?vcU--8+ss^^(>81nEDwI{I1{RMY|@2?B~*0QuJri@cAfq zFyelv+%WQ9Vg%t@Sy?%6%??@NxORY=Jg6&E{&ay^M(vbpvkxlRfea zxJ9@+*%&<_(s#xapz;uQ*2mQm3!9oM6%dfmjxC@6xne4>6pinYGWol9Z`g=~?t4ao zrcz`7I4rzRgM5(3B6AFzMf}+2M6JZRq=1K)am1}GBS>EZ;t;fU9AL+M?}gWcfJa{c zivpY0;|c9qqvUZ$YzLW=;O&2J3OYY1)8sqD&J*8`NTA`|w4$&wK$yq}qEcLhhDie7UB0e`+>n}|A@{1OOLnIF36=>Ns>QEpJKjC_#z<6N>h=C`BC`0?v- z^MHD95cJgv4HDcMw?1u^$WV++O!%CeS9x;eb(oV4ys=gR)AQ%iJ?#uwM8n9I8MlmKlMs0>!IjN0;>63U+=FGr^hcg}4SN5IQimH5nVQ|ir`9KH&?Z?tV5kc>`xeF|P>}{z3p~)1CUz(9M_&^M0fk4RFIQ4GrJ}R06Dm@De$MMHLPB2-@ z#g({GeAkbD|NiYQZmC1|@YuMz`=7=E5NP(#)Bu_|hiOM{QqqosS}ZCou)KzkFpXnX@ORgL%{r~~dxbz<=geW4e>6+qzMUCaS4Rw&em<-^ixJjB?k z6Z7;uw`sX-F*{%<+dDgvGPM2_6WdS_d!T}llaY~e;Vr-_KZ=k@0143~;C#_?SYFgr z{=WsB#Yq~hAl9^~TDRv83AqbCixKbus%oEqKw4JqxFkk}CKejS`%;cMm-LeUQ;f(*JotBW8`sIK*Dozb}ph*23n!TxY=r3SxPN)sX0Z%pRn_R zyI^K&3dE(L8M$!bsWl8YfHu^Se8vA=>t1liszn>wfD4h4kwX9ysuRL>S zcb-AsN?lD&Vir;C9*CK;t09f(CT3=N;o%MXy55(~_s2U!?AM3JD{W`$y=#DX%25$f z2kswQBXBUq9_MyU&}i^dqhJgm4Y^OM+Tq#Fg6#jSVn!rTq(l$}6GsGvfH{j6=bl5a z#;7g7!k=Szi~5kSCM>>xh^0ju-ez1-$WT;?OCUbo8MQ2zajN|KwZ-6Nh}j!}s4D6J zxmgCUF)fJ z)ftHcukUrXP~G{Im06+gWnzshr~nvXXtUMuDW3Uo_iss!JbG#Zw)^EgrV{rFPVr-K z!Swhk`N_@Z&xsMj+db{q~n|3spm_o<(ZTFwz zT|RG4dSYEQ=OGr^cEerz%zPDNhP(Io!axS6h>x~~{Eco1-knUr?Lq6G!r}9V%Zr=q z*}5t*v2SrbQDppX7b|kX?A}i*k$-$wimiSl@wKLgdg^0^GX~JS6SdSx??&8eZT6W% zp^A0QXQ_kS_C|tePgV#Jd1tN;&Q%|deKjq}a`5?BZu*O??C>0mkC)MyJtk`y4@xjp zpwSh5lye^pKxqjF)>&R{ZH#hpGpUytm+IW?0st=g6jRGoFkB0g7v`&;B64zzO?l{3Tc@HvFAcg$R+*iUN#<-v+NU%VQgO&3>cD=<@e8?yX+=qI^3F6zO_>qV%Cy}Z z`6Z87nP8emtwJlqX@)bV{b$3vEl{34nAl~TeEL-cBku+B+Zqw8Tz5&>%z>@OCK8rlOp-Vgls($hlKCod@%We!_?kNh5wNwjb+E9otE&2>!EL{L zZB3!3TCcBX`XAOrZI7>P^5N?shlOGVPpgrn)drqxbWd%T>p`_Ak4c*QD8uEZk(w-x zbI3oy-8o8bMk*EjSqr;Q*Q;c}HnG1$_vCo<`~jbg^yj=>CIGn3=mS~BKis+u$@rd+ zQ+vb%XY|SR!u{x=kU+Vj)fQ*`qN*=-_jPr31_v$XpY?Qym}^xB7IoN#{%rgDyAt`8 zJT{QdS_i{4og(QCAR8Zz|0Wah;9;L*Vj6tr?*q6yjce$SzF80?@t3*(c)Q=B=#;lR z(yNfbi8Y2)psfAM6~Bl_vS`-7kg4zoh^OA7v&vg7xW_^#-&PF0tz+%q`Xb@Lt|jwU zGK6w;aGgt`5Qt#H<+_Jl8N;(eIvL`-j5)6N8sSoJh1chbTV633GJlG$0*6%F?7#X# zJ&r2!x%)0z5Ujo@{C%(z?Ui;e3c?!^VAg;=hX`l>z2*eqXVIWj`?oL@#ZOEa1PJBv z6oFAje_6MGm@;@Y2eATpb$HBl7vsZI*}E(Liu4BlgC)C*(cEDf6cpyv|i^< zek0|N4uK*T#e}vC?+Kpxn(d(T!0p6$T1vPFzHvsYq->pqB zI%WO3bgWgmMuaBT!SuCA`^|giS)}Mu<wH_U;Hy(`o(CZhpP_Ws~++uw4&7qeKu-4BSYFOVb81wrtu z2uTu4x7R03m4qPrCNGoZaR#rI0>&QbkH~p;dY5~cVCp)KZ@sP->DBeR2GWy~3}vQT zJ@RU@?vjG^Eszu(`mSIar^3dkj>Kv$ir%TJx1R)V$gt^`qxqM&JF`j|GujxO>{evG z^?``c51Cx1`_5WY>2AL9Hn{Y&3H@CDotQq469tpOBA~9i(?WYThb6U)r=@F1mVi+?eeg~?R8r? zfgUs7%p-Ckr}G2)s;avZo1?`gg4#{DF>68SDvH9J%{LaR-?h))Ty8DA&(#nlp0fC( z7Tu~f)QJDf#;xaMVCoUF7M~Wo%+&2E?liH68{=QehfRi_?t>%nHUVQQhmp6msO#^Y zT*HHAhBe?8uVr-nu&W1M^YsbxO!up5AOI(8W+Qm;a%Nm=s;-{SRb6iGA`!FR<0sb^ z>f?Ft?*AwwbfWv9&`eXlrjX}%w6MdP@|i@Y-%9T^v}GODSY#}Fd_5d=LLn9b70n=AhmY5dIN`fsH!qpyn3p$T#9>Z-bD3*n;4Tp;@> z*V0u~q)6;ZgNFKDoL8y^Q+7mBLioa>CeNc*g0ZUL7}a+vc2{|cgLm;{ZomG_)d7$V@eucu7>A4 zzvAMqjxm_c%coufmRFmTF@%$a~o)X2FcE(g{ZzFz~e>Z%CuZh9>ax zt!T=^X|C>aDW-maJiN=b0GZ5x$+f;sd{5;C z#VIG{+zx~cVB4@UG0(i}e;x&~rCk5?mE;V{>wH1_UpAEz2V#A_~5d z1E&D;wiC$nP>`b=3^Uq%HCVJABVG6TQF~@I+{C0fx0HZNaBsFMKkr z{3uW>?dIxTcL4#LdXCCqAz&CmMFWeF_T9`Z)RD+%s?41PFG5~cI(f-@Dw8TRj90hq z3g1MJX>e;vao1i?S6r8HaINnKk1hvm$og}Ll;)f4JYfiJiY$%jC`L4HM-;i_(W`^| z82!KbmrMF+&L__gG{JXzYQVc97b5N}0(c+5Yyf!QC(lL;HLzTd8^(HNYeJqg(@Iv` zL!qBT;s{L;#vj{EX_iMw*d1_5T4<}-W~pVv%2LO=7o`!}72y-XZ z&$K2SraeEEruxJx!JCHL-FHfx@mY-WE6$l3lM!3gMH31TIYIW_#|&CQJe;hiZoWn-GnWuhdEfguMWB7ZqWnct$Bjci zk%7&tqXjpTv)3!w6f+My941a7W2mHh2LX#V@SO*D!o`ogMii#}(s>w=OZ2Ts2#iyG z*|;x-0j~{Vd;K^KphNj)4>(JyUOl*-qIO-1?s~&$_5c>;}UEEyXs-0`4h)v1$W8cF4fgEpd)D;8gD&aVK#7> zL#9M(kp7`@!)p_PRab1#bABOvSYd_cV8lstGxjBoREkUeWZ$rF|A6N0M&2#W=vz&^ zt=K^=4m*KHx}qzpnO)!8%XQ7ui6Hc=2<`hTC64W!D*T_l9k-{-Ridb&6SQxOcxOHQ zMh%nJQq$7N>V!Cp=U=4DrllZ=WS$#O#=38Kem%|3&Q=yk&;T!@`Mu#7lGn~k(4X#o zGCA?#WtuXL?pedl^zV{uTPC#;-@^(^r@;%Il*x~g=w|f{-91y4cKW#}_#9iY^l??- zt#XTdUAYzbQ#@)7JsX?58zw%*i?b$u2no4g`9bQ_ZG!?X(z^q$Zo4C$f>~XCm5OJ0 zi$R2+)vQz8&P;M8@i6{*AK4?*E_3-bf}*1R&N1IhYfij#B^oLaR*%WLFDD8q(uaYju5c7$9#9;g~E4q$iax|!g76T2l z>1l`Pj_ztrK`zf?OP$CviYQ!-jaIr+zPwO&U*$(5VMF5Lf9--OReC2)vZ zFi9sZ{-duSL7hUH*XFb+mxqGujCA7!fk{LySS|@FeNo&q*a$7Ep2(-vL%9JD(=@mA zUNklZuc-91wBB+RY1UBSn*%X7}8lltd9_QoVcqBbf0H;rQZwY@Mmt>v1DrS#LT&Z2!|JWf(#_Y~N`-fiN^RyFZU}&C8kJt4C z9Z$94`etr$p#HK67w?In(}mp$KHlK2Pt|Q7{UQAb$IXH|EDq3q(J^wZW#QO)o8b(q zKcQ{7Y*IX)&Td%cK4>X*KI>h-2=8&_YglK?zBS$T!m-9M3OKi&a|`X)s}d0_J1htn z`qCia5*f1AjYAK^P2H&`baoSC-&>R(8-gkLzHKVNM&|vo5wzYiz-9oY0uDI^U^e_7yL`+zeUUNpuY{-#V>$ znwfg3ADOBB;$d;{K*~<_@r|~N^G;uELsjY77M5q%+zjuG%L;X7hO$|h-tDM%aA=6$ z#opL@p>{@42dm4fHW3hS-s|v6*C4lN(W(%%W z++1|tbf=EG7~$;toHkCVyE5H=U+k_bjj*fp26wn@`1yQhjUL8T=X{1m>9N_umR(~T z;q5{@MRu=Xw33X1pzT4O-arbFIri1#es?c2oT|E|{fpmZ=^dMgZh<_oKUn0TI5>i9 zLl1ifUkRod{%7r$czA=6Q`atHb-riUshLDae4#NOm2DlOuz_l@!lqD$nAO-wd>1ko;rZVQtuF*yEczcYs*sS_; zIaN^`v%KCh&tnmasUN?tKD4I6WMw8*nQ>qq^4dBMjDSRG(n+) zsb}+96N%^%GRsL;Y6vu8*WiBoa{FZcocT@=qvbPp-wAHL7W!$=vb@lTk!RR0*8~My z*2G;HQRY=67grJDQw3*C!< zUIgyhsKo-ADQB*g#fYsIYn4x9aPxU$VSizTGmRjYs$Y^GpQS>z*eA zffPk%(mHK1w#BY%b^os$uDO|81ibUqU)m=Jg&R0QwqhL9q_UdBgZjU^c72M9&@x-h zn%S8>t|cRMQ5dqZNqNM9UfzE)3pv)R*S0XES82HRSpzXyo%dOL%<4eel&{*9(@%XV z^U1KrT~DnUwGxGg@!RHJn>IZ;IQQgrndqkXZBZb>bo4ubJKUPTL*guu4Kp-G%!;aA8ILS2rEAsLp07bu}!z%`CSD& zNXORTJ{e6V5m28D-hUa^4gGWJ__e8!!eg8RAz_)P9L_jUCt+vv?BOn#uQvz<_wSufP5_GZr`KY0!5q$n2K zz4*;PQquF>%E(Mt{4H2MTW{K@Up22|suWC}>o6ee6bZxm0P90x`mY_s(Sr_;99&^k70Lz)#QP0GPa8-p_igMKBoZF*JWWp185eZlU|ViK*xJ&#KnNj% zKTRaF(8FxEeD#5VXcZ5uxLkkrm82*mAZD81#0+j}a`=sojE0L1|Ah>1Bw-Bn>U#ol zJ+E)hh~4?wqO!p`8VZiIBT_e+T@Q;oOiPm(&3tir0Kkoa1i}#LjSpd!85ykc**qnS zn%x(0XW)0NGS$6al-q*E|EQ_)oRkNLE68WRbqNJjP8tkg;D0KB0@a8Fz{Rw*GM~`q zKbfFKpeSv1{;Ya~V|;MT7Da|zJQCPzblsZ z?PD}Z0Q||441;-!&!r^vx}kJ8!=Tk0Cv779vB|t#3-DuE2JSuCIQF0fEk+hhWWOSX zd%_Z-)E<-MBh}U4UHy za}l9Y5DoH}sy%mHdu;K=xrKv6@v98f(RRynP+>}v;9h@0Q|>Ndk=Sh=8Ik0io>*D}bQoSJNVp_$(RpDMI{P0w)RBk_ z+)R;mO~miuizPKO$hYI1*5Gr!e&JE6qvx~tNAmi*a`8HmiIcRW>nf>l#g7_nyoWmX z3HMr9j^`6xkTO7`H8aD(%@1QY$LTjWvqQ=7+_7V$gYPA0cSl3Nh zQlBZ5e(VeV_mgtrCHS(nhcbEidLCPzhcj1)kl_nZ0Nf%IrMS)ZWExraa2IGC0}6>= z!Q5#$8Zv$JaWU4Vj$P?wE6RdeYt$87EDeR#wTtKcKRb*h}cD+)Vp5Og0pfZbkthL2f z^YdGI`KUR22{p7P)w|IQr&Zz98qJEdh}W~1ObX*(j^FZ-Ivo?hY!O!CTeg)`{ORj^ zFhQ%%Bs%Ber~0fqw~|8WmPA$6m*4lMzGLyggFGtIL+JX*;LRID!wjXI2e+S#6n21W z7<2&w0)Tv;#0P`Pqn2$bLqZauN6fL}u2;?5(v4A|){};%aFLi-Qsuh7bF) z)0E%^)aox^gaKMuD-h_!M1E=MusOTL&x|h-ZG}ed{lV5B0V9Le@*=8a-tfUtgGr7u}o;C(MA3(Loir;vOLfI#|J#N@xIP>7y}6X*5_;A2TmRuYIj zdrV47`smT#xmOMuDnyK`oh^m-`}Z3K*VB0-y@^lh4S-|&EE0`^?!T5VKdac+%y@fy zLu;<9R@3O2nH7%hAqJ0&Rq7VyvkPFbgT{C1zBlKocP;K;roc2V{*1@MF>nXfHD9N= z5c8uI;$Gdsk&zLzbZ^sgt&a9~&?kqW(r)Cs{$A(zy}lSeK4!{12tX0KSc;_)dCttJ z`usuYBk~T1p4mXg15=st1t2qUu{CCWomiyZ9D3>+(`D>WfuviUl|?;;ApEL`ZerQ- zMZ7enBi89jR4?*_4upuukV&g^d$g|A*08s7BO`k9uBsHMs^hii`k zCY3(ZX@DbuQ?>)regRSlDrGhNy{?unj=L`|EHWjpY#$9lZ_bdwVghfRO;W zX?pZF>U{RH>1{y7A_jiQM9k;U#FPu%kp+~f{(7)gIIKn_Ws#cl{|kZo=DM2VSx7wn zz~L2c&k86gv-X)vUbMjr%87!svP6W0fECF5^2D&>F@=pdQQiIX^SK|n7mMeIrvhY& z{@Ha^QH?Jv=#Sq4g;`VXCauk|bhw z$u4rJB6kWOeeeTKuv^-yXRvN4sr!-&-Dth{CEz{POpf zYK7|h0caQmlqEeW#<9!E`|)E~RVqOqd%teD+=WoJ`g}M`rzHTVf?qr1+hDS2tQcEM zp$#FS%XIMhtl_O`9du|+l_9RZaDMh_L(UeJHgLE*Gd1b%D@pkbIypGe2$_N{ntx%3 zLVRY14;PdbY$i)g!0Un2(j2Q&IR3cL&fA-_e}RuJlq?b%Cb0MKfM^A<7slnCzTw68B>$*d_GhXwGfPet>o#c<7L&lg$AA|5nDz`U8FRm5>DY7({ zfWwUPiCJc=P$>fcs_aAjCKw6oYM|TT20HL)yaJSPRdAj@Bun2D&N=R0>fs7BSn@Xu z@A#ZSVD%Svpy)3N-L3G{ zz4>6Y7@JR;E-O!^?bBB--icp}zS|qbvszsxnMK{!sq5#A>vF_2`z0bor^U;6>UW(< zpVPlNDEyuCRaXTCg$@CGCkO;F@wJ$U%IVROEdN!Bu*3nwk}a-Y`X2)GLy6He0hE^m zn9($uk+WS-)6#{hlj{NUO%S|VQ&ZDSjVtUz`}^wh^7eEk^XOLyB&0u#Hbs+g%dsj> zni{Vv$n#Rt6ftbkul<7+@H1421p@H)T(Yu~wmLBAFK}C->KEPHiRb05<%u>qnt)2`$onqa4(Up&?m>|qDnXw z({=OohNd`Je?|3q7sqd_?5XNTQ|M3_+LLSqn2$fjZ(tf`>pa0Ja#_tTDGvSuL&kr3#O=*KYf)6+7HgZAp@gz#|wN13? zuo&FL>)yY|t;CvysR||sh^0@q2>|81ZJOhxY3$XO*Li;akKyI{mxrujVPRv<#Q@PS z8yB6YX!>1OEN<18cNu`+@m>J8cg{6i7Moh);uKe*I+~yuV#*F$o&0lrThgr|>UiQdvUx8j$63yWgEy3 z+yux&)V4kn*lTjyJXl?BitejF&vc>in00)X8_a4kYxYxuF1wD`p#HuH5JWMoD1}nyIBWoa=sXV zR!d5TFslu`#n!t00RmAnNLus0IiH!d9p@$Ac~F*{f7owYL%uy(N;`@O4yp(TNqKE; zZH$dJm%=TN%pR4QaJ2b9_3vue4n%uh#aC_Oo+n#f1Dg7vo%U{u3mnDW{}5>6%JLTI zzm2{Hclw%8zvGvfs7Nq=MQ6%)T0+ZAdYN=Dim8cpp+IGcp!)bHXHB`p*7 zu?7Np@xbB;fAHwYSwUf-wIzq)aaU<{O;YPWn`$^KNq|X(J`9fO_ls{Kf{*X~6DTa0rKPPv8l_D-~eWWRAW@z7Lfp0@zi_41@zB2ItKiAjHG5`Po diff --git a/beta/mvnw b/beta/mvnw deleted file mode 100644 index 66df285..0000000 --- a/beta/mvnw +++ /dev/null @@ -1,308 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.2.0 -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "$(uname)" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME - else - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=$(java-config --jre-home) - fi -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=$(which readlink) - if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" - else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" - fi - javaHome="$(dirname "\"$javaExecutable\"")" - javaHome=$(expr "$javaHome" : '\(.*\)/bin') - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) - fi - # end of workaround - done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - # Remove \r in case we run on Windows within Git Bash - # and check out the repository with auto CRLF management - # enabled. Otherwise, we may read lines that are delimited with - # \r\n and produce $'-Xarg\r' rather than -Xarg due to word - # splitting rules. - tr -s '\r\n' ' ' < "$1" - fi -} - -log() { - if [ "$MVNW_VERBOSE" = true ]; then - printf '%s\n' "$1" - fi -} - -BASE_DIR=$(find_maven_basedir "$(dirname "$0")") -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR -log "$MAVEN_PROJECTBASEDIR" - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" -if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" -else - log "Couldn't find $wrapperJarPath, downloading it ..." - - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -# If specified, validate the SHA-256 sum of the Maven wrapper jar file -wrapperSha256Sum="" -while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; - esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" -if [ -n "$wrapperSha256Sum" ]; then - wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." - exit 1 - fi - if [ $wrapperSha256Result = false ]; then - echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 - echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 - echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 - exit 1 - fi -fi - -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -# shellcheck disable=SC2086 # safe args -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/beta/mvnw.cmd b/beta/mvnw.cmd deleted file mode 100644 index 95ba6f5..0000000 --- a/beta/mvnw.cmd +++ /dev/null @@ -1,205 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/beta/pom.xml b/beta/pom.xml deleted file mode 100644 index 6e6c08f..0000000 --- a/beta/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.1.4 - - - com.mobeats - demo - 0.0.1-SNAPSHOT - demo - demo proyect for a control stock - - 17 - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.boot - spring-boot-starter-web - - - javax.validation - validation-api - 2.0.1.Final - - - - org.springframework.boot - spring-boot-starter-validation - - - - org.hibernate - hibernate-core - 5.5.7.Final - - - - - org.hibernate - hibernate-entitymanager - 5.5.7.Final - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/beta/src/main/java/com/mobeats/Application.java b/beta/src/main/java/com/mobeats/Application.java deleted file mode 100644 index 8e157c7..0000000 --- a/beta/src/main/java/com/mobeats/Application.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.mobeats; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class Application { - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } -} diff --git a/beta/src/main/java/com/mobeats/controller/ProductoController.java b/beta/src/main/java/com/mobeats/controller/ProductoController.java deleted file mode 100644 index 01926a5..0000000 --- a/beta/src/main/java/com/mobeats/controller/ProductoController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.mobeats.controller; -import com.mobeats.model.Producto; -import com.mobeats.repository.ProductoRepository; -import com.mobeats.exception.ResourceNotFoundException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * The type User controller. - * - * @author Givantha Kalansuriya - */ -@RestController -@RequestMapping("/api/v1") -public class ProductoController { - - @Autowired - private ProductoRepository productoRepository; - - /** - * Get all users list. - * - * @return the list - */ - @GetMapping("/users") - public List getAllUsers() { - return productoRepository.findAll(); - } - - /** - * Gets users by id. - * - * @param productoId the user id - * @return the users by id - * @throws ResourceNotFoundException the resource not found exception - */ - @GetMapping("/productos/{id}") - public ResponseEntity getUsersById(@PathVariable(value = "id") Long productoId) - throws ResourceNotFoundException { - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("User not found on :: " + productoId)); - return ResponseEntity.ok().body(producto); - } - - /** - * Create user user. - * - * @param producto the user - * @return the user - */ - @PostMapping("/productos") - public Producto createUser(@Valid @RequestBody Producto producto) { - return productoRepository.save(producto); - } - - /** - * Update user response entity. - * - * @param productoId the user id - * @param productoDetails the user details - * @return the response entity - * @throws ResourceNotFoundException the resource not found exception - */ - @PutMapping("/productos/{id}") - public ResponseEntity updateUser( - @PathVariable(value = "id") Long productoId, @Valid @RequestBody Producto productoDetails) - throws ResourceNotFoundException { - - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + productoId)); - - producto.setDescription(productoDetails.getDescription()); - producto.setName(productoDetails.getName()); - producto.setUpdatedAt(new Date()); - final Producto updatedUser = productoRepository.save(producto); - return ResponseEntity.ok(updatedUser); - } - - /** - * Delete user map. - * - * @param productoId the user id - * @return the map - * @throws Exception the exception - */ - @DeleteMapping("/productos/{id}") - public Map deleteUser(@PathVariable(value = "id") Long productoId) throws Exception { - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("Product not found on :: " + productoId)); - - productoRepository.delete(producto); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return response; - } -} \ No newline at end of file diff --git a/beta/src/main/java/com/mobeats/exception/ResourceNotFoundException.java b/beta/src/main/java/com/mobeats/exception/ResourceNotFoundException.java deleted file mode 100644 index 3ab0e34..0000000 --- a/beta/src/main/java/com/mobeats/exception/ResourceNotFoundException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mobeats.exception; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -/** - * The type Resource not found exception. - * - * @author Givantha Kalansuriya - */ -@ResponseStatus(value = HttpStatus.NOT_FOUND) -public class ResourceNotFoundException extends Exception { - - /** - * Instantiates a new Resource not found exception. - * - * @param message the message - */ - public ResourceNotFoundException(String message) { - super(message); - } -} \ No newline at end of file diff --git a/beta/src/main/java/com/mobeats/model/Producto.java b/beta/src/main/java/com/mobeats/model/Producto.java deleted file mode 100644 index 8828733..0000000 --- a/beta/src/main/java/com/mobeats/model/Producto.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.mobeats.model; - -import org.hibernate.annotations.UpdateTimestamp; -import org.springframework.data.annotation.LastModifiedBy; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.util.Date; - -@Entity -@Table(name = "productos") -@EntityListeners(AuditingEntityListener.class) -public class Producto { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; - - @Column(name = "name", nullable = false) - private String name; - - @Column(name = "description", nullable = false) - private String description; - - @UpdateTimestamp - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "updated_at", nullable = false) - private Date updatedAt; - - @Column(name = "updated_by", nullable = false) - @LastModifiedBy - private String updatedBy; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Date getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Date updatedAt) { - this.updatedAt = updatedAt; - } - - public String getUpdatedBy() { - return updatedBy; - } - - public void setUpdatedBy(String updatedBy) { - this.updatedBy = updatedBy; - } - - @Override - public String toString() { - return "Producto{" + - "id=" + id + - ", name='" + name + '\'' + - ", description='" + description + '\'' + - ", updatedAt=" + updatedAt + - ", updatedBy='" + updatedBy + '\'' + - '}'; - } -} diff --git a/beta/src/main/java/com/mobeats/repository/ProductoRepository.java b/beta/src/main/java/com/mobeats/repository/ProductoRepository.java deleted file mode 100644 index 4eb58ed..0000000 --- a/beta/src/main/java/com/mobeats/repository/ProductoRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.mobeats.repository; - -import com.mobeats.model.Producto; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - - -@Repository -public interface ProductoRepository extends JpaRepository {} \ No newline at end of file diff --git a/beta/src/main/java/com/mobeats/service/ProductoService.java b/beta/src/main/java/com/mobeats/service/ProductoService.java deleted file mode 100644 index 5c02996..0000000 --- a/beta/src/main/java/com/mobeats/service/ProductoService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.mobeats.service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mobeats.model.Producto; -import com.mobeats.repository.ProductoRepository; - -@Service -public class ProductoService { - - @Autowired - private ProductoRepository productoRepository; - - public List findAll() { - return productoRepository.findAll(); - } - -} \ No newline at end of file diff --git a/beta/src/main/resources/application.properties b/beta/src/main/resources/application.properties deleted file mode 100644 index 51da45d..0000000 --- a/beta/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -## Database Properties -spring.datasource.url = jdbc:mysql://localhost:3306/control_stock?useSSL=false -spring.datasource.username = root -spring.datasource.password = - - -## Hibernate Properties -# The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect - -# Hibernate ddl auto (create, create-drop, validate, update) -spring.jpa.hibernate.ddl-auto = update diff --git a/beta/src/test/java/com/mobeats/ApplicationTests.java b/beta/src/test/java/com/mobeats/ApplicationTests.java deleted file mode 100644 index 6746bf4..0000000 --- a/beta/src/test/java/com/mobeats/ApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mobeats; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/beta/target/classes/application.properties b/beta/target/classes/application.properties deleted file mode 100644 index 51da45d..0000000 --- a/beta/target/classes/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -## Database Properties -spring.datasource.url = jdbc:mysql://localhost:3306/control_stock?useSSL=false -spring.datasource.username = root -spring.datasource.password = - - -## Hibernate Properties -# The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect - -# Hibernate ddl auto (create, create-drop, validate, update) -spring.jpa.hibernate.ddl-auto = update diff --git a/beta/target/classes/com/mobeats/Application.class b/beta/target/classes/com/mobeats/Application.class deleted file mode 100644 index d6343cb8463387ccc1adde7bf50fdf972041bb48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 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 diff --git a/beta/target/classes/com/mobeats/controller/UserController.class b/beta/target/classes/com/mobeats/controller/UserController.class deleted file mode 100644 index 5f73174c5f5602ced24f3469cfe150848f153ef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5863 zcmeHL+fv&`82;CR7z=XA`oCC*l9dFNiQhUbhiqUX{XzAb}2EA#{5?d=9mlOM|9xdk`8(AstCN(M)k z(-E*1BP9<-z#C9|aZY$bEik%JnciVEuq+$ANF$8Kx(==cfeeOdj1~WS>IFQM?g4L@ zh}9Qv?1JeB5VW7fENtS(dTkk_)rw8t-I z4jflBT5hG8+2o<>)*?lvsif(c>d5CtX_NmHVg9<~`$%oZWF5F4)m%}JrOn=|o6RUx zI^qW36&~^@JX5I9l!uYBH2h_d*54mmU zB0!)W!+TsUx~}#Waub#5mib5t*Rn;ZFr~C5_B=;L0gO(bm@pU9quB*ayw+w$Yu-T$ zH!9oR-4c@rK@TE6L?1HxIR}~P%4YP}ewL6?8R?00vvjo9V01lM9b4+!*u7{)WJYJN z3yXA96UNi_LPj5FDoo_}=F9o5I+|lD9`umVQ9FtF*&&){%ax;5zYMq;l9oQih5 zrQm4Y7mZ`dNDG+ndhPR_iSGYVUDo(m6*)8}a7Q?P`;q6rX6V zL-aMHzx$fR^PC|g@^K<-Bd>Cz_Z%a!7vMnNy_{1M&8loyJ8TVDoo9tRdD7gGd3CX~ z*WmvQFFwa+q%rsE>aVh1fTj3|4jSLWJmks|uI`zwMcwL|QzzhO9b(AGs5f+cU`o+zX#!UY;G0vQ!(kS<~@;!Tf37>gK7WZ-`oZ(m?0!)W|QDoVs0tOXd=F|RFiuR=}?f2=Mlsr9%qq$UQ=jmij8VIe7&81k~JjH6M5NB*5 zj_X_cE@64GU7_Wy3azBrdwz<&c7-m`BUmiZW4eY><8KY)5BM2C#|`?P*6GQA|7aSx diff --git a/beta/target/classes/com/mobeats/exception/ResourceNotFoundException.class b/beta/target/classes/com/mobeats/exception/ResourceNotFoundException.class deleted file mode 100644 index 054fa26f5ad9f2ad658dd34c2f4a961a1c8e29a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 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 diff --git a/beta/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/beta/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/beta/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/beta/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 739ad22..0000000 --- a/beta/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,17 +0,0 @@ -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/repository/UserRepository.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/ResourceNotFoundException.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/model/User.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/repository/UserRepository.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/ResourceNotFoundException.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/Application.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/service/UserService.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/GlobalExceptionHandler.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/GlobalExceptionHandler.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/exception/ErrorResponse.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/service/UserService.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/controller/UserController.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/exception/ErrorResponse.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/control_stock/Application.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/model/User.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/controller/MovimientosController.java -/home/pc-1/Documentos/beta/src/main/java/com/mobeats/beta/controller/UserController.java diff --git a/beta/target/test-classes/com/mobeats/ApplicationTests.class b/beta/target/test-classes/com/mobeats/ApplicationTests.class deleted file mode 100644 index 265a8d2f4a529df77e763ea06d91d3e4748560bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmaKo%Sr<=6o&syYe(B^Yt@BN#HAN7yKcNd6NQn-Q-^E_3FaLVYhEL;(y&d{BUC&5#p zXZ$vv%fvA>&XiW}f}wVBIAN$?nW=1|hP5_U&|v69O3Rxvi=`clIF$^&$Rr}22&;U) zDAwJBDj4>n|7JL4XeUNH`QjoYrljA!E45RZoTx$(Y^b$y)y&lEN5;|~)76|CkAt(1~0fN!%obJG9- From c3fcf4fed8cbd53fa5df0e7709c87bcd032ffe16 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Wed, 18 Oct 2023 10:08:59 -0300 Subject: [PATCH 03/22] Add files via upload --- .../api/controller/DepositoController.java | 21 --- .../api/controller/MovimientoController.java | 42 ++++++ .../controller/MovimientoTipoController.java | 21 --- .../api/controller/ProductoController.java | 120 +++++------------- .../ProductoDepositoController.java | 46 +++++++ .../exception/ResourceNotFoundException.java | 4 +- .../com/mobeats/api/model/Movimiento.java | 96 ++++++++++++++ .../com/mobeats/api/model/MovimientoTipo.java | 95 +++++++++++--- .../java/com/mobeats/api/model/Producto.java | 7 +- .../mobeats/api/model/ProductoDeposito.java | 116 +++++++++++++++++ .../api/repository/MovimientoRepository.java | 11 ++ .../ProductoDepositoRepository.java | 13 ++ .../api/repository/ProductoRepository.java | 4 +- .../mobeats/api/service/DepositoService.java | 27 +++- .../api/service/MovimientoService.java | 83 ++++++++++++ .../api/service/MovimientoTipoService.java | 36 ++++-- .../api/service/ProductoDepositoService.java | 47 +++++++ .../mobeats/api/service/ProductoService.java | 39 +++++- .../api/controller/DepositoController.class | Bin 5527 -> 4547 bytes .../api/controller/MovimientoController.class | Bin 0 -> 2426 bytes .../controller/MovimientoTipoController.class | Bin 5806 -> 4833 bytes .../api/controller/ProductoController.class | Bin 5797 -> 3024 bytes .../ProductoDepositoController.class | Bin 0 -> 3245 bytes .../exception/ResourceNotFoundException.class | Bin 615 -> 686 bytes .../com/mobeats/api/model/Movimiento.class | Bin 0 -> 3807 bytes .../api/model/MovimientoTipo$SaldoEnum.class | Bin 0 -> 1315 bytes .../mobeats/api/model/MovimientoTipo.class | Bin 2353 -> 2814 bytes .../com/mobeats/api/model/Producto.class | Bin 3289 -> 3323 bytes .../mobeats/api/model/ProductoDeposito.class | Bin 0 -> 3277 bytes .../api/repository/MovimientoRepository.class | Bin 0 -> 443 bytes .../ProductoDepositoRepository.class | Bin 0 -> 662 bytes .../api/repository/ProductoRepository.class | Bin 437 -> 566 bytes .../mobeats/api/service/DepositoService.class | Bin 794 -> 3037 bytes .../api/service/MovimientoService.class | Bin 0 -> 5968 bytes .../api/service/MovimientoTipoService.class | Bin 836 -> 3530 bytes .../api/service/ProductoDepositoService.class | Bin 0 -> 3989 bytes .../mobeats/api/service/ProductoService.class | Bin 794 -> 3722 bytes .../compile/default-compile/inputFiles.lst | 8 ++ 38 files changed, 655 insertions(+), 181 deletions(-) create mode 100644 api/src/main/java/com/mobeats/api/controller/MovimientoController.java create mode 100644 api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java create mode 100644 api/src/main/java/com/mobeats/api/model/Movimiento.java create mode 100644 api/src/main/java/com/mobeats/api/model/ProductoDeposito.java create mode 100644 api/src/main/java/com/mobeats/api/repository/MovimientoRepository.java create mode 100644 api/src/main/java/com/mobeats/api/repository/ProductoDepositoRepository.java create mode 100644 api/src/main/java/com/mobeats/api/service/MovimientoService.java create mode 100644 api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java create mode 100644 api/target/classes/com/mobeats/api/controller/MovimientoController.class create mode 100644 api/target/classes/com/mobeats/api/controller/ProductoDepositoController.class create mode 100644 api/target/classes/com/mobeats/api/model/Movimiento.class create mode 100644 api/target/classes/com/mobeats/api/model/MovimientoTipo$SaldoEnum.class create mode 100644 api/target/classes/com/mobeats/api/model/ProductoDeposito.class create mode 100644 api/target/classes/com/mobeats/api/repository/MovimientoRepository.class create mode 100644 api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class create mode 100644 api/target/classes/com/mobeats/api/service/MovimientoService.class create mode 100644 api/target/classes/com/mobeats/api/service/ProductoDepositoService.class diff --git a/api/src/main/java/com/mobeats/api/controller/DepositoController.java b/api/src/main/java/com/mobeats/api/controller/DepositoController.java index 264163c..1815784 100644 --- a/api/src/main/java/com/mobeats/api/controller/DepositoController.java +++ b/api/src/main/java/com/mobeats/api/controller/DepositoController.java @@ -7,9 +7,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * The type User controller. @@ -84,23 +82,4 @@ public ResponseEntity updateDeposito( return ResponseEntity.ok(updateDeposito); // Cambio de variable a updatedProducto } - /** - * Delete user map. - * - * @param depositoId the user id - * @return the map - * @throws Exception the exception - */ - @DeleteMapping("/depositos/{id}") - public Map deleteProducto(@PathVariable(value = "id") Long depositoId) throws Exception { - Deposito deposito = - depositoRepository - .findById(depositoId) - .orElseThrow(() -> new ResourceNotFoundException("deposito not found on :: " + depositoId)); - - depositoRepository.delete(deposito); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return response; - } } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java new file mode 100644 index 0000000..47cc755 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java @@ -0,0 +1,42 @@ +package com.mobeats.api.controller; + +import com.mobeats.api.model.Movimiento; +import com.mobeats.api.service.MovimientoService; +import com.mobeats.api.exception.ResourceNotFoundException; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * The type User controller. + * + * @author Givantha Kalansuriya + */ +@RestController +@RequestMapping("/api/v1") +public class MovimientoController { + + @Autowired + private MovimientoService movimientoService; + + @GetMapping("/movimientos") + public List getAllMovimientos() { + return movimientoService.getAllMovimientos(); + } + + @GetMapping("/movimientos/{id}") + public ResponseEntity getMovimientoById(@PathVariable(value = "id") Long movimientoId) + throws ResourceNotFoundException { + Movimiento movimiento = movimientoService.getMovimientoById(movimientoId); + return ResponseEntity.ok().body(movimiento); + } + + @PostMapping("/movimientos") + public Movimiento createMovimiento(@Valid @RequestBody Movimiento movimiento) { + return movimientoService.createMovimiento(movimiento); + } +} diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java index d7c5b72..1d85ad5 100644 --- a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java @@ -7,9 +7,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * The type User controller. @@ -85,23 +83,4 @@ public ResponseEntity updateMovimientoTipo( return ResponseEntity.ok(updatedMovimientoTipo); // Cambio de variable a updatedProducto } - /** - * Delete user map. - * - * @param movimientoTipoId the user id - * @return the map - * @throws Exception the exception - */ - @DeleteMapping("/movimiento_tipos/{id}") - public Map deleteMovimientoTipo(@PathVariable(value = "id") Long movimientoTipoId) throws Exception { - MovimientoTipo movimientoTipo = - movimientoTipoRepository - .findById(movimientoTipoId) - .orElseThrow(() -> new ResourceNotFoundException("Product not found on :: " + movimientoTipoId)); - - movimientoTipoRepository.delete(movimientoTipo); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return response; - } } diff --git a/api/src/main/java/com/mobeats/api/controller/ProductoController.java b/api/src/main/java/com/mobeats/api/controller/ProductoController.java index bafbea4..dc289f8 100644 --- a/api/src/main/java/com/mobeats/api/controller/ProductoController.java +++ b/api/src/main/java/com/mobeats/api/controller/ProductoController.java @@ -1,15 +1,14 @@ package com.mobeats.api.controller; import com.mobeats.api.model.Producto; -import com.mobeats.api.repository.ProductoRepository; import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.service.ProductoService; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * The type User controller. @@ -21,90 +20,31 @@ public class ProductoController { @Autowired - private ProductoRepository productoRepository; - - /** - * Get all users list. - * - * @return the list - */ - @GetMapping("/productos") - public List getAllProductos() { - return productoRepository.findAll(); - } - - /** - * Gets users by id. - * - * @param productoId the user id - * @return the users by id - * @throws ResourceNotFoundException the resource not found exception - */ - @GetMapping("/productos/{id}") - public ResponseEntity getProductoById(@PathVariable(value = "id") Long productoId) - throws ResourceNotFoundException { - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("User not found on :: " + productoId)); - return ResponseEntity.ok().body(producto); - } - - /** - * Create user user. - * - * @param producto the user - * @return the user - */ - @PostMapping("/productos") - public Producto createProducto(@Valid @RequestBody Producto producto) { - return productoRepository.save(producto); - } - - /** - * Update user response entity. - * - * @param productoId the user id - * @param productoDetails the user details - * @return the response entity - * @throws ResourceNotFoundException the resource not found exception - */ - @PutMapping("/productos/{id}") -public ResponseEntity updateProducto( - @PathVariable(value = "id") Long productoId, @Valid @RequestBody Producto productoDetails) - throws ResourceNotFoundException { - - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + productoId)); - - producto.setDescription(productoDetails.getDescription()); - producto.setName(productoDetails.getName()); - producto.setPrecio(productoDetails.getPrecio()); - producto.setCantidad(productoDetails.getCantidad()); - producto.setUpdatedBy(productoDetails.getUpdatedBy()); - final Producto updatedProducto = productoRepository.save(producto); // Cambio de variable a updatedProducto - return ResponseEntity.ok(updatedProducto); // Cambio de variable a updatedProducto -} - - /** - * Delete user map. - * - * @param productoId the user id - * @return the map - * @throws Exception the exception - */ - @DeleteMapping("/productos/{id}") - public Map deleteProducto(@PathVariable(value = "id") Long productoId) throws Exception { - Producto producto = - productoRepository - .findById(productoId) - .orElseThrow(() -> new ResourceNotFoundException("Product not found on :: " + productoId)); - - productoRepository.delete(producto); - Map response = new HashMap<>(); - response.put("deleted", Boolean.TRUE); - return response; - } -} + private ProductoService productoService; + + @GetMapping("/productos") + public List getAllProductos() { + return productoService.getAllProductos(); + } + + @GetMapping("/productos/{id}") + public ResponseEntity getProductoById(@PathVariable(value = "id") Long productoId) + throws ResourceNotFoundException { + Producto producto = productoService.getProductoById(productoId); + return ResponseEntity.ok().body(producto); + } + + @PostMapping("/productos") + public Producto createProducto(@Valid @RequestBody Producto producto) { + return productoService.createProducto(producto); + } + + @PutMapping("/productos/{id}") + public ResponseEntity updateProducto( + @PathVariable(value = "id") Long productoId, + @Valid @RequestBody Producto productoDetails) + throws ResourceNotFoundException { + Producto updatedProducto = productoService.updateProducto(productoId, productoDetails); + return ResponseEntity.ok(updatedProducto); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java b/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java new file mode 100644 index 0000000..5274951 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java @@ -0,0 +1,46 @@ +package com.mobeats.api.controller; + +import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.model.ProductoDeposito; +import com.mobeats.api.service.ProductoDepositoService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RequestMapping("/api/v1") +public class ProductoDepositoController { + + @Autowired + private ProductoDepositoService productoDepositoService; + + @GetMapping("/productos_depositos") + public List getAllProductosDepositos() { + return productoDepositoService.getAllProductosDepositos(); + } + + @GetMapping("/productos_depositos/{id}") + public ResponseEntity getProductoDepositoById(@PathVariable(value = "id") Long productoDepositoId) + throws ResourceNotFoundException { + ProductoDeposito productoDeposito = productoDepositoService.getProductoDepositoById(productoDepositoId); + return ResponseEntity.ok().body(productoDeposito); + } + + @PostMapping("/productos_depositos") + public ProductoDeposito createProductoDeposito(@Valid @RequestBody ProductoDeposito productoDeposito) { + return productoDepositoService.createProductoDeposito(productoDeposito); + } + + @PutMapping("/productos_depositos/{id}") + public ResponseEntity updateProductoDeposito( + @PathVariable(value = "id") Long productoDepositoId, + @Valid @RequestBody ProductoDeposito productoDepositoDetails) + throws ResourceNotFoundException { + ProductoDeposito updatedProductoDeposito = productoDepositoService.updateProductoDeposito(productoDepositoId, productoDepositoDetails); + return ResponseEntity.ok(updatedProductoDeposito); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java b/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java index ce2df9a..d976499 100644 --- a/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java +++ b/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java @@ -9,8 +9,8 @@ * @author Givantha Kalansuriya */ @ResponseStatus(value = HttpStatus.NOT_FOUND) -public class ResourceNotFoundException extends Exception { - +public class ResourceNotFoundException extends RuntimeException{ + private static final long serialVersionUID = 1L; /** * Instantiates a new Resource not found exception. * diff --git a/api/src/main/java/com/mobeats/api/model/Movimiento.java b/api/src/main/java/com/mobeats/api/model/Movimiento.java new file mode 100644 index 0000000..8c73912 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/model/Movimiento.java @@ -0,0 +1,96 @@ +package com.mobeats.api.model; + +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import jakarta.persistence.*; + +import java.util.Date; + +@Entity +@Table(name = "movimientos") +@EntityListeners(AuditingEntityListener.class) +public class Movimiento { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "cantidad", nullable = false) + private Long cantidad; + + @ManyToOne + @JoinColumn(name = "id_producto", referencedColumnName = "id") + private Producto producto; + + @ManyToOne + @JoinColumn(name = "id_movimiento_tipo", referencedColumnName = "id") + private MovimientoTipo movimientoTipo; + + @ManyToOne + @JoinColumn(name = "id_deposito", referencedColumnName = "id") + private Deposito deposito; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "fecha", nullable = false, updatable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") + private Date fecha = new Date(); + +public long getId() { + return id; +} + +public void setId(long id) { + this.id = id; +} + +public Long getCantidad() { + return cantidad; +} + +public void setCantidad(Long cantidad) { + this.cantidad = cantidad; +} + +public Producto getProducto() { + return producto; +} + +public void setProducto(Producto producto) { + this.producto = producto; +} + +public MovimientoTipo getMovimientoTipo() { + return movimientoTipo; +} + +public void setMovimientoTipo(MovimientoTipo movimientoTipo) { + this.movimientoTipo = movimientoTipo; +} + +public Deposito getDeposito() { + return deposito; +} + +public void setDeposito(Deposito deposito) { + this.deposito = deposito; +} + +public Date getFecha() { + return fecha; +} + +public void setFecha(Date fecha) { + this.fecha = fecha; +} + + @Override + public String toString() { + return "Movimiento{" + + "id=" + id + + ", cantidad=" + cantidad + + ", producto=" + producto + + ", movimientoTipo=" + movimientoTipo + + ", deposito=" + deposito + + ", fecha=" + fecha + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java index 61c1810..94f587d 100644 --- a/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java +++ b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java @@ -5,53 +5,106 @@ import jakarta.persistence.*; @Entity -@Table(name = "movimientos_tipo") +@Table(name = "movimientos_tipos") @EntityListeners(AuditingEntityListener.class) -public class MovimientoTipo{ +public class MovimientoTipo { - @Id // Anotación para marcar un campo como clave primaria - @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria - @Column(name = "id") // Nombre de la columna en la base de datos - private Long id; // Campo de identificación + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; @Column(name = "nombre", nullable = false) - private String name; + private String nombre; @Column(name = "descripcion", nullable = false) - private String description; + private String descripcion; + @Column(name = "saldo", nullable = false) + @Enumerated(EnumType.STRING) + private SaldoEnum saldo; + public enum SaldoEnum { + ACREEDOR, + DEUDOR + } - public long getId() { + /** + * Gets id. + * + * @return the id + */ + public long getId() { return id; } - public void setId(long id) { + /** + * Sets id. + * + * @param id the id + */ + public void setId(long id) { this.id = id; } - public String getName() { - return name; + /** + * Gets nombre + * + * @return the nombre + */ + public String getName() { + return nombre; + } + + /** + * Sets nombre. + * + * @param nombre the nombre + */ + public void setName(String nombre) { + this.nombre = nombre; } - public void setName(String name) { - this.name = name; + /** + * Gets descripcion. + * + * @return the descripcion + */ + public String getDescription() { + return descripcion; } - public String getDescription() { - return description; + /** + * Sets descripcion. + * + * @param descripcion the descripcion + */ + public void setDescription(String descripcion) { + this.descripcion = descripcion; + } + /** + * Gets saldo. + * + * @return the saldo + */ + public SaldoEnum getSaldo() { + return saldo; } - public void setDescription(String description) { - this.description = description; + /** + * Sets saldo. + * + * @param saldo the saldo + */ + public void setSaldo(SaldoEnum saldo) { + this.saldo = saldo; } - @Override public String toString() { return "MovimientoTipo{" + "id=" + id + - ", name='" + name + '\'' + - ", description='" + description + '\'' + + ", nombre='" + nombre + '\'' + + ", descripcion='" + descripcion + '\'' + + ", saldo='" + saldo + '\'' + '}'; } } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Producto.java b/api/src/main/java/com/mobeats/api/model/Producto.java index 2ea6ce0..92f8f96 100644 --- a/api/src/main/java/com/mobeats/api/model/Producto.java +++ b/api/src/main/java/com/mobeats/api/model/Producto.java @@ -12,9 +12,10 @@ @EntityListeners(AuditingEntityListener.class) public class Producto { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; + @Id // Anotación para marcar un campo como clave primaria + @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria + @Column(name = "id") // Nombre de la columna en la base de datos + private Long id; // Campo de identificación @Column(name = "nombre", nullable = false) private String name; diff --git a/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java b/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java new file mode 100644 index 0000000..1a1da20 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java @@ -0,0 +1,116 @@ +package com.mobeats.api.model; + +import org.hibernate.annotations.UpdateTimestamp; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import jakarta.persistence.*; + +import java.util.Date; + +@Entity +@Table(name = "productos_depositos") +@EntityListeners(AuditingEntityListener.class) +public class ProductoDeposito { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "cantidad", nullable = false) + private Long cantidad; + + @UpdateTimestamp + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "fecha_actualizacion", nullable = false) + private Date fecha_actualizacion; + + @ManyToOne + @JoinColumn(name = "id_producto", referencedColumnName = "id") + private Producto producto; + + @ManyToOne + @JoinColumn(name = "id_deposito", referencedColumnName = "id") + private Deposito deposito; + + /** + * Gets id. + * + * @return the id + */ + public long getId() { + return id; + } + + /** + * Sets id. + * + * @param id the id + */ + public void setId(long id) { + this.id = id; + } + + + /** + * Gets cantidad. + * + * @return the cantidad + */ + public Long getCantidad() { + return cantidad; + } + + /** + * Sets cantidad. + * + * @param cantidad the cantidad + */ + public void setCantidad(Long cantidad) { + this.cantidad = cantidad; + } + + /** + * Gets fecha_actualizacion. + * + * @return the fecha_actualizacion + */ + public Date getFechaActualizacion() { + return fecha_actualizacion; + } + + /** + * Sets fecha_actualizacion. + * + * @param fecha_actualizacion the fecha_actualizacion + */ + public void setFechaActualizacion(Date fecha_actualizacion) { + this.fecha_actualizacion = fecha_actualizacion; + } + + public Producto getProducto() { + return producto; + } + + public void setProducto(Producto producto) { + this.producto = producto; + } + + public Deposito getDeposito() { + return deposito; + } + + public void setDeposito(Deposito deposito) { + this.deposito = deposito; + } + + @Override + public String toString() { + return "Productos{" + + "id=" + id + + ", cantidad=" + cantidad + + ", fecha_actualizacion=" + fecha_actualizacion + '\'' + + ", producto=" + producto + + ", deposito=" + deposito + + '}'; + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/repository/MovimientoRepository.java b/api/src/main/java/com/mobeats/api/repository/MovimientoRepository.java new file mode 100644 index 0000000..3f890c2 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/repository/MovimientoRepository.java @@ -0,0 +1,11 @@ +package com.mobeats.api.repository; + +import com.mobeats.api.model.Movimiento; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + + +@Repository +public interface MovimientoRepository extends JpaRepository {} + diff --git a/api/src/main/java/com/mobeats/api/repository/ProductoDepositoRepository.java b/api/src/main/java/com/mobeats/api/repository/ProductoDepositoRepository.java new file mode 100644 index 0000000..e4e25c1 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/repository/ProductoDepositoRepository.java @@ -0,0 +1,13 @@ +package com.mobeats.api.repository; + +import com.mobeats.api.model.ProductoDeposito; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import com.mobeats.api.model.Producto; +import com.mobeats.api.model.Deposito; + + +@Repository +public interface ProductoDepositoRepository extends JpaRepository { + ProductoDeposito findByProductoAndDeposito(Producto producto, Deposito deposito); +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java b/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java index 8c21da8..87d8e82 100644 --- a/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java +++ b/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java @@ -6,4 +6,6 @@ @Repository -public interface ProductoRepository extends JpaRepository {} \ No newline at end of file +public interface ProductoRepository extends JpaRepository { + Producto findById(Producto producto); +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/DepositoService.java b/api/src/main/java/com/mobeats/api/service/DepositoService.java index a55633e..bc0e5f5 100644 --- a/api/src/main/java/com/mobeats/api/service/DepositoService.java +++ b/api/src/main/java/com/mobeats/api/service/DepositoService.java @@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.mobeats.api.exception.ResourceNotFoundException; import com.mobeats.api.model.Deposito; import com.mobeats.api.repository.DepositoRepository; @@ -13,9 +14,23 @@ public class DepositoService { @Autowired private DepositoRepository depositoRepository; - - public List findAll() { - return depositoRepository.findAll(); - } - -} + + public List getAllDepositos() { + return depositoRepository.findAll(); + } + + public Deposito getDepositoById(Long depositoId) { + return depositoRepository.findById(depositoId) + .orElseThrow(() -> new ResourceNotFoundException("Deposito not found on :: " + depositoId)); + } + + public Deposito createDeposito(Deposito deposito) { + return depositoRepository.save(deposito); + } + + public Deposito updateDeposito(Long depositoId, Deposito depositoDetails) { + Deposito deposito = getDepositoById(depositoId); + deposito.setName(depositoDetails.getName()); + return depositoRepository.save(deposito); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoService.java new file mode 100644 index 0000000..1ac0ce5 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/service/MovimientoService.java @@ -0,0 +1,83 @@ +package com.mobeats.api.service; + +import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.model.Movimiento; +import com.mobeats.api.model.MovimientoTipo; +import com.mobeats.api.model.ProductoDeposito; +import com.mobeats.api.model.Producto; +import com.mobeats.api.repository.MovimientoRepository; +import com.mobeats.api.repository.MovimientoTipoRepository; +import com.mobeats.api.repository.ProductoDepositoRepository; +import com.mobeats.api.repository.ProductoRepository; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +import jakarta.transaction.Transactional; + +@Service +public class MovimientoService { + + @Autowired + private MovimientoRepository movimientoRepository; + + @Autowired + private MovimientoTipoRepository movimientoTipoRepository; + + @Autowired + private ProductoDepositoRepository productoDepositoRepository; + + @Autowired + private ProductoRepository productoRepository; + + @Autowired + private ProductoDepositoService productoDepositoService; + + @Autowired + private ProductoService productoService; + + @Autowired + private MovimientoTipoService movimientoTipoService; + + public List getAllMovimientos() { + return movimientoRepository.findAll(); + } + + public Movimiento getMovimientoById(Long movimientoId) { + return movimientoRepository + .findById(movimientoId) + .orElseThrow(() -> new ResourceNotFoundException("movimiento not found on :: " + movimientoId)); + } + + @Transactional + public Movimiento createMovimiento(Movimiento movimiento) { + Producto producto = productoRepository.findById(movimiento.getProducto().getId()) + .orElseThrow(() -> new ResourceNotFoundException("Producto not found with ID: " + movimiento.getProducto().getId())); + + ProductoDeposito productoDeposito = productoDepositoRepository.findByProductoAndDeposito(producto, movimiento.getDeposito()); + MovimientoTipo movimientoTipo = movimientoTipoRepository + .findById(movimiento.getProducto().getId()) + .orElseThrow(() -> new ResourceNotFoundException("MovimientoTipo not found with ID: " + movimiento.getProducto().getId())); + + + Long nuevaCantidad = movimiento.getCantidad(); + Long nuevaCantidadProducto = nuevaCantidad; + + if ("ACREEDOR".equals(movimiento.getMovimientoTipo().getSaldo().toString())) { + nuevaCantidad += productoDeposito.getCantidad(); + nuevaCantidadProducto += producto.getCantidad(); + } else { + nuevaCantidad = productoDeposito.getCantidad() - nuevaCantidad; + nuevaCantidadProducto = producto.getCantidad() - nuevaCantidad; + } + + productoDepositoService.updateCantidadProductoDeposito(productoDeposito.getId(), nuevaCantidad); + productoService.updateCantidadProducto(movimiento.getProducto().getId(), nuevaCantidadProducto); + + return movimientoRepository.save(movimiento); + } + + +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java index e66df06..0269b67 100644 --- a/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java +++ b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java @@ -1,21 +1,37 @@ package com.mobeats.api.service; -import java.util.List; - +import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.model.MovimientoTipo; +import com.mobeats.api.repository.MovimientoTipoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.mobeats.api.model.MovimientoTipo; -import com.mobeats.api.repository.MovimientoTipoRepository; +import java.util.List; @Service public class MovimientoTipoService { @Autowired private MovimientoTipoRepository movimientoTipoRepository; - - public List findAll() { - return movimientoTipoRepository.findAll(); - } - -} + + public List getAllMovimientoTipos() { + return movimientoTipoRepository.findAll(); + } + + public MovimientoTipo getMovimientoTipoById(Long movimientoTipoId) { + return movimientoTipoRepository.findById(movimientoTipoId) + .orElseThrow(() -> new ResourceNotFoundException("MovimientoTipo not found on :: " + movimientoTipoId)); + } + + public MovimientoTipo createMovimientoTipo(MovimientoTipo movimientoTipo) { + return movimientoTipoRepository.save(movimientoTipo); + } + + public MovimientoTipo updateMovimientoTipo(Long movimientoTipoId, MovimientoTipo movimientoTipoDetails) { + MovimientoTipo movimientoTipo = getMovimientoTipoById(movimientoTipoId); + movimientoTipo.setName(movimientoTipoDetails.getName()); + movimientoTipo.setDescription(movimientoTipoDetails.getDescription()); + movimientoTipo.setSaldo(movimientoTipoDetails.getSaldo()); + return movimientoTipoRepository.save(movimientoTipo); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java b/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java new file mode 100644 index 0000000..d760d21 --- /dev/null +++ b/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java @@ -0,0 +1,47 @@ +package com.mobeats.api.service; + +import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.model.ProductoDeposito; +import com.mobeats.api.repository.ProductoDepositoRepository; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ProductoDepositoService { + + @Autowired + private ProductoDepositoRepository productoDepositoRepository; + + public List getAllProductosDepositos() { + return productoDepositoRepository.findAll(); + } + + public ProductoDeposito getProductoDepositoById(Long productoDepositoId) { + return productoDepositoRepository + .findById(productoDepositoId) + .orElseThrow(() -> new ResourceNotFoundException("producto not found on :: " + productoDepositoId)); + } + + public ProductoDeposito createProductoDeposito(ProductoDeposito productoDeposito) { + return productoDepositoRepository.save(productoDeposito); + } + + public ProductoDeposito updateProductoDeposito(Long productoDepositoId, ProductoDeposito productoDepositoDetails) { + ProductoDeposito productoDeposito = getProductoDepositoById(productoDepositoId); + productoDeposito.setCantidad(productoDepositoDetails.getCantidad()); + productoDeposito.setProducto(productoDepositoDetails.getProducto()); + productoDeposito.setDeposito(productoDepositoDetails.getDeposito()); + return productoDepositoRepository.save(productoDeposito); + } + + public ProductoDeposito updateCantidadProductoDeposito(Long productoDepositoId, Long nuevaCantidad) { + ProductoDeposito productoDeposito = productoDepositoRepository.findById(productoDepositoId) + .orElseThrow(() -> new ResourceNotFoundException("ProductoDeposito not found on :: " + productoDepositoId)); + + productoDeposito.setCantidad(nuevaCantidad); + return productoDepositoRepository.save(productoDeposito); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/ProductoService.java b/api/src/main/java/com/mobeats/api/service/ProductoService.java index e5d6378..f4423b7 100644 --- a/api/src/main/java/com/mobeats/api/service/ProductoService.java +++ b/api/src/main/java/com/mobeats/api/service/ProductoService.java @@ -1,7 +1,7 @@ package com.mobeats.api.service; import java.util.List; - +import com.mobeats.api.exception.ResourceNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,9 +13,36 @@ public class ProductoService { @Autowired private ProductoRepository productoRepository; - - public List findAll() { - return productoRepository.findAll(); - } - + + public List getAllProductos() { + return productoRepository.findAll(); + } + + public Producto getProductoById(Long productoId) { + return productoRepository + .findById(productoId) + .orElseThrow(() -> new ResourceNotFoundException("producto not found on :: " + productoId)); + } + + public Producto createProducto(Producto producto) { + return productoRepository.save(producto); + } + + public Producto updateProducto(Long productoId, Producto productoDetails) { + Producto producto = getProductoById(productoId); + producto.setName(productoDetails.getName()); + producto.setDescription(productoDetails.getDescription()); + producto.setPrecio(productoDetails.getPrecio()); + producto.setCantidad(productoDetails.getCantidad()); + return productoRepository.save(producto); + } + + public Producto updateCantidadProducto(Long productoId, Long nuevaCantidad) { + Producto producto = productoRepository.findById(productoId) + .orElseThrow( + () -> new ResourceNotFoundException("Producto not found on :: " + productoId)); + producto.setCantidad(nuevaCantidad); + return productoRepository.save(producto); + } } + diff --git a/api/target/classes/com/mobeats/api/controller/DepositoController.class b/api/target/classes/com/mobeats/api/controller/DepositoController.class index ef2072d9041bd0375fd9917fe29d82e14d679c97..8d75a927821897cfc211cbfe35582301b7f27ee7 100644 GIT binary patch delta 1094 zcmZ`&Sx-|z6#k~|ZQ*jcE!DJvs1=b!s#2qkAt6N(TtEcGjfyA*5vhO+h&y%P_fbjs z6%sTANPN*J<1>km{tgr4H*;Iu@L^`oxpU?_-*?Wr<7+>bnV)~megKfb_@p`GcKfhJ z&UvcxT&T6M4R!Lnr>?LD+btNV4#JJvsa9jXA4}5s27(9~i?N8!~obazOo(YuH%Q1hkocBjOQlMOZv&+f(wJZ%JGCQfm3xQoc zeLM~AHPDOE6FiORG{htg7aF;%U|T#T&iZi3{;G03Az*~C1 zBSbX9CI`aILbT|hRw!0B0rqmWbwCVbAFcg3!1N6=P_!|ls088RzK)zL5g^|%HfYe5 zBmtCWF_m=?hxk4W6YWTn#$n!j_@xFNv<$%jz)5~&k>s5?%6m&mI>yyDjDjwnDReV; zgZxqy(R`fJRBH|)W>FfP(kM%17P)-wyv&L0QIJ`Y$N4=UBE+MYOQkIkgi_84E`dIr zWTRA#C-~jq8E1`UI=ESLC}D*_1_oOaU_-)aMTB*%M4RRncb+Wpif3!1TGp>?6UK7Q z)y+3vrc1I?f7UDCrR&wtL{81pT1!TC?9_soPUOUJ5OQKdF5YKr*!4?Sz*J+*E2XQ7 z?NhU3&!Hw6oyAsQ8ufqAPqUWejE}8FWI!1HApe2cu_#RJ9~d-=J xi0iaz7$fvoG44F6Ud0%0C@V_y7R|d1e607Uc+Nlt5XEY|@aE$sUf~Uje*)V&h-?4= delta 1817 zcmZ`)TXR!Y6#jN@r#U%EYYK_B)6$MbX=|x1rR_`sl~S#mLMfqG@shNOB@lXIlTz>& z6z?Klwu*u%c*h%*BG{sgGy0@2KKT>$*+1a;?Q@c}Wy-_JUVHDgzO}w@t#k70&BvSd z-~XGx3Sc9y&ggT_>L47r(T4!;G;kL-3wRRAbTXF|SSj1Yiu|yKEdn>}jUR}&PUTYR z*8X^Q&pN3IWsbwfHO0d6X<45m9pEp+M{8oz&bhOU8e`(#4ZC5U_^Rc zy}>AU8*rm12p4t*Y3-UFcD1;J0lUt@Ni#7umNNzFWm?okh~6VmHkr(3%!w>{m)q4@ zWbMmP#2kyKhvSo}_-HyAJ(NjCl_Ai%)OCYw^wr!_VB52)N5iWmyTG;Y;8-$~OPN%n zU*&cY-iq-r#0YfBGg{-CEmjxkkV#F9v%qjVzJD|kZ&*sApb7<<`L928YrJp=ti&j7gZH4v7!q6sl2HAP z$+dy%-UZ+KMZS8$_c8iAFbs;Sj$YeqXKOR zqus)+V>Y0^fT^tgm|%PuI!t7k;c?!(coM}VEw`WpU?a|oFgqTHfur*MY$}EccOkNgAKA|8BB%kCtp>Ua+sr7&zc)KV(U3vs!>gLu96^KrD3Tn3`--M_X1ud=1cTf z!)>3u%#)%puduQCYbNQnQiqQ&66M-Sny%2*t4fa;(YuMMhA40a(UGQk3W>s##W&x{S5GBv||2i-aEekWaEDXOd*FkxBS(LUSit2Hp8fyBMRrA}H2I?P5 za{ms2?MZ(Z?{VMGjvpuEk8m2F7Oc-p)>pK?VZ@B}J8S*^KsnTl?_l2=@T13zIZnaP Gxaog6l{()5 diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoController.class new file mode 100644 index 0000000000000000000000000000000000000000..ed89055e3e9d9e4ce2e2373d7220d15d44ff2ae9 GIT binary patch literal 2426 zcmbVO?^7E^7=AVZLPBhTS}fYuN~=wv_QX%6^2HC%CE12;FSqe-1I;-8 zPdek&A0PY!{G%M7y@cFB;*jZwyLb0?pZ9&kAFkgq?ce% zrB^VU!Ml09hpPg&bx?Q0W}y7~^T2J$V;#J74vlF#dopZlKa^X(QKl`B(k}%bkmZnw zTN}F8-e@VWCWF!huH*d-ZshR+<^=A&fewL@3N;F>Cf)AT1|1(#V-(a|d3=bESYy?I z^&;cA3Tzk758)6|7MR^@F>noeph8vg7^| z8GWn*St~IHn@p&{#j^6{lUAc5gJ&+)vwq6D>UsxmpzOT+al{-d+FR`N>74GMq3ph@ z`>tsP)V9=Az`COuGga7JUjZNb?HVa znfPwK51V!>i*?!NnLOJ&0=amHz})#B60!BFDw|POGx(f!efAKLC+oJIbStRJC)#Z5 zmS5{3No7}>LtT67+6FW-psPQ;xvN8_W-1w5=OAz-8|h=SE6*ja#%U47WJ8PV289jyvaTJV@rm{9$dub_M?Pt zE8AYP@gWgkB6sb9{eSH|sLELcCWh0-;FDl5G~yOFNhZ4Hjuu(jJH9W2P0tNO$=aDn z9K1Yk$9b;;48Of7DQ|N&Mp>X7q2z7LcabxPQc#Z0{|@mh2Pw?+ZI{7YXn}95fE#cJ zA5-#L!Zgwm_*2g8+W7o$$h^i|zi^zyUrpf0yZF1&9w(x7f#^^8EPf9W!fLyWd$etd zeMe1c%1c)F!fRaG{R8jZ`4iVth|Spl2Vf3a+>A`!=s>!r2*wibQ*9PGEaL%pKjeNJ zfzMFlXq3klMTgVM08Xn|<2wH}1Rn8O4Dkg8FA~PXvRtJ~OCj53c{AqL31K1PHPhMD zQ`nBs(;PkK{HvaZ R9emAsj`QpM1Ndev`yY4+r6>RZ literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class index 2c2bf8ef742335011400cbee7ac6f70469f31c68..a815e6a25f85cbecbecfe8bf0a447a7d3d9fa7be 100644 GIT binary patch delta 571 zcmZ{h%WD%+6vltI37KRZlbJ+P3fc_S(l%JrB1C8rbfuuSYAGm^#Yi70=|qzzzKw6K z&+760sBb|RRaZ&{7lIrA16S(Sl`aKQuY>M%bI!frsYnl2hRd#B8h1xZ zRe#7W`EE~-tD;QFQ+uv_wjFg>zT4UGeMPhUw3}t6lUIh+ovcd96Q`gu5=~AzorGD0 zNscrNX{1XYCnr>|EKa?jw_0;+G}ouORhnB%hIO>Do;(B6F=s>FHh)LanP%yy?bdRo zyYq_q8?!I*XBdYU?0lxd2I9I#0zr;MfS~OV1p8*a`hPCpp8pU^R(wk?UG_BdE8y{l|ZYdpw|t<@E9}68iX_A&g?F_9cqL5&%twUjmFzN_Yhn7xhLB{dnv^kVun#3k8 z7tweZyjC~GJKis-Af;$&(TaFO@bao}`e*o}uAI;*&cMsgUf){Zx4ykrlE1D!)?}Xl zXL<%$!*Ao}-@&VDl1|zwI33xM)L_cV6tX?3TvpMj_xkFi9d<5ZAmRL-_K4k_wlf3G z>vs1$xk4(NQM8wed{T6?PFVGow`H?w$Ic|yCKM~R3dUl$m$mI&E|nQbRO6w!f<+W8 zh8a=#%e@r~^te$|++wg>QRTK8E~L`U?RI{LsGIDfGQj-`qfAH!d4Qt9gR|AHv5W03 z9^zqzucy0rofzLZ=X};*1&{K$!DEWbxn3Q1IA`$$Pb$2*;euk7c$%+o@zv=IMreIt z$jRrjnY^P2mnB_?r2#1xZp`-E=`Hq9%I-@$J$rIaPwAp)`+uoBCUe%t+Jsi-)`sVK z!C+JonKQb%FeLM`coD5f%oPDIV-|;aNl%y?u6xBIh^+{u?ZLjJy`-fYA7gWIYc=y2 z(~*j^{`dLN-~;`8#ZvD_9MK-@&!+bjHOpd`3}sW_PN%<+i13Mt;+VxVJRA0NR93i5 zN6ogIA{@V%JZbT&o1B=#rYv4}u~UMXe8txWGdfur^B&@i9<4ka{W8F}GNRtRGZf8a z3(@V_;Y>1`%|utPj;a9P>(0<3BfyV}x-Q)vimCH@UnuVTS<#@2p$2^})TV;^-%wmF z(DCp+s!{I`k5)Cyqi@8dg@xQeEv-5hIiS|)iO3)Ios!!mxh~0dNUoc!+00UUXrosj zsk&>4yfn=qeiq9w!6#9M8o7DMVaR7lko)vZxUqN?ujFB6{3LbDr-*x4KFtt(LF*Y- zb(G-ir^tIa&8}^e?CET(-g|<5Q#|5jYtwO|dPNRt6p*t|#QMcqQk>c1Y&(q%5Mu`` zND-Ebc)1-Bsw65(XV$Yp{L~Vqojb&1Oa%9HK!l%?5=(Mr2k*NeVE_OC diff --git a/api/target/classes/com/mobeats/api/controller/ProductoController.class b/api/target/classes/com/mobeats/api/controller/ProductoController.class index c1c8e1c9beb971bcdd3ee51b7ac964f1ce6cb14c..0d25a9ad396d8ac48c3046411b610f2d48c02382 100644 GIT binary patch delta 1147 zcma)*OHUI~6vzK}N;{qD&?0?+qP!G=0uE9U1r!Rtz=8;hiMXk>G1WpzA0)0y`~t?@ z#BX3sTw!AHu`sUP$S3dvxOH#*-|0gzE?mrpFRV)gnKW{ z&2nHXpG%e2i@B9_emk?C7U)l`=Qiw(+{1LTSg?~@8M{#VWG@{KoiO1?Ku42>BWM=r z{m(psz@v0Ap3PFP$EjTqXzuGzJWg&W?NTw5wG){_(UA{X2qPkQ^pF^lac@xWTTL?H z4K$i)#Zeu{EVSXc9M+!r+tHz;(?S=z1!6Mp3CVzq3EGOOKu=ld!D$&ZR@;@^XQ3Za z0e@*Ll`N)ftqCm4H)c%E8y(DQ#h}vfmR+7N@~7vym>|Qr{H8zf=$KYj_N|y4@cs~^ za@rG?Q@*f#Y3ztKYTTF4%9^jwd{EF^!RV#CUgg7jmz?JLp+{!RCXK)FYs|;_k&VQ@UKZ_bauTYIYqVaoumRh|N7nUfd b;kF~x%+)gemAcp+UI`FgpdId3ta^;!UnZiW literal 5797 zcmcIo`Fq?(8GdJd$X=_C>$Y|RG}y&$Z6}U$C&Wog?A+Ln@s)-UK;D&Y#j>=Kv`$P3 z4YUQyQSPhUH{mR$IB^Q4+z`rr|1&(iqhnX=-6Z?udHTcdNHgtbIhO3RbPBx$Mox#GCKx;0V95Zr`XZnu2B%lqg=HeDs3tWl> z{Y_}b8U-yX?nG+^9d1f3pv;(d_JCzko9>>Wz}~!XTH285`2p{{RosI%fd;v8VCh&^ zpu0QVm;k0fNqZvan~tqp{jEfGt%`Mc1@W3S2%nZD9dhj162h6hosp#4cs`f2OvCL@ z<5jp`mS;@Nxz2fkEs=!4igJdLo=Mde+$XSpHR=ma*02hI zr_qJ`6+EEgL39f|=(w|*mvc>fcE;5gjPs5=ug&>>P8&14oMU^&A=@{7x-;d>3+y7a zRZ?^fIN7CvylG`=eG_`ILBU29eb^+h?KXG_)J~J5z`i8%VKfu_Dmey`uvx_xY$Zca zUo-?BsK{`2#xMp1)~3;k9V&KWmq0TE;h^DVTr&t0fxF|t3!F0UOH}FjPP|sd9`uvK zTSakCQglSnGbKs(sn{=tC=@b6$H=+YsW>3nC}b1Q4XQYZLjsN5H|iQ0(+M*AxZHn4 z#ZesN8u!O*wcW=<0k2mvBng{HIH=RfSv@O>MpT@TL`@`0&c8v$m{dsR{>fZc_YEeI zB$!Y!DYa5bkXY!#Nf~3CT3LzK%G`dViqm)#3lGE5@QHhg@v$SP6uepB&SH8T)xEi4 zJ(tEA)HFb+^&x$>5gB9^7%FBk8*ox=r$cZF*ZpP?@DBOw8l6vaaO^+3JVJY zcN7Iu7$MB%ndG~Z?uj%^@QQUVpHe_KY+Id)#)XU#go;cqC+}vA5ywC5CJ zIH$seC(yp2&l@bW8Qni=`g45pd^(CNT}i!?#iumzY~*GAXXMu6Tq~c>39K8-)7J~e zlw*dF37ArhSHD)-d>3)shIb!0T*g@w!0At!yQ?LYz_6mSMx6bF!nltoy#sl4k zYl={5kC@qu0{4}MV?mjcxZGK_gGP0KE{-+2C}k40=8Vg8j1hZ9V4(X}NcG%mgTRjJ zb#lB!)ZANY@WfKCGzZrPKE9waxLA>cGsKj9q&3xx95c@44bPVym~_qgpj;OLI9=xE zTiIKEe`N~9A$id7b<>hb5h{=^YH;!8)1azAtUl#O^9koQhpne*M`xKG$>Sqy1>tXS zqmvYY2opFcPvK%)X?bKcL?v=(>DIl8)Q`>yiJ7>m?eACcb@sdB*`<*10!MG9Yqc_X z46Hi%4+g!ySTx%$ePKGQca;L!#lzT<3hLcP10~?GjMA|0+QQ>oBz;wp?%K@KI36_Q z!=`Ln?Xic8mz+%!(;KzOO1*+D-Y=3WffO&l{K~Ke$!rb<_&Eq0G$+i)W&(dW6dwVy_5t$A_@f@)$OchcwIw| zGoR1(CxWg#3`+=QWlL_aelZkzbK2zXC*nM)Th_Sg8~rV~w)!j{ozw`{Ptv^V{#3H6J})fbIIx#D!z@&eEXGr`?ZR11#iDi<9GPIg6r}u_XnQX%6t;S#|Yu^ z?r?ax68QAX?}x~3rxTv6aE@J#X#@VqvtyJN9XvC3%*b&?jD)=`qzc=5?%SRZ;ytXv( zUIJd}Qu31r#|wO`=eWeNkt4sG@c(Um(>Mx_b-h<0e#nOu9^t=S20tmho&S;nH{c@P z!BOB*$b-Bj-p)64?LnV9z@PrJ70qF8&@n4dLN&K0SeV zQ@Z3nPfj%)J0*$wvB5LiKSeD}w41oTD$> zIDC>nsZW#ixP18(e@r-h21=mLb=qIYxrq`ex5ZG7^lePgC$E{!;i{0j$p#zvTnkw|E zVX3X6mfGaLp)ej%)ZLCoAIpMKuwAR!-p5jHnUxC5hOpiv(+R2lq7gTq;76<0muOn9 zEvnt8E1ee0j9Y+i0K={I&sVMA33Q#s0-5!fMOlerpTbwH(AGXD<8$2@ywESoZBK1@ zp=;HVJ-vEMP(VVuN_ ze!^xz7P?1!K~w5Xo~5>bQaM|O<58er8q6@8J%hDr9Oy0ecCT_*{uIhU>4r>Pu`MFq zmdJV1w(TFhCY5PB%!sjS_p{pD?yv8j*|~D6`*yGsHpMiv7uCmxt$W_(Rx=xe$}Rox ze^aOJ)O1*RssU#xJ2&ah&?p5OJu4LrR7djy*-h7#{;FdJfn<0Fn*Q7TTlaH<1DNG{ zB;$IMPkmf(aqZ>GxsG>(PXXj;_rix%ZK#pS5$Y6=1Z32(@RS(~MiDmA3IhAp# za$4!YX%%Zc=Ts}O&TBEi1{cmD^oM4tMQRG^8p~@9ZdDgvi+GJzKdSReM{GpQVTlrS zh_pW*Yc(~0e61xzjB?rJrKt?)pz4QjcnMA>-y#(;c}mlJ_--g-GIxp_+c#ffw!x?B zt66$tF5)y({k+a;sOBq*Kt3`oLnF7iOSX6|ort`ar?#r+w(IPl)Y-2hX3q?X*^ef8 lUUy`}kR)~}EP?MLK_lGl@_DZ=Y@g`>G8c^VI1c*K{{h0AnhgK| literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/exception/ResourceNotFoundException.class b/api/target/classes/com/mobeats/api/exception/ResourceNotFoundException.class index b999edf26107a8175d1123e4a77050fc2adeb743..201bc2f46b770ed0a30d4a132f458c815007da66 100644 GIT binary patch delta 220 zcmW+vOAY}+5PdcDh++Ky%+5|?PGH4`B{BP6bfjgpWInE7E$$()wQv9zaSEbFB~|r4 zl~?clO-x?j#}mK|o&yWH0`g@D*o47eo}?d2v-8)fN%TQo#%fxNRitGYs3_J)vt2F- zv?93kqlpt~l0b&35*(Nn-OrjljzSR*2qo4mlo?U>gK_2hq3)*2diEV?vED|FQRmNX g)X`uDzHYKh>;i(AWKo^}?4rlpWwXycP#9wL11DJ@xc~qF delta 168 zcmZ3-`kY1O)W2Q(7#J9A86>zEm>8JZ8CZB2SQ*$D8HBSE%M$f-67$maCu*l|Jdn;< z&cMJ3gg{xKN=~3AJ0Q&jq}jBzw=*zq1hSYIxPTE2Tgm4ieifHK}dk71gJ?ZWSOPzj? zeu>W5nL2jtOg}(BRHy&5XLEG}Z~6lET%ODCoab`#&%Yo3CZhZFCQ4lzC5ob~m&G<` zo~yHpiLt>geNh~kWs}>Uh*Gyk1AFX%=@zp~`ttT3FM1kvnTAGMPNU(~s_mI&zHYka zw#8>{TX@Vfh3#r|KEKEInd33N!X4LiJ#H7dK5wKnnh4!`#BJ^{j~naEs&a_+x}Kbu z4v*1*zrta~*O<>_mkRTR4Ja2G&T16?DuQVs-zFyBz#@_g-HgI9!W9(Bx2AORDSu%Qsy;l*86 zzw@eRT6zXSgy2Z%X$!nu5e~B;5IK;6*J$iW!64Kp3-gQFwZiP;ibf}^6@z&)P;gxI zgP7qvrftep)M&gen#g45W}oH@iS*OeRb*F!2ID@8Kb zlv{!7|FsfArBQ56RGlK9Gi7(^Z$$UHJb0&b68ir{BdDf*AojVgZd!$8j^PP&4rQ!<)acjd@CMS#;A3VR z7I!D|LhM&7sUxG*qUg8ikHt5emO}Ch z<+%1b%5ftc@_mylM(|L{vHvvP*RK4cQGDLUkBzj&T$j61dX3uQ`T{*j{&eV}F4?s)i(+;LvtE2k3kTZ+`1WIEz{TR37c_`5T4=C4 zgxM!h{!~evqw_9Icga2%E^(nIfo2pgF;bJj8x}}hf<*~G#%Y`;fYU8;MitH_$#mJJ zD?T#bMhH#;=^@Ul;X5$(o~};)MbjJaNqVHV&I{x`nm4(xI>D zYs@sdP2U9ebZAL?k*PoE&TkkfBk~%FE;lJh>dJR11t|$L16TglPmR8#I}L;w_6ZUZ zy6Rhy_b3CT+{=*))IF?5@XX?);Ro|foe4jD3S&BEH0+T)TO*lU42In z+L>;`*{u#tDmwzE(>_z0G9gUacBb2*OpoYs7*n>L=`NU39hg*3225vtrg_SRFfFt* z&4e;7(oz`HLOat#Fr_;%sVWGVhJB`GS_xr#(#|v&%Cts>Fs3K%OgS(ubYN0-7cgD) znV!;m2-A&rrlnA(XY@Rbsj19Vj<14gtpk&)^nhv9XWF0_0h2&?k~uyt>rUqRpR|cj zR(%%K=ZX59Pq&*DAHc2beK3Uk1bPoPps$v$y=zxBrpK16%5E*M> literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/model/MovimientoTipo$SaldoEnum.class b/api/target/classes/com/mobeats/api/model/MovimientoTipo$SaldoEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..c3002704e603cb7701a71727cf670a0328d4ecd9 GIT binary patch literal 1315 zcmb7ETTdEM5dMw}EUc?itXk3DX$xpUYPAngqg9%kf;OTgq)!Jp)irxDyNii${YkAp zXxh~Dxj(AuoCTFWG$|yzbLPzLn{Q|M_50f;fY*4XVu&Hva;&`NGzIs)JU=q%+!kiO z>Kq%EA#C5-HIAHAjhk(!Y0XzEdu5Z0|5ER0c~}WQc5( z_k!5r^44B8RbQ*@m1_)zkAtU*mRhD^8~zG|lFrl_LhIB{6k!bvV>;rvMfFNOm&tVH zrjwfQ8uos1GgFU|@3@XIB2lPPnbe^oB2Ra8L=mG@6~h)=9jhtaUEVYWL!#oexLN0} zA@$%=gMu-F;2#(sgO(D+Rm$cTd5?4z$88%nHyPqp;U75d58NfQFI@7E9CNcH=&+d1 z49tXv$9SS5MVb3LJn?*C>3E7~3^DGy{G{a^oiJqkdDw0qik4s8?4#!Dinw7=16Gr1%<%lPq%Iev&toBw1-u|B{~2h>utZcZ2ltDA E00fRUp8x;= literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/model/MovimientoTipo.class b/api/target/classes/com/mobeats/api/model/MovimientoTipo.class index 04632cb4e1e0b92a27d0cfaf37ea371337d7ce69..4aee1476e2ea738b02b35dcca76c48918445df67 100644 GIT binary patch literal 2814 zcmb7F*-{%v6ur$REXyDkg9(mJ5-5F(SPW(r7GNU<2b09rlG@N{G_9Ixk)l%h zkNiZck}A8L@gtxwnu0`S<*-S zp2aH?-$h|t>*`RJrEs*$$%=|m6Qkq-KjfCpojq$ae;^8)QG+ZpVrz{0wyKVnWw9+i znYYEf<0#FwRF22!R_1`0xU0EU5w0gaEu4a|(#0thk2I|aN4Q*z;x@Od0&cCIHtW5k z|A|1o+)>4kNG~pJr6ct$qsG+8HqNksj>f5x?j-0V>SxrRk&f7?mh-~RnL`ZZ_$CiT2&Q)Ts>6J)zT>2UK0V29oY2sF_*}J;8ocYR$k&t_!`diqE(UYBeT; zQ4EnAKGEH&k@_x~WDgQ_gWBMVWP$6=RK2Ik--cw1L3_*qn&8h9)MbL(5L{zIU*YSw z13svH#rB!hUnQuUZkiE2$@D07)kFq%t5(5K#%Y>nV>EN-!Ud)TJ*GKu;7`QnYfxOv zL2xOjA_(ln&^}4f0xdG?E%TCCP)>pC7gF!z%hTM^=)%*~T0Nte*@>vgD4tbSw;-0K znXj(1ax!i%;zf6F2|}WeFi-ucU9TJdaKhSAK2a#|m4-&)1VfP#LBfnLJQz2`E@qUw zXL%K)0k6#%{;b@RRpgMUg9^8bs?4QhdDTiqx!Rhq7Nv&g**r*-e4>;#(o_jX+KbZ$ zJ&VyMWa?CEq;sfB!U{SV5Wma|TDeE2BhMNAR@=nTJ4m?7ouVzg!HiO+YGvw!y*Lx- zD?+{dZp~K2w1g=ZxNT>p7E|plwBAZNM$>28_lqpfu(5$aS7(OV@Yq0&9tIn}B%04( z870yV1bxBgo+rE*y4Veq7LXN?-%J6q=KGw__*iVYA~Ub>bVsQ*Z4$wn95X zYd?I$*zUmE152--VE>N(RcLmpZI8?yLcLq1lIvP6M+Mc@hMh} zKBGZAgW!h1Hu{E!euuF(crY?}m{RaE!L#7Ru+lPm_bm;bmX5*EvCsxOygkT7*j(~ZS?+I8at2aF^bJyfGKEP zi0Oup>0uV)~lCiQ;MU zJf=J_6)wOO3~7j|+sE|n2~XK@?)uC;;Wvig1b&l$(bRjICpyL1<2QaEcS_&MKkV7&?&aJAC3hL7G|Vg-6i85mlz-oh_S-(h8L-8NR= U&-Kv`?b469KtEx>347cB0cKf+i~s-t literal 2353 zcma)6Yf~IW6g|BxyUS(+2q6h33MlUoMiPS$LX_}GAPdBR#3UcAX14HGsO$NQGP`^t5uo}w-h~4z6zvK)g9?I6x9l$ zvFE+x|FB@Z?c;i6vAVRpvAw$eOyGLU7>n9#)O`BR`m&}3dQv%UnZS**%K5ss8&F#C z8=fbbSQ`rofeTd?Rsy$fGi;tJ(J6P=^<8sMply6&hyE8?-Xhx2UqT-)3v`uTUu`sM zyDHeWE^TaGk=~9BTzgI~vu59A@kY!4hc4#PzNgG8$zjyB4niC%p&hv*KE_BM!vdYB zIV)il0|Ff$`HRX-4`J*fJH9rtV+|)uxPd8w{E_8h^QAy9MX5q1~ZXji>x4nzoFcbhgwix;6f+gkEdhN#m4= zY#AL}7BPqUJno)qBS)j@aB-8*wZPg#*1s-c0rv&2)a0RB)P6;pr>@!OE;Q0N zOn5ErEWv(0oAWm<0tytjbR(#!71wr1@9F8Bwp_levzIxD=9nFEjgijJUDRHbcGpe@ zKK$Nr-tCfP&si~j%! z&*|zX+Oflj(yw|d94>2p*r?B)Cm?lm$}oCNQo@AO7pbcjJ(IXtl%BWc8a3CIL%D!0 zfirLHk8X8dOby!iXMRkKO%0|V6?^fMKxx(IQ@H5KFjQe4oP&{b6={`Y9^VOk`0uI$ zxws%0;xO5VtqmFbX7H5f>3yCHT{uGy*pe5*Y?RjaP>ECG7O9e1W?2^?n|)(uHyrqm=^~4x5l@qZH)_) zuQ2#KKKh0Gw0(cdzHnkchH+|H`vs{(1ViD~*BnBrbYF!e^5zBs}32-%3iKFi=6 ze92{o-|Sm_1vD}CPz}VA#~n7}EW7J=3U6Ohfh-oOmBCWfzt>3ZGS4dvz}|d-huo~b bfT&;%k0`K>_zk}&*ygFo-M4s(XXyV2!3G&j diff --git a/api/target/classes/com/mobeats/api/model/Producto.class b/api/target/classes/com/mobeats/api/model/Producto.class index d5a21f02a14f7fd23fe725efd27e92cf6870e553..0dcd82b3700e8169aef173988e340533b72fd44c 100644 GIT binary patch literal 3323 zcmai0>sHiO6yAr++#HeO1rfzTP!X-E)@mz)!T>sSxD>{*N?Us-IlzHTl9goa!mhqY zU!rTZYpLz>M<1XM)z$AL8571pe@t@rJ4-!9>ZJ^$ z{$2ixYbLk0wbjP1(0xXk2hx)M45RLeYxO+kD4(T5k&aQ3(THw0wWi$=-1ju@NURNE zYHO}-v~=HQ)FllBt;SKSwzWM~pgua0rT!v)LIaHY4w@O|O?cJ0*%HB5mz4jhBAuo) zjIytkeszn{$%&f``+7GK@tuFo|`xSsTUVd+Av7*mYKQ%#SBC0up%fGN1;JYUJ%`~R~8->dCALhY!` zFRaumwdah^r+%Yso2{k=&x~a^8!qU~SuNA#0N;&tQ_LS|v0^r6QMggrwR~x6^T35D z*Q>U>t?kH$a4l#w9w$J18t_;{c0g6rf%ix%q?%|tw#!X8^ai!a=+cpn(OL7g%JRZS zZFYGLrMo5c9sZK*ev6y(H4niTqEdRgUtG?W@opw_C~^OtQy zZb?;vfYeh)2QoTQm6lj(HF40IN|tH^Tjyq-yHd%Kvd7<%puSW+x{uXSw}oFpFZX)k zy9dozXT+9}=VjsV*v1-HD1FopniSqELHC`SNG-%H!h{Z|ll{=HT}19fi21lRp}>{{ zievC7M@@=4fH{`(u&o8Xikg6>y)Hr@5{+~*D#DZybG{uSU{u(!Tdpn^rOMs$_CUL- zCe>lJx`5X56$iuV<)HEoYu<^bBl2`P)iVrK4O$TC#Gd)Xi(%K{nqfD&v^1~fpfY`J zwq-~kWpgkN!t~GCwy&Dh2`TeVWa!5NacX2qSCb0_kH^DUTCeOqp@k_4huI=Z)^?G( zUz4;&j$zOz+%inzjaO}ZujNePgzXz8VmF~VurcV9gfVj8OsK*;X)0M#QHU}(%?*hr z&k?SM^)_KYOJkbdD5;xZ`YOA6qm-ETp(32<;krHYLn-RUxqT)6f?}yy7v{(|mcjce{>>lbY+?zNAtV{I$0!jG+`w)HOEi>w!c?@QqO z3i5qHQ}mz>W4i5(+cI)K1yB*lnb7(WTl-+ee-Jz$LDKMMc=t~JN$d|Sx@Z^>ZpG@q}eb~Q9kKv{E&*C)dddW{- z{EJS$rECm9{a+%w36iuR$eBRSM?tU!ggn8=EAZ;YRKknV5`7&Zi;wk&27iY!3F~$O zR(z}~El03s@K#^XOkRIWgPoY}A{F-%m@*$QWugL!FbxHmR#GtycVfDqifJ_+({LxI z8DM&N2&S+sBTN?pOlzqOj-)U+mw**B_|2gVj&veh1cQ$g$dU|}k_?stWb3KOMpKY2 zr6Sun6xnDevK1g(Jp|cU64_XQtd`2-cqfnR30QG$Jx%9vyc1I$JU&ZcO4e4`*Ab6b z0!;M}n4Ux(JEA%fzd`(l@f*cY>BisFRiaL?n+dQZQ5p9DfNGa-gLycN{(KJk1^NoJ hZj-*l;{GNvoxZ0ZV8}s!iJzctNCm8RXqQYH`VXM6$EyGU literal 3289 zcmai0ZFAd15Z-efzr}fL)3l{+k_Lyov{V$@LP?Y2I7yq}ytHv#Xn}H;F3BabwXbc}4u$S9NCb;Knydg0* zgsE*iw$ao*n^8gR7`Yz6yNr%z)+0NFr$2MXKVQV6TMm6hfrnF!EtkN;-{ z_NyE>1Xd)AyOk|QS7ZH`Y_nOnV3o4$dd&e-8LMfU9Kd@JTk2#6IIudQFCtUJglKxw z)Rut>UT&0aXJ0#zHQ`v8(Rk{N;y+eoTCp&#&T(hZQ3C6pYa!Lqc(X0wiiR#dQ5f!R7YtK5-F4kwe|fduUn<+BS{9d%!L zYpAkbH~1z|7FEP}LwE^Od@u{F<4sEs(wnD^dD%LV^RQ5{`;l!Hd(-Yya!8OCKb7^UA zvw^Jiv|`hc9#ZCAKX5a&WZRx9&PG6)JD8&HbHu5ZCSA2CkXz`mA+1;Tk1sQO+%HkuLc_r6V{RFya0_MIK591RPqG`Cd1s+tBN1ho3@;*6!38uQO{vgDiJRt* zM1f}r4f|<}u%D!{z-~^c`(mmuHuo9P!mH0D~Wz9mPE1BGN zg_|Y``cA|uE(B>hLLWKX6wNJ&7hT6Cl0a8WsP zA&kYAF>b@qcm$wA?ZZI(1(ps#i~kI~i;y&Y8NR)9e-is0g9I(%t<*&QRKi<@1O~KB zEBG>6rE7QxixYuv?lq-xo6|{h*HRyVA72(5ZoxW^iY8~h`_5TKC6w~ckOl8_=V@d?O&E0rI{oR=E0@J-y zFa@a*VjA=@ZN_36?#6UK7SmQdrr~Z(3&6B^3Z@_-Lrmv=OxtblRAMMzGvIFI54zM% zUoiqJ)8_t3o4#U5Uv_T%FB*G8Bi+bWP*#2XDIUjE4dUs?GmK{v&j_BWw=_f44fc5i>{v)llAgg&g1+(_;1%%uHRR{;jxP6t fzQJJr1u>nzrSG7~Kz@lw&_1LbMhA3ACSCpy!(F|I diff --git a/api/target/classes/com/mobeats/api/model/ProductoDeposito.class b/api/target/classes/com/mobeats/api/model/ProductoDeposito.class new file mode 100644 index 0000000000000000000000000000000000000000..a1508ea92f39d2260e5fb2a979251d430836fea6 GIT binary patch literal 3277 zcmai0>rxa)6h6IN7I6u86)}Q}y5MCJ%^fkp1$1#iA}dBog3U~`jLc3?&GeWesk}#C zB2`J1R;v7w2gpOE^7UMHm(48vn3=wO=bZ1HKIioO^Y8n=iD-dp{gk7wJareShk6+e zz2e6FVJZ!FuG>Sx>1+Af~&ybo{h03 z9Am?mR%j}@Bs>||N;1mX79+N*#Xl&}APq6eBoO;&-t?Q#8%!Y@Hv7l5|b3p4)04qd>vAfKganZTBsnH;JD_u)}_X$ZU&&P37AN zAESwJX7+uJ;QIbwrccHu6<#hoQZs<51)VmO8VsxV- z{hG0F?+V|AX@fUCGM;%Bma1?UVXu2oaxv3JRn$G{a|eK)H`*0OmyZP|Hg!zNf`|G(#w9@rtkCggYL&aqA4{q&350&17XBbid*ywt`g~^cm39yk_j+Y z`iQ%hBZ8TVln0?V-;%jWxLa0^2u2;FWix?qw=Bi?>U?X#Bq~bWaW-w-WqtID(c|<8 zgI{cGf!&-=?@K+-xDyxH^_$b_32BU#TxJXGS4M@hizZ%jco2vnPbSXoe?iLfJx|D{ zi^oIpj}QlnF5%wJp zjGI5%ouV$f0pXjN-x742j1)YYf^p|3;4z4P1n|ePx;u0?0FRu$-Lny�bq4|37$t z3TXphhHuZ@U&Q{zAV;6!t+$B==ySZafOhi>`VwD8U(r0?v2ZTln|n+7-?7;$Jew(e z4?kkLNccXS)fZmx+|)bDH%;rmG@?5&csJ5;CYtvq<~6lA+V_F#L4(1E(bx1%gH!6z zTN?NSo2{JgWpY}i2MtcS*xKBUcQnw>X&IbWI&g}QIN>xHaVpVL2B+b6PV1SRmSHK4 zQwyizc23X1>AMb`;>1cgjYgav(xVJc-jaXbTfhVhK!nRrhh z615X`T8N%c(zctvh29)Jjhe(H5`Po(Dr}$=JfkfPZfz4Y={Zi5&{-J0z_UXfvwnY5S@*hGf~0T-yk@Z)u~`(Atyot_H&o<*zXetM%D)DW3QyQ4gWf>d3vwbFWw#$HvAA)%|TY9yQpKP*q&$r%-l3MY} r!1+$fNjb9UIxue3m)SQ1dpQpBQy_Om&LcR4$#0#)QLf{>KL+>)f}xNa literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class b/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..3f4a06666c29c7deab1a57027fab58b2b0bef79e GIT binary patch literal 662 zcmbVKO;5ux40SeGxA8T&apDR>A}3A-q#?us6)|lR_pHfEN*hOM3fh@}#epBdk3x8; z-KL32h=b!eww|9~{Q33%0RWe95I}>$d5k&Fajb+dxUiZ#WwFp6-INa;$};wNQ#}pm zsQ@+@^iuI6cqUB3AI7PQeE=;2M3?ZwI&G4P6S;at_spg6f~Qt2qu*Jv0Az4D(MDcR z>z;ih>$VKi<7ky;j#6cFhT)og4H2HKDX81c3u&x-<)2Uv#EiXHu3*r%l@fH7l?V(v zBb^xGOQ#sTMXO?j(Z7Va_$$$+h7p=1yb2j~M_9U8-Rg`e9j(r`Q2T5~mLwmR#_L=? z>Ozk*)i(yc@EQ$`eEKW>g7i@6r&jR=T1danph>n#i^XU&0%%jzp{Ubxfro(s E0A$GsL;wH) diff --git a/api/target/classes/com/mobeats/api/service/DepositoService.class b/api/target/classes/com/mobeats/api/service/DepositoService.class index 4ccce6ec4b5d466a655f58a4bd5bffb9fe8d01a6..f161d69f5d647872310d19e60c1c6c57dfe4adcd 100644 GIT binary patch literal 3037 zcmcImYje{^6g}&NI5EO;Lr4Op)X)HV5X7s6VjfKb;ZYN4oQ6{R+Sr?9iL7;{b!h%c ze?~jgfgzpg^mC`bsnfgC%2w3J%`E5W~#B(q_o6NxwGh zd1TGRWI6J*sio(ZWvCsuY%iND3&(@ z^_=0nWr)1!2DEmjP0!*4!?Dh|)m2S+t$>>-k2^StQw+T!-x3U`(yqjXkvNk^&rx+u zIGDr~!yv^Vse(9^7t$a$9Wsd+Cd7Z2oPO=wqS9BmLwnp@vgY&pR zqG2L>D9vdlCs(q##Bi~bTl`QJQ8wKr5vpcT6^lwQsHR`Lo%|UB!$%G-;|jxQoo|YH zHD1*!*mikK!JTbt^;`y`R-)w1Q(h?(W$BB>W_?uz%beh; zw92Z=y%iovv$r36^@b$A$*!LKhn^+^lVj?qB+aBfP?76C*Uf-fE+uJdHQBW;?A?`D zxn)9S_H(JuLd-ML}CZS+{Bxhy4~zBg{DAa2t)Br zaAZTXQQKw1Qdbqc3FIwo8cb}uB{Y{F`99|H`f81jceLC1Ifgr37IZVbMbVp_RHA-Z zkfwTulQ`Sqe%1^snv{DMYDgIpN^duWYsCq!FsGCbb-){OF2lh-tmN<*Uu5yb!IyZ- zaH4$@Nq{47N z!_(q#|1+k1y>5CyTjY7}c@?QeserFLC!HO<6s&K}r2WppLp&;AmEkhA+J6{lC4#Eu zAh4Fjx*2O5G`zav9)~ENbPMssVfgX?kF`zB(^PKuIC?tc){kclN0JgP(j+aenHgSG ze(~znB4cpw`MwC|JsyT4%%aY4vdiba$|eg%XXooh>ADox7@bD_bhQE<7#VX{qP0Z3 zK3cEYl`dSgyG}coRz~Z-sh40s(@O?7tPpSjH|gB~kN`fxEUh%*Fho*D`I1%6P5pxG zD;!|>iN2;04yF)t7GXY;xkb8kT3e(Ft;Xb0gEajL2Q!%7!6@(o@BWVCZP+||j2H?S z!w9X$z>!$h!kfRhu|V*5=-)m@8)Nld+_PMBmMd?$KFDAfg$WJlLez%Nx1jU5k5Ajs z_ao>s9$09P)?TALHT?po7iZ4A0KK?|Xyz3P|>PR05y!lTv~W6&Z| zXGnS^GNLE)Zy*!-w+Iw+rYFfZlbI_NCgVl^S6qBDwSy0Vm-x6H#@NTPRCe+a5s3aX l(#v3}RWudaFVkbP{yE`(g>S%7C47lZ`ktdV4?Y?={5SpvKe_+_ delta 199 zcmcaBK8ua()W2Q(7#J9A8RR!|aWYQsW!^P8lEr1RA)8M+gCYY50~1h^5lC_~@BnFH zAdd}5ivVdRAk7Nqi2`~0KprEIX4Trxz_<}CEe0e(iWz`f#la+40fPjCB#_6*AjlvD lG(>drNls~NgjyjawOmlOQb6@g4AMX>17^v>9U{lT0050_5TpPA diff --git a/api/target/classes/com/mobeats/api/service/MovimientoService.class b/api/target/classes/com/mobeats/api/service/MovimientoService.class new file mode 100644 index 0000000000000000000000000000000000000000..3da61d67345577dcf7435852a4a30d8b057a245c GIT binary patch literal 5968 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 L`~`o*KhX9c`MKv1 literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class b/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class index 1727c81ba3a05dda0f419d312d1d210a7058067b..ae88d05f59974cb34e75a37aeb1cc10b88979e9c 100644 GIT binary patch literal 3530 zcmcIm`*Raj6#i~nNE_A=3T-K<1SpukSP&3w0BK7LXlSviMMTltrKmL018-R=WK8_f}L_w9! zvRV<`b4^~6rYoG9EC}<4s>!kxwx^b4MdgFtIJy~9_jrw)7PnW;g_V1v;4$nkH%Kpv zigKl=oCgeNbIlfZuLsh$6x6ydZ7qU1I3Uj4U&B�nEpbO6#=tY8I zcTU=3zFJ-p&JriP41GCO;MOvCr2Y;!yS+6@j+iaMJvDt~zkgMDQ<#{q`Z|A7?) z&toq`yd>=+#SjG37|Ha5>qX)x6U5@zNKVlnj^$| zx)v(BFu0ZNqsksOa16(ZV9GQx6jcpfsVkPMc0sF}`D&$NN#SG@$Y3;%5n`k+wuNtC z4C4&Dlrw9&Vrk7$8w{sH3qEnJfT5p}cFD$Zf?>FsfOh0jvo&^>&TgtXxwLgdcx$S7 zlj~;ighK_jui#Kmi$;1F<};l!@eG8WHSh|~Q7^f?MumDjn(;=mqDf##Hikx;ow-J_ zRV&3dvE7YY_POp1u)|mr)J7K#ynq)In80fWE@O(ify!*2vQA!Yb*LX^-qX{G>S+Qq z2CiV1MBOdX{-~#+DRVCdfmVq8YW3FO-DBj%wvIihP3kB zDk_GT$(v3}Y}l8dwX0>{*EbC;B2P$UBt$yhS;<6z^knUCWcP~jxU{G)dn{gFDe~cy z3|FIB_=hne?iYlg0drBfs_GQPyz=H$)h^C%olrl$-DaS5pqaoscsGta4R=~Vhk^HS zmnf@ot11>s|6bN1i+xli9~j_Rp_yCe>taUP1@7IF-WvUKJ#KrHgoYm3;y=>X;Z_2- zP}CO_v7X5L(a%YJCmm>P>+p6yp(hqYrtR(M(pV76dr%Q(C{7nlYFa7J^&DOa28f%$ zJy>z9GaT{9pI^$-uBmll=6vEvkcW4yfii3whct4wwiy15k{W6T;Mcfaw1hjHQ)<0h z$+m_Y*=bN*BB!I`ogW4!pROAn&>`{+x2(MMM0WR1$mYflM_LLMJrG<2Z(*6_9ENjk zTCRgC%%)IH;66TzgWgNSEqM=$A*iFd;B})5>|=%>{{LKum3Sw@O`DnCCT|-(_>3Xl zSg2`w#HCBRd(+BJPfn&8gK^!qg)?Ju*A;FYUoxC{wz;L>NqXk#85YMwhGQ)$Y*&DB ze9Q3S(?#jM7*s0`6W3kzx?qUuhZL=G`qFDpxYF~HzIM@Co16Xe$}oIuk>K37sh5U<5k34V}b!yjq7o??X=_8$v&%wVU?FN5?jCVSZwK6PGqI zt=G9tT-R%E6F0TtiN|O*JV0y#hlr^(k#LyeIzkCL>N_$T;BGrI9>z$vutYA!Nb9)o zT$dkrZ_JN-2}mV$*OSjW&!-4RN4Mu!+`2vb3vNHb`@ka<>KP8gAM~wiO1dHF{}@W! pRkTXqYxLJgyNdYu5FTpygn&QA=i&Yr^a%Ls@({kpH~0=ie*@n*;`9Ij delta 72 zcmX>leT0qc)W2Q(7#J9A8RR!|l`?X$r)B1)IOgO`p31m_S%^V+@;3I+$!6U0j7*cm axI09d7-WEonHXdl*nu<~10#bR0|Nj9+7I3U diff --git a/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class b/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class new file mode 100644 index 0000000000000000000000000000000000000000..da7e09bc085e91a5a093d331ef91074ea299ac63 GIT binary patch literal 3989 zcmcInYf}_Q6g|Bl3+srRMR^!Ch^VlFBT=Jai3tz!krfRPj4>u@b{iO(o!-pMg5+Ud z=AC@c&q%6LSemL-KBw}VQn@{k-C+k1Q5WJxc{dBI&r z=Ve28guP-EgnrYO#Y(}I6QV2~!<94scZLJyx{>L?!d_!IpRbQ+S4U$ZYmT|yXvN+n z(i)yahT+_Qio%dwFs$OJX)-Kn7q2S~|9LBi@$*SxeAH#ja-tb%gYXDa2gX$U))!a*EL;;@Dn z&`lg`1Va#p-O|2fI%0Ooma7ay0fIM+c));XlzI|949DyBE6JiTV+){E@6~V&#~B(O zz9PsoIwe1W!bwF@Qj|q~8v2oC=pZfXv&ENoI2tU_XJ^bvsv{WCFo;tm2?30A%QcFe z)~mX*9v?5NGCr+g2rrVc6E$v&GniA>XEmI|OMd8(J3|j8&G!5}UKcdHjA0+D=6tm8 zX}tk?xHCEZC`v5J?%kqi}?%NnlWDy?^kFN<+$6}WrLaF^)KacOlNhTgc^k-atJ z+6HZr6ejSxDpq-h{ZWTtTv2VnWrnWl3axob%o&a`Z;DaNk}g*pijXekrM;*-WfgJ3 z<|VNz?PZ;+nC0jToXVEHrt_+UK3Z|*s$q*_juL&G_5#D+ykUu{N@-r$vz)?HV&!Fl zn{(VYR6qFG=q?$AHxygjr_@OT>ZApxS`=o86D|gYYnd??E$&uqf*pxfs*xDj=G!-S zkx(+_x^k>)S~?=Tw?pXDb>S|_;!Up9a)nJS+6y+7eGw82`7umCEtNx4Dh>6?v;|cn zP*0Rf@6Ns3E9K&*T<4=H-llvynjtmgRgpb$x;q>OET&|RJkxdoUs>qiOj9_OYxW4I!h2Hi{cg(W3=WRqAc>eyb@u!w~;)NO5(^KK_eK%qWTp+43iut2>B zDSV30lK5O55ns?j5L*RbF#pt;^b0h@&;P&j!9v}MtkfpAntBzR@sLufK5@J00P0>) z=VG_Cx`&6mSu?(lT!`c24BA!8685;s9Y;7xe8+Gsrp;!_mc$QKT(&o*o4uczbfIac z0~&P1C)Bl`+9~QaQG0{hW@_ob0X=V0Pp6hqyDR$$>{oh8;0=1JVPFrY>8S#c0cJ2u zEyJ5o=f843OFcD~%KnDrW9(u0g?iBlZIKA6Ai|tybBjFb!WcxlMXjRTp(34pjJ5<$ zK0ybtj_3cxky_Xc8kHH*=|q}t-|h6SNVfa#0fe%63%3d4Z5rFfsH2$Q!8-xoSb*0W z;2lk11B^faLy^#})zGcDi+5|G?|Px%!}~$#htw*L1KE@7I59Oiunv0BReNR~=T)0q z$Eyl>@GLHeUB{2oyn1n%?&NBYSwC)-$Urbh!U88s3GzDbk!$eg-IDO; z%{_wiCp$&_89A1(DUW*C+V{!@c{jU8H`ZNR;gvH)UqhjLL|t#El#Zn zq*JPDken)^F3??1B~JuGLoGUzV%~>8E9@2c)7<8QUVt^-ZI6#iNkE wON5?)QQa~3sJ~3V9vU-=or4PQ2X7zJ+b4wirT6>_-;iC3`rqPv{D`i90R);+0{{R3 literal 0 HcmV?d00001 diff --git a/api/target/classes/com/mobeats/api/service/ProductoService.class b/api/target/classes/com/mobeats/api/service/ProductoService.class index a154e31cd91618c481cf0ad2f7f77793d5948597..7896a74ed10d912c63d5495d570df0cc61268817 100644 GIT binary patch literal 3722 zcmcImX>$`t5Pc&XWXp@JC}0~xKo|o)5X<2Nf`G&}m?OeCwqrubHI~Nq;?<6_yRva^ za^E3WRenZNl`;jXO67AZzbTcTJ*1Unz)4j;XlF;${rb)8o}T^l?|Z)kIE^0@h@mBp zRt=l5nIUz9FLT}G)`EUz?uID144Y3Gmf@aZXz3rAZATm0<49=efW~m3AWM2l&I#^1 zIxic#BkX0PAoNLF7Apl;PWy9)bUFBEN|dEzxYAx_(DRM{c6GH1QFF+3Ac@X6QW_pX znj!nIycy#2hE*IfO=8nOkoR_4aSco#TAPDkxWdx>7EihOl!9?8M`7?9#9s8RA$Y z7zSbJkoGy#5i^UnTwyp8MDTXe3>ff?QjepTVOOJWC0P_^RdA(ppN4(d&(P}dWx=pN zx)r}L!p%g{6I31j8U`@P&`BDERp3i`Gzt>v@n9w-$sQckki{X&9sy4960zADX3vW~ z?b-%ut4t4TID(^O>V&4-qA>%@fmvlctlmr1pBT*C79#9%I%DXr|}G}k=vy0ueJ7H^23d47*mcNv zsS0hfBxViAm@~zQWl5K-dMCsad1)``PFdw`-lmkUNP9`ACSp1IJg2TQNq=1y?xHMCawUc< zY>JvJ*wj=-$b(_D|6!4ux7k328e2$&A@eXe;!r6U>o`m`mBPb7Ho&PfK=7`}2_6HeE*R9vp`%Mo4$HEcC#fBBe&9bRE~`WxuwZ z&dsPKu#A;BZfaP?8w|ZQF%4^3E(tyFNkJYwIEU1js3L2#zoJqEPJVz3+$x&F>B~#G zR4GRj6SUn(s_GnPh|HAq+~ z++sLRNB=+c*c?H9prAg~P=ZCXj}!O=pT_Z->b##*e{ITwFPPtq$NhfD@YDaVe2}Q? zkxZ>~*Eg!zhA$a*gawllRJ)Z;`o+f zUy~;56iFVIYx1Shr zGBHSsAEeLuY=m95$}U@FmxW1riIH_zGdmMVB~!S2Dqmaa9!i?ed>H)H8?$EE7)?8xuCf>$-!Q1=v X_7TPW!h3#&Z^$k|^V|3iKVbVmff$?3=9mm4DuVfI2k7=ucA6t}cBLah*zS}v$sDWG~L25BIc0kdS`4v}ME002Cv5B2~6 diff --git a/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 36f8142..8f9a9a3 100644 --- a/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,14 +1,22 @@ /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/DepositoController.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/MovimientoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/MovimientoController.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/DepositoRepository.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/MovimientoTipoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/Movimiento.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/Producto.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/DepositoService.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/MovimientoService.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/ProductoDepositoRepository.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/ProductoController.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/exception/ResourceNotFoundException.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/Application.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/model/Deposito.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/ProductoService.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/repository/ProductoRepository.java +/home/pc-1/Descargas/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java /home/pc-1/Descargas/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java From 61f9a03335e2f7b7782aa4cceaee0cfd4b4f16f8 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Fri, 20 Oct 2023 11:22:37 -0300 Subject: [PATCH 04/22] Add files via upload --- .../api/controller/DepositoController.java | 2 +- .../controller/MovimientoTipoController.java | 95 ++----- .../java/com/mobeats/api/model/Deposito.java | 100 ++++--- .../com/mobeats/api/model/Movimiento.java | 9 +- .../com/mobeats/api/model/MovimientoTipo.java | 10 +- .../java/com/mobeats/api/model/Producto.java | 265 ++++++++++++------ .../mobeats/api/model/ProductoDeposito.java | 6 +- .../mobeats/api/service/DepositoService.java | 2 +- .../api/service/MovimientoService.java | 47 ++-- .../api/service/MovimientoTipoService.java | 4 +- .../api/service/ProductoDepositoService.java | 3 +- .../mobeats/api/service/ProductoService.java | 9 +- .../classes/com/mobeats/api/Application.class | Bin 719 -> 719 bytes .../api/controller/DepositoController.class | Bin 4547 -> 4605 bytes .../api/controller/MovimientoController.class | Bin 2426 -> 2426 bytes .../controller/MovimientoTipoController.class | Bin 4833 -> 3100 bytes .../api/controller/ProductoController.class | Bin 3024 -> 3024 bytes .../ProductoDepositoController.class | Bin 3245 -> 3245 bytes .../exception/ResourceNotFoundException.class | Bin 686 -> 686 bytes .../com/mobeats/api/model/Deposito.class | Bin 1879 -> 2388 bytes .../com/mobeats/api/model/Movimiento.class | Bin 3807 -> 3824 bytes .../mobeats/api/model/MovimientoTipo.class | Bin 2814 -> 2813 bytes .../com/mobeats/api/model/Producto.class | Bin 3323 -> 4417 bytes .../mobeats/api/model/ProductoDeposito.class | Bin 3277 -> 3452 bytes .../api/repository/DepositoRepository.class | Bin 437 -> 437 bytes .../api/repository/MovimientoRepository.class | Bin 443 -> 443 bytes .../ProductoDepositoRepository.class | Bin 662 -> 662 bytes .../api/repository/ProductoRepository.class | Bin 566 -> 566 bytes .../mobeats/api/service/DepositoService.class | Bin 3037 -> 3103 bytes .../api/service/MovimientoService.class | Bin 5968 -> 6221 bytes .../api/service/MovimientoTipoService.class | Bin 3530 -> 3534 bytes .../api/service/ProductoDepositoService.class | Bin 3989 -> 4046 bytes .../mobeats/api/service/ProductoService.class | Bin 3722 -> 3833 bytes .../api/DepositosApplicationTests.class | Bin 544 -> 544 bytes 34 files changed, 318 insertions(+), 234 deletions(-) diff --git a/api/src/main/java/com/mobeats/api/controller/DepositoController.java b/api/src/main/java/com/mobeats/api/controller/DepositoController.java index 1815784..40791e7 100644 --- a/api/src/main/java/com/mobeats/api/controller/DepositoController.java +++ b/api/src/main/java/com/mobeats/api/controller/DepositoController.java @@ -77,7 +77,7 @@ public ResponseEntity updateDeposito( .findById(depositoId) .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + depositoId)); - deposito.setName(depositoDetails.getName()); + deposito.setNombre(depositoDetails.getNombre()); final Deposito updateDeposito = depositoRepository.save(deposito); // Cambio de variable a updatedProducto return ResponseEntity.ok(updateDeposito); // Cambio de variable a updatedProducto } diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java index 1d85ad5..6299ae0 100644 --- a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java @@ -1,7 +1,6 @@ package com.mobeats.api.controller; import com.mobeats.api.model.MovimientoTipo; -import com.mobeats.api.repository.MovimientoTipoRepository; -import com.mobeats.api.exception.ResourceNotFoundException; +import com.mobeats.api.service.MovimientoTipoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -18,69 +17,29 @@ @RequestMapping("/api/v1") public class MovimientoTipoController { - @Autowired - private MovimientoTipoRepository movimientoTipoRepository; - - /** - * Get all users list. - * - * @return the list - */ - @GetMapping("/movimiento_tipos") - public List getAllMovimientoTipos() { - return movimientoTipoRepository.findAll(); - } - - /** - * Gets users by id. - * - * @param movimientoTipoId the user id - * @return the users by id - * @throws ResourceNotFoundException the resource not found exception - */ - @GetMapping("/movimiento_tipos/{id}") - public ResponseEntity getMovimientoTipoById(@PathVariable(value = "id") Long movimientoTipoId) - throws ResourceNotFoundException { - MovimientoTipo movimientoTipo = - movimientoTipoRepository - .findById(movimientoTipoId) - .orElseThrow(() -> new ResourceNotFoundException("User not found on :: " + movimientoTipoId)); - return ResponseEntity.ok().body(movimientoTipo); - } - - /** - * Create user user. - * - * @param movimientoTipo the user - * @return the user - */ - @PostMapping("/movimiento_tipos") - public MovimientoTipo createMovimientoTipo(@Valid @RequestBody MovimientoTipo movimientoTipo) { - return movimientoTipoRepository.save(movimientoTipo); - } - - /** - * Update user response entity. - * - * @param movimientoTipoId the user id - * @param movimientoTipoDetails the user details - * @return the response entity - * @throws ResourceNotFoundException the resource not found exception - */ - @PutMapping("/movimiento_tipos/{id}") -public ResponseEntity updateMovimientoTipo( - @PathVariable(value = "id") Long movimientoTipoId, @Valid @RequestBody MovimientoTipo movimientoTipoDetails) - throws ResourceNotFoundException { - - MovimientoTipo movimientoTipo = - movimientoTipoRepository - .findById(movimientoTipoId) - .orElseThrow(() -> new ResourceNotFoundException("product not found on :: " + movimientoTipoId)); - - movimientoTipo.setDescription(movimientoTipoDetails.getDescription()); - movimientoTipo.setName(movimientoTipoDetails.getName()); - final MovimientoTipo updatedMovimientoTipo = movimientoTipoRepository.save(movimientoTipo); // Cambio de variable a updatedProducto - return ResponseEntity.ok(updatedMovimientoTipo); // Cambio de variable a updatedProducto -} - -} + @Autowired + private MovimientoTipoService movimientoTipoService; + + @GetMapping("/movimientos_tipos") + public List getAllMovimientoTipos() { + return movimientoTipoService.getAllMovimientoTipos(); + } + + @GetMapping("/movimientos_tipos/{id}") + public ResponseEntity getMovimientoTipoById(@PathVariable(value = "id") Long movimientoTipoId) { + MovimientoTipo movimientoTipo = movimientoTipoService.getMovimientoTipoById(movimientoTipoId); + return ResponseEntity.ok().body(movimientoTipo); + } + + @PostMapping("/movimientos_tipos") + public MovimientoTipo createMovimientoTipo(@Valid @RequestBody MovimientoTipo movimientoTipo) { + return movimientoTipoService.createMovimientoTipo(movimientoTipo); + } + + @PutMapping("/movimientos_tipos/{id}") + public ResponseEntity updateMovimientoTipo( + @PathVariable(value = "id") Long movimientoTipoId, @Valid @RequestBody MovimientoTipo movimientoTipoDetails) { + MovimientoTipo updatedMovimientoTipo = movimientoTipoService.updateMovimientoTipo(movimientoTipoId, movimientoTipoDetails); + return ResponseEntity.ok(updatedMovimientoTipo); + } +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Deposito.java b/api/src/main/java/com/mobeats/api/model/Deposito.java index 2d16e0a..223b82e 100644 --- a/api/src/main/java/com/mobeats/api/model/Deposito.java +++ b/api/src/main/java/com/mobeats/api/model/Deposito.java @@ -3,42 +3,76 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; import jakarta.persistence.*; +import java.util.Objects; @Entity @Table(name = "depositos") @EntityListeners(AuditingEntityListener.class) public class Deposito { -@Id // Anotación para marcar un campo como clave primaria - @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria - @Column(name = "id") // Nombre de la columna en la base de datos - private Long id; // Campo de identificación - - @Column(name = "nombre", nullable = false) - private String name; - - // Getters y setters para id y name - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public String toString() { - return "Deposito{" + - "id=" + id + - ", name='" + name + '\'' + - '}'; - } + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "nombre", nullable = false) + private String nombre; + + /** + * Gets id. + * + * @return the id + */ + public long getId() { + return id; + } + + /** + * Sets id. + * + * @param id the id + */ + public void setId(long id) { + this.id = id; + } + + /** + * Gets nombre + * + * @return the nombre + */ + public String getNombre() { + return nombre; + } + + /** + * Sets nombre. + * + * @param nombre the nombre + */ + public void setNombre(String nombre) { + this.nombre = nombre; + } + + @Override + public String toString() { + return "Depositos{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + Deposito deposito = (Deposito) o; + return Objects.equals(id, deposito.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Movimiento.java b/api/src/main/java/com/mobeats/api/model/Movimiento.java index 8c73912..c68e51b 100644 --- a/api/src/main/java/com/mobeats/api/model/Movimiento.java +++ b/api/src/main/java/com/mobeats/api/model/Movimiento.java @@ -3,7 +3,6 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; import jakarta.persistence.*; - import java.util.Date; @Entity @@ -16,7 +15,7 @@ public class Movimiento { private long id; @Column(name = "cantidad", nullable = false) - private Long cantidad; + private Integer cantidad; @ManyToOne @JoinColumn(name = "id_producto", referencedColumnName = "id") @@ -27,7 +26,7 @@ public class Movimiento { private MovimientoTipo movimientoTipo; @ManyToOne - @JoinColumn(name = "id_deposito", referencedColumnName = "id") + @JoinColumn(name = "id_deposito_destino", referencedColumnName = "id") private Deposito deposito; @Temporal(TemporalType.TIMESTAMP) @@ -42,11 +41,11 @@ public void setId(long id) { this.id = id; } -public Long getCantidad() { +public Integer getCantidad() { return cantidad; } -public void setCantidad(Long cantidad) { +public void setCantidad(Integer cantidad) { this.cantidad = cantidad; } diff --git a/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java index 94f587d..8530e20 100644 --- a/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java +++ b/api/src/main/java/com/mobeats/api/model/MovimientoTipo.java @@ -50,7 +50,7 @@ public void setId(long id) { * * @return the nombre */ - public String getName() { + public String getNombre() { return nombre; } @@ -59,7 +59,7 @@ public String getName() { * * @param nombre the nombre */ - public void setName(String nombre) { + public void setNombre(String nombre) { this.nombre = nombre; } @@ -68,7 +68,7 @@ public void setName(String nombre) { * * @return the descripcion */ - public String getDescription() { + public String getDescripcion() { return descripcion; } @@ -77,7 +77,7 @@ public String getDescription() { * * @param descripcion the descripcion */ - public void setDescription(String descripcion) { + public void setDescripcion(String descripcion) { this.descripcion = descripcion; } /** @@ -100,7 +100,7 @@ public void setSaldo(SaldoEnum saldo) { @Override public String toString() { - return "MovimientoTipo{" + + return "Productos{" + "id=" + id + ", nombre='" + nombre + '\'' + ", descripcion='" + descripcion + '\'' + diff --git a/api/src/main/java/com/mobeats/api/model/Producto.java b/api/src/main/java/com/mobeats/api/model/Producto.java index 92f8f96..d9fa54f 100644 --- a/api/src/main/java/com/mobeats/api/model/Producto.java +++ b/api/src/main/java/com/mobeats/api/model/Producto.java @@ -1,100 +1,193 @@ package com.mobeats.api.model; import org.hibernate.annotations.UpdateTimestamp; -import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import jakarta.persistence.*; import java.util.Date; +import java.util.Objects; @Entity @Table(name = "productos") @EntityListeners(AuditingEntityListener.class) public class Producto { - @Id // Anotación para marcar un campo como clave primaria - @GeneratedValue(strategy = GenerationType.IDENTITY) // Estrategia de generación de valores de clave primaria - @Column(name = "id") // Nombre de la columna en la base de datos - private Long id; // Campo de identificación - - @Column(name = "nombre", nullable = false) - private String name; - - @Column(name = "descripcion", nullable = false) - private String description; - - @Column(name = "precio", nullable = false) - private Long precio; - - @Column(name = "cantidad", nullable = false) - private Long cantidad; - - @UpdateTimestamp - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "fecha_actualizacion", nullable = false) - private Date updatedAt; - - @Column(name = "updated_by", nullable = false) - @LastModifiedBy - private String updatedBy; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public long getCantidad() { - return cantidad; - } - - public void setCantidad(long cantidad) { - this.cantidad = cantidad; - } - - public long getPrecio() { - return precio; - } - - public void setPrecio(long precio) { - this.precio = precio; - } - - public String getUpdatedBy() { - return updatedBy; - } - - public void setUpdatedBy(String updatedBy) { - this.updatedBy = updatedBy; - } - - @Override - public String toString() { - return "Producto{" + - "id=" + id + - ", name='" + name + '\'' + - ", description='" + description + '\'' + - ", precio='" + precio + '\'' + - ", cantidad='" + cantidad + '\'' + - ", updatedBy='" + updatedBy + '\'' + - '}'; - } + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "nombre", nullable = false) + private String nombre; + + @Column(name = "descripcion", nullable = false) + private String descripcion; + + @Column(name = "precio", nullable = false) + private Float precio; + + @Column(name = "cantidad", nullable = false) + private int cantidad; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "fecha_creacion", nullable = false, updatable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") + private Date fecha_creacion = new Date(); + + @UpdateTimestamp + @Temporal(TemporalType.TIMESTAMP) + @Column(name = "fecha_actualizacion", nullable = false) + private Date fecha_actualizacion; + + /** + * Gets id. + * + * @return the id + */ + public long getId() { + return id; + } + + /** + * Sets id. + * + * @param id the id + */ + public void setId(long id) { + this.id = id; + } + + /** + * Gets nombre + * + * @return the nombre + */ + public String getNombre() { + return nombre; + } + + /** + * Sets nombre. + * + * @param nombre the nombre + */ + public void setNombre(String nombre) { + this.nombre = nombre; + } + + /** + * Gets descripcion. + * + * @return the descripcion + */ + public String getDescripcion() { + return descripcion; + } + + /** + * Sets descripcion. + * + * @param descripcion the descripcion + */ + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + /** + * Gets precio. + * + * @return the precio + */ + public Float getPrecio() { + return precio; + } + + /** + * Sets precio. + * + * @param precio the precio + */ + public void setPrecio(Float precio) { + this.precio = precio; + } + + /** + * Gets cantidad. + * + * @return the cantidad + */ + public Integer getCantidad() { + return cantidad; + } + + /** + * Sets cantidad. + * + * @param cantidad the cantidad + */ + public void setCantidad(Integer cantidad) { + this.cantidad = cantidad; + } + + /** + * Gets fecha_creacion. + * + * @return the fecha_creacion + */ + public Date getFechaCreacion() { + return fecha_creacion; + } + + /** + * Sets fecha_creacion. + * + * @param fecha_creacion the fecha_creacion + */ + public void setFechaCreacion(Date fecha_creacion) { + this.fecha_creacion = fecha_creacion; + } + + /** + * Gets fecha_actualizacion. + * + * @return the fecha_actualizacion + */ + public Date getFechaActualizacion() { + return fecha_actualizacion; + } + + /** + * Sets fecha_actualizacion. + * + * @param fecha_actualizacion the fecha_actualizacion + */ + public void setFechaActualizacion(Date fecha_actualizacion) { + this.fecha_actualizacion = fecha_actualizacion; + } + + @Override + public String toString() { + return "Productos{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + ", descripcion='" + descripcion + '\'' + + ", precio='" + precio + '\'' + + ", cantidad=" + cantidad + + ", fecha_creacion='" + fecha_creacion + '\'' + + ", fecha_actualizacion=" + fecha_actualizacion + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + Producto producto = (Producto) o; + return Objects.equals(id, producto.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java b/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java index 1a1da20..780da9a 100644 --- a/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java +++ b/api/src/main/java/com/mobeats/api/model/ProductoDeposito.java @@ -17,7 +17,7 @@ public class ProductoDeposito { private long id; @Column(name = "cantidad", nullable = false) - private Long cantidad; + private int cantidad; @UpdateTimestamp @Temporal(TemporalType.TIMESTAMP) @@ -56,7 +56,7 @@ public void setId(long id) { * * @return the cantidad */ - public Long getCantidad() { + public Integer getCantidad() { return cantidad; } @@ -65,7 +65,7 @@ public Long getCantidad() { * * @param cantidad the cantidad */ - public void setCantidad(Long cantidad) { + public void setCantidad(Integer cantidad) { this.cantidad = cantidad; } diff --git a/api/src/main/java/com/mobeats/api/service/DepositoService.java b/api/src/main/java/com/mobeats/api/service/DepositoService.java index bc0e5f5..bac2f31 100644 --- a/api/src/main/java/com/mobeats/api/service/DepositoService.java +++ b/api/src/main/java/com/mobeats/api/service/DepositoService.java @@ -30,7 +30,7 @@ public Deposito createDeposito(Deposito deposito) { public Deposito updateDeposito(Long depositoId, Deposito depositoDetails) { Deposito deposito = getDepositoById(depositoId); - deposito.setName(depositoDetails.getName()); + deposito.setNombre(depositoDetails.getNombre()); return depositoRepository.save(deposito); } } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoService.java index 1ac0ce5..909fff0 100644 --- a/api/src/main/java/com/mobeats/api/service/MovimientoService.java +++ b/api/src/main/java/com/mobeats/api/service/MovimientoService.java @@ -14,7 +14,6 @@ import org.springframework.stereotype.Service; import java.util.List; - import jakarta.transaction.Transactional; @Service @@ -24,7 +23,7 @@ public class MovimientoService { private MovimientoRepository movimientoRepository; @Autowired - private MovimientoTipoRepository movimientoTipoRepository; + private MovimientoTipoRepository MovimientoTipoRepository; @Autowired private ProductoDepositoRepository productoDepositoRepository; @@ -38,9 +37,6 @@ public class MovimientoService { @Autowired private ProductoService productoService; - @Autowired - private MovimientoTipoService movimientoTipoService; - public List getAllMovimientos() { return movimientoRepository.findAll(); } @@ -54,30 +50,35 @@ public Movimiento getMovimientoById(Long movimientoId) { @Transactional public Movimiento createMovimiento(Movimiento movimiento) { Producto producto = productoRepository.findById(movimiento.getProducto().getId()) - .orElseThrow(() -> new ResourceNotFoundException("Producto not found with ID: " + movimiento.getProducto().getId())); - - ProductoDeposito productoDeposito = productoDepositoRepository.findByProductoAndDeposito(producto, movimiento.getDeposito()); - MovimientoTipo movimientoTipo = movimientoTipoRepository - .findById(movimiento.getProducto().getId()) - .orElseThrow(() -> new ResourceNotFoundException("MovimientoTipo not found with ID: " + movimiento.getProducto().getId())); - - - Long nuevaCantidad = movimiento.getCantidad(); - Long nuevaCantidadProducto = nuevaCantidad; - - if ("ACREEDOR".equals(movimiento.getMovimientoTipo().getSaldo().toString())) { + .orElseThrow(() -> new ResourceNotFoundException( + "Producto not found with ID: " + movimiento.getProducto().getId())); + + ProductoDeposito productoDeposito = productoDepositoRepository.findByProductoAndDeposito(producto, + movimiento.getDeposito()); + MovimientoTipo movimientoTipo = MovimientoTipoRepository.findById(movimiento.getMovimientoTipo().getId()) + .orElseThrow(() -> new ResourceNotFoundException( + "MovimientoTipo not found with ID: " + movimiento.getMovimientoTipo().getId())); + + Integer nuevaCantidad = movimiento.getCantidad(); + Integer nuevaCantidadProducto = nuevaCantidad; + + if ("ACREEDOR".equals(movimientoTipo.getSaldo().toString())) { nuevaCantidad += productoDeposito.getCantidad(); nuevaCantidadProducto += producto.getCantidad(); } else { - nuevaCantidad = productoDeposito.getCantidad() - nuevaCantidad; - nuevaCantidadProducto = producto.getCantidad() - nuevaCantidad; + if(productoDeposito.getCantidad() >= nuevaCantidad){ + nuevaCantidad = productoDeposito.getCantidad() - nuevaCantidad; + nuevaCantidadProducto = producto.getCantidad() - nuevaCantidadProducto; + } + else{ + throw new RuntimeException("Estás queriendo sacar " + nuevaCantidad + " y en el deposito hay " + productoDeposito.getCantidad()); + } } - + productoDepositoService.updateCantidadProductoDeposito(productoDeposito.getId(), nuevaCantidad); productoService.updateCantidadProducto(movimiento.getProducto().getId(), nuevaCantidadProducto); - + return movimientoRepository.save(movimiento); } - - + } \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java index 0269b67..6f08745 100644 --- a/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java +++ b/api/src/main/java/com/mobeats/api/service/MovimientoTipoService.java @@ -29,8 +29,8 @@ public MovimientoTipo createMovimientoTipo(MovimientoTipo movimientoTipo) { public MovimientoTipo updateMovimientoTipo(Long movimientoTipoId, MovimientoTipo movimientoTipoDetails) { MovimientoTipo movimientoTipo = getMovimientoTipoById(movimientoTipoId); - movimientoTipo.setName(movimientoTipoDetails.getName()); - movimientoTipo.setDescription(movimientoTipoDetails.getDescription()); + movimientoTipo.setNombre(movimientoTipoDetails.getNombre()); + movimientoTipo.setDescripcion(movimientoTipoDetails.getDescripcion()); movimientoTipo.setSaldo(movimientoTipoDetails.getSaldo()); return movimientoTipoRepository.save(movimientoTipo); } diff --git a/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java b/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java index d760d21..a58a21b 100644 --- a/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java +++ b/api/src/main/java/com/mobeats/api/service/ProductoDepositoService.java @@ -8,7 +8,6 @@ import org.springframework.stereotype.Service; import java.util.List; - @Service public class ProductoDepositoService { @@ -37,7 +36,7 @@ public ProductoDeposito updateProductoDeposito(Long productoDepositoId, Producto return productoDepositoRepository.save(productoDeposito); } - public ProductoDeposito updateCantidadProductoDeposito(Long productoDepositoId, Long nuevaCantidad) { + public ProductoDeposito updateCantidadProductoDeposito(Long productoDepositoId, Integer nuevaCantidad) { ProductoDeposito productoDeposito = productoDepositoRepository.findById(productoDepositoId) .orElseThrow(() -> new ResourceNotFoundException("ProductoDeposito not found on :: " + productoDepositoId)); diff --git a/api/src/main/java/com/mobeats/api/service/ProductoService.java b/api/src/main/java/com/mobeats/api/service/ProductoService.java index f4423b7..1b64bca 100644 --- a/api/src/main/java/com/mobeats/api/service/ProductoService.java +++ b/api/src/main/java/com/mobeats/api/service/ProductoService.java @@ -30,19 +30,18 @@ public Producto createProducto(Producto producto) { public Producto updateProducto(Long productoId, Producto productoDetails) { Producto producto = getProductoById(productoId); - producto.setName(productoDetails.getName()); - producto.setDescription(productoDetails.getDescription()); + producto.setNombre(productoDetails.getNombre()); + producto.setDescripcion(productoDetails.getDescripcion()); producto.setPrecio(productoDetails.getPrecio()); producto.setCantidad(productoDetails.getCantidad()); return productoRepository.save(producto); } - public Producto updateCantidadProducto(Long productoId, Long nuevaCantidad) { + public Producto updateCantidadProducto(Long productoId, Integer nuevaCantidad) { Producto producto = productoRepository.findById(productoId) .orElseThrow( () -> new ResourceNotFoundException("Producto not found on :: " + productoId)); - producto.setCantidad(nuevaCantidad); + producto.setCantidad(nuevaCantidad); return productoRepository.save(producto); } } - diff --git a/api/target/classes/com/mobeats/api/Application.class b/api/target/classes/com/mobeats/api/Application.class index 16d82660374ca8ac64045f4307caeceb0792644f..633cf260eba6734fec6b2f18cc124c1da26517fd 100644 GIT binary patch delta 207 zcmYL>Ar8Vo6h!B5yWMu#0xb{}2xJ4np^D-VTmXVA63H1h0#ESV)5*M)p$G zC%T=9Id=l&U{=Lx$xiIDcp$#}TC=(u40Kpc3$Ul05_Hky5%;|EV?dl!@kD?7|JU3A L+Ap*l^;OJ&hPxHO delta 203 zcmX@ldY)DM)W2Q(7#J9A8DzN_m>8JZ8CZB2SQ*$R>L~%)920rvc)1w37`WLPcz76i z8Tck%*PYDCn8)IrpOQK;F>i7S6phgg2VqgSm1(N(go<5Lf1k$Wp+Zh-)f~5t3 zBuJWpft^7RNb*1wFbFXS19_YbA`GHHLqM9%z=km}a0sz$?O@;xN9YH+k^$%PyS;T8D+ diff --git a/api/target/classes/com/mobeats/api/controller/DepositoController.class b/api/target/classes/com/mobeats/api/controller/DepositoController.class index 8d75a927821897cfc211cbfe35582301b7f27ee7..089165a98849e158c79d12b9df1471483d854b16 100644 GIT binary patch literal 4605 zcmcInYjYdb8GerJcx`!W8v{0JNic~4JBhQT7)YZeZR}i&>=-*Wr73M!(y_hqYFF$Y z*>NeQ7wG*8z0j7+U!XIckfbvmJ~RDIojzwT(#jICCNq4HcK7UiectPS`oFvX0dNK% z8psLEl>Mqz^-I!Lp=H+`tL%F!@Lg91)_Ga;Lr3}ZjUxlS0wXu8uE+^MuN5CrXmK`+SHe@#$3Ih9=>z;C|a@7f)k}J=7p08}>_+BV*vgilvR#*!h zZ+$JWt8&{9HZ9uih1Qx~R(`N!*$oEkTwVFwP9Q53+jrXW9CcQpXKH#?pm*M{$UJ)R z1rr0v3k(+>PcGK0B^g|^sh9o~{j%+@+JU2=lfz!M;n0wFx9$lU^$)L0bbXNwp$owf3QqEjT0;x<}PzS%bEnL$+%Yc z$~p|zO1)Nd9T^nzcm~fJm}RCn$x`_yp2PD3gMM(q4du0sz~2@)k!XktqFrEOXQt^C z417i4;O>~W7DXNfoH1}(;HggCqeEVqIE$|mMSoM^c@|-pY?E_-WoNGLxD|Roh;x`X zFvpa<4|Wshae-Z`M2P}tvdA}r)}>foBxyzKdK=kYZp@GLy}-m?9fkrHq}uQ+jg)08 z8!88!9daq~D|L2Zfw`%@MLcg|CYaMAr^%`xIX-^cmo|PPx z*ouCBZ_0LawSDmo?;j~n5gmjd1$jaj+uABHaUg4BvLt6B!B|Rk{N~dIm`-;-L z0ejC$eAmSHV3Rm(5~)C9(>_NL^*R<_kkj@sZ| zsBBNsmzK0m{m(Rn{${;aXa_WN(!!|QL6*Gxm$Axw z^JWKTB6;3+-4#d4!f+p6+g&`#Xc@sz@~pVGOh~Me?#*}#-cO>B;OB|7Uz-RcX}{uG z9>2#Q4g5i1vMm;I3dY%cG2ZEQTE8vu?&ptxlKWy6x8 zNWZ`}^7Er^j2A6BG3PRG1-^k*8nYYDml_6svteKi=U9#h4LDnE{eb#4PO~k*zMKNP zICJb4zI6-V(XVIjAa>jfgXNUUEVmP`Dke39rcN1o2cdK#Y2 zCYVzs2+kC#+Kz|3{=kp=b{h0ao pQ~V6Si0*!g-{7}+hjf36{{Mn^NvHY$hJWCF?B@qb0Uz`Y{2!+W3G4s> literal 4547 zcmcInYjfMi6+KHmC{d`yDv4#gbt1b;BFPWfjgq*gtwxd`aYM_B`#SgR-HZSH@4>$S zT)>9~_%Yp+$6j6Z;-DMoc(u;0(S>g@Lsr1)l4w zaQ}%R2Luila1<{ZcnL3)aU{YrF%x()Wn7evHKpNX#*gA_2F{_xtwFl=sjRVN=ghj! z$_1U0Q+a%y`0UT2yjztK7j;^^(67p6PhIvxw{|IA8Rv;#FtCUvfr+}cEqOqzmU_ch zTYL(X<*GnnDr-JV+jh_AaYva#*iO|As~NJRN1PYB}qcZ|iyTvR`f4 zwAWcy9$K7eW{i1aVMq%XbqufBo35oopSI@G+%>Dk`HsTXeuPT%R65r+>|I$gD=aVB zh_6U>&1y6>B?Ja`EGMMZf|-^~x}zOTy^9M|sY{xAWjK|mx^;~!W=dR?a8|%{U10K2 zu~J);Vsy25O{y)gwqogGp`_1Ow;$ivo{%1EL1n&e*WM90)=tN!Gi|(lspkZ(SZXWf z8dH?BiP~t@=jA6?e6JRg!vc%bk3wqZQ5yta?A<3X$gt)}d%!pL8trHBV3gy#Cdp;j zqJwF!>qkb@yUA7gRwx6d%Qodk!v;0Ul$HXwI@0{8czZ9(JOU{tFG^+E4r%qy=Vz}c z+Vy_GSHeuHCLF6?saaF)@J*c&xY7|&Cu4f3^UTe`#Kyj|F?E`UbuGFbF59|{PNdmu z^=hZ|wf0#>yIb|*eWP09G~T`5cNdKa)hd4ZsF&O!7R5!+Q-SiWMqE#Vu|ez>2nz-sUN9-N3fH<84c`96?J7E4f(MGO-G^X8+AXoCw7RUbWnsBZH~3=WU0LQl=&* zcW~xSo1i{x+3meA#wH&wn{DC}%}bW!tl3JIieRa0?<|sThhV*1V8{L=11{=C{3LG7 z9;0a}QPoeis-GEfQ0MFy1^g1f%Hw_AN_@bEp(6`1VB`e5i_7r^FYwXlk9?A-TbWEX zyT1-6n;aUGvz-!i$O+onm+ojiALQVijD0*BLc(zz~RTy?aU^=R*$P;J;o5p1^DT*9y1+WnAMZungVTY2i7}^jcx|AIRUw7X<#sSysa{ z84ZO*!}Vy-O61fi6$-%JuWjJZ|x6 zKyU*Pd;0Azp5DfHxXy1~f$#FS8sK{zEL3P(`@Tq(It8PN?`95kc|SU($hiaY&Zcvt zkxRTXDNje<AXp{i>|HS;w*#~$9_yiYQ5yrG%j-rWaKN`gVYGJMX3@w+tYB4*tFj|k+ zb7(|C>2I#LIQOYH&T0U~`7!Pb>FE#fL;N^-dXG;(=e}P@|G&lWxlhZ_^3(4RgTweE K{*1rk(EkA=K>;2B diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoController.class index ed89055e3e9d9e4ce2e2373d7220d15d44ff2ae9..a9d1d54442e7fdca093a8347459e85de4281405e 100644 GIT binary patch delta 839 zcmZuvOK%cU7(Mqg%rMg_0=3lEN^7eHrbQI2w%7-y_N5XZiA{`&24T|DSjLn|Q)43W zA4u-Ph5i7Snwa`nxHU2E{UvU?Fn)JHaN*+K@4J_C&pF>=jv_~q-tWJ^d<8I%8ya|X zH51jKFobqW`=#{bQf(`J^U;o7cAEzU@sr<+sdLp@)m>olC6b#A%Cb|j4fxP&LWd!y zeU;{~xOn9g{W=(iO!%Q17)DIPDTZY8WpdC&1bqzQE!!gQ2{nkgA@2TMk(k{V3KaSCE zwg3nrOeZGeAo}Cfb3#b!Al*i34crH-;{+O#IYSqcBw&5O;2}=F^B#1`hyNiDbjU|A zO5&#pD}9c&WzPIZ<}4-%WlE7at${ic-b8o78{YVRQh4$Z$>JwWO?^g&qwB#S^B{g5 z<{bxX8l81refJC-FnB-2Cfl6 M{@q!ma9!2^0O8PPaR2}S delta 819 zcmZuuO-~b16g_WdI@6g>$I?PYt+j$mThIzhL7*dbr`Qw*<_YTD{gP3+UP0T^nK8791B5xSi-&XLUa6z{4R6 zF&90E%d$2iH$~1-x4kalC959@6aT;gj%g}?)_FBkTXjFaaiK=`hI=aBLbo42i39Wg~;`4QXvsG)< zn--?zH*K;fw&J%QH>$TQTa~AN%in5BOaIQIarsl^WX$yB3o|3r<{i0herbm}2SCvB zW5gjwCNWDih@1{>j!}Uqh@t#@h_`e!v z9Yo*ISM}|Eg490*;V!|sAgK^&@>qVJXY@Wq6N;`67uZ}WTP2lFOepf<9VAvh;PA*t z9M`bl2T%(K24G__Xq5>{+KFy2R^uYZ$!jyUhzX`ovOvw?5~k^e1QUQgQ8WJ$RYIBX zuKMU@p3x>|30xy5qGXmxsWjMKnS&J9=FQ(JW&>r(y{rRab|8maXDvk(32IAfB6F%w wcOvtO8X`$p;89v4YOgA|!lPr6R>M+I9jCVpq;U0s;u@|q!C{<6KW>=zA1PH~LjV8( diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class index a815e6a25f85cbecbecfe8bf0a447a7d3d9fa7be..b899621b4a834205a922986ae47c5b673c55cfed 100644 GIT binary patch delta 964 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 bu;3xpkhe(jQdx}KG!o*+8CuYQWzGBxjG~6A diff --git a/api/target/classes/com/mobeats/api/controller/ProductoDepositoController.class b/api/target/classes/com/mobeats/api/controller/ProductoDepositoController.class index 4edb350c7fc191891cb2e4d51701b377adbdc6f7..3c87f1e8c2345a25decf19a3eee3d80e51d040b8 100644 GIT binary patch delta 1113 zcmZvaO-~b16o%hB?Q}Y2S_(*ORcHYfT3V{06w6oTQ$z}=U(gBLtA#^ml(Eb7! zF^Dcq+?x1PT=)mnbEnNz5*PQLkDhzZd!Ei==rH8{{`<>U0He64K-!-f z3Mg<=sX*0Q)-`3a7{TEq&;JDxJ8Yz~F<`{#cC%VeuoHPo$2M%~OsPJ&7 zbDMivAK!7lYgNH;MuQBO2j|ePpp7B9|2i4g(2N#_;HGXa?HPr~>!vZK?;7QzX-qtu zD{!xz@p-17uIsyI(I}M_bn$QU5YxF|PV-mp1UFsJJ)&n!Lm0jM0UK8nNGj-K=;jeu zw@x1y^`j8k98*BE?svSw1gsHTf5GbIT|!<@R!q zbW`6e^8=~Gf4S0pURk!LO=?7Gj7ODD9&v>D8)bvNYLoSPb^G0%{v>@fc+ zMcoN32q`Hpxd-_l_m2v3BiN)&U?HneB&?gPOqLkZ-9S;2EECz-CukqYk>I0S6a#)V z(ydhsC~BgJ398io6!{Wbt=2xu2IvIWz{)s{is;-=3DLwI`-spH&c3%E)SCzYY3{b0 zhY_LS9aQV2*PXR7=l?V20xnXOCWds=36{}gZL|WZVy)jI2KOEzx^Rqm{4@F`)HQfW zJkUlY+ASTC>XVud(27I2Mr{SDG=`~qgz9BRX~BU0Ap$9|irvS>{Mzn9RHZ?n&yaVW zj({;ru^6bf%R8eRm*L~je^?-4WJ&#THriH wYLPsLy$1c7p#rgnDp^FcuD3WH3s|$Fx0M__F~3LY{zYD(o9>~q-{lZW)r;EHRi2Dy@C@4 z8gP;!$YV-SW00&(hM{);P3qu3Tov9XoKnzi;51qo`bCh@7O@gLk?rJG!p!iXd&Va! zwi!5svkZZF#^gT5&n3^YE*{zqbfA;#N&~;Enra;-=> zjq|j7&8ts6j+<#aX{E9X#11ksg#Yri@aLW-3W)Q2>Ina&1lb7xtPZkg1^+4kt$xj^Gy;Hn7MhanCeK6m z99cJ68Vv1W^1@`9xb1uk_L>e7dT1BVfDgU23jmSUhkmk5j0Cci+(({xQ#;>4*+=;+ zI*a^V5uo-T0JQ*c-U%9TIC&|3kk-&DSQf){^5X&(7tC%EluWi-fOqYqI(mTG&^t6r zDAobQUjrJUp~)%L?4;zX3$-X47coM(8ikJ1@04(v5?pjMhAVV(GYSCmq$2+zHGxTb zH$nCPP1h6cIE9q~M?xXtol$9NiqL*y=C~DmCw-yNaB{CA5#=eD?vmj?2|WT7(=@o%#3@ zsfvPHgn>DyHJ#dw(n&t1npfJCfIS{}6`W0BA# bEICM3bh<(Qa!HJv^d-c^8O^#5D<17HuP>E# diff --git a/api/target/classes/com/mobeats/api/exception/ResourceNotFoundException.class b/api/target/classes/com/mobeats/api/exception/ResourceNotFoundException.class index 201bc2f46b770ed0a30d4a132f458c815007da66..ed740e94450878566df8fbbddf9f65b886580e55 100644 GIT binary patch delta 113 zcmZ3-x{j6i)W2Q(7#J9A8D!ZRm?lP;F|#wUOca-&IKg0|nY8JZ8CZB2SQ*$Ry2($RDi7pxOyo72m~6z#;+&t7 zy76cXqX|1u9RmX+gA@ZN0~e6y2J)B~cz`TMkWL_*4=7>>q(SP~w6wP~Fis9-iUa^_ CQV<~k diff --git a/api/target/classes/com/mobeats/api/model/Deposito.class b/api/target/classes/com/mobeats/api/model/Deposito.class index dd3a2f1534cb400cd82532bddb9de9f4454f84ee..e3d7fbef86ea4431281a076bcdb266b7d46e74a8 100644 GIT binary patch literal 2388 zcmah~ZBrXn7(F)$gvLNAZD|X(MFj~jc71Er2HMg9Z7@JBNGy^PK10hrj=M_6LATe3?Z`;8NAA zTXk<;NgY_SVe`AD9BW!Nyuj9878!x=Ex98tN4gu<;`)}VYJrqp6A*I(7w$J*ZP(R` z9oXxRnsQxFOKp2@AaK62CAX!orPWY=UcRb`cHMS;PVM|YH~e5qA!MLJDIvyMQU z^~Uc1crf4cZX@(4PtPnYmzN(3w7Xt?-B$uVOtxRZlJ;$PgP~t;iJ;^;&AQ9uj4SJO z?QolpBUxCQoPjYXY}eK|1k#0(6DxDSS z+h!eaX7r{_f(9xtW}i6PHk2-tYv!9fK>(NYXhS>qgJ?ffm@`1S=at^{YWJj1*qUq$ zoS^4I%)pt#$Z-x#xYzUOL>G-2Zr}K9;kd2I(V@MFy&h6Amd7~W5I9$t+p6TbRjD7? zdXry)mab<0;lf;tILEh0s`{!a9l9LJ97(M>vTFE!E04GF4l%H(k|P5epFUDkxLM5M zD&EWDnn2fK%PXF{k;nV^Kp?wggthp{c+Vv%F*furVls;ffm5M(Q`=6g_#lrfVB3e2 z+{6eIB^_Yqv%D+}b7yry4Ov$oM(=l=D*V(NIF)@OKe^)5Bm&ydIOX^4rZC-(7@^P!fOQJ_kA z!6`kX+K^{~>5AuXSV6wtp^;N~33+aCbi~Kqe4pe_cfie4tLULIFB#78d6sS#--7S9(cjSf3qMjg&!>qF z2D`v#J~BWb`njTLagoo+ITf9aKE|b=c$jqVYw0||GE$-Q4Hjd{X&=4(1eXp|=Xegh z#u5j^2)*IDJx*_+Ma92Lt2Qc{FG2Ic15En`J;u<_JWOI5Z;5Fbg#%26T!U%s35NcQ z=_-?5dk&_E@fcHQh-u^i(=B8|p1KTA{0%+BC~yd_D`#b!lj)s!fq zY4l=-`?GB8oiO!42*)~L+`>)VVgVPao+*kTMPG7{be8|1;*xKMC6^d2lEwtjjf8qK zza#xH9iv%#iW!3=*^^45+@3gR2IbIdE|hpb@qEa2g%PRac`Wc_aSfu1d-#Y4M$!-X R`vj|8<@mLR&+r8<{0qP(8*u;t literal 1879 zcmah}Yi}Dx6g}g_j~FKoX`3dbgwO|hv~+ovf}29>q+rPeL?R>Tr?Gc%CSLDYyW^k; z@jv((Ac2tjfgiw+LY(n#$U1S0Ebq*n`tKm=lNd%wy{@64pT);SCB_RVE$O1 zNH36K*ZZn{tU6Yp@JNT+J{FkT*lf+9gqb4B6}*Cqz-q_zy}oHHX=6_gH21y=yj?Xg zv9?Aar+o%(o=0t(uv>Fc<|?RSUSK+ueI>Avu{p4jrqu!wE>v&@R|T&3Wlz;j*pc>I zZI8H%tqg4}@L(h3If|Z<(@2|_j|7HQH(RZGXZ9jKi!G*(*8$O21r=*h@RZ=j-B z$5w?M2bwu%m&*0F0kGHA(2J2^d^wnv(| zt~Fm?L|&NhD%)To7dEm?j>x7mPLx+J6=Ji++JC9+k@3Hl5zA~zra+O=_D4m(Iu4l~aW5irk9D`F%xh&L&m(%Mo$=E) zCgwX6Et5daQGYNs$JB|dzrb$OL|rc)xJLfLrT(LddY&)YQO5)6`KB**=*7dqz(m&D z8T#7Nay%Zx%|9{5x=tD-G{)5e9+vSjJ}IK+p2j1#*ZJep;fd)fFQF!REl*{~nuuNa zOP0#iFbVpF4E;dGx0}ZFhJzY2JsSZjEl&Sf%%uzB#YT33)L)2vu9B8X* zC2+PZofYmU?Qe^FYi=lPuZ#7c1uBh@Z>t{2I972HJ1oXI!ZAGKi4;-ifO@$p-%^q_ z-sDKi@e$?t<7ne!x<=_WOkt7hb;?T$%RE@&wi?qW=jK;x=hhW>65|G5{~oI-@PreU z-#6&*aTQ$iTYp0Q#!U`u{5myI=H(b&Ndw%(ElMma?(jSA{5y)jQkivLoap=()@kLO zA9Hni6}ImFf#UhqZtlDM^2F_~Uremh>m9U&g$?TRf`Y@eiLD8kW-nq|orvi!?(vRG zm}W0xx=Bp8UVtfKJjGNUVS4*NOb;2}@j16ep7@`Aj#q(;;MOzX=F)Vhai4xUmdO=; rg++gd>${A`g1(3Mx%uE3L!jnlcItXQsrbq!#2C zXO`px8O0@;d7BfMW;2S4YG`8Woy^N3Eh46YDY4m-#g~nfn}LNviGiPidvZUQ4WsJh z1a8sE54kj0H5phLv?lX$2Qumc#cWv(fqWw%UwraTZYxGpusTj24OUB_xD{C3m&c0H z7A!s&DDDUpcLIw)1d6+Y#SM8iSUrK_UX$Z^0~viMZ{W3M4FvLo!0I^pk|e`{u8Cma bW{6}EVu)gpWQb-^V2EK*VF;Vt!WRtyUBO5q delta 271 zcmew$dtY|KcM$=fti-ZJ{hY+SbbX)vymV_u2ARo)?4p~M8BH0vxieGZQ&J1^i!)0$ zXEV)a6cW delta 65 zcmew>`cHJjWF~g@^wbi+#N5eqm{i!=iy`cjOlpiJlRq#?F_vuRX4YZmxADy{%goJ8 R%`3?d$t=jtH52LQC_g=mGUfp`H^q>De z`Uik>ct3>}14oK(#jLo?mI!=PRBet+R@t2Q+)}L=xGA(5=v@;V!Ym7C#k{<{W)%Yi zEq2L(F>Bz^Ld^;6inV0>_Hx;pa2z)ff$ciJfrI%qu`awom{rU3Z9lM_qGjev;|5M7 zie9oD%M*cBS`y`&MYT>pkn@$z|6@Uah0SVck(-*nRLB*s8R&4_%Cct}=%ceJfW^SG zofU5VR3d^&w_K|@6t_8|LeoyCRxS$$*2 z>_x%Ml!Q!F&Opy?tGFs|6+KHR<6dP`3+%Ev#UN>NBoR}=s#IN1l&R3ZAroWZ_+u4y zD!K}}x#`8i#N51ru3EJu0vQO8vls?BW!<(NTOO5xXX>iMQ`0jOSMr77$tw#B%;c@Q z#6Z6aK@@|UDBG{-II?-yTQOJdWy^CIhAA2pFt13jR)PHR15v3mf{wG&>3IXKqor$;khXoZ;U*0W>@{;gu zIoFGA!KzIX4(A`waGBK=E6DMf2x(S2`a}lp=-|4q*4svBCDz_KD_C_)^TH!F0y3Iu zrR62fvVqZ4F&1c^$?e87=td8fxm~0@IJ#R``sm??Qw@qq^A|Jdm*zb*kBOA?c}>9n z9nKX6rSWtI0~l1kBi(_xZ>1_-@1yI!R{!K>++gA8Mvr2E0Szw;Zu1hb;HH+ zG&}?;P^yYS*n9G>vm!H9lQy$)1X4nqyVy+O%Ml~P160oa4A$|Afsup+$D*wxWyNMu zkGBmiBJis2j0UNe)t$9Uj z#+H@2J8HYn$vd@IkD6v%2{y^z!`yOre+|)4+7%&X7EdN>s*UntV`e#{%~V*+{i^Jd zw`G~T>w4>^>>TD=RhT8WB5cR>YgIO+z?`U+*gu?=o%_gZbt{!~2(R!=&dn3mpRQk2V!HaqqH4!qroAMuh!2j<_iOXrN!!|KU#Zp0WlJsf)~s0H;} zP~+%vAdPmu43s>f)t)m(UNw-(Iea9A*TnKu_$d!}S4xwTl)`&_U_4%xS6F3~C5;7^ zb%t+5*$X*Kadv>SPJU(GOIz573>Vnjw78ew{aoqwxp?3@`Z#9m+AZymr0h+*r2~UVDhKEoA@9wHADYe|y4ob<_1R0_etbT+1jMnD{7X z20n(5>-|hx$^F{L{(>_faG*Akc?L}z#_e_EPvTS5l3>o$l{}k{v7=i!(}0ks9C)7R z_33bjp>W=zcc8vL$>*un&esh;230>($HcNHMa1;NpE!tPdNC2xS^gUlVQNv{#vFrmBwlLd_>^0u|*JH@K>a6PGYw+`Qu8|Fe$gbhKMrLYcl2zGeSZ~E(HJE;b z=aRsx*kw~pe}~z6H-;(BbX6QQrh_4-FD7ET*^KG^L`+{w#&okePro3hU+#fPRUeJ% zScpl~nSLiMsz6p&1bGAbyTISnHkSFBQ{u@1G4^SZ;D!)Q|>;3G%V9XK3 znQh!Ttv=h>xX&nB!}|9m%L}l@@E@>MJR~W$S%Lq`a{MTCJsg%SvrZcm_wW^R<7rms zS6Lrh@KxHkqcz2Ub##vIg*kc+S2dT;QZ8BE*Y@fN<#!QmS)iuew`OF<{+@9_67e#}{#qo3es_&E;!56>C8 AwEzGB literal 3323 zcmai0>sHiO6yAr++#HeO1rfzTP!X-E)@mz)!T>sSxD>{*N?Us-IlzHTl9goa!mhqY zU!rTZYpLz>M<1XM)z$AL8571pe@t@rJ4-!9>ZJ^$ z{$2ixYbLk0wbjP1(0xXk2hx)M45RLeYxO+kD4(T5k&aQ3(THw0wWi$=-1ju@NURNE zYHO}-v~=HQ)FllBt;SKSwzWM~pgua0rT!v)LIaHY4w@O|O?cJ0*%HB5mz4jhBAuo) zjIytkeszn{$%&f``+7GK@tuFo|`xSsTUVd+Av7*mYKQ%#SBC0up%fGN1;JYUJ%`~R~8->dCALhY!` zFRaumwdah^r+%Yso2{k=&x~a^8!qU~SuNA#0N;&tQ_LS|v0^r6QMggrwR~x6^T35D z*Q>U>t?kH$a4l#w9w$J18t_;{c0g6rf%ix%q?%|tw#!X8^ai!a=+cpn(OL7g%JRZS zZFYGLrMo5c9sZK*ev6y(H4niTqEdRgUtG?W@opw_C~^OtQy zZb?;vfYeh)2QoTQm6lj(HF40IN|tH^Tjyq-yHd%Kvd7<%puSW+x{uXSw}oFpFZX)k zy9dozXT+9}=VjsV*v1-HD1FopniSqELHC`SNG-%H!h{Z|ll{=HT}19fi21lRp}>{{ zievC7M@@=4fH{`(u&o8Xikg6>y)Hr@5{+~*D#DZybG{uSU{u(!Tdpn^rOMs$_CUL- zCe>lJx`5X56$iuV<)HEoYu<^bBl2`P)iVrK4O$TC#Gd)Xi(%K{nqfD&v^1~fpfY`J zwq-~kWpgkN!t~GCwy&Dh2`TeVWa!5NacX2qSCb0_kH^DUTCeOqp@k_4huI=Z)^?G( zUz4;&j$zOz+%inzjaO}ZujNePgzXz8VmF~VurcV9gfVj8OsK*;X)0M#QHU}(%?*hr z&k?SM^)_KYOJkbdD5;xZ`YOA6qm-ETp(32<;krHYLn-RUxqT)6f?}yy7v{(|mcjce{>>lbY+?zNAtV{I$0!jG+`w)HOEi>w!c?@QqO z3i5qHQ}mz>W4i5(+cI)K1yB*lnb7(WTl-+ee-Jz$LDKMMc=t~JN$d|Sx@Z^>ZpG@q}eb~Q9kKv{E&*C)dddW{- z{EJS$rECm9{a+%w36iuR$eBRSM?tU!ggn8=EAZ;YRKknV5`7&Zi;wk&27iY!3F~$O zR(z}~El03s@K#^XOkRIWgPoY}A{F-%m@*$QWugL!FbxHmR#GtycVfDqifJ_+({LxI z8DM&N2&S+sBTN?pOlzqOj-)U+mw**B_|2gVj&veh1cQ$g$dU|}k_?stWb3KOMpKY2 zr6Sun6xnDevK1g(Jp|cU64_XQtd`2-cqfnR30QG$Jx%9vyc1I$JU&ZcO4e4`*Ab6b z0!;M}n4Ux(JEA%fzd`(l@f*cY>BisFRiaL?n+dQZQ5p9DfNGa-gLycN{(KJk1^NoJ hZj-*l;{GNvoxZ0ZV8}s!iJzctNCm8RXqQYH`VXM6$EyGU diff --git a/api/target/classes/com/mobeats/api/model/ProductoDeposito.class b/api/target/classes/com/mobeats/api/model/ProductoDeposito.class index a1508ea92f39d2260e5fb2a979251d430836fea6..2cdfb735747c73c961305bb70364d0673afc7336 100644 GIT binary patch literal 3452 zcma)8=~CNP6h4=L4UW?g3}kH}A&Y@DYSX5hLs|kjF)>TQAq#EEMYe87OuH&21$x>RjJF zh6DO)yKcZynVy-iRcg<{taCs!xI$WCbSYKklw&m;HdJ-mydl73H!X|9k`r(iF)C~b zeUq*i#f=3_=E@?{B(xw3r{Nq)}t81I)y6|k=XuRbK?TKsPss=atk~dsX zUrq&66Ajn#xCMf)9pwT>SC1r&jP9vb=4O^_lXHtOz>Px4Xt;WGkfCNMRs0;ccWcgq zt?U|3rI>Y0d(U+zO=GR4wcisP!c(C(LW=p&u|||qhvSNq4qBDS7DMKqX`AvsqZ7r^ z6@+RExtgOBbTdyQbdAyJs%eY)W&^&jsn{{nwf6=*$7KJeBAkqim263mc3Ei`m7^<4)wg+? zqzA|q)0RQ01s0-43Mnj%24G8BmBHlxD(H)?YSn=<>0zD<)DJemNnzG1r!{)X=xl>; ziz&y}xqNEMP3+KuY>5o57H2Doa7VoV=O#rZqujF7^mI`+Rrw9X!H6AjTc!13J$MFf zTJECiFGBmlfe}qPWhN{z7j<>C$FLQ0n z<(lC%xM^#C(?tiC+GNu(B`EjHftcP0jw5|cB{!^jKSx_+Woa7|s#UtCz2j^PE%a&V z{W3;~9i9}3s%UU)u z$WCX->?W7d<2Z!=FQzfUZVkuNRP9rS;sm>SYdDUOqA{X=Kf!)wl&{zr?Nb)_ec@+G z#qEH%((KPt6T|XoQbw83S#$+0LCx(h>QH?erz}oqaO%dY8b(ggNy_5_O*eY(#d;by zy*@6_yr4ep(Z8bCAqX4*^B~S=1)ZbwF>xU#MhA+B`@wn%#2<#@F4K@7U_r}Br??tY zijl=_%asEP*NMtuVbJ zOoaf`EIm%aRBgw!nu=+j7Sb?P+cB*H)5}9Jg;^Y7x)5Mmr0-HNEwy9PQ!&-(NgAf5 zc1(3(+B^hPST_--;Q-SLJ&iDN6t~K%5tZpGv+ygwqi0yE;j)C~J^et`LVN+aO4OiE zvXL_mYS~3;|Ac=LR>F#rD1SPMgSvy(gFbQ*wV~r|KrNbupbc!!t`gI!4ik{yINSI+ O5J;56&Lc@XbpAhnkt(PF literal 3277 zcmai0>rxa)6h6IN7I6u86)}Q}y5MCJ%^fkp1$1#iA}dBog3U~`jLc3?&GeWesk}#C zB2`J1R;v7w2gpOE^7UMHm(48vn3=wO=bZ1HKIioO^Y8n=iD-dp{gk7wJareShk6+e zz2e6FVJZ!FuG>Sx>1+Af~&ybo{h03 z9Am?mR%j}@Bs>||N;1mX79+N*#Xl&}APq6eBoO;&-t?Q#8%!Y@Hv7l5|b3p4)04qd>vAfKganZTBsnH;JD_u)}_X$ZU&&P37AN zAESwJX7+uJ;QIbwrccHu6<#hoQZs<51)VmO8VsxV- z{hG0F?+V|AX@fUCGM;%Bma1?UVXu2oaxv3JRn$G{a|eK)H`*0OmyZP|Hg!zNf`|G(#w9@rtkCggYL&aqA4{q&350&17XBbid*ywt`g~^cm39yk_j+Y z`iQ%hBZ8TVln0?V-;%jWxLa0^2u2;FWix?qw=Bi?>U?X#Bq~bWaW-w-WqtID(c|<8 zgI{cGf!&-=?@K+-xDyxH^_$b_32BU#TxJXGS4M@hizZ%jco2vnPbSXoe?iLfJx|D{ zi^oIpj}QlnF5%wJp zjGI5%ouV$f0pXjN-x742j1)YYf^p|3;4z4P1n|ePx;u0?0FRu$-Lny�bq4|37$t z3TXphhHuZ@U&Q{zAV;6!t+$B==ySZafOhi>`VwD8U(r0?v2ZTln|n+7-?7;$Jew(e z4?kkLNccXS)fZmx+|)bDH%;rmG@?5&csJ5;CYtvq<~6lA+V_F#L4(1E(bx1%gH!6z zTN?NSo2{JgWpY}i2MtcS*xKBUcQnw>X&IbWI&g}QIN>xHaVpVL2B+b6PV1SRmSHK4 zQwyizc23X1>AMb`;>1cgjYgav(xVJc-jaXbTfhVhK!nRrhh z615X`T8N%c(zctvh29)Jjhe(H5`Po(Dr}$=JfkfPZfz4Y={Zi5&{-J0z_UXfvwnJuk)O?G4~0RTHc23i0B delta 16 YcmdnWyp?&vgo)d`CQeYF?8sOG06vli^Z)<= diff --git a/api/target/classes/com/mobeats/api/repository/MovimientoRepository.class b/api/target/classes/com/mobeats/api/repository/MovimientoRepository.class index 78a0ddef2b8f3b87a642d528ca0aa0c7dd7d5444..6b94fe1d5d23b5ff04ff8e19033f5ff77e65bc96 100644 GIT binary patch delta 17 ZcmdnZyqkH#q{(uOniD7WOm=510RTLA26zAf delta 16 YcmdnZyqkH#q=~zGCQj0v?9NyM06(|~5&!@I diff --git a/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class b/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class index 3f4a06666c29c7deab1a57027fab58b2b0bef79e..a82b82bf9ca6df4ed2c45d9b7b1c22117c2382d9 100644 GIT binary patch delta 61 zcmbQnI*oOMBBKaLK~a86X>v(EBLhcDYC(Q+W=Z~Jc}CI6cNq02dofO$%*_MH+C)+Jy_}y3&Q? zKhPNm1ZEspE?oEzbm7*2;5d%wCXu4!B02Zmocn#}`|in?)XSR0r(bLD0UXC84GKeA z)T!yD29+T(V=Nk-w&6^7j^t*{N%!g8pm-9RsE-`89Lqhy5Nc^1V^I4Fc~eISOz>wkyBT|N1Y}c@jA^Y@kwt`~^su;8>%gOiJ zwlI`IU6wR*G@)74vF^w&j@{TJZnN&j7GyNEGE|m0M&?|r;21VX8`{MR>t`L}CuEYiweu`~RvL8nHJbJU?;M;0eJPNA0}Hf_4Yh1uM^SXZ_UX3@vdj{({* z2Ky#Mb&IdeGiKDCx18x7X+uTcoGTP9x6p68hGiESqP8)c%NycbcqpRbJVTfG5$?+9 z7{aiIi+?%n196Pt61lKw*bC;!l;}{JdjpC}YWNDrD6W!&v&I9nui#7??zrXNr&ZB4 z9G58f{HHnbL8*?O!J;Fjiw1|6tm(~^o2$xRupsMYqWzEMR_cvE-=)K zM66y+#P|}84$T~cA}4{OMwyJ!Akr97Rz_JTMMg24Spk1T3kC6@2q;Gdt+`)-1h!B{ zLxC!)+UnI-dmsk_5Iyr2$yL-4|7-7a394!nl)eE)<3Uiek5P&W#gv3-TSbF{wl(Yo zmXZE|YzZ#zNlTG{8YGeOV3YpQ02WwEk*>Ye)ILHCGfHIN`_UDUoes$20oefse{o2w zKtGIB?_&>D|cy02oK-U_a7Ow0u3H|VLPU4yKj#1!tsA>aZY(!QLddAL|a?Qe5U B#nu1- delta 1223 zcmY*X%Tg0j5IuJ?$t05@ghwDCAZUOjJc59Lyp)H$3@=d>6=Wa*2SNfSV7W@UbYn?f z7Vi87sj{HJD$BM1z=Ewif55VDGC)|&bl;iN=bY}_U%h9gBftNh{shp69TgHR3SGAc@^vXtbHN{}-HR499pTXh}%sXI*LxHNn32i?wxIa0X=Y$LS3fvkB zP{_|&OMpRHGvbkfSd5|29|&hicT+|z6gHBn9#K%N!GjXMBX!%n8p=@452bEr1u7L( zX}F1M{#WvFr)8Mk;xm?-Vo~GMP>VVSIjQeO8R~diD(8M#Q&n>1*APIES4*RdDr(TE zp$W}oWIdXi(zgg+d|@Qh-CXLe5nt~S&=w7M&`Qwc1=QouTFylV<`uLvwDDzYn_38l z4h@~?;z3(Q$d`)`Cy3YVIhR018@k1qTlWtZtnyGI66H=7=bzXB-?4n;?eakbLw+Q> zok$v~#BemF8?hvVH>Pi`M06iDGHm`Ed_NxHW7aT#XIm-Aw_#qzGdx$Ypy35x@^f1) zcPeL!8;hcCULzNI2=!WwX<5TGX53g|==Ad?Ylo{!#jAWpog}$1rY+4Vq#uQ|z{cYZ_uWKt&F>>yq1r2|T)@p2$##F=U**7G ztvdk>W>}=0<_pa!n^op!yfr38N>-78M1C~pRa-X|CP=YJL%NI}3{Gxk>5CRBCKWx= znSWuZFsC6)MK*fzQO10!j|wOH@_EL5?E(yt(VxLy?V9CsHU_*k&T+K?uixjYQIUgz z{FHH+F^@sxL4(Feo3>krsAz{c1-Tfiq8P(?vXo;Pj*&7(FmxfaBtF(`?x&&@qZmw8 zoD1${52Cr$?)C`Kp|w{k|#{<1n7DmbzQYkR@XxLvN~}Bfp86Q_4KG z{swQrU*BX0!z7V;IYW_y*U8De+0>5rku~e3Dq^9EoTjL_443n%a*kyxu99&jLrw&% z1JU8a)%=J&-|ALjfg&8Hsi?wq-qBJdRf{5K@Md#{ITkZTCO%$g&M%!L?CMn1qk$oo z3MzK_0$#U^%4+Y(938Et)EDqndFl(yXk;)K6_=Hi3>#Obpc>bxxE4*^Z5b-f#tkyA z=W8wf4L2glPg;6(nS)zo+{|E&LQM?Rdj&DK;x^txNh_F(J7wI#V2heWqN$jNyC|I3 z7bthtGX^|av7_daeQar?vJkvG9Q|$Lux&js6z;s$Q1c*1H zFweoOY@N9?u2U|@axum$1e50x8Lqw{v)n>GU#TJ(#9 zKgZYm-Hnw2KSPPYlp~n@P;3vnKpRzT!sgAt$97)L0_2hJ-rhp4S_wY8nn7bPrcXUbNjUhSEZ|7V_K8u@oAnK%^kUY z+H_Zw#?1JUAGdX5KQFd-XTR_?d$I8khIC$JOP6H)C9Z#wtqb35w=;?Fvo{50%AOu6 z`nIQ6%t?}wG-Yi?(neauAcek?u1rKKt<|srI-n!%7&@UdS#{BEyXqhVNGm{;tS!)5 z(4Ap}ei}u}Jckq{vvW`xa1fNpqk?1%$z%bM-Ga;*WVfO>5JJD_kQ>DlEd(7H(T9MX zNTRjKGAZmHfhHgfLOx|xKxZaK8uu z8!m3a1U-vOB3TR{L+2H}$Y62{t}tLMZ7XT#3BjwI*XZW{h(;#@4!X0h zA+Ju`!6&Dhw&6ZuPofnM0$Z_cSJsvw9wy}~%2!}MQb9F55iME3JSB9Z2ODB&#&zlq z`cO*-(80t~|Xn8cXco3omz_9;ZD^rBj>jIf zVmr-3IiAH1`k5$b3wF{2QgnpwT!v+2jrx*4agRV_l)i| z#S#PAk5I)-+qPr(qV66Zsa6~Sg8zUB zPje2%8VD=Vnm|%aa~O^ujQ@cXBiD*o|CLY}t$@%939W$83fs^~cSy&rJbZ5aUn9lq z^vfg7J4EMuI8N;ls}G6dkM-3j_#CJ4Ev50D{{2D!{-l4;;8*gtQ?j$E&%X^x#qanN HXOa3hS@sJj delta 2087 zcmZuxd0bRg6#nik@69|O!!T^(iY&sgh~Scd8ml59kQk(uHo{0Ft29{VGHSaE3fD?) zQOmMD2ptyFv~065ZL!rgThy}c@0N2PgW&Jy?+5pud+s^k`Q|(4zTR=i$0|qv?Kucw zD*kR!F0opE&=l68vPu>jQd_^&RqJxrx$Eb+8tO}(jZ0k>PTt0XTOw?Fa&f0FN(xsI zf>7S9I~EwF!U)L^F^H8hh9Q|-Sxn0&#i$|;0iWw}69ZMa_HIBNfEv+i>%n7N2iJ|bo0x~aDKpI zk7&n!F}ZIsgv1SML!Ueu_A-9a;_^4(kjOeLf(rNvOOTb?Q{$*zSm}sPwb8U6;%fsI zNgv^38Ath*fLQ$}=;cGKXYC&{1YgtN;)RQy748fxK2=D;&s4mDwg3qy_~^hXDPQ>9 zU#mEPgXI3oihkcI74K-i@5!g&9Da~-o;L^DcJ8Y5cGCyg{G5pRD!`E2Dd{MF_<4^H?`dr~m=F5VXd2|RuFmaRVYar2XqFtt) zo;R&wbV{b3(Qb_I#E^C}bQnsj2nK}>qgCw-z;KM96BWTIii#jxhtV3y1oDb_C4Mg= zyAjRMrrml5ppphbDOaKFh$j%iqnvgf?O_5Up&JQ0B=itFcrpGE()#cOoDBwAQ)o?v zg7Nf2QZ(q$zH}cn0U-mPDMV{3g&P^21ovsUk>;jfj!g1Van?y_!gqm+XC-)%xs{ z+Rw>DPJ-MnoI=!{I{38IYh5m)@c<^%nnpdHOg+sY$)}L2Q;|(t6_H(nER@k{9&%Ab z-|JPFj*Xas&B&(*I}`0Fq+y^+ zYD5XP;AOl*@|U3*uTnW96{S{Z3F@@1@-Q7xm0{y?C<_U?xG zdeH-e0r(A{0YQFjC8P;-Zv6G zc>B5tX@d~xT@N65t^@Jzbs?tpLlEsFR91)gu1@LubpC+;Q%RCzB-(L&jxROqB)-A7 nn)Mw{;|zYJdOvCFFWMS@3BOXJjo?leNK8q04pbFdTNPZer{6H_x delta 65 zcmX>neM)*m04qCtdTNPZV(#QfRuy*kVhFp9)j*~sGe3`uL6^achrye{m63rDDCd$| PoLrPyP_p?F>mPOij=2;t diff --git a/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class b/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class index da7e09bc085e91a5a093d331ef91074ea299ac63..352c7fb09d7835394f102eaa8d3c1e0950f137f7 100644 GIT binary patch literal 4046 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 diff --git a/api/target/classes/com/mobeats/api/service/ProductoService.class b/api/target/classes/com/mobeats/api/service/ProductoService.class index 7896a74ed10d912c63d5495d570df0cc61268817..43e274100846ef3ac9f5624094890b8300e2bb58 100644 GIT binary patch literal 3833 zcmcImYjYGu6g|B>HY`ID0wjQl0Rki&!hl3U7Elrhpi966g9s{<-A*!Oc4nQK4aD~o z-->V4KcQ7t5UjHNZ26lkPtRj_HX8_9<%gZ#nZEbj)Ayd+-GBal=XU^y@nae(ft>}X zq?ep=Y51OQlug}}?u=QG`dQa0Rtml|8osBoRG{^WF=ObKVNdF3#;?eNFVI$w>_%kS z@l4-wX9e{9d{nnOTLrE;{G4&)toQuoTPX-`hL zMoC_E+-aSRZBL&tNYS0ujjDrwwBkEgO;;8PyZn%8oBk1jCEYz^0!s&-qRe0kR%uv) zj6h4?wB>N6G%nq92IF!)d8c4lV}@(0_vqtNf6640o`z-JC0UHzGAaF|mKA4_-fi7I z`5=E4-?a3+>G?EUF=|fQhF@_Ry1&8TP(#2H7hqLWm^+eN0f7z;%dmVUHsFCYHVX9p ztL$sogf#-`3DYi;aY#MpJurK!DDZH1$ULZg-mxchjj5Q&OtI|boDdRE-40JE1h5IVWBN`sXes+Rq%usSWk~ys}M{=1gVY~!^ z&c%q3eWhHiV?UCN6Vz@okVRLMq3{oDco3U2=)>b0p1@J|6Qwfjl*Uy*t&RIBSjwoc z_7AF}4}%(x;W&-Gn(?|M!^pO0Oj)1Ma8f}x6Z)9+3a(i$P-trENexdapk@Nin>wvw z7-vF4XI)7Tfi-o6hAhYM13ph{7{O@BC$?RiLhVzsz=?og&G>ZmRwXP2O zlN5cs#=vrd0OLZ{hp!%wQ5`8dG)0VyGMqS1`>jb;htN^325IeHIC>4Jni~*q~TC zO2)JtbnJrRpEvy}{_}j6n+2(B+E}WIbVZ*sDB>k`&QYLo-uAZf@GEgg8V#~BWU3=? zZCujmsNb!sDA2v&vFmYvl8!%HmU?8)Q>=BsaeU8rjdHk?c^S;&l{8)!*jkf>Y0o&* zQqKn^q@fWV-Wp!TYZNH=zW9^CU&-=Do+0>2!!BCV>&iRMbfuhYTzKM3o#Q!@PMY8U zWEk?^zRA-eLLM|MYt-~*u4Or{&EJor-L@5PsGaO>4dW=#?k$1+?B)NU$6PDkjnF>O z;09>#^IHa=;IlM7Wt%nBB9uy~vZ3%QrR4Xyz|H?Z|B+5FChE1o5wt)qKW@U80vqF< zs*`uc&I#4kosQjk@L;EC!q=RSW!*S0pq;X9=?+?k=SeS(?*z6tBxfPHrSUxv{Ck`7 z+8JsSTUgm8yvPXlHE(Df(|l876UQcwyoK_)l5aXk!Essk7PO!FCxvD{l`){9C3pq~ zXvJ#2@m_;9v|7vmDXa@X`Xi7`_7}9@#(IIDg4r5UTLLLlMdB$+3`OHS#}vm7h0uE& z52et12it%-?EC|LHMlk`rCB?l9bChD{%a4Q+e7yVnm}CH9@5%N>t(#fao~j#`=WRQ zQM~3TUVjR8VZ!xqNmD;+_!5EN9Hh~#-TZ! zQe%D&XVrLa4$mqAeYY{6z($q;=;U(?3$m4~+{R>eVF&M~swmkoMwL{5v|h%=CDKdL zb9X>=NsxmTsUQcJ0|xq>@m}ATpqQ;v z%vLF8aTx|9cTh!kZ8-obmpzw7uAAK?areGxpr!Z);2 M-SsVQ;sh($ literal 3722 zcmcImX>$`t5Pc&XWXp@JC}0~xKo|o)5X<2Nf`G&}m?OeCwqrubHI~Nq;?<6_yRva^ za^E3WRenZNl`;jXO67AZzbTcTJ*1Unz)4j;XlF;${rb)8o}T^l?|Z)kIE^0@h@mBp zRt=l5nIUz9FLT}G)`EUz?uID144Y3Gmf@aZXz3rAZATm0<49=efW~m3AWM2l&I#^1 zIxic#BkX0PAoNLF7Apl;PWy9)bUFBEN|dEzxYAx_(DRM{c6GH1QFF+3Ac@X6QW_pX znj!nIycy#2hE*IfO=8nOkoR_4aSco#TAPDkxWdx>7EihOl!9?8M`7?9#9s8RA$Y z7zSbJkoGy#5i^UnTwyp8MDTXe3>ff?QjepTVOOJWC0P_^RdA(ppN4(d&(P}dWx=pN zx)r}L!p%g{6I31j8U`@P&`BDERp3i`Gzt>v@n9w-$sQckki{X&9sy4960zADX3vW~ z?b-%ut4t4TID(^O>V&4-qA>%@fmvlctlmr1pBT*C79#9%I%DXr|}G}k=vy0ueJ7H^23d47*mcNv zsS0hfBxViAm@~zQWl5K-dMCsad1)``PFdw`-lmkUNP9`ACSp1IJg2TQNq=1y?xHMCawUc< zY>JvJ*wj=-$b(_D|6!4ux7k328e2$&A@eXe;!r6U>o`m`mBPb7Ho&PfK=7`}2_6HeE*R9vp`%Mo4$HEcC#fBBe&9bRE~`WxuwZ z&dsPKu#A;BZfaP?8w|ZQF%4^3E(tyFNkJYwIEU1js3L2#zoJqEPJVz3+$x&F>B~#G zR4GRj6SUn(s_GnPh|HAq+~ z++sLRNB=+c*c?H9prAg~P=ZCXj}!O=pT_Z->b##*e{ITwFPPtq$NhfD@YDaVe2}Q? zkxZ>~*Eg!zhA$a*gawllRJ)Z;`o+f zUy~;56iFVIYx1Shr zGBHSsAEeLuY=m95$}U@FmxW1riIH_zGdmMVB~!S2Dqmaa9!i?ed>H)H8?$EE7)?8xuCf>$-!Q1=v X_7TPW!h3#&Z^$k|^V|3iKVbVm3x}Coa@vW@liTD6S;P$iU*9pOVVOz|6qO!@$bG zwlQCTQJE3Q1py`?28uB-GOz<#`aqfyB%-yQfn)L_Mjc*$AP*!f0HoO`pJy}>WnvHn OvY8l!7+`Y33=9A~v=1%- delta 133 zcmZ3$vVcYW)W2Q(7#J9A8AP}km>8JZ8CZB2SQ*$R+9GQnHU7Y Mq!0s4RG5JQ06XdrU;qFB From 38cc72c5c096b5ad98fec9e11b1e8c2efdfcd4c1 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 23 Oct 2023 11:50:51 -0300 Subject: [PATCH 05/22] Add files via upload --- .../api/controller/MovimientoController.java | 3 ++- .../com/mobeats/api/model/Movimiento.java | 3 ++- .../api/service/MovimientoService.java | 22 +++++++++--------- .../classes/com/mobeats/api/Application.class | Bin 719 -> 719 bytes .../api/controller/DepositoController.class | Bin 4605 -> 4551 bytes .../api/controller/MovimientoController.class | Bin 2426 -> 2426 bytes .../controller/MovimientoTipoController.class | Bin 3100 -> 3100 bytes .../api/controller/ProductoController.class | Bin 3024 -> 3024 bytes .../ProductoDepositoController.class | Bin 3245 -> 3245 bytes .../exception/ResourceNotFoundException.class | Bin 686 -> 686 bytes .../com/mobeats/api/model/Deposito.class | Bin 2388 -> 2380 bytes .../com/mobeats/api/model/Movimiento.class | Bin 3824 -> 3737 bytes .../api/model/MovimientoTipo$SaldoEnum.class | Bin 1315 -> 1339 bytes .../mobeats/api/model/MovimientoTipo.class | Bin 2813 -> 2741 bytes .../com/mobeats/api/model/Producto.class | Bin 4417 -> 4298 bytes .../mobeats/api/model/ProductoDeposito.class | Bin 3452 -> 3376 bytes .../api/repository/DepositoRepository.class | Bin 437 -> 437 bytes .../api/repository/MovimientoRepository.class | Bin 443 -> 443 bytes .../repository/MovimientoTipoRepository.class | Bin 455 -> 455 bytes .../ProductoDepositoRepository.class | Bin 662 -> 662 bytes .../api/repository/ProductoRepository.class | Bin 566 -> 566 bytes .../mobeats/api/service/DepositoService.class | Bin 3103 -> 3041 bytes .../api/service/MovimientoService.class | Bin 6221 -> 6238 bytes .../api/service/MovimientoTipoService.class | Bin 3534 -> 3478 bytes .../api/service/ProductoDepositoService.class | Bin 4046 -> 4020 bytes .../mobeats/api/service/ProductoService.class | Bin 3833 -> 3787 bytes .../api/DepositosApplicationTests.class | Bin 544 -> 544 bytes 27 files changed, 15 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java index 47cc755..3f5a84c 100644 --- a/api/src/main/java/com/mobeats/api/controller/MovimientoController.java +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java @@ -11,6 +11,7 @@ import javax.validation.Valid; import java.util.List; + /** * The type User controller. * @@ -39,4 +40,4 @@ public ResponseEntity getMovimientoById(@PathVariable(value = "id") public Movimiento createMovimiento(@Valid @RequestBody Movimiento movimiento) { return movimientoService.createMovimiento(movimiento); } -} +} \ No newline at end of file diff --git a/api/src/main/java/com/mobeats/api/model/Movimiento.java b/api/src/main/java/com/mobeats/api/model/Movimiento.java index c68e51b..a76c663 100644 --- a/api/src/main/java/com/mobeats/api/model/Movimiento.java +++ b/api/src/main/java/com/mobeats/api/model/Movimiento.java @@ -5,6 +5,7 @@ import jakarta.persistence.*; import java.util.Date; + @Entity @Table(name = "movimientos") @EntityListeners(AuditingEntityListener.class) @@ -26,7 +27,7 @@ public class Movimiento { private MovimientoTipo movimientoTipo; @ManyToOne - @JoinColumn(name = "id_deposito_destino", referencedColumnName = "id") + @JoinColumn(name = "id_deposito", referencedColumnName = "id") private Deposito deposito; @Temporal(TemporalType.TIMESTAMP) diff --git a/api/src/main/java/com/mobeats/api/service/MovimientoService.java b/api/src/main/java/com/mobeats/api/service/MovimientoService.java index 909fff0..f3988a0 100644 --- a/api/src/main/java/com/mobeats/api/service/MovimientoService.java +++ b/api/src/main/java/com/mobeats/api/service/MovimientoService.java @@ -13,8 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import jakarta.transaction.Transactional; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; // Agrega la importación de List @Service public class MovimientoService { @@ -23,7 +24,7 @@ public class MovimientoService { private MovimientoRepository movimientoRepository; @Autowired - private MovimientoTipoRepository MovimientoTipoRepository; + private MovimientoTipoRepository movimientoTipoRepository; @Autowired private ProductoDepositoRepository productoDepositoRepository; @@ -44,7 +45,7 @@ public List getAllMovimientos() { public Movimiento getMovimientoById(Long movimientoId) { return movimientoRepository .findById(movimientoId) - .orElseThrow(() -> new ResourceNotFoundException("movimiento not found on :: " + movimientoId)); + .orElseThrow(() -> new ResourceNotFoundException("Movimiento not found with ID: " + movimientoId)); } @Transactional @@ -55,7 +56,7 @@ public Movimiento createMovimiento(Movimiento movimiento) { ProductoDeposito productoDeposito = productoDepositoRepository.findByProductoAndDeposito(producto, movimiento.getDeposito()); - MovimientoTipo movimientoTipo = MovimientoTipoRepository.findById(movimiento.getMovimientoTipo().getId()) + MovimientoTipo movimientoTipo = movimientoTipoRepository.findById(movimiento.getMovimientoTipo().getId()) .orElseThrow(() -> new ResourceNotFoundException( "MovimientoTipo not found with ID: " + movimiento.getMovimientoTipo().getId())); @@ -66,12 +67,12 @@ public Movimiento createMovimiento(Movimiento movimiento) { nuevaCantidad += productoDeposito.getCantidad(); nuevaCantidadProducto += producto.getCantidad(); } else { - if(productoDeposito.getCantidad() >= nuevaCantidad){ + if (productoDeposito.getCantidad() >= nuevaCantidad) { nuevaCantidad = productoDeposito.getCantidad() - nuevaCantidad; nuevaCantidadProducto = producto.getCantidad() - nuevaCantidadProducto; - } - else{ - throw new RuntimeException("Estás queriendo sacar " + nuevaCantidad + " y en el deposito hay " + productoDeposito.getCantidad()); + } else { + throw new RuntimeException("Estás queriendo sacar " + nuevaCantidad + + " y en el depósito hay " + productoDeposito.getCantidad()); } } @@ -80,5 +81,4 @@ public Movimiento createMovimiento(Movimiento movimiento) { return movimientoRepository.save(movimiento); } - -} \ No newline at end of file +} diff --git a/api/target/classes/com/mobeats/api/Application.class b/api/target/classes/com/mobeats/api/Application.class index 633cf260eba6734fec6b2f18cc124c1da26517fd..16d82660374ca8ac64045f4307caeceb0792644f 100644 GIT binary patch delta 203 zcmX@ldY)DM)W2Q(7#J9A8DzN_m>8JZ8CZB2SQ*$R>L~%)920rvc)1w37`WLPcz76i z8Tck%*PYDCn8)IrpOQK;F>i7S6phgg2VqgSm1(N(go<5Lf1k$Wp+Zh-)f~5t3 zBuJWpft^7RNb*1wFbFXS19_YbA`GHHLqM9%z=km}a0sz$?O@;xN9YH+k^$%PyS;T8D+ delta 207 zcmYL>Ar8Vo6h!B5yWMu#0xb{}2xJ4np^D-VTmXVA63H1h0#ESV)5*M)p$G zC%T=9Id=l&U{=Lx$xiIDcp$#}TC=(u40Kpc3$Ul05_Hky5%;|EV?dl!@kD?7|JU3A L+Ap*l^;OJ&hPxHO diff --git a/api/target/classes/com/mobeats/api/controller/DepositoController.class b/api/target/classes/com/mobeats/api/controller/DepositoController.class index 089165a98849e158c79d12b9df1471483d854b16..636e8a6c0754e32ed23db61ba218ad40cc5441ae 100644 GIT binary patch literal 4551 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 Ar2qf` diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoController.class index a9d1d54442e7fdca093a8347459e85de4281405e..ace62b8e035112dd21f690f50d5707be9c2f9909 100644 GIT binary patch delta 819 zcmZuuO-~b16g_WdI@6g>$I?PYg<1uLmTCp1Akgw9;1^LBh>3|wr4udDme9tSxaihx z^H#)#e?b$29}D-obE!M`{sI=p^M-;hT)cbUop;Ze><@}R!?NR>L!%csqDPYc2Yt?2+Kp)QBwGoDG!Eq6R+m4R4*A}7@w$dcNUrHLLYn z!@`vOrcHLmR{iGVdgXR`yZqE|`r8d@>EB5jmp?^D#!OGXFw-(+-jO@zmsXf_00bj{ zj5x&1Bn}e|BB#TcVU{NfVkr9_;w>*4vW)5(NMeLh39tY;oFfV~7w7?bjG1~1XWzlv zMf45tir+dA=>JC`+z~h*6y*a?9_bf&M(;y3pyYaRkj^;k1 zU&BEkKrI{?fQ`YRRXU)w5}jUT;}XWHYqPX~36@Wipk{Cx)4YWQ3xIu7GygGFM2YXN z`q5dQ(FW!STq7r=jv_~q-tWJ^d<8I%8ya|X zH51jKFobqW`=#{bQf(`J^U;o7cAEzU@sr<+sdLp@)m>olC6b#A%Cb|j4fxP&LWd!y zeU;{~xOn9g{W=(iO!%Q17)DIPDTZY8WpdC&1bqzQE!!gQ2{nkgA@2TMk(k{V3KaSCE zwg3nrOeZGeAo}Cfb3#b!Al*i34crH-;{+O#IYSqcBw&5O;2}=F^B#1`hyNiDbjU|A zO5&#pD}9c&WzPIZ<}4-%WlE7at${ic-b8o78{YVRQh4$Z$>JwWO?^g&qwB#S^B{g5 z<{bxX8l81refJC-FnB-2Cfl6 M{@q!ma9!2^0O8PPaR2}S diff --git a/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class b/api/target/classes/com/mobeats/api/controller/MovimientoTipoController.class index b899621b4a834205a922986ae47c5b673c55cfed..8f54c02822a7ec552979d469c59e10fcadd2a0f5 100644 GIT binary patch delta 1041 zcmZuvO;1xn6g~4^-+O)KwdKQ>f_#Y}(1Jw}kPo4Xf}nulM?x^hibOyI3y3i>rpiBP zW+{maS0*NEVh~-BxG*s$Zv7ql2aIQ??ZbtOnS1Zdz2}}ecXkuIiHYxjJ|6%$i|Zj6 zFdYOuSg-}k*RzkZ>4({k`{}v6>nqFK0`|z-#@hC%fZ5)0(?t-jgOGRDesMY+ zLIhC<!WjCadkR zd~P?%7JHuOS)$$%!*U_mBkPnUfC`~KWY4Rh) zdpZWXxvOiS5~sK;09Dq5URt5_gQ<&q7^%Bp@&lYbgx}Fu^|=y2%|8IaBEV^#)TcQ` zSl-VyumrJ%GxTB@WGlt&2BA#aDg~a}L)FYasyjcS-ax4jpgsoB02htARg*5sRTX=& z8bcT+uFKRBekB8=EU*NRfdZAW|4_-`9Pd5#yz`3R7RG5f*CIIuq&mAra>oxTQ98aK zEt*ffkmb{HH3?B7F~USO8>Pbq)u*V#MFkBJrAdZs4o8d|L>HYq4}*(ZI) uC!Ilww7`PTI&Lt*SMcxwCT56cU{)hl(wk#^)km8rhMKP6Y!kRE#0v3uND5wYsqKRQup=ePk359K4xN~91 zxX=U={{%@4pbHbWx^VB-mH&kC%)HXNaPem5-rPC&ch9_?hMk7+w?ALL0!U-tf+5f+ zoBe%F7W@L?mCRNq@glSKG%@pJCA(M8*@?{_;e+Fi4rG3po3i2S(9;x44U&<7+Q~9mjYA(B0$j|52^D<^F z%OmSZb4)n6f!ngpw-|JBS2gdKZ>*$z75rZ0=(LV3YBKH?Bee&)o7`yw*D6K{?m}hV z12}s;7^vo|ia`r%xH?_|!Z^uDC}SvJ&$EGumab+t%J0+y#0DBrRLV&vlt|G1gvNa| zf7BN$;*I}^2g~BEXd|H~e)d1&=g>|aM@e_6jvF|y=XgjMHFKTnR*dcA!qg$Udp;v! zpwc~*ox%b>NXYOI-FcSIt=lur&m$4Fn1X+h- zL4{UG)HiBl>8-Ro&LDSnFPku6>IhhO< z>JerLJ#^gpY{uSMcQeV|8JmBThbtOzLPw*8CN%SECB_rVM6d;?bhKJ%Lp#GD|EWZ+ zj%3E(P41*0+fJ5$R;B|2xWhsx&hSU-a*GJNEOaBr5Zu|e*IdVM#jwacT-exqQ zSF~y`6z;0ZWX5*5!5;7ed&Qqh6Wmf$!NAnBb!Xd6XSQ-W68xhyQeBmD+|7(Vzm{El z; zYw|^X-Un#<2f!!+ocEH3JWfF>zd&nv6)cAl^6GJsnhR!k2udbfE5Lj9P@CFEr1t

+F)*MXGtus~YV}I;wWVHEjZs`8T$57AXv8FpQ-MM!S1>`I$|wOSl1l!E)FiIb zy(JzxMQb>RYh-8uND)C(Knf0KiRNh{m#32>6{8-ra51Y)%=G9mpTrnJh+h(lOp87x zMXn2IurQe!T7pZ3_*W6!pv7qTZbJ8{tkUBZIt%4JF1>q*&h_o1=eS(`q($5#6)WbK zNrg&k5e8PlDe~lFx|x!v+bp#!YByJ=e+wHv|4I1#X-s_nVTo9mwLE%?jCn$n bu;3xpkhe(jQdx}KG!o*+8CuYQWzGBxjG~6A delta 1096 zcmZuv+fEZv6kTVg?X+cR%f(g&1yOE=QZ6FMO)es$7K#eQ@M57AAwnxHL=%&Kf+6Qk z6XPdnqKH12_+Vm8Oh|n94~!pRVq9lhrjqz@&c1Y?wbovpgU~@J@b%A!j{t_TXh0K) z$ZvWiXuu&5SWoOEq7M?AtI^rz_0&pkcV|Qn>vvAOhSoOMaw7tIOY4GwV=G->@?AdF8NH1 zd3w-m;JiQ&ahhd7Gx^&E^vPOnN`7&~D*~}p?tVHMPi!SNQn}PtR&HnuxHOox5*WjuD3WH3s|$Fx0M__F~3LY{zYD(o9>~q-{lZW)r;EHRi2Dy@C@4 z8gP;!$YV-SW00&(hM{);P3qu3Tov9XoKnzi;51qo`bCh@7O@gLk?rJG!p!iXd&Va! zwi!5svkZZF#^gT5&n3^YE*{zqbfA;#N&~;Enra;-=> zjq|j7&8ts6j+<#aX{E9X#11ksg#Yri@aLW-3W)Q2>Ina&1lb7xtPZkg1^+4kt$xj^Gy;Hn7MhanCeK6m z99cJ68Vv1W^1@`9xb1uk_L>e7dT1BVfDgU23jmSUhkmk5j0Cci+(({xQ#;>4*+=;+ zI*a^V5uo-T0JQ*c-U%9TIC&|3kk-&DSQf){^5X&(7tC%EluWi-fOqYqI(mTG&^t6r zDAobQUjrJUp~)%L?4;zX3$-X47coM(8ikJ1@04(v5?pjMhAVV(GYSCmq$2+zHGxTb zH$nCPP1h6cIE9q~M?xXtol$9NiqL*y=C~DmCw-yNaB{CA5#=eD?vmj?2|WT7(=@o%#3@ zsfvPHgn>DyHJ#dw(n&t1npfJCfIS{}6`W0BA# bEICM3bh<(Qa!HJv^d-c^8O^#5D<17HuP>E# delta 1113 zcmZvaO-~b16o%hB?Q}Y2S_(*ORcHYfT3V{06w6oTQ$z}=U(gBLtA#^ml(Eb7! zF^Dcq+?x1PT=)mnbEnNz5*PQLkDhzZd!Ei==rH8{{`<>U0He64K-!-f z3Mg<=sX*0Q)-`3a7{TEq&;JDxJ8Yz~F<`{#cC%VeuoHPo$2M%~OsPJ&7 zbDMivAK!7lYgNH;MuQBO2j|ePpp7B9|2i4g(2N#_;HGXa?HPr~>!vZK?;7QzX-qtu zD{!xz@p-17uIsyI(I}M_bn$QU5YxF|PV-mp1UFsJJ)&n!Lm0jM0UK8nNGj-K=;jeu zw@x1y^`j8k98*BE?svSw1gsHTf5GbIT|!<@R!q zbW`6e^8=~Gf4S0pURk!LO=?7Gj7ODD9&v>D8)bvNYLoSPb^G0%{v>@fc+ zMcoN32q`Hpxd-_l_m2v3BiN)&U?HneB&?gPOqLkZ-9S;2EECz-CukqYk>I0S6a#)V z(ydhsC~BgJ398io6!{Wbt=2xu2IvIWz{)s{is;-=3DLwI`-spH&c3%E)SCzYY3{b0 zhY_LS9aQV2*PXR7=l?V20xnXOCWds=36{}gZL|WZVy)jI2KOEzx^Rqm{4@F`)HQfW zJkUlY+ASTC>XVud(27I2Mr{SDG=`~qgz9BRX~BU0Ap$9|irvS>{Mzn9RHZ?n&yaVW zj({;ru^6bf%R8eRm*L~je^?-4WJ&#THriH wYLPsLy$1c7p#rgnDp^Fc8JZ8CZB2SQ*$Ry2($RDi7pxOyo72m~6z#;+&t7 zy76cXqX|1u9RmX+gA@ZN0~e6y2J)B~cz`TMkWL_*4=7>>q(SP~w6wP~Fis9-iUa^_ CQV<~k delta 113 zcmZ3-x{j6i)W2Q(7#J9A8D!ZRm?lP;F|#wUOca-&IKg0|nYW*3@_#VQc8=CC?Z0^Di0MwR21VQ(FzSIArJ$&?GMmRb2lce zb%lv0poFN=g)WTl^gpL&ra2+-&=11^y6*_8gvVW z4HJQUXGL`&nO(>(4+!Y7_NfvCQDPxvV-M_nxT#D)%gzXhQRRu)h+=R4dws}ZF~>$3 z%H_B=6jDViZB${Oe66+AR-?v3t&KX=3q@dSTWbTU?lxzqIC9BbqEU+h{?n zK&cn7vYefFC+^KG>s@)Z;APh=VrT5R)5vbADn~21U1N3@*-O-&;RH7VJvhm^kgXM*@pV|w=q%2z-kt3y_o9zcDtQ1pKVrojHemh5RyPCc zY@*exQ0du$ZG1(p(0-C(rl6rn^|RhKsqL255q?f*F{zIKk~)Rd4k;zCB9+)ccsHpW zm`ojZv-0{tVk*s78-qLktYZ}H~vFT36%b`b&<^lrf!k6j9QR>C{bUrf%l!K{K5X#T5EJs7c%6S*Cm(7(5pOEHlwBPV&|BN4 z1&rb4xr_xJM{OL&5xK6-T4fN3+VH?D4Sm!xkK6DgAjkEj6=LUvjdq;KzZvlhcr%aI z(u*qsm96r*sPgGJY2y@5=YKcVb>XauZh^o)+T`-myp0~5lSvVa_MzWIN}$3CSX<35 zy6h`9Ixrxgh`4+~1`B-{vvCoZke`+=SgsdhZQpjF<7XvaIIuolDpvUiGM)V zJAP=W=BlcL#cH_P#Q=nJsHG`ThkCBXY^~^wZy~ZtXK8l$V78mwfJR2CNtdc5)I zHX{4IE&72bYCPstsB&!YZhr+=lpkZ5N6=7EO^n`!+Lg40=C^c~Lbd-Fss*ikP-?si zDzS~`gHSo3i`}{pQaQR5RB`Aol;44B+k+Z{;Y=!^CdGgA4&uN*UBDSdAEQ#dq23b8 z0K)F*%nn``XD1`Ra7$<6Jv!In(KiyGA+D&h1)OOwZUyvi5I{$@ob^R>>J}TE21&P= zy7)m15viU};yfE@xWFh6bTc5}iWqc63}eKdY>IyME<(mf=(lyZ=Trfss$1!pCrbo` pVs29d<4)Lw^KfekbeZ-fO9o}Mth(|hziwfMXBNNi;4WrS^A8NPc8LH0 diff --git a/api/target/classes/com/mobeats/api/model/Movimiento.class b/api/target/classes/com/mobeats/api/model/Movimiento.class index d3d15fd03eff2ec55ab3059f61b072776d50cd91..9a6ce7c405171d25bb95a3fa95ea6845dd32e283 100644 GIT binary patch literal 3737 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 E4}c1CWdHyG diff --git a/api/target/classes/com/mobeats/api/model/MovimientoTipo$SaldoEnum.class b/api/target/classes/com/mobeats/api/model/MovimientoTipo$SaldoEnum.class index c3002704e603cb7701a71727cf670a0328d4ecd9..176015e0d655a2aa9032233f136c71f77db3aaab 100644 GIT binary patch literal 1339 zcmb7DZBG+H5Pr6I<=XRrQV?vx7ochnlu~)|rD#B?k)(j(pb7EQwq4=K^^RPxeD)_P zBtkSAKKrALv)8I6Xkstfo1NX6XJ($A`TpbcHvrG^OhbfWrs~ymb+00L(8%#4oAx!~ zBVsUM2n_;%p9ZW&u#0#QjQy#z@(%i%%QX4gTnrDS6As}8Tw1M zD>j?;itu-M#i5h6zvN?f%Q{1{l7k+l`DqCh6oP4+8geZO(1+K zQ4J1k5_(1udzqGRZ%gs~n(cCjA#U0GE)SYM;VN0POpUZub=us%>Kq%EA#C5-HIAHAjhk(!Y0XzEdu5Z0|5ER0c~}WQc5( z_k!5r^44B8RbQ*@m1_)zkAtU*mRhD^8~zG|lFrl_LhIB{6k!bvV>;rvMfFNOm&tVH zrjwfQ8uos1GgFU|@3@XIB2lPPnbe^oB2Ra8L=mG@6~h)=9jhtaUEVYWL!#oexLN0} zA@$%=gMu-F;2#(sgO(D+Rm$cTd5?4z$88%nHyPqp;U75d58NfQFI@7E9CNcH=&+d1 z49tXv$9SS5MVb3LJn?*C>3E7~3^DGy{G{a^oiJqkdDw0qik4s8?4#!Dinw7=16Gr1%<%lPq%Iev&toBw1-u|B{~2h>utZcZ2ltDA E00fRUp8x;= diff --git a/api/target/classes/com/mobeats/api/model/MovimientoTipo.class b/api/target/classes/com/mobeats/api/model/MovimientoTipo.class index a14cd5fc05ce2bd15f85ed95c6ada83c7d1da804..fe9925b65e809c37c6828550ebd5b1519b7f19d7 100644 GIT binary patch literal 2741 zcmb7G>rNX-6h32YY`}zYi4#hi(3S*4D4Qm2($*n?a5Xg!!LC!9AJy19H3RD%Yj;eA zs=h~GqEag*s+1pnfId{!Z@dc_v$R3h?p)68+cV!e`bMPQq-5E{xl6xn$c8EHLQlJ3a)*NHznq_ zaI7tLC>v6^T9su}F^Wl>5!*DzSJE^@SK-xFjjAUYjTBBpmb53`dd}#Lq-oUX4cNl3 zd9qoP$~F7f(v+d=j1oR~Y`DH(cpnH;C8NFSwi>w+eD`>oKA;Ik*BksmEGxIh^((3O zF!MEcwa-XqH_zjW*tulzne#3fjqkKvEgPaDeOYzHlItqXHNF=(ZouGxdzxEK;rY_n z!mSA_Z|9KvNYT1*g~zq9E8J-bsHJ>u*7c+Ru|T}?QL}B4Us)}d^W|MeHzQ*#E2q_P z;XCf~297Z0wj758dJl3-j3y(kO!fn4uuL2pc#Ljcs2YOlEtPlj#dXA52DKOs6{IVQ ztwvRNWfRg6NY%Jg;hr?>a5Jv=B+_^Hz1U&!)P>H2q~Q3bAy=@9XE$dmD2gqi_msWO zJ$$alIWX#jelcY5ST^!l`{3kQqdy`-j=fnj45ItpdP|`b(j(rL?KJX22SMsF%L!rvhyysc8Dn3l!oh z8Kirt4uln?IA}#{yrz|hdi}MNHKAhQbc4ILBmAj?QU|SO?mW3VcFq{KtExj7a`AP? zR?zozotzF`EOW;xNiA|IddcYVwx{eCp!z>cdx6bO1|5B2noZA5c69Avqus8}^cP0y zyo)Ba>~P-~rj|~cbCSNriJwbO)Hf&T6}rcNtKyak5=0;2=7^y;#qq|)g&uVit6{7@ z#CQwq+kz&c7Bja~C^qBA*!jfA=G6Ce2Xov>=cS{^Qrt|TbOO4eZ6=W3g=AV#mS(6Q zQ{1+A&my{okzq{C{z>c)Ok#8oZzCqC&f#qULxDb}d5jDu_wf#lV}We;4JChru+w-d z()cra04-zulzQ+(sM*_ZDR~;&{3jp;OCX#HpJ}gq!|(=Lki&9z|k$M2}A}#e!(F_ukTAH>PL6w0Hrg;NU_`Lv2i7Mq(Q7#8of= z!`+x(0@Ka~m;$CXXV;OZv2ILNV5(h!DIjTxDbvRE z^dwJ>b@8>IPZw0GSEtk)UU=kKve1iA{iDOBkQSE9z*ORxp`< nO{_+%v<5*O>vhUwmcnck&o;72Gy)gv*eflLQ<*CC9gY7B@j`d6 literal 2813 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 AwEzGB diff --git a/api/target/classes/com/mobeats/api/model/ProductoDeposito.class b/api/target/classes/com/mobeats/api/model/ProductoDeposito.class index 2cdfb735747c73c961305bb70364d0673afc7336..c2ce78a8acb22e81a54c50736d13c87c519ae1de 100644 GIT binary patch literal 3376 zcmai0>2ecC5blu=$+n2W7l#2Gj6pVpO&|$Lgq;}K1{wJX7UoJ~#=B#A?bYsPcSOob z7b%IVyeroq)hxu1q;I7=gW8l^Etr&=`1 zwiGqtG0MK;Rzs}sG8!wCXDaU@ib}_sJe{R;P;T0COW_0BWo7q#o-WWuM#H;8-{ad{ zmkn;2KXKi3Y-~JK*pQ~BEpjP}N@Oxmm*_IIxzUCgO;(QHav*mlPt$Z2az@huo#bK{ z6^C#hg*?sBEThwPejrMYt#kRrlzZs;63+4&?G{$b?M#nj)M348IqAzy>6vz|$mr~& z22Q6gwoKpLvBZLHJCaMd3M9^e!2$Oq*IeQGrZ0u93$1KG>`Lm=ePIg^PBnrf0W9ZB zHLe{VBLREWLsuw?^5W83wOoD1=zOY;l4CXMHjv#mujANrcEhqbsCU7!#OQj(@oL(h zxg$IqrZwK$k@na%Fjd8N;pe&wB^Og|R7Kr&JZ=Hd6GS7U%SQqu@_p6v>e6O)VReJi zM5@3lw-2k%x~;Z4nTl9(OuM-7!3Ys+fd>?*6@c9(q$Z=mifN0r zMjdXbD(^5FsyI5gwzy}iaWvU2_e`90p+oGnC%AG*O~^8G8C7BhBR?E<7glDrkX@@n z?m5N=_rOddXc!FuUusr>(Lyo`qnwA<0qAL=#tLvvT%Tf)(m$Ls&uA1TmQ}JZyqoJo zv9VUR0}M-P;Ni$-3#$w&_OTNX1WoTo>bi7}DK;vu7sW@1QS zCMTUR@fnT8z6tJtW;y8JbQ+#6mQ58gqwzLkB{$WnbV|%6)Dd|IX5*=G9RwU!hux^g z`puw4luW0}geogRplQEy4ulqZDXiDaxK|txb?w(= ztVY04=>u*Xmhi7s9Ot0n789WxxjQlQj$lwt5{nW1MPe$vw2R4Pid2-iWo??c*m88h z=wW<>{?Dc{$8JoQ-L z?^$wDYLABE0TMb2S8)!H6~aR$qh24XrekypqZ?>H#Q3HljXuHz9vIQGYCp!zEgzG& zpVKGk;~5aGPEZ$p3gOQ%z9Z;!`XUBjh{1ROMBovKehF|fRCkx=eDKJqt3DkuA0iY} zJg)Hn3ep-{hPG$+FJgb7lcBHiSIa~vXaRpEptgCBN@x+>w1j^soC()vUsLusEGC6# zQiYf4K2S<{9-CE{Vejn38_Kp!t0y4QEf~BVXc!B|y^(oEE%f#Spn6cp&@d{~O2p|F zTE#a9PAC4RQ@^91q;)qzE7#o9L#jly7SJjJeY4m9q|e zI6b1x6iyTEoL;1Is?y^$P802%w!!IT2ToxWN1QGNoVMsm3a6=dPI@Y*r}Qk1(^NaB z8aVBB;1uRf#A!O<^qgKqoED>uIHw|AMHaqsd=vPl-qJOqcA{2-=(#9Fy6Ic!&Cqv2 qsTfE2e~TQAq#EEMYe87OuH&21$x>RjJF zh6DO)yKcZynVy-iRcg<{taCs!xI$WCbSYKklw&m;HdJ-mydl73H!X|9k`r(iF)C~b zeUq*i#f=3_=E@?{B(xw3r{Nq)}t81I)y6|k=XuRbK?TKsPss=atk~dsX zUrq&66Ajn#xCMf)9pwT>SC1r&jP9vb=4O^_lXHtOz>Px4Xt;WGkfCNMRs0;ccWcgq zt?U|3rI>Y0d(U+zO=GR4wcisP!c(C(LW=p&u|||qhvSNq4qBDS7DMKqX`AvsqZ7r^ z6@+RExtgOBbTdyQbdAyJs%eY)W&^&jsn{{nwf6=*$7KJeBAkqim263mc3Ei`m7^<4)wg+? zqzA|q)0RQ01s0-43Mnj%24G8BmBHlxD(H)?YSn=<>0zD<)DJemNnzG1r!{)X=xl>; ziz&y}xqNEMP3+KuY>5o57H2Doa7VoV=O#rZqujF7^mI`+Rrw9X!H6AjTc!13J$MFf zTJECiFGBmlfe}qPWhN{z7j<>C$FLQ0n z<(lC%xM^#C(?tiC+GNu(B`EjHftcP0jw5|cB{!^jKSx_+Woa7|s#UtCz2j^PE%a&V z{W3;~9i9}3s%UU)u z$WCX->?W7d<2Z!=FQzfUZVkuNRP9rS;sm>SYdDUOqA{X=Kf!)wl&{zr?Nb)_ec@+G z#qEH%((KPt6T|XoQbw83S#$+0LCx(h>QH?erz}oqaO%dY8b(ggNy_5_O*eY(#d;by zy*@6_yr4ep(Z8bCAqX4*^B~S=1)ZbwF>xU#MhA+B`@wn%#2<#@F4K@7U_r}Br??tY zijl=_%asEP*NMtuVbJ zOoaf`EIm%aRBgw!nu=+j7Sb?P+cB*H)5}9Jg;^Y7x)5Mmr0-HNEwy9PQ!&-(NgAf5 zc1(3(+B^hPST_--;Q-SLJ&iDN6t~K%5tZpGv+ygwqi0yE;j)C~J^et`LVN+aO4OiE zvXL_mYS~3;|Ac=LR>F#rD1SPMgSvy(gFbQ*wV~r|KrNbupbc!!t`gI!4ik{yINSI+ O5J;56&Lc@XbpAhnkt(PF diff --git a/api/target/classes/com/mobeats/api/repository/DepositoRepository.class b/api/target/classes/com/mobeats/api/repository/DepositoRepository.class index 5ad41cd971dcc10f22b7c06f19c899ae9fad7220..ad00f306abba22bf12179f1b0be80e04d6bda8a8 100644 GIT binary patch delta 16 YcmdnWyp?&vgo)d`CQeYF?8sOG06vli^Z)<= delta 17 ZcmdnWyp?&vgvnBj>Juk)O?G4~0RTHc23i0B diff --git a/api/target/classes/com/mobeats/api/repository/MovimientoRepository.class b/api/target/classes/com/mobeats/api/repository/MovimientoRepository.class index 6b94fe1d5d23b5ff04ff8e19033f5ff77e65bc96..78a0ddef2b8f3b87a642d528ca0aa0c7dd7d5444 100644 GIT binary patch delta 16 YcmdnZyqkH#q=~zGCQj0v?9NyM06(|~5&!@I delta 17 ZcmdnZyqkH#q{(uOniD7WOm=510RTLA26zAf diff --git a/api/target/classes/com/mobeats/api/repository/MovimientoTipoRepository.class b/api/target/classes/com/mobeats/api/repository/MovimientoTipoRepository.class index 89b2c30f0086f6f970a4eac29ef535a9b8ab8a7c..744426217aafa5de2462fa307b00ade65f77e3ea 100644 GIT binary patch delta 16 YcmX@ke4Kg0w26l&Oq`}WIhe5o073)@P5=M^ delta 17 ZcmX@ke4Kg0w8?6Wx)Y~Om>kSl0sube2DAVG diff --git a/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class b/api/target/classes/com/mobeats/api/repository/ProductoDepositoRepository.class index a82b82bf9ca6df4ed2c45d9b7b1c22117c2382d9..3f4a06666c29c7deab1a57027fab58b2b0bef79e 100644 GIT binary patch delta 58 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 literal 6221 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 diff --git a/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class b/api/target/classes/com/mobeats/api/service/MovimientoTipoService.class index 72fd7a41f6f6cf514a32b8962d9e7646af3d1298..afb5159fbe8f27f6cf541312988aaab1fbdb20fb 100644 GIT binary patch delta 1241 zcmZWoTTfJ16#n*^bD248j^k8kfB`ENkQpw6hywyr25G$^v;`HawhqjQ2j?anQSmai z@xjEzWU>=qe5rkCU)rQ?nlaGC_}m8{`(R@F*jIi*>)OK+FwJDnch=r}ecxK&UguT# zNjUW9ziTf59Kp9H6nG4%92)e}@a{T&(9YS;5QC>Ra@GegdTHhCpj%Y$3Uvj9qu^Ol-_vat36=E{@#@iXWAJ zy@sO}b>bhTe{Ve+4D8|f5PKgEgOaM$=1ki*{j-BxF)A zM<2RrYw3Sm{Tu@r6n|?Y#5ct8F@{A%PmpgT;2O+A`Vr9}f<5kIkG;%Cn@@lgFuEa-I&dos!FY%1AA)t$~S z+gUrEbMjMmAwP2KL`po;$Hba(W#@Eo_f5vDGFwfdYh4% z>sqJy%e2&c49(&@Z%F)S`q_Qquj(jzX@)=+C~`^&Pf(;2o^+8Wi=tB$#RwUp7JUx( zE4?Tfa}R-1Pt&_3paU4k1R=v`2+%2++~X#j(cfXLqMG3sT2)Zoq6loGFkOnzD~GucmPz+%bQ^bFU zHZ?|ptotm^xnd)(nB|J?Q}CXKGzSQ8pv(Qx@wyT$KGpp-P5L&33mPxpsln6}rBbN*$g`i$0~& z;swBO%3-4N|&_{b`xE6ObsY3!&4;XaE2J delta 1335 zcmZWo%~Km?9Dd%-CYxQ}h7c%$rqabQt1^dZRTG@5{L?>yBlob5_~Oh^zh!5giOs4nG1-=tNAzq3WaI zW{$&XWzd$a;^Me%i;6O1$oNr?E*ul5*l3`eqX)fWosAxiBcY*>A<__-UUjTe(X=`G zkrWSDRz1nkExH2T;s^itF4rlJVZ0zFl>spo_^HjHLe6kJgChn~c!}dI#>HPsPcVgZ z99c{X-Pb#o!pj`zG0qTL&O6zBd11|3T_7p>(kmRVVv<7T|Ak)TxQJ;{@J$fk8yuG~ zBes0wT?_{cr46fK<%>>f)>l3TzD@iodlUKSu#Y(HVT4Y!1L;X!~!udrl-1#;TlYnd41dro1)LrH?j+ zv2NgF+|cleu=NwVtm`JjcX4qm*dgv4A@Q4jU8D4mg7{nv8bj(WhLi5%zA-w~+YCM8 zp&q5oFuNlj8mS6h9bGJgB9DkrBTHh?L%Kk+n#f8MGD3f13w)Cv6okAafTNk7c|8GP zw2(z7g;vUHb8`>6BtssFk@y+y+vp(uAKh?+Dzb;l*rlS&A}U$O45308l@$HkcveCG z4vqsgoVbrvgD&K@)=mvX(M~^EVSD{mj~1vzsjmSlYLJ3{Mux2WIXv%)O?YA?Z+LGVE$5y>_H;medtmX0Ka^&uvjx+!kknupuvt%9Ar4BpTUB%dfaH zm-q#9J9r=1!a`%3^-iO1r*iyi7I^{%OS?C-O!hVUN61^E;a`V?4SY(>pP}OUzo0Mu O%d?&M3SZ+cI{yVLw%(Hf diff --git a/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class b/api/target/classes/com/mobeats/api/service/ProductoDepositoService.class index 352c7fb09d7835394f102eaa8d3c1e0950f137f7..5bda6480214c4a053dd3f883e05c93f61f1d1690 100644 GIT binary patch delta 1569 zcmZ`&O;cM{7=F&p$Gy2ZO+#o&XpzqZk{d8k3D&gM7O)k>($-o;t$HCT4GjsB3$|(- zwe_>wkvSVzj+-u=ae*_PFrcHIjw=_A8#`_s|A!05_uSkDu;b>u?|VL;=Q+=L&#!HF z+K&J7&*qN+p2RI33S27O93FTXg7fBznJSpYxzyy$d~Via@E*<=^VSgtS3Ggf2Ms-hxL|v~skeogrk)Shn(o)a0U-FBQ##IO`g9cQSN~22Xc`#EEjm z(9Pg3n=3iduXT#A+^VjV!Z=3)hL~2SsO&&5M;{&)%bvK_fqsqw91yoX2`UCT(ijr= zJ!vWqay)^IX!H(IahQ`kN5pBbTsg{d48!7%lJjkxXpLEQ7+6lc`9)>AMSX0m2f{N-&`q66Z(I^M<5?##~RtW!&+?DDKt z8qF=1%6Y3ad}S;f?H7M&^9{SbDC#I-QNL53@`+bEu-%1d#Q zqDGNgmc~<5r6@9r9%CKsJ4zIsrco|~j-Ihcdjp=wS*jRbfP6lAc+fel8+V{?U>Cz0 z%_^vDL4>wJ=nlj=d(#vhre<@XrYK6yVF{JoK%;`>Cc;1!`|qNohAUx1aMRdCR|q4B z2xUz+MN{p#O;Mp8wEQBbiQ^^8J&X#e{bju35Dq(p0f(?l!496911;OI1CD&q7dnqu zx1i74(68Zj2l_^a5~;G+NLJBvvah!aN>VaDR>k8o9;)Ig$=tVr9n3-x?5{}IjT%Co zv)8!}p~56~h2E&!*5R_R=u_+~nzoi1%sN`GIZ})rzK%Tb)z+5!j}Wr2)&(`M`bDCxVN+!b!|pnn}IBHbUKX2hqYyape~!Atds3?kiM^Mt-$vfoi;Xc99YNr8tVMD zH%M%2p@7XKVd!W556p88%!6ChP$Cbbki&VRS1@1yAeX2v4AIa@iwmUB!V0c9+1r#| VBhnl8_#r-~eLB^j;3hst^S?_e`1Ak( literal 4046 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 literal 3833 zcmcImYjYGu6g|B>HY`ID0wjQl0Rki&!hl3U7Elrhpi966g9s{<-A*!Oc4nQK4aD~o z-->V4KcQ7t5UjHNZ26lkPtRj_HX8_9<%gZ#nZEbj)Ayd+-GBal=XU^y@nae(ft>}X zq?ep=Y51OQlug}}?u=QG`dQa0Rtml|8osBoRG{^WF=ObKVNdF3#;?eNFVI$w>_%kS z@l4-wX9e{9d{nnOTLrE;{G4&)toQuoTPX-`hL zMoC_E+-aSRZBL&tNYS0ujjDrwwBkEgO;;8PyZn%8oBk1jCEYz^0!s&-qRe0kR%uv) zj6h4?wB>N6G%nq92IF!)d8c4lV}@(0_vqtNf6640o`z-JC0UHzGAaF|mKA4_-fi7I z`5=E4-?a3+>G?EUF=|fQhF@_Ry1&8TP(#2H7hqLWm^+eN0f7z;%dmVUHsFCYHVX9p ztL$sogf#-`3DYi;aY#MpJurK!DDZH1$ULZg-mxchjj5Q&OtI|boDdRE-40JE1h5IVWBN`sXes+Rq%usSWk~ys}M{=1gVY~!^ z&c%q3eWhHiV?UCN6Vz@okVRLMq3{oDco3U2=)>b0p1@J|6Qwfjl*Uy*t&RIBSjwoc z_7AF}4}%(x;W&-Gn(?|M!^pO0Oj)1Ma8f}x6Z)9+3a(i$P-trENexdapk@Nin>wvw z7-vF4XI)7Tfi-o6hAhYM13ph{7{O@BC$?RiLhVzsz=?og&G>ZmRwXP2O zlN5cs#=vrd0OLZ{hp!%wQ5`8dG)0VyGMqS1`>jb;htN^325IeHIC>4Jni~*q~TC zO2)JtbnJrRpEvy}{_}j6n+2(B+E}WIbVZ*sDB>k`&QYLo-uAZf@GEgg8V#~BWU3=? zZCujmsNb!sDA2v&vFmYvl8!%HmU?8)Q>=BsaeU8rjdHk?c^S;&l{8)!*jkf>Y0o&* zQqKn^q@fWV-Wp!TYZNH=zW9^CU&-=Do+0>2!!BCV>&iRMbfuhYTzKM3o#Q!@PMY8U zWEk?^zRA-eLLM|MYt-~*u4Or{&EJor-L@5PsGaO>4dW=#?k$1+?B)NU$6PDkjnF>O z;09>#^IHa=;IlM7Wt%nBB9uy~vZ3%QrR4Xyz|H?Z|B+5FChE1o5wt)qKW@U80vqF< zs*`uc&I#4kosQjk@L;EC!q=RSW!*S0pq;X9=?+?k=SeS(?*z6tBxfPHrSUxv{Ck`7 z+8JsSTUgm8yvPXlHE(Df(|l876UQcwyoK_)l5aXk!Essk7PO!FCxvD{l`){9C3pq~ zXvJ#2@m_;9v|7vmDXa@X`Xi7`_7}9@#(IIDg4r5UTLLLlMdB$+3`OHS#}vm7h0uE& z52et12it%-?EC|LHMlk`rCB?l9bChD{%a4Q+e7yVnm}CH9@5%N>t(#fao~j#`=WRQ zQM~3TUVjR8VZ!xqNmD;+_!5EN9Hh~#-TZ! zQe%D&XVrLa4$mqAeYY{6z($q;=;U(?3$m4~+{R>eVF&M~swmkoMwL{5v|h%=CDKdL zb9X>=NsxmTsUQcJ0|xq>@m}ATpqQ;v z%vLF8aTx|9cTh!kZ8-obmpzw7uAAK?areGxpr!Z);2 M-SsVQ;sh($ diff --git a/api/target/test-classes/com/mobeats/api/DepositosApplicationTests.class b/api/target/test-classes/com/mobeats/api/DepositosApplicationTests.class index 9743814067a70dcea4fd19b2b98240de189c1d68..935b40bfdc2546083959c4ae11c42def273bf909 100644 GIT binary patch delta 133 zcmZ3$vVcYW)W2Q(7#J9A8AP}km>8JZ8CZB2SQ*$R+9GQnHU7Y Mq!0s4RG5JQ06XdrU;qFB delta 133 zcmZ3$vVcY4)W2Q(7#J9A8AR9_m>3x}Coa@vW@liTD6S;P$iU*9pOVVOz|6qO!@$bG zwlQCTQJE3Q1py`?28uB-GOz<#`aqfyB%-yQfn)L_Mjc*$AP*!f0HoO`pJy}>WnvHn OvY8l!7+`Y33=9A~v=1%- From 1b785c9f3e2d98d0928123281ba21bc945ac3364 Mon Sep 17 00:00:00 2001 From: emikdev <143463864+emikdev@users.noreply.github.com> Date: Wed, 25 Oct 2023 14:10:24 +0200 Subject: [PATCH 06/22] Add files via upload --- index.html | 127 ++++++++++++++++++++++++++ productPop.js | 31 +++++++ style.css | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 402 insertions(+) create mode 100644 index.html create mode 100644 productPop.js create mode 100644 style.css diff --git a/index.html b/index.html new file mode 100644 index 0000000..9507252 --- /dev/null +++ b/index.html @@ -0,0 +1,127 @@ + + + + + + + Control de Stock + + + +

+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID Product Name Stock Deposito
+ + + + + + + + + + + \ No newline at end of file diff --git a/productPop.js b/productPop.js new file mode 100644 index 0000000..4a2301e --- /dev/null +++ b/productPop.js @@ -0,0 +1,31 @@ +const openModalButton = document.getElementById("openModalButton"); +const openModalButton2 = document.getElementById("openModalButton2"); +const closeModal = document.getElementById("closeModal"); +const closeModal2 = document.getElementById("closeModal2"); +const modal = document.getElementById("myModal"); +const modal2 = document.getElementById("myModal2"); + +openModalButton.addEventListener("click", function() { + modal.style.display = "block"; +}); + +openModalButton2.addEventListener("click", function() { + modal2.style.display = "block"; +}); + +closeModal.addEventListener("click", function() { + modal.style.display = "none"; +}); + +closeModal2.addEventListener("click", function() { + modal2.style.display = "none"; +}); + +window.addEventListener("click", function(event) { + if (event.target === modal) { + modal.style.display = "none"; + } + if (event.target === modal2) { + modal2.style.display = "none"; + } +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..b816650 --- /dev/null +++ b/style.css @@ -0,0 +1,244 @@ +/* Estilo del header */ +header { + background-color: #007bff; + color: #fff; + text-align: center; + padding: 30px; +} + +/* Estilos de etiquetas */ +label { + color: #000000; + margin-right: 10px; +} + +/* Estilos de select */ +select { + padding: 10px; + border: none; + border-radius: 5px; +} + +/* Estilos de botones */ +button { + background-color: #0056b3; + color: #fff; + border: none; + border-radius: 5px; + padding: 10px 20px; + cursor: pointer; + margin: 10px; +} + +button:hover { + background-color: #004799; +} + +/* Estilos para el botón "Movement" */ +#openModalButton { + float: right; +} + +/* Estilos para el botón "Product add" */ +#openModalButton2 { + float: left; +} + +/* Estilo de la lista de alumnos */ +h2 { + font-size: 20px; + margin-top: 20px; +} + +/* Estilos de la tabla */ +table { + border-collapse: collapse; + width: 100%; + margin-top: 20px; +} + +table, th, td { + border: 1px solid #ccc; +} + +th, td { + padding: 10px; + text-align: left; + text-align: center; +} + +/* Estilos de la ventana emergente (modal) */ +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); +} + +/* Estilos para el botón "Cerrar" (la "X") en la ventana emergente */ +.close { + float: right; + cursor: pointer; + font-size: 24px; +} + +.close:hover { + color: red; +} + +/* Estilos para el contenido de la ventana emergente */ +.modal-content { + background-color: #fff; + margin: auto; + margin-top: 60px; + padding: 20px; + border: 1px solid #888; + width: 30%; /* Ajusta el ancho de la ventana emergente */ + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); + text-align: center; +} + +/* Estilos para etiquetas y campos de entrada en la ventana emergente */ +.modal-content select, +.modal-content textarea, +.modal-content input { + width: 100%; + padding: 10px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; /* Evita que el input sobresalga por la derecha del fondo */ +} + +.modal-content select { + height: 40px; +} + +/* Ajusta el tamaño del textarea en la ventana emergente */ +.modal-content textarea { + width: 100%; + height: 200px; /* Ajusta la altura del textarea */ + padding: 10px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; /* Evita que el textarea sobresalga por la derecha del fondo */ +} + +/* Estilos para las etiquetas de los elementos en la ventana emergente */ +.modal-content label { + display: block; /* Para que cada etiqueta aparezca en una línea nueva */ + font-weight: bold; /* Texto en negrita para las etiquetas */ +} + +/* Estilos para el botón "Cerrar" (la "X") en la ventana emergente */ +.close { + float: right; + cursor: pointer; + font-size: 24px; +} + +.close:hover { + color: red; +} + +/* Estilos para la ventana emergente "Add Product" */ +#myModal2 { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); +} + +.modal-content2 { + background-color: #fff; + margin: 15% auto; + padding: 20px; + border: 1px solid #888; + width: 30%; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); + text-align: center; +} + +.close2 { + float: right; + +} + +/* Estilos para el modal 2 */ +#myModal2 { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); +} + +/* Estilos para el contenido del modal 2 */ +.modal-content2 { + background-color: #fff; + margin: 15% auto; + padding: 20px; + border: 1px solid #888; + width: 30%; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); + text-align: center; +} + +/* Estilos para el botón "Cerrar" (la "X") en el modal 2 */ +.close2 { + float: right; + cursor: pointer; + font-size: 24px; +} + +.close2:hover { + color: red; +} + +/* Estilos para el título del modal 2 */ +.modal-content2 h2 { + font-size: 24px; +} + +/* Estilos para etiquetas y campos de entrada en el modal 2 */ +.modal-content2 label { + display: block; + font-weight: bold; + margin: 10px 0; +} + +.modal-content2 input { + width: 100%; + padding: 10px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 3px; + box-sizing: border-box; /* Evita que el input sobresalga por la derecha del fondo */ +} + +/* Estilos para el botón en el modal 2 */ +.modal-content2 button { + background-color: #007bff; + color: #fff; + border: none; + border-radius: 5px; + padding: 10px 20px; + cursor: pointer; + margin: 10px; +} + +.modal-content2 button:hover { + background-color: #0056b3; +} From d161dca8a4fb3358cc0046fe704b6f9bfee3f828 Mon Sep 17 00:00:00 2001 From: emikdev <143463864+emikdev@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:33:03 +0200 Subject: [PATCH 07/22] Update style.css --- style.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/style.css b/style.css index b816650..9ef8997 100644 --- a/style.css +++ b/style.css @@ -188,10 +188,11 @@ th, td { /* Estilos para el contenido del modal 2 */ .modal-content2 { background-color: #fff; - margin: 15% auto; + margin: auto; + margin-top: 60px; padding: 20px; border: 1px solid #888; - width: 30%; + width: 30%; /* Ajusta el ancho de la ventana emergente */ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); text-align: center; } From 9e67519bf90739baea5b83f689f6977ee823c1f5 Mon Sep 17 00:00:00 2001 From: emikdev <143463864+emikdev@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:33:49 +0200 Subject: [PATCH 08/22] Update index.html --- index.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/index.html b/index.html index 9507252..796a8f6 100644 --- a/index.html +++ b/index.html @@ -112,9 +112,6 @@

Add Product

- - - @@ -124,4 +121,4 @@

Add Product

- \ No newline at end of file + From b496826345c815bf8c4794dfaaa9e04033c64085 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:21:45 -0300 Subject: [PATCH 09/22] Actualizacion de controllers --- .../java/com/mobeats/api/controller/DepositoController.java | 3 ++- .../com/mobeats/api/controller/MovimientoController.java | 1 + .../com/mobeats/api/controller/MovimientoTipoController.java | 1 + .../java/com/mobeats/api/controller/ProductoController.java | 1 + .../mobeats/api/controller/ProductoDepositoController.java | 5 +++-- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/mobeats/api/controller/DepositoController.java b/api/src/main/java/com/mobeats/api/controller/DepositoController.java index 40791e7..b0bd009 100644 --- a/api/src/main/java/com/mobeats/api/controller/DepositoController.java +++ b/api/src/main/java/com/mobeats/api/controller/DepositoController.java @@ -16,6 +16,7 @@ */ @RestController @RequestMapping("/api/v1") +@CrossOrigin(origins = "http://localhost:4200") public class DepositoController { @Autowired @@ -55,7 +56,7 @@ public ResponseEntity getDepositoById(@PathVariable(value = "id") Long * @return the user */ @PostMapping("/depositos") - public Deposito createProducto(@Valid @RequestBody Deposito deposito) { + public Deposito createDeposito(@Valid @RequestBody Deposito deposito) { return depositoRepository.save(deposito); } diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java index 3f5a84c..7eb8091 100644 --- a/api/src/main/java/com/mobeats/api/controller/MovimientoController.java +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoController.java @@ -19,6 +19,7 @@ */ @RestController @RequestMapping("/api/v1") +@CrossOrigin(origins = "http://localhost:4200") public class MovimientoController { @Autowired diff --git a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java index 6299ae0..3d12ec5 100644 --- a/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java +++ b/api/src/main/java/com/mobeats/api/controller/MovimientoTipoController.java @@ -15,6 +15,7 @@ */ @RestController @RequestMapping("/api/v1") +@CrossOrigin(origins = "http://localhost:4200") public class MovimientoTipoController { @Autowired diff --git a/api/src/main/java/com/mobeats/api/controller/ProductoController.java b/api/src/main/java/com/mobeats/api/controller/ProductoController.java index dc289f8..19e0ee9 100644 --- a/api/src/main/java/com/mobeats/api/controller/ProductoController.java +++ b/api/src/main/java/com/mobeats/api/controller/ProductoController.java @@ -17,6 +17,7 @@ */ @RestController @RequestMapping("/api/v1") +@CrossOrigin(origins = "http://localhost:4200") public class ProductoController { @Autowired diff --git a/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java b/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java index 5274951..7abaa32 100644 --- a/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java +++ b/api/src/main/java/com/mobeats/api/controller/ProductoDepositoController.java @@ -13,9 +13,10 @@ @RestController @RequestMapping("/api/v1") +@CrossOrigin(origins = "http://localhost:4200") public class ProductoDepositoController { - @Autowired + @Autowired private ProductoDepositoService productoDepositoService; @GetMapping("/productos_depositos") @@ -43,4 +44,4 @@ public ResponseEntity updateProductoDeposito( ProductoDeposito updatedProductoDeposito = productoDepositoService.updateProductoDeposito(productoDepositoId, productoDepositoDetails); return ResponseEntity.ok(updatedProductoDeposito); } -} \ No newline at end of file +} From f2e22d9e57d802ac76ea3b9a5e6a201f4c0c96e6 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:22:32 -0300 Subject: [PATCH 10/22] Create i --- angular/i | 1 + 1 file changed, 1 insertion(+) create mode 100644 angular/i diff --git a/angular/i b/angular/i new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/angular/i @@ -0,0 +1 @@ + From 1bbae42c50e78fafdb4b8fa5ab3d99fc546cd45a Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:23:07 -0300 Subject: [PATCH 11/22] Add files via upload --- .../dist/control_stock/3rdpartylicenses.txt | 266 ++++++++++++++++++ angular/dist/control_stock/favicon.ico | Bin 0 -> 948 bytes angular/dist/control_stock/index.html | 13 + .../control_stock/main.29b436af14bbc180.js | 1 + .../polyfills.7402fc72e38bd7b1.js | 1 + .../control_stock/runtime.058989a62d5912ed.js | 1 + .../control_stock/styles.87a6e181f4d11b21.css | 5 + 7 files changed, 287 insertions(+) create mode 100644 angular/dist/control_stock/3rdpartylicenses.txt create mode 100644 angular/dist/control_stock/favicon.ico create mode 100644 angular/dist/control_stock/index.html create mode 100644 angular/dist/control_stock/main.29b436af14bbc180.js create mode 100644 angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js create mode 100644 angular/dist/control_stock/runtime.058989a62d5912ed.js create mode 100644 angular/dist/control_stock/styles.87a6e181f4d11b21.css diff --git a/angular/dist/control_stock/3rdpartylicenses.txt b/angular/dist/control_stock/3rdpartylicenses.txt new file mode 100644 index 0000000..c88baaf --- /dev/null +++ b/angular/dist/control_stock/3rdpartylicenses.txt @@ -0,0 +1,266 @@ +@angular/common +MIT + +@angular/core +MIT + +@angular/platform-browser +MIT + +@angular/router +MIT + +bootstrap +MIT +The MIT License (MIT) + +Copyright (c) 2011-2023 The Bootstrap Authors + +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. + + +rxjs +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2023 Google LLC. https://angular.io/license + +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. diff --git a/angular/dist/control_stock/favicon.ico b/angular/dist/control_stock/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + ControlStock + + + + + + + + diff --git a/angular/dist/control_stock/main.29b436af14bbc180.js b/angular/dist/control_stock/main.29b436af14bbc180.js new file mode 100644 index 0000000..73d4fff --- /dev/null +++ b/angular/dist/control_stock/main.29b436af14bbc180.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcontrol_stock=self.webpackChunkcontrol_stock||[]).push([[179],{489:()=>{function Q(e){return"function"==typeof e}function no(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const Ti=no(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function ro(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class Ge{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(Q(r))try{r()}catch(i){t=i instanceof Ti?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{ff(i)}catch(s){t=t??[],s instanceof Ti?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Ti(t)}}add(t){var n;if(t&&t!==this)if(this.closed)ff(t);else{if(t instanceof Ge){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&ro(n,t)}remove(t){const{_finalizers:n}=this;n&&ro(n,t),t instanceof Ge&&t._removeParent(this)}}Ge.EMPTY=(()=>{const e=new Ge;return e.closed=!0,e})();const lf=Ge.EMPTY;function df(e){return e instanceof Ge||e&&"closed"in e&&Q(e.remove)&&Q(e.add)&&Q(e.unsubscribe)}function ff(e){Q(e)?e():e.unsubscribe()}const En={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Ai={setTimeout(e,t,...n){const{delegate:r}=Ai;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){const{delegate:t}=Ai;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function hf(e){Ai.setTimeout(()=>{const{onUnhandledError:t}=En;if(!t)throw e;t(e)})}function Za(){}const WC=Ya("C",void 0,void 0);function Ya(e,t,n){return{kind:e,value:t,error:n}}let _n=null;function Ri(e){if(En.useDeprecatedSynchronousErrorHandling){const t=!_n;if(t&&(_n={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=_n;if(_n=null,n)throw r}}else e()}class Qa extends Ge{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,df(t)&&t.add(this)):this.destination=eE}static create(t,n,r){return new oo(t,n,r)}next(t){this.isStopped?Ja(function YC(e){return Ya("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Ja(function ZC(e){return Ya("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Ja(WC,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const XC=Function.prototype.bind;function Xa(e,t){return XC.call(e,t)}class JC{constructor(t){this.partialObserver=t}next(t){const{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Ni(r)}}error(t){const{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Ni(r)}else Ni(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Ni(n)}}}class oo extends Qa{constructor(t,n,r){let o;if(super(),Q(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&En.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Xa(t.next,i),error:t.error&&Xa(t.error,i),complete:t.complete&&Xa(t.complete,i)}):o=t}this.destination=new JC(o)}}function Ni(e){En.useDeprecatedSynchronousErrorHandling?function QC(e){En.useDeprecatedSynchronousErrorHandling&&_n&&(_n.errorThrown=!0,_n.error=e)}(e):hf(e)}function Ja(e,t){const{onStoppedNotification:n}=En;n&&Ai.setTimeout(()=>n(e,t))}const eE={closed:!0,next:Za,error:function KC(e){throw e},complete:Za},Ka="function"==typeof Symbol&&Symbol.observable||"@@observable";function nn(e){return e}function pf(e){return 0===e.length?nn:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}let le=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function rE(e){return e&&e instanceof Qa||function nE(e){return e&&Q(e.next)&&Q(e.error)&&Q(e.complete)}(e)&&df(e)}(n)?n:new oo(n,r,o);return Ri(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=gf(r))((o,i)=>{const s=new oo({next:a=>{try{n(a)}catch(u){i(u),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[Ka](){return this}pipe(...n){return pf(n)(this)}toPromise(n){return new(n=gf(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function gf(e){var t;return null!==(t=e??En.Promise)&&void 0!==t?t:Promise}const oE=no(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let lt=(()=>{class e extends le{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new mf(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new oE}next(n){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(n)}})}error(n){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lf:(this.currentObservers=null,i.push(n),new Ge(()=>{this.currentObservers=null,ro(i,n)}))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new le;return n.source=this,n}}return e.create=(t,n)=>new mf(t,n),e})();class mf extends lt{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:lf}}function vf(e){return Q(e?.lift)}function fe(e){return t=>{if(vf(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function he(e,t,n,r,o){return new iE(e,t,n,r,o)}class iE extends Qa{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(u){t.error(u)}}:super._next,this._error=o?function(a){try{o(a)}catch(u){t.error(u)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function q(e,t){return fe((n,r)=>{let o=0;n.subscribe(he(r,i=>{r.next(e.call(t,i,o++))}))})}function rn(e){return this instanceof rn?(this.v=e,this):new rn(e)}function Cf(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function ru(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,u){!function o(i,s,a,u){Promise.resolve(u).then(function(c){i({value:c,done:a})},s)}(a,u,(s=e[i](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Ef=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function _f(e){return Q(e?.then)}function If(e){return Q(e[Ka])}function bf(e){return Symbol.asyncIterator&&Q(e?.[Symbol.asyncIterator])}function Sf(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Mf=function ME(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Tf(e){return Q(e?.[Mf])}function Af(e){return function wf(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(f){r[f]&&(o[f]=function(h){return new Promise(function(p,g){i.push([f,h,p,g])>1||a(f,h)})})}function a(f,h){try{!function u(f){f.value instanceof rn?Promise.resolve(f.value.v).then(c,l):d(i[0][2],f)}(r[f](h))}catch(p){d(i[0][3],p)}}function c(f){a("next",f)}function l(f){a("throw",f)}function d(f,h){f(h),i.shift(),i.length&&a(i[0][0],i[0][1])}}(this,arguments,function*(){const n=e.getReader();try{for(;;){const{value:r,done:o}=yield rn(n.read());if(o)return yield rn(void 0);yield yield rn(r)}}finally{n.releaseLock()}})}function Rf(e){return Q(e?.getReader)}function et(e){if(e instanceof le)return e;if(null!=e){if(If(e))return function TE(e){return new le(t=>{const n=e[Ka]();if(Q(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Ef(e))return function AE(e){return new le(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,hf)})}(e);if(bf(e))return Nf(e);if(Tf(e))return function NE(e){return new le(t=>{for(const n of e)if(t.next(n),t.closed)return;t.complete()})}(e);if(Rf(e))return function xE(e){return Nf(Af(e))}(e)}throw Sf(e)}function Nf(e){return new le(t=>{(function OE(e,t){var n,r,o,i;return function yf(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(l){try{c(r.next(l))}catch(d){s(d)}}function u(l){try{c(r.throw(l))}catch(d){s(d)}}function c(l){l.done?i(l.value):function o(i){return i instanceof n?i:new n(function(s){s(i)})}(l.value).then(a,u)}c((r=r.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(n=Cf(e);!(r=yield n.next()).done;)if(t.next(r.value),t.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(n=>t.error(n))})}function Lt(e,t,n,r=0,o=!1){const i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function De(e,t,n=1/0){return Q(t)?De((r,o)=>q((i,s)=>t(r,i,o,s))(et(e(r,o))),n):("number"==typeof t&&(n=t),fe((r,o)=>function PE(e,t,n,r,o,i,s,a){const u=[];let c=0,l=0,d=!1;const f=()=>{d&&!u.length&&!c&&t.complete()},h=g=>c{i&&t.next(g),c++;let v=!1;et(n(g,l++)).subscribe(he(t,D=>{o?.(D),i?h(D):t.next(D)},()=>{v=!0},void 0,()=>{if(v)try{for(c--;u.length&&cp(D)):p(D)}f()}catch(D){t.error(D)}}))};return e.subscribe(he(t,h,()=>{d=!0,f()})),()=>{a?.()}}(r,o,e,n)))}function Wn(e=1/0){return De(nn,e)}const Et=new le(e=>e.complete());function ou(e){return e[e.length-1]}function io(e){return function kE(e){return e&&Q(e.schedule)}(ou(e))?e.pop():void 0}function xf(e,t=0){return fe((n,r)=>{n.subscribe(he(r,o=>Lt(r,e,()=>r.next(o),t),()=>Lt(r,e,()=>r.complete(),t),o=>Lt(r,e,()=>r.error(o),t)))})}function Of(e,t=0){return fe((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Pf(e,t){if(!e)throw new Error("Iterable cannot be null");return new le(n=>{Lt(n,t,()=>{const r=e[Symbol.asyncIterator]();Lt(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function ve(e,t){return t?function zE(e,t){if(null!=e){if(If(e))return function $E(e,t){return et(e).pipe(Of(t),xf(t))}(e,t);if(Ef(e))return function VE(e,t){return new le(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(_f(e))return function HE(e,t){return et(e).pipe(Of(t),xf(t))}(e,t);if(bf(e))return Pf(e,t);if(Tf(e))return function BE(e,t){return new le(n=>{let r;return Lt(n,t,()=>{r=e[Mf](),Lt(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void n.error(s)}i?n.complete():n.next(o)},0,!0)}),()=>Q(r?.return)&&r.return()})}(e,t);if(Rf(e))return function UE(e,t){return Pf(Af(e),t)}(e,t)}throw Sf(e)}(e,t):et(e)}class tt extends lt{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){const{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}}function A(...e){return ve(e,io(e))}function Ff(e={}){const{connector:t=(()=>new lt),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,u,c=0,l=!1,d=!1;const f=()=>{a?.unsubscribe(),a=void 0},h=()=>{f(),s=u=void 0,l=d=!1},p=()=>{const g=s;h(),g?.unsubscribe()};return fe((g,v)=>{c++,!d&&!l&&f();const D=u=u??t();v.add(()=>{c--,0===c&&!d&&!l&&(a=iu(p,o))}),D.subscribe(v),!s&&c>0&&(s=new oo({next:m=>D.next(m),error:m=>{d=!0,f(),a=iu(h,n,m),D.error(m)},complete:()=>{l=!0,f(),a=iu(h,r),D.complete()}}),et(g).subscribe(s))})(i)}}function iu(e,t,...n){if(!0===t)return void e();if(!1===t)return;const r=new oo({next:()=>{r.unsubscribe(),e()}});return et(t(...n)).subscribe(r)}function dt(e,t){return fe((n,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();n.subscribe(he(r,u=>{o?.unsubscribe();let c=0;const l=i++;et(e(u,l)).subscribe(o=he(r,d=>r.next(t?t(u,d,l,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function WE(e,t){return e===t}function Z(e){for(let t in e)if(e[t]===Z)return t;throw Error("Could not find renamed property on target object.")}function pe(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(pe).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function su(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const ZE=Z({__forward_ref__:Z});function au(e){return e.__forward_ref__=au,e.toString=function(){return pe(this())},e}function x(e){return uu(e)?e():e}function uu(e){return"function"==typeof e&&e.hasOwnProperty(ZE)&&e.__forward_ref__===au}function cu(e){return e&&!!e.\u0275providers}class w extends Error{constructor(t,n){super(function Oi(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function O(e){return"string"==typeof e?e:null==e?"":String(e)}function lu(e,t){throw new w(-201,!1)}function nt(e,t){null==e&&function R(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function S(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function jt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Pi(e){return Lf(e,ki)||Lf(e,jf)}function Lf(e,t){return e.hasOwnProperty(t)?e[t]:null}function Fi(e){return e&&(e.hasOwnProperty(du)||e.hasOwnProperty(n_))?e[du]:null}const ki=Z({\u0275prov:Z}),du=Z({\u0275inj:Z}),jf=Z({ngInjectableDef:Z}),n_=Z({ngInjectorDef:Z});var $=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}($||{});let fu;function je(e){const t=fu;return fu=e,t}function Hf(e,t,n){const r=Pi(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&$.Optional?null:void 0!==t?t:void lu(pe(e))}const J=globalThis,so={},vu="__NG_DI_FLAG__",Li="ngTempTokenPath",i_=/\n/gm,Bf="__source";let Zn;function on(e){const t=Zn;return Zn=e,t}function u_(e,t=$.Default){if(void 0===Zn)throw new w(-203,!1);return null===Zn?Hf(e,void 0,t):Zn.get(e,t&$.Optional?null:void 0,t)}function b(e,t=$.Default){return(function $f(){return fu}()||u_)(x(e),t)}function _(e,t=$.Default){return b(e,ji(t))}function ji(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function yu(e){const t=[];for(let n=0;nt){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==qf(h,c,0)||2&r&&c!==f){if(ht(r))return!1;s=!0}}}}else{if(!s&&!ht(r)&&!ht(u))return!1;if(s&&ht(u))continue;s=!1,r=u|1&r}}return ht(r)||s}function ht(e){return 0==(1&e)}function g_(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!ht(s)&&(t+=Kf(i,o),o=""),r=s,i=i||!ht(r);n++}return""!==o&&(t+=Kf(i,o)),t}function Vi(e){return $t(()=>{const t=th(e),n={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===$i.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||ft.Emulated,styles:e.styles||U,_:null,schemas:e.schemas||null,tView:null,id:""};nh(n);const r=e.dependencies;return n.directiveDefs=Bi(r,!1),n.pipeDefs=Bi(r,!0),n.id=function T_(e){let t=0;const n=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const o of n)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}(n),n})}function I_(e){return V(e)||we(e)}function b_(e){return null!==e}function sn(e){return $t(()=>({type:e.type,bootstrap:e.bootstrap||U,declarations:e.declarations||U,imports:e.imports||U,exports:e.exports||U,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function eh(e,t){if(null==e)return _t;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function Te(e){return $t(()=>{const t=th(e);return nh(t),t})}function V(e){return e[Hi]||null}function we(e){return e[Du]||null}function Ae(e){return e[wu]||null}function We(e,t){const n=e[zf]||null;if(!n&&!0===t)throw new Error(`Type ${pe(e)} does not have '\u0275mod' property.`);return n}function th(e){const t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||_t,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||U,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:eh(e.inputs,t),outputs:eh(e.outputs)}}function nh(e){e.features?.forEach(t=>t(e))}function Bi(e,t){if(!e)return null;const n=t?Ae:I_;return()=>("function"==typeof e?e():e).map(r=>n(r)).filter(b_)}const ie=0,C=1,k=2,re=3,pt=4,lo=5,Ie=6,Qn=7,ae=8,an=9,Xn=10,P=11,fo=12,rh=13,Jn=14,ue=15,ho=16,Kn=17,It=18,po=19,oh=20,un=21,Vt=22,go=23,mo=24,H=25,Eu=1,ih=2,bt=7,er=9,Ce=11;function He(e){return Array.isArray(e)&&"object"==typeof e[Eu]}function Re(e){return Array.isArray(e)&&!0===e[Eu]}function _u(e){return 0!=(4&e.flags)}function bn(e){return e.componentOffset>-1}function zi(e){return 1==(1&e.flags)}function gt(e){return!!e.template}function Iu(e){return 0!=(512&e[k])}function Sn(e,t){return e.hasOwnProperty(Ht)?e[Ht]:null}let Ee=null,Gi=!1;function rt(e){const t=Ee;return Ee=e,t}const uh={version:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{}};function lh(e){if(!yo(e)||e.dirty){if(!e.producerMustRecompute(e)&&!hh(e))return void(e.dirty=!1);e.producerRecomputeValue(e),e.dirty=!1}}function fh(e){e.dirty=!0,function dh(e){if(void 0===e.liveConsumerNode)return;const t=Gi;Gi=!0;try{for(const n of e.liveConsumerNode)n.dirty||fh(n)}finally{Gi=t}}(e),e.consumerMarkedDirty?.(e)}function Su(e){return e&&(e.nextProducerIndex=0),rt(e)}function Mu(e,t){if(rt(t),e&&void 0!==e.producerNode&&void 0!==e.producerIndexOfThis&&void 0!==e.producerLastReadVersion){if(yo(e))for(let n=e.nextProducerIndex;ne.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function hh(e){tr(e);for(let t=0;t0}function tr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let vh=null;const Ch=()=>{},V_=(()=>({...uh,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:e=>{e.schedule(e.ref)},hasRun:!1,cleanupFn:Ch}))();class B_{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function Mn(){return Eh}function Eh(e){return e.type.prototype.ngOnChanges&&(e.setInput=z_),U_}function U_(){const e=Ih(this),t=e?.current;if(t){const n=e.previous;if(n===_t)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function z_(e,t,n,r){const o=this.declaredInputs[n],i=Ih(e)||function G_(e,t){return e[_h]=t}(e,{previous:_t,current:null}),s=i.current||(i.current={}),a=i.previous,u=a[o];s[o]=new B_(u&&u.currentValue,t,a===_t),e[r]=t}Mn.ngInherit=!0;const _h="__ngSimpleChanges__";function Ih(e){return e[_h]||null}const St=function(e,t,n){};function K(e){for(;Array.isArray(e);)e=e[ie];return e}function Ve(e,t){return K(t[e.index])}function Mh(e,t){return e.data[t]}function Ze(e,t){const n=t[e];return He(n)?n:n[ie]}function ln(e,t){return null==t?null:e[t]}function Th(e){e[Kn]=0}function X_(e){1024&e[k]||(e[k]|=1024,Rh(e,1))}function Ah(e){1024&e[k]&&(e[k]&=-1025,Rh(e,-1))}function Rh(e,t){let n=e[re];if(null===n)return;n[lo]+=t;let r=n;for(n=n[re];null!==n&&(1===t&&1===r[lo]||-1===t&&0===r[lo]);)n[lo]+=t,r=n,n=n[re]}const N={lFrame:Vh(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Oh(){return N.bindingsEnabled}function y(){return N.lFrame.lView}function B(){return N.lFrame.tView}function _e(){let e=Ph();for(;null!==e&&64===e.type;)e=e.parent;return e}function Ph(){return N.lFrame.currentTNode}function Mt(e,t){const n=N.lFrame;n.currentTNode=e,n.isParent=t}function xu(){return N.lFrame.isParent}function or(){return N.lFrame.bindingIndex++}function dI(e,t){const n=N.lFrame;n.bindingIndex=n.bindingRootIndex=e,Pu(t)}function Pu(e){N.lFrame.currentDirectiveIndex=e}function ku(e){N.lFrame.currentQueryIndex=e}function hI(e){const t=e[C];return 2===t.type?t.declTNode:1===t.type?e[Ie]:null}function $h(e,t,n){if(n&$.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&$.Host||(o=hI(i),null===o||(i=i[Jn],10&o.type))););if(null===o)return!1;t=o,e=i}const r=N.lFrame=Hh();return r.currentTNode=t,r.lView=e,!0}function Lu(e){const t=Hh(),n=e[C];N.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Hh(){const e=N.lFrame,t=null===e?null:e.child;return null===t?Vh(e):t}function Vh(e){const t={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:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function Bh(){const e=N.lFrame;return N.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Uh=Bh;function ju(){const e=Bh();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function xe(){return N.lFrame.selectedIndex}function Tn(e){N.lFrame.selectedIndex=e}let Gh=!0;function Zi(){return Gh}function dn(e){Gh=e}function Yi(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[u]<0&&(e[Kn]+=65536),(a>13>16&&(3&e[k])===t&&(e[k]+=8192,Wh(a,i)):Wh(a,i)}const ir=-1;class wo{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function Vu(e){return e!==ir}function Co(e){return 32767&e}function Eo(e,t){let n=function bI(e){return e>>16}(e),r=t;for(;n>0;)r=r[Jn],n--;return r}let Bu=!0;function Ji(e){const t=Bu;return Bu=e,t}const Zh=255,Yh=5;let SI=0;const Tt={};function Ki(e,t){const n=Qh(e,t);if(-1!==n)return n;const r=t[C];r.firstCreatePass&&(e.injectorIndex=t.length,Uu(r.data,e),Uu(t,null),Uu(r.blueprint,null));const o=es(e,t),i=e.injectorIndex;if(Vu(o)){const s=Co(o),a=Eo(o,t),u=a[C].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|u[s+c]}return t[i+8]=o,i}function Uu(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qh(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function es(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=op(o),null===r)return ir;if(n++,o=o[Jn],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return ir}function zu(e,t,n){!function MI(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(uo)&&(r=n[uo]),null==r&&(r=n[uo]=SI++);const o=r&Zh;t.data[e+(o>>Yh)]|=1<=0?t&Zh:xI:t}(n);if("function"==typeof i){if(!$h(t,e,r))return r&$.Host?Xh(o,0,r):Jh(t,n,r,o);try{let s;if(s=i(r),null!=s||r&$.Optional)return s;lu()}finally{Uh()}}else if("number"==typeof i){let s=null,a=Qh(e,t),u=ir,c=r&$.Host?t[ue][Ie]:null;for((-1===a||r&$.SkipSelf)&&(u=-1===a?es(e,t):t[a+8],u!==ir&&np(r,!1)?(s=t[C],a=Co(u),t=Eo(u,t)):a=-1);-1!==a;){const l=t[C];if(tp(i,a,l.data)){const d=AI(a,t,n,s,r,c);if(d!==Tt)return d}u=t[a+8],u!==ir&&np(r,t[C].data[a+8]===c)&&tp(i,a,t)?(s=l,a=Co(u),t=Eo(u,t)):a=-1}}return o}function AI(e,t,n,r,o,i){const s=t[C],a=s.data[e+8],l=function ts(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,u=e.directiveStart,l=i>>20,f=o?a+l:e.directiveEnd;for(let h=r?a:a+l;h=u&&p.type===n)return h}if(o){const h=s[u];if(h&>(h)&&h.type===n)return u}return null}(a,s,n,null==r?bn(a)&&Bu:r!=s&&0!=(3&a.type),o&$.Host&&i===a);return null!==l?An(t,s,l,a):Tt}function An(e,t,n,r){let o=e[n];const i=t.data;if(function EI(e){return e instanceof wo}(o)){const s=o;s.resolving&&function YE(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new w(-200,`Circular dependency in DI detected for ${e}${n}`)}(function W(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():O(e)}(i[n]));const a=Ji(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?je(s.injectImpl):null;$h(e,r,$.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function wI(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=Eh(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}(n,i[n],t)}finally{null!==c&&je(c),Ji(a),s.resolving=!1,Uh()}}return o}function tp(e,t,n){return!!(n[t+(e>>Yh)]&1<{const t=Gu(x(e));return t&&t()}:Sn(e)}function op(e){const t=e[C],n=t.type;return 2===n?t.declTNode:1===n?e[Ie]:null}const ar="__parameters__";function cr(e,t,n){return $t(()=>{const r=function qu(e){return function(...n){if(e){const r=e(...n);for(const o in r)this[o]=r[o]}}}(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(u,c,l){const d=u.hasOwnProperty(ar)?u[ar]:Object.defineProperty(u,ar,{value:[]})[ar];for(;d.length<=l;)d.push(null);return(d[l]=d[l]||[]).push(s),u}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function dr(e,t){e.forEach(n=>Array.isArray(n)?dr(n,t):t(n))}function sp(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function rs(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}const is=ao(cr("Optional"),8),ss=ao(cr("SkipSelf"),4);function ds(e){return 128==(128&e.flags)}var fn=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(fn||{});const Ju=new Map;let lb=0;const ec="__ngContext__";function be(e,t){He(t)?(e[ec]=t[po],function fb(e){Ju.set(e[po],e)}(t)):e[ec]=t}let tc;function nc(e,t){return tc(e,t)}function To(e){const t=e[re];return Re(t)?t[re]:t}function Mp(e){return Ap(e[fo])}function Tp(e){return Ap(e[pt])}function Ap(e){for(;null!==e&&!Re(e);)e=e[pt];return e}function gr(e,t,n,r,o){if(null!=r){let i,s=!1;Re(r)?i=r:He(r)&&(s=!0,r=r[ie]);const a=K(r);0===e&&null!==n?null==o?Op(t,n,a):Rn(t,n,a,o||null,!0):1===e&&null!==n?Rn(t,n,a,o||null,!0):2===e?function ys(e,t,n){const r=ms(e,t);r&&function Nb(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function Pb(e,t,n,r,o){const i=n[bt];i!==K(n)&&gr(t,e,r,i,o);for(let a=Ce;a0&&(e[n-1][pt]=r[pt]);const i=rs(e,Ce+t);!function _b(e,t){Ro(e,t,t[P],2,null,null),t[ie]=null,t[Ie]=null}(r[C],r);const s=i[It];null!==s&&s.detachView(i[C]),r[re]=null,r[pt]=null,r[k]&=-129}return r}function oc(e,t){if(!(256&t[k])){const n=t[P];t[go]&&ph(t[go]),t[mo]&&ph(t[mo]),n.destroyNode&&Ro(e,t,n,3,null,null),function Sb(e){let t=e[fo];if(!t)return ic(e[C],e);for(;t;){let n=null;if(He(t))n=t[fo];else{const r=t[Ce];r&&(n=r)}if(!n){for(;t&&!t[pt]&&t!==e;)He(t)&&ic(t[C],t),t=t[re];null===t&&(t=e),He(t)&&ic(t[C],t),n=t&&t[pt]}t=n}}(t)}}function ic(e,t){if(!(256&t[k])){t[k]&=-129,t[k]|=256,function Rb(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r=0?r[s]():r[-s].unsubscribe(),i+=2}else n[i].call(r[n[i+1]]);null!==r&&(t[Qn]=null);const o=t[un];if(null!==o){t[un]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===ft.None||i===ft.Emulated)return null}return Ve(r,n)}}(e,t.parent,n)}function Rn(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Op(e,t,n){e.appendChild(t,n)}function Pp(e,t,n,r,o){null!==r?Rn(e,t,n,r,o):Op(e,t,n)}function ms(e,t){return e.parentNode(t)}let ac,dc,Lp=function kp(e,t,n){return 40&e.type?Ve(e,n):null};function vs(e,t,n,r){const o=sc(e,r,t),i=t[P],a=function Fp(e,t,n){return Lp(e,t,n)}(r.parent||t[Ie],r,t);if(null!=o)if(Array.isArray(n))for(let u=0;u{n.push(s)};return dr(t,s=>{const a=s;Es(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&sg(o,i),n}function sg(e,t){for(let n=0;n{t(i,r)})}}function Es(e,t,n,r){if(!(e=x(e)))return!1;let o=null,i=Fi(e);const s=!i&&V(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const u=e.ngModule;if(i=Fi(u),!i)return!1;o=u}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const u="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of u)Es(c,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{dr(i.imports,l=>{Es(l,t,n,r)&&(c||=[],c.push(l))})}finally{}void 0!==c&&sg(c,t)}if(!a){const c=Sn(o)||(()=>new o);t({provide:o,useFactory:c,deps:U},o),t({provide:og,useValue:o,multi:!0},o),t({provide:Po,useValue:()=>b(o),multi:!0},o)}const u=i.providers;if(null!=u&&!a){const c=e;Dc(u,l=>{t(l,c)})}}}return o!==e&&void 0!==e.providers}function Dc(e,t){for(let n of e)cu(n)&&(n=n.\u0275providers),Array.isArray(n)?Dc(n,t):t(n)}const lS=Z({provide:String,useValue:Z});function wc(e){return null!==e&&"object"==typeof e&&lS in e}function Nn(e){return"function"==typeof e}const Cc=new I("Set Injector scope."),_s={},fS={};let Ec;function Is(){return void 0===Ec&&(Ec=new vc),Ec}class Qe{}class bs extends Qe{get destroyed(){return this._destroyed}constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Ic(t,s=>this.processProvider(s)),this.records.set(rg,Dr(void 0,this)),o.has("environment")&&this.records.set(Qe,Dr(void 0,this));const i=this.records.get(Cc);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(og.multi,U,$.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const n of t)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const n=on(this),r=je(void 0);try{return t()}finally{on(n),je(r)}}get(t,n=so,r=$.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(Gf))return t[Gf](this);r=ji(r);const i=on(this),s=je(void 0);try{if(!(r&$.SkipSelf)){let u=this.records.get(t);if(void 0===u){const c=function vS(e){return"function"==typeof e||"object"==typeof e&&e instanceof I}(t)&&Pi(t);u=c&&this.injectableDefInScope(c)?Dr(_c(t),_s):null,this.records.set(t,u)}if(null!=u)return this.hydrate(t,u)}return(r&$.Self?Is():this.parent).get(t,n=r&$.Optional&&n===so?null:n)}catch(a){if("NullInjectorError"===a.name){if((a[Li]=a[Li]||[]).unshift(pe(t)),i)throw a;return function l_(e,t,n,r){const o=e[Li];throw t[Bf]&&o.unshift(t[Bf]),e.message=function d_(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=pe(t);if(Array.isArray(t))o=t.map(pe).join(" -> ");else if("object"==typeof t){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):pe(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(i_,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[Li]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{je(s),on(i)}}resolveInjectorInitializers(){const t=on(this),n=je(void 0);try{const o=this.get(Po.multi,U,$.Self);for(const i of o)i()}finally{on(t),je(n)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(pe(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new w(205,!1)}processProvider(t){let n=Nn(t=x(t))?t:x(t&&t.provide);const r=function pS(e){return wc(e)?Dr(void 0,e.useValue):Dr(function cg(e,t,n){let r;if(Nn(e)){const o=x(e);return Sn(o)||_c(o)}if(wc(e))r=()=>x(e.useValue);else if(function ug(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...yu(e.deps||[]));else if(function ag(e){return!(!e||!e.useExisting)}(e))r=()=>b(x(e.useExisting));else{const o=x(e&&(e.useClass||e.provide));if(!function gS(e){return!!e.deps}(e))return Sn(o)||_c(o);r=()=>new o(...yu(e.deps))}return r}(e),_s)}(t);if(Nn(t)||!0!==t.multi)this.records.get(n);else{let o=this.records.get(n);o||(o=Dr(void 0,_s,!0),o.factory=()=>yu(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){return n.value===_s&&(n.value=fS,n.value=n.factory()),"object"==typeof n.value&&n.value&&function mS(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=x(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){const n=this._onDestroyHooks.indexOf(t);-1!==n&&this._onDestroyHooks.splice(n,1)}}function _c(e){const t=Pi(e),n=null!==t?t.factory:Sn(e);if(null!==n)return n;if(e instanceof I)throw new w(204,!1);if(e instanceof Function)return function hS(e){const t=e.length;if(t>0)throw function bo(e,t){const n=[];for(let r=0;rn.factory(e):()=>new e}(e);throw new w(204,!1)}function Dr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Ic(e,t){for(const n of e)Array.isArray(n)?Ic(n,t):n&&cu(n)?Ic(n.\u0275providers,t):t(n)}const Ss=new I("AppId",{providedIn:"root",factory:()=>yS}),yS="ng",lg=new I("Platform Initializer"),xn=new I("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),dg=new I("CSP nonce",{providedIn:"root",factory:()=>function vr(){if(void 0!==dc)return dc;if(typeof document<"u")return document;throw new w(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let fg=(e,t,n)=>null;function xc(e,t,n=!1){return fg(e,t,n)}class TS{}class gg{}class RS{resolveComponentFactory(t){throw function AS(e){const t=Error(`No component factory found for ${pe(e)}.`);return t.ngComponent=e,t}(t)}}let xs=(()=>{class e{static#e=this.NULL=new RS}return e})();function NS(){return Er(_e(),y())}function Er(e,t){return new pn(Ve(e,t))}let pn=(()=>{class e{constructor(n){this.nativeElement=n}static#e=this.__NG_ELEMENT_ID__=NS}return e})();class vg{}let PS=(()=>{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>null})}return e})();class Ps{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const FS=new Ps("16.2.10"),Fc={};function Cg(e,t=null,n=null,r){const o=Eg(e,t,n,r);return o.resolveInjectorInitializers(),o}function Eg(e,t=null,n=null,r,o=new Set){const i=[n||U,cS(e)];return r=r||("object"==typeof e?void 0:pe(e)),new bs(i,t||Is(),r||null,o)}let it=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=so;static#t=this.NULL=new vc;static create(n,r){if(Array.isArray(n))return Cg({name:""},r,n,"");{const o=n.name??"";return Cg({name:o},n.parent,n.providers,o)}}static#n=this.\u0275prov=S({token:e,providedIn:"any",factory:()=>b(rg)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();function Lc(e){return e.ngOriginalError}class Gt{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&Lc(t);for(;n&&Lc(n);)n=Lc(n);return n||null}}function $c(e){return t=>{setTimeout(e,void 0,t)}}const Pe=class BS extends lt{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&"object"==typeof t){const u=t;o=u.next?.bind(u),i=u.error?.bind(u),s=u.complete?.bind(u)}this.__isAsync&&(i=$c(i),o&&(o=$c(o)),s&&(s=$c(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof Ge&&t.add(a),a}};function Ig(...e){}class ee{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Pe(!1),this.onMicrotaskEmpty=new Pe(!1),this.onStable=new Pe(!1),this.onError=new Pe(!1),typeof Zone>"u")throw new w(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function US(){const e="function"==typeof J.requestAnimationFrame;let t=J[e?"requestAnimationFrame":"setTimeout"],n=J[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&n){const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r);const o=n[Zone.__symbol__("OriginalDelegate")];o&&(n=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function qS(e){const t=()=>{!function GS(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(J,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Vc(e),e.isCheckStableRunning=!0,Hc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Vc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{if(function ZS(e){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0].data?.__ignore_ng_zone__}(a))return n.invokeTask(o,i,s,a);try{return bg(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Sg(e)}},onInvoke:(n,r,o,i,s,a,u)=>{try{return bg(e),n.invoke(o,i,s,a,u)}finally{e.shouldCoalesceRunChangeDetection&&t(),Sg(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,Vc(e),Hc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ee.isInAngularZone())throw new w(909,!1)}static assertNotInAngularZone(){if(ee.isInAngularZone())throw new w(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,zS,Ig,Ig);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const zS={};function Hc(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Vc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function bg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Sg(e){e._nesting--,Hc(e)}class WS{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Pe,this.onMicrotaskEmpty=new Pe,this.onStable=new Pe,this.onError=new Pe}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}const Mg=new I("",{providedIn:"root",factory:Tg});function Tg(){const e=_(ee);let t=!0;return function GE(...e){const t=io(e),n=function jE(e,t){return"number"==typeof ou(e)?e.pop():t}(e,1/0),r=e;return r.length?1===r.length?et(r[0]):Wn(n)(ve(r,t)):Et}(new le(o=>{t=e.isStable&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks,e.runOutsideAngular(()=>{o.next(t),o.complete()})}),new le(o=>{let i;e.runOutsideAngular(()=>{i=e.onStable.subscribe(()=>{ee.assertNotInAngularZone(),queueMicrotask(()=>{!t&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks&&(t=!0,o.next(!0))})})});const s=e.onUnstable.subscribe(()=>{ee.assertInAngularZone(),t&&(t=!1,e.runOutsideAngular(()=>{o.next(!1)}))});return()=>{i.unsubscribe(),s.unsubscribe()}}).pipe(Ff()))}function qt(e){return e instanceof Function?e():e}let Bc=(()=>{class e{constructor(){this.renderDepth=0,this.handler=null}begin(){this.handler?.validateBegin(),this.renderDepth++}end(){this.renderDepth--,0===this.renderDepth&&this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null}static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();function Lo(e){for(;e;){e[k]|=64;const t=To(e);if(Iu(e)&&!t)return e;e=t}return null}const Og=new I("",{providedIn:"root",factory:()=>!1});let ks=null;function Lg(e,t){return e[t]??Hg()}function jg(e,t){const n=Hg();n.producerNode?.length&&(e[t]=ks,n.lView=e,ks=$g())}const oM={...uh,consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Lo(e.lView)},lView:null};function $g(){return Object.create(oM)}function Hg(){return ks??=$g(),ks}const F={};function jo(e){Vg(B(),y(),xe()+e,!1)}function Vg(e,t,n,r){if(!r)if(3==(3&t[k])){const i=e.preOrderCheckHooks;null!==i&&Qi(t,i,n)}else{const i=e.preOrderHooks;null!==i&&Xi(t,i,0,n)}Tn(n)}function T(e,t=$.Default){const n=y();return null===n?b(e,t):Kh(_e(),n,x(e),t)}function Ls(e,t,n,r,o,i,s,a,u,c,l){const d=t.blueprint.slice();return d[ie]=o,d[k]=140|r,(null!==c||e&&2048&e[k])&&(d[k]|=2048),Th(d),d[re]=d[Jn]=e,d[ae]=n,d[Xn]=s||e&&e[Xn],d[P]=a||e&&e[P],d[an]=u||e&&e[an]||null,d[Ie]=i,d[po]=function db(){return lb++}(),d[Vt]=l,d[oh]=c,d[ue]=2==t.type?e[ue]:d,d}function br(e,t,n,r,o){let i=e.data[t];if(null===i)i=function Uc(e,t,n,r,o){const i=Ph(),s=xu(),u=e.data[t]=function fM(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return function rr(){return null!==N.skipHydrationRootTNode}()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,n,t,r,o);return null===e.firstChild&&(e.firstChild=u),null!==i&&(s?null==i.child&&null!==u.parent&&(i.child=u):null===i.next&&(i.next=u,u.prev=i)),u}(e,t,n,r,o),function lI(){return N.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=n,i.value=r,i.attrs=o;const s=function Do(){const e=N.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return Mt(i,!0),i}function $o(e,t,n,r){if(0===n)return-1;const o=t.length;for(let i=0;iH&&Vg(e,t,H,!1),St(a?2:0,o);const c=a?i:null,l=Su(c);try{null!==c&&(c.dirty=!1),n(r,o)}finally{Mu(c,l)}}finally{a&&null===t[go]&&jg(t,go),Tn(s),St(a?3:1,o)}}function zc(e,t,n){if(_u(t)){const r=rt(null);try{const i=t.directiveEnd;for(let s=t.directiveStart;snull;function qg(e,t,n,r){for(let o in e)if(e.hasOwnProperty(o)){n=null===n?{}:n;const i=e[o];null===r?Wg(n,t,o,i):r.hasOwnProperty(o)&&Wg(n,t,r[o],i)}return n}function Wg(e,t,n,r){e.hasOwnProperty(n)?e[n].push(t,r):e[n]=[t,r]}function Zc(e,t,n,r){if(Oh()){const o=null===r?null:{"":-1},i=function CM(e,t){const n=e.directiveRegistry;let r=null,o=null;if(n)for(let i=0;i0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,$o(e,n,o.hostVars,F),o)}function MM(e,t,n,r,o,i){const s=i[t];if(null!==s)for(let a=0;a{class e{constructor(){this.all=new Set,this.queue=new Map}create(n,r,o){const i=typeof Zone>"u"?null:Zone.current,s=function H_(e,t,n){const r=Object.create(V_);n&&(r.consumerAllowSignalWrites=!0),r.fn=e,r.schedule=t;const o=s=>{r.cleanupFn=s};return r.ref={notify:()=>fh(r),run:()=>{if(r.dirty=!1,r.hasRun&&!hh(r))return;r.hasRun=!0;const s=Su(r);try{r.cleanupFn(),r.cleanupFn=Ch,r.fn(o)}finally{Mu(r,s)}},cleanup:()=>r.cleanupFn()},r.ref}(n,c=>{this.all.has(c)&&this.queue.set(c,i)},o);let a;this.all.add(s),s.notify();const u=()=>{s.cleanup(),a?.(),this.all.delete(s),this.queue.delete(s)};return a=r?.onDestroy(u),{destroy:u}}flush(){if(0!==this.queue.size)for(const[n,r]of this.queue)this.queue.delete(n),r?r.run(()=>n.run()):n.run()}get isQueueEmpty(){return 0===this.queue.size}static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();function $s(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(null!==t)for(let s=0;s0){sm(e,1);const o=n.components;null!==o&&um(e,o,1)}}function um(e,t,n){for(let r=0;r-1&&(gs(t,r),rs(n,r))}this._attachedToViewContainer=!1}oc(this._lView[C],this._lView)}onDestroy(t){!function Nh(e,t){if(256==(256&e[k]))throw new w(911,!1);null===e[un]&&(e[un]=[]),e[un].push(t)}(this._lView,t)}markForCheck(){Lo(this._cdRefInjectingView||this._lView)}detach(){this._lView[k]&=-129}reattach(){this._lView[k]|=128}detectChanges(){Hs(this._lView[C],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new w(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function bb(e,t){Ro(e,t,t[P],2,null,null)}(this._lView[C],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new w(902,!1);this._appRef=t}}class kM extends Vo{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Hs(t[C],t,t[ae],!1)}checkNoChanges(){}get context(){return null}}class cm extends xs{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=V(t);return new Bo(n,this.ngModule)}}function lm(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class jM{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=ji(r);const o=this.injector.get(t,Fc,r);return o!==Fc||n===Fc?o:this.parentInjector.get(t,n,r)}}class Bo extends gg{get inputs(){const t=this.componentDef,n=t.inputTransforms,r=lm(t.inputs);if(null!==n)for(const o of r)n.hasOwnProperty(o.propName)&&(o.transform=n[o.propName]);return r}get outputs(){return lm(this.componentDef.outputs)}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function C_(e){return e.map(w_).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}create(t,n,r,o){let i=(o=o||this.ngModule)instanceof Qe?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new jM(t,i):t,a=s.get(vg,null);if(null===a)throw new w(407,!1);const d={rendererFactory:a,sanitizer:s.get(PS,null),effectManager:s.get(rm,null),afterRenderEventManager:s.get(Bc,null)},f=a.createRenderer(null,this.componentDef),h=this.componentDef.selectors[0][0]||"div",p=r?function aM(e,t,n,r){const i=r.get(Og,!1)||n===ft.ShadowDom,s=e.selectRootElement(t,i);return function uM(e){Gg(e)}(s),s}(f,r,this.componentDef.encapsulation,s):ps(f,h,function LM(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(h)),D=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let m=null;null!==p&&(m=xc(p,s,!0));const E=Wc(0,null,null,1,0,null,null,null,null,null,null),M=Ls(null,E,null,D,null,null,d,f,s,null,m);let j,ye;Lu(M);try{const kt=this.componentDef;let qn,cf=null;kt.findHostDirectiveDefs?(qn=[],cf=new Map,kt.findHostDirectiveDefs(kt,qn,cf),qn.push(kt)):qn=[kt];const Hk=function HM(e,t){const n=e[C],r=H;return e[r]=t,br(n,r,2,"#host",null)}(M,p),Vk=function VM(e,t,n,r,o,i,s){const a=o[C];!function BM(e,t,n,r){for(const o of e)t.mergedAttrs=co(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&($s(t,t.mergedAttrs,!0),null!==n&&Up(r,n,t))}(r,e,t,s);let u=null;null!==t&&(u=xc(t,o[an]));const c=i.rendererFactory.createRenderer(t,n);let l=16;n.signals?l=4096:n.onPush&&(l=64);const d=Ls(o,zg(n),null,l,o[e.index],e,i,c,null,null,u);return a.firstCreatePass&&Yc(a,e,r.length-1),js(o,d),o[e.index]=d}(Hk,p,kt,qn,M,d,f);ye=Mh(E,H),p&&function zM(e,t,n,r){if(r)Cu(e,n,["ng-version",FS.full]);else{const{attrs:o,classes:i}=function E_(e){const t=[],n=[];let r=1,o=2;for(;r0&&Bp(e,n,i.join(" "))}}(f,kt,p,r),void 0!==n&&function GM(e,t,n){const r=e.projection=[];for(let o=0;o(dn(!0),ps(r,o,function zh(){return N.lFrame.currentNamespace}()));function Zs(e){return!!e&&"function"==typeof e.then}function Fm(e){return!!e&&"function"==typeof e.subscribe}function Xs(e,t=""){const n=y(),r=B(),o=e+H,i=r.firstCreatePass?br(r,o,1,t,null):r.data[o],s=lv(r,n,i,t,e);n[o]=s,Zi()&&vs(r,n,s,i),Mt(i,!1)}let lv=(e,t,n,r,o)=>(dn(!0),function hs(e,t){return e.createText(t)}(t[P],r));function Zo(e){return vl("",e,""),Zo}function vl(e,t,n){const r=y(),o=function Mr(e,t,n,r){return Se(e,or(),n)?t+O(n)+r:F}(r,e,t,n);return o!==F&&Wt(r,xe(),o),vl}const Lr="en-US";let xv=Lr;class jn{}class oy{}class Il extends jn{constructor(t,n,r){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new cm(this);const o=We(t);this._bootstrapComponents=qt(o.bootstrap),this._r3Injector=Eg(t,n,[{provide:jn,useValue:this},{provide:xs,useValue:this.componentFactoryResolver},...r],pe(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class bl extends oy{constructor(t){super(),this.moduleType=t}create(t){return new Il(this.moduleType,t,[])}}class iy extends jn{constructor(t){super(),this.componentFactoryResolver=new cm(this),this.instance=null;const n=new bs([...t.providers,{provide:jn,useValue:this},{provide:xs,useValue:this.componentFactoryResolver}],t.parent||Is(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Sl(e,t,n=null){return new iy({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}let NA=(()=>{class e{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const r=ig(0,n.type),o=r.length>0?Sl([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=S({token:e,providedIn:"environment",factory:()=>new e(b(Qe))})}return e})();function sy(e){e.getStandaloneInjector=t=>t.get(NA).getOrCreateStandaloneInjector(e)}function iR(e,t,n,r=!0){const o=t[C];if(function Mb(e,t,n,r){const o=Ce+r,i=n.length;r>0&&(n[o-1][pt]=t),r{class e{static#e=this.__NG_ELEMENT_ID__=uR}return e})();const sR=Zt,aR=class extends sR{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){const o=function oR(e,t,n,r){const o=t.tView,a=Ls(e,o,n,4096&e[k]?4096:16,null,t,null,null,null,r?.injector??null,r?.hydrationInfo??null);a[ho]=e[t.index];const c=e[It];return null!==c&&(a[It]=c.createEmbeddedView(o)),Kc(o,a,n),a}(this._declarationLView,this._declarationTContainer,t,{injector:n,hydrationInfo:r});return new Vo(o)}};function uR(){return function na(e,t){return 4&e.type?new aR(t,e,Er(e,t)):null}(_e(),y())}let yt=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=pR}return e})();function pR(){return function Iy(e,t){let n;const r=t[e.index];return Re(r)?n=r:(n=Xg(r,t,null,e),t[e.index]=n,js(t,n)),by(n,t,e,r),new Ey(n,e,t)}(_e(),y())}const gR=yt,Ey=class extends gR{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Er(this._hostTNode,this._hostLView)}get injector(){return new Oe(this._hostTNode,this._hostLView)}get parentInjector(){const t=es(this._hostTNode,this._hostLView);if(Vu(t)){const n=Eo(t,this._hostLView),r=Co(t);return new Oe(n[C].data[r+8],n)}return new Oe(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=_y(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-Ce}createEmbeddedView(t,n,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const a=t.createEmbeddedViewImpl(n||{},i,null);return this.insertImpl(a,o,false),a}createComponent(t,n,r,o,i){const s=t&&!function Io(e){return"function"==typeof e}(t);let a;if(s)a=n;else{const g=n||{};a=g.index,r=g.injector,o=g.projectableNodes,i=g.environmentInjector||g.ngModuleRef}const u=s?t:new Bo(V(t)),c=r||this.parentInjector;if(!i&&null==u.ngModule){const v=(s?c:this.parentInjector).get(Qe,null);v&&(i=v)}V(u.componentType??{});const h=u.create(c,o,null,i);return this.insertImpl(h.hostView,a,false),h}insert(t,n){return this.insertImpl(t,n,!1)}insertImpl(t,n,r){const o=t._lView;if(function Q_(e){return Re(e[re])}(o)){const u=this.indexOf(t);if(-1!==u)this.detach(u);else{const c=o[re],l=new Ey(c,c[Ie],c[re]);l.detach(l.indexOf(t))}}const s=this._adjustIndex(n),a=this._lContainer;return iR(a,o,s,!r),t.attachToViewContainerRef(),sp(Al(a),s,t),t}move(t,n){return this.insert(t,n)}indexOf(t){const n=_y(this._lContainer);return null!==n?n.indexOf(t):-1}remove(t){const n=this._adjustIndex(t,-1),r=gs(this._lContainer,n);r&&(rs(Al(this._lContainer),n),oc(r[C],r))}detach(t){const n=this._adjustIndex(t,-1),r=gs(this._lContainer,n);return r&&null!=rs(Al(this._lContainer),n)?new Vo(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function _y(e){return e[8]}function Al(e){return e[8]||(e[8]=[])}let by=function Sy(e,t,n,r){if(e[bt])return;let o;o=8&n.type?K(r):function mR(e,t){const n=e[P],r=n.createComment(""),o=Ve(t,e);return Rn(n,ms(n,o),r,function xb(e,t){return e.nextSibling(t)}(n,o),!1),r}(t,n),e[bt]=o};const Hl=new I("Application Initializer");let Vl=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r}),this.appInits=_(Hl,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const o of this.appInits){const i=o();if(Zs(i))n.push(i);else if(Fm(i)){const s=new Promise((a,u)=>{i.subscribe({complete:a,error:u})});n.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Xy=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const Yt=new I("LocaleId",{providedIn:"root",factory:()=>_(Yt,$.Optional|$.SkipSelf)||function WR(){return typeof $localize<"u"&&$localize.locale||Lr}()});let ia=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new tt(!1)}add(){this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class QR{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}let Jy=(()=>{class e{compileModuleSync(n){return new bl(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=qt(We(n).declarations).reduce((s,a)=>{const u=V(a);return u&&s.push(new Bo(u)),s},[]);return new QR(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const nD=new I(""),aa=new I("");let ql,zl=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,ql||(function mN(e){ql=e}(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?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:()=>{ee.assertNotInAngularZone(),queueMicrotask(()=>{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())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!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(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static#e=this.\u0275fac=function(r){return new(r||e)(b(ee),b(Gl),b(aa))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Gl=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return ql?.findTestabilityInTree(this,n,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),mn=null;const rD=new I("AllowMultipleToken"),Wl=new I("PlatformDestroyListeners"),Zl=new I("appBootstrapListener");class iD{constructor(t,n){this.name=t,this.token=n}}function aD(e,t,n=[]){const r=`Platform: ${t}`,o=new I(r);return(i=[])=>{let s=Yl();if(!s||s.injector.get(rD,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function DN(e){if(mn&&!mn.get(rD,!1))throw new w(400,!1);(function oD(){!function F_(e){vh=e}(()=>{throw new w(600,!1)})})(),mn=e;const t=e.get(cD);(function sD(e){e.get(lg,null)?.forEach(n=>n())})(e)}(function uD(e=[],t){return it.create({name:t,providers:[{provide:Cc,useValue:"platform"},{provide:Wl,useValue:new Set([()=>mn=null])},...e]})}(a,r))}return function CN(e){const t=Yl();if(!t)throw new w(401,!1);return t}()}}function Yl(){return mn?.get(cD)??null}let cD=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function EN(e="zone.js",t){return"noop"===e?new WS:"zone.js"===e?new ee(t):e}(r?.ngZone,function lD(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing}));return o.run(()=>{const i=function RA(e,t,n){return new Il(e,t,n)}(n.moduleType,this.injector,function gD(e){return[{provide:ee,useFactory:e},{provide:Po,multi:!0,useFactory:()=>{const t=_(IN,{optional:!0});return()=>t.initialize()}},{provide:pD,useFactory:_N},{provide:Mg,useFactory:Tg}]}(()=>o)),s=i.injector.get(Gt,null);return o.runOutsideAngular(()=>{const a=o.onError.subscribe({next:u=>{s.handleError(u)}});i.onDestroy(()=>{ua(this._modules,i),a.unsubscribe()})}),function dD(e,t,n){try{const r=n();return Zs(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,o,()=>{const a=i.injector.get(Vl);return a.runInitializers(),a.donePromise.then(()=>(function Ov(e){nt(e,"Expected localeId to be defined"),"string"==typeof e&&(xv=e.toLowerCase().replace(/_/g,"-"))}(i.injector.get(Yt,Lr)||Lr),this._moduleDoBootstrap(i),i))})})}bootstrapModule(n,r=[]){const o=fD({},r);return function vN(e,t,n){const r=new bl(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(Hr);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new w(-403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new w(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Wl,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(r){return new(r||e)(b(it))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function fD(e,t){return Array.isArray(t)?t.reduce(fD,e):{...e,...t}}let Hr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=_(pD),this.zoneIsStable=_(Mg),this.componentTypes=[],this.components=[],this.isStable=_(ia).hasPendingTasks.pipe(dt(n=>n?A(!1):this.zoneIsStable),function qE(e,t=nn){return e=e??WE,fe((n,r)=>{let o,i=!0;n.subscribe(he(r,s=>{const a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}(),Ff()),this._injector=_(Qe)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const o=n instanceof gg;if(!this._injector.get(Vl).done)throw!o&&function Yn(e){const t=V(e)||we(e)||Ae(e);return null!==t&&t.standalone}(n),new w(405,!1);let s;s=o?n:this._injector.get(xs).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function yN(e){return e.isBoundToModule}(s)?void 0:this._injector.get(jn),c=s.create(it.NULL,[],r||s.selector,a),l=c.location.nativeElement,d=c.injector.get(nD,null);return d?.registerApplication(l),c.onDestroy(()=>{this.detachView(c.hostView),ua(this.components,c),d?.unregisterApplication(l)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new w(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this.internalErrorHandler(n)}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;ua(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(Zl,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>ua(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new w(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ua(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const pD=new I("",{providedIn:"root",factory:()=>_(Gt).handleError.bind(void 0)});function _N(){const e=_(ee),t=_(Gt);return n=>e.runOutsideAngular(()=>t.handleError(n))}let IN=(()=>{class e{constructor(){this.zone=_(ee),this.applicationRef=_(Hr)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();let Ql=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=SN}return e})();function SN(e){return function MN(e,t,n){if(bn(e)&&!n){const r=Ze(e.index,t);return new Vo(r,r)}return 47&e.type?new Vo(t[ue],t):null}(_e(),y(),16==(16&e))}class DD{constructor(){}supports(t){return Bs(t)}create(t){return new ON(t)}}const xN=(e,t)=>t;class ON{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||xN}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),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,n,r,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new PN(n,r),i,o),t}_verifyReinsertion(t,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const n=t._next;this._addToRemovals(this._unlink(t)),t=n}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,n,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,i=t._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const o=null===n?this._itHead:n._next;return t._next=o,t._prev=n,null===o?this._itTail=t:o._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new wD),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new wD),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,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class PN{constructor(t,n){this.item=t,this.trackById=n,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 FN{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,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class wD{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new FN,this.map.set(n,r)),r.add(t)}get(t,n){const o=this.map.get(t);return o?o.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function CD(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:_D});constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||_D()),deps:[[e,new ss,new is]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new w(901,!1)}}return e})();const HN=aD(null,"core",[]);let VN=(()=>{class e{constructor(n){}static#e=this.\u0275fac=function(r){return new(r||e)(b(Hr))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})(),rd=null;function Vr(){return rd}class tx{}const Je=new I("DocumentToken");let od=(()=>{class e{historyGo(n){throw new Error("Not implemented")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(rx)},providedIn:"platform"})}return e})();const nx=new I("Location Initialized");let rx=(()=>{class e extends od{constructor(){super(),this._doc=_(Je),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Vr().getBaseHref(this._doc)}onPopState(n){const r=Vr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=Vr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}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(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return new e},providedIn:"platform"})}return e})();function id(e,t){if(0==e.length)return t;if(0==t.length)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function OD(e){const t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function Qt(e){return e&&"?"!==e[0]?"?"+e:e}let Hn=(()=>{class e{historyGo(n){throw new Error("Not implemented")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(FD)},providedIn:"root"})}return e})();const PD=new I("appBaseHref");let FD=(()=>{class e extends Hn{constructor(n,r){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??_(Je).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return id(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+Qt(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){const s=this.prepareExternalUrl(o+Qt(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){const s=this.prepareExternalUrl(o+Qt(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(od),b(PD,8))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ox=(()=>{class e extends Hn{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=id(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Qt(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Qt(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(od),b(PD,8))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),sd=(()=>{class e{constructor(n){this._subject=new Pe,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const r=this._locationStrategy.getBaseHref();this._basePath=function ax(e){if(new RegExp("^(https?:)?//").test(e)){const[,n]=e.split(/\/\/[^\/]+/);return n}return e}(OD(kD(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+Qt(r))}normalize(n){return e.stripTrailingSlash(function sx(e,t){if(!e||!t.startsWith(e))return t;const n=t.substring(e.length);return""===n||["/",";","?","#"].includes(n[0])?n:t}(this._basePath,kD(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Qt(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Qt(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r,complete:o})}static#e=this.normalizeQueryParams=Qt;static#t=this.joinWithSlash=id;static#n=this.stripTrailingSlash=OD;static#r=this.\u0275fac=function(r){return new(r||e)(b(Hn))};static#o=this.\u0275prov=S({token:e,factory:function(){return function ix(){return new sd(b(Hn))}()},providedIn:"root"})}return e})();function kD(e){return e.replace(/\/index.html$/,"")}function GD(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}class Wx{constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}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 ZD=(()=>{class e{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new Wx(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),YD(a,o)}});for(let o=0,i=r.length;o{YD(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(T(yt),T(Zt),T(da))};static#t=this.\u0275dir=Te({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function YD(e,t){e.context.$implicit=t.item}let wO=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})();function ew(e){return"server"===e}let IO=(()=>{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new bO(b(Je),window)})}return e})();class bO{constructor(t,n){this.document=t,this.window=n,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 n=function SO(e,t){const n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.supportsScrolling()&&(this.window.history.scrollRestoration=t)}scrollToElement(t){const n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}class tw{}class YO extends tx{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class _d extends YO{static makeCurrent(){!function ex(e){rd||(rd=e)}(new _d)}onAndCancel(t,n,r){return t.addEventListener(n,r),()=>{t.removeEventListener(n,r)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||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,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function QO(){return ui=ui||document.querySelector("base"),ui?ui.getAttribute("href"):null}();return null==n?null:function XO(e){ba=ba||document.createElement("a"),ba.setAttribute("href",e);const t=ba.pathname;return"/"===t.charAt(0)?t:`/${t}`}(n)}resetBaseElement(){ui=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return GD(document.cookie,t)}}let ba,ui=null,KO=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Id=new I("EventManagerPlugins");let sw=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new w(5101,!1);return this._eventNameToPlugin.set(n,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(b(Id),b(ee))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();class aw{constructor(t){this._doc=t}}const bd="ng-app-id";let uw=(()=>{class e{constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.platformId=i,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=ew(i),this.resetHostNodes()}addStyles(n){for(const r of n)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(n){for(const r of n)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(r=>r.remove()),n.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const r of this.getAllStyles())this.addStyleToHost(n,r)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const r of this.hostNodes)this.addStyleToHost(r,n)}onStyleRemoved(n){const r=this.styleRef;r.get(n)?.elements?.forEach(o=>o.remove()),r.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${bd}="${this.appId}"]`);if(n?.length){const r=new Map;return n.forEach(o=>{null!=o.textContent&&r.set(o.textContent,o)}),r}return null}changeUsageCount(n,r){const o=this.styleRef;if(o.has(n)){const i=o.get(n);return i.usage+=r,i.usage}return o.set(n,{usage:r,elements:[]}),r}getStyleElement(n,r){const o=this.styleNodesInDOM,i=o?.get(r);if(i?.parentNode===n)return o.delete(r),i.removeAttribute(bd),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(bd,this.appId),s}}addStyleToHost(n,r){const o=this.getStyleElement(n,r);n.appendChild(o);const i=this.styleRef,s=i.get(r)?.elements;s?s.push(o):i.set(r,{elements:[o],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je),b(Ss),b(dg,8),b(xn))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Sd={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/",math:"http://www.w3.org/1998/MathML/"},Md=/%COMP%/g,rP=new I("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function lw(e,t){return t.map(n=>n.replace(Md,e))}let dw=(()=>{class e{constructor(n,r,o,i,s,a,u,c=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=u,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=ew(a),this.defaultRenderer=new Td(n,s,u,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===ft.ShadowDom&&(r={...r,encapsulation:ft.Emulated});const o=this.getOrCreateRenderer(n,r);return o instanceof hw?o.applyToHost(n):o instanceof Ad&&o.applyStyles(),o}getOrCreateRenderer(n,r){const o=this.rendererByCompId;let i=o.get(r.id);if(!i){const s=this.doc,a=this.ngZone,u=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case ft.Emulated:i=new hw(u,c,r,this.appId,l,s,a,d);break;case ft.ShadowDom:return new aP(u,c,n,r,s,a,this.nonce,d);default:i=new Ad(u,c,r,l,s,a,d)}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(r){return new(r||e)(b(sw),b(uw),b(Ss),b(rP),b(Je),b(xn),b(ee),b(dg))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();class Td{constructor(t,n,r,o){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,n){return n?this.doc.createElementNS(Sd[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(fw(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(fw(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?this.doc.querySelector(t):t;if(!r)throw new w(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=Sd[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=Sd[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(fn.DashCase|fn.Important)?t.style.setProperty(n,r,o&fn.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&fn.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t[n]=r}setValue(t,n){t.nodeValue=n}listen(t,n,r){if("string"==typeof t&&!(t=Vr().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${n}`);return this.eventManager.addEventListener(t,n,this.decoratePreventDefault(r))}decoratePreventDefault(t){return n=>{if("__ngUnwrap__"===n)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))&&n.preventDefault()}}}function fw(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class aP extends Td{constructor(t,n,r,o,i,s,a,u){super(t,i,s,u),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=lw(o.id,o.styles);for(const l of c){const d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=l,this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(this.nodeOrShadowRoot(t),n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Ad extends Td{constructor(t,n,r,o,i,s,a,u){super(t,i,s,a),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o,this.styles=u?lw(u,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class hw extends Ad{constructor(t,n,r,o,i,s,a,u){const c=o+"-"+r.id;super(t,n,r,i,s,a,u,c),this.contentAttr=function oP(e){return"_ngcontent-%COMP%".replace(Md,e)}(c),this.hostAttr=function iP(e){return"_nghost-%COMP%".replace(Md,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}let uP=(()=>{class e extends aw{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const pw=["alt","control","meta","shift"],cP={"\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"},lP={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let dP=(()=>{class e extends aw{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Vr().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),pw.forEach(c=>{const l=r.indexOf(c);l>-1&&(r.splice(l,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const u={};return u.domEventName=o,u.fullKey=s,u}static matchEventFullKeyCode(n,r){let o=cP[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),pw.forEach(s=>{s!==o&&(0,lP[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const gP=aD(HN,"browser",[{provide:xn,useValue:"browser"},{provide:lg,useValue:function fP(){_d.makeCurrent()},multi:!0},{provide:Je,useFactory:function pP(){return function Hb(e){dc=e}(document),document},deps:[]}]),mP=new I(""),vw=[{provide:aa,useClass:class JO{addToWindow(t){J.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new w(5103,!1);return i},J.getAllAngularTestabilities=()=>t.getAllTestabilities(),J.getAllAngularRootElements=()=>t.getAllRootElements(),J.frameworkStabilizers||(J.frameworkStabilizers=[]),J.frameworkStabilizers.push(r=>{const o=J.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(u){s=s||u,i--,0==i&&r(s)};o.forEach(u=>{u.whenStable(a)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?Vr().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:nD,useClass:zl,deps:[ee,Gl,aa]},{provide:zl,useClass:zl,deps:[ee,Gl,aa]}],yw=[{provide:Cc,useValue:"root"},{provide:Gt,useFactory:function hP(){return new Gt},deps:[]},{provide:Id,useClass:uP,multi:!0,deps:[Je,ee,xn]},{provide:Id,useClass:dP,multi:!0,deps:[Je]},dw,uw,sw,{provide:vg,useExisting:dw},{provide:tw,useClass:KO,deps:[]},[]];let vP=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:Ss,useValue:n.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(b(mP,12))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({providers:[...yw,...vw],imports:[wO,VN]})}return e})(),Dw=(()=>{class e{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:function(r){let o=null;return o=r?new r:function DP(){return new Dw(b(Je))}(),o},providedIn:"root"})}return e})();typeof window<"u"&&window;const{isArray:bP}=Array,{getPrototypeOf:SP,prototype:MP,keys:TP}=Object;const{isArray:NP}=Array;function Nd(...e){const t=io(e),n=function LE(e){return Q(ou(e))?e.pop():void 0}(e),{args:r,keys:o}=function AP(e){if(1===e.length){const t=e[0];if(bP(t))return{args:t,keys:null};if(function RP(e){return e&&"object"==typeof e&&SP(e)===MP}(t)){const n=TP(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}(e);if(0===r.length)return ve([],t);const i=new le(function FP(e,t,n=nn){return r=>{_w(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let u=0;u{const c=ve(e[u],t);let l=!1;c.subscribe(he(r,d=>{i[u]=d,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,t,o?s=>function PP(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}(o,s):nn));return n?i.pipe(function OP(e){return q(t=>function xP(e,t){return NP(t)?e(...t):e(t)}(e,t))}(n)):i}function _w(e,t,n){e?Lt(n,e,t):t()}const Sa=no(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function xd(...e){return function kP(){return Wn(1)}()(ve(e,io(e)))}function Iw(e){return new le(t=>{et(e()).subscribe(t)})}function ci(e,t){const n=Q(e)?e:()=>e,r=o=>o.error(n());return new le(t?o=>t.schedule(r,0,o):r)}function Od(){return fe((e,t)=>{let n=null;e._refCount++;const r=he(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(n=null);const o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}class bw extends le{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,vf(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Ge;const n=this.getSubject();t.add(this.source.subscribe(he(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Ge.EMPTY)}return t}refCount(){return Od()(this)}}function Ur(e){return e<=0?()=>Et:fe((t,n)=>{let r=0;t.subscribe(he(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Kt(e,t){return fe((n,r)=>{let o=0;n.subscribe(he(r,i=>e.call(t,i,o++)&&r.next(i)))})}function Ma(e){return fe((t,n)=>{let r=!1;t.subscribe(he(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function Sw(e=jP){return fe((t,n)=>{let r=!1;t.subscribe(he(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function jP(){return new Sa}function Vn(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Kt((o,i)=>e(o,i,r)):nn,Ur(1),n?Ma(t):Sw(()=>new Sa))}function zr(e,t){return Q(t)?De(e,t,1):De(e,1)}function Me(e,t,n){const r=Q(e)||t||n?{next:e,error:t,complete:n}:e;return r?fe((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(he(i,u=>{var c;null===(c=r.next)||void 0===c||c.call(r,u),i.next(u)},()=>{var u;a=!1,null===(u=r.complete)||void 0===u||u.call(r),i.complete()},u=>{var c;a=!1,null===(c=r.error)||void 0===c||c.call(r,u),i.error(u)},()=>{var u,c;a&&(null===(u=r.unsubscribe)||void 0===u||u.call(r)),null===(c=r.finalize)||void 0===c||c.call(r)}))}):nn}function Bn(e){return fe((t,n)=>{let i,r=null,o=!1;r=t.subscribe(he(n,void 0,void 0,s=>{i=et(e(s,Bn(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function Pd(e){return e<=0?()=>Et:fe((t,n)=>{let r=[];t.subscribe(he(n,o=>{r.push(o),e{for(const o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function li(e){return fe((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}const L="primary",di=Symbol("RouteTitle");class zP{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n[0]:n}return null}getAll(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function Gr(e){return new zP(e)}function GP(e,t,n){const r=n.path.split("/");if(r.length>e.length||"full"===n.pathMatch&&(t.hasChildren()||r.lengthr[i]===o)}return e===t}function Tw(e){return e.length>0?e[e.length-1]:null}function yn(e){return function IP(e){return!!e&&(e instanceof le||Q(e.lift)&&Q(e.subscribe))}(e)?e:Zs(e)?ve(Promise.resolve(e)):A(e)}const WP={exact:function Nw(e,t,n){if(!Un(e.segments,t.segments)||!Ta(e.segments,t.segments,n)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const r in t.children)if(!e.children[r]||!Nw(e.children[r],t.children[r],n))return!1;return!0},subset:xw},Aw={exact:function ZP(e,t){return Ot(e,t)},subset:function YP(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>Mw(e[n],t[n]))},ignored:()=>!0};function Rw(e,t,n){return WP[n.paths](e.root,t.root,n.matrixParams)&&Aw[n.queryParams](e.queryParams,t.queryParams)&&!("exact"===n.fragment&&e.fragment!==t.fragment)}function xw(e,t,n){return Ow(e,t,t.segments,n)}function Ow(e,t,n,r){if(e.segments.length>n.length){const o=e.segments.slice(0,n.length);return!(!Un(o,n)||t.hasChildren()||!Ta(o,n,r))}if(e.segments.length===n.length){if(!Un(e.segments,n)||!Ta(e.segments,n,r))return!1;for(const o in t.children)if(!e.children[o]||!xw(e.children[o],t.children[o],r))return!1;return!0}{const o=n.slice(0,e.segments.length),i=n.slice(e.segments.length);return!!(Un(e.segments,o)&&Ta(e.segments,o,r)&&e.children[L])&&Ow(e.children[L],t,i,r)}}function Ta(e,t,n){return t.every((r,o)=>Aw[n](e[o].parameters,r.parameters))}class qr{constructor(t=new Y([],{}),n={},r=null){this.root=t,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Gr(this.queryParams)),this._queryParamMap}toString(){return JP.serialize(this)}}class Y{constructor(t,n){this.segments=t,this.children=n,this.parent=null,Object.values(n).forEach(r=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Aa(this)}}class fi{constructor(t,n){this.path=t,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=Gr(this.parameters)),this._parameterMap}toString(){return kw(this)}}function Un(e,t){return e.length===t.length&&e.every((n,r)=>n.path===t[r].path)}let hi=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return new Fd},providedIn:"root"})}return e})();class Fd{parse(t){const n=new cF(t);return new qr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(t){const n=`/${pi(t.root,!0)}`,r=function tF(e){const t=Object.keys(e).map(n=>{const r=e[n];return Array.isArray(r)?r.map(o=>`${Ra(n)}=${Ra(o)}`).join("&"):`${Ra(n)}=${Ra(r)}`}).filter(n=>!!n);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${n}${r}${"string"==typeof t.fragment?`#${function KP(e){return encodeURI(e)}(t.fragment)}`:""}`}}const JP=new Fd;function Aa(e){return e.segments.map(t=>kw(t)).join("/")}function pi(e,t){if(!e.hasChildren())return Aa(e);if(t){const n=e.children[L]?pi(e.children[L],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==L&&r.push(`${o}:${pi(i,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function XP(e,t){let n=[];return Object.entries(e.children).forEach(([r,o])=>{r===L&&(n=n.concat(t(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==L&&(n=n.concat(t(o,r)))}),n}(e,(r,o)=>o===L?[pi(e.children[L],!1)]:[`${o}:${pi(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[L]?`${Aa(e)}/${n[0]}`:`${Aa(e)}/(${n.join("//")})`}}function Pw(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Ra(e){return Pw(e).replace(/%3B/gi,";")}function kd(e){return Pw(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Na(e){return decodeURIComponent(e)}function Fw(e){return Na(e.replace(/\+/g,"%20"))}function kw(e){return`${kd(e.path)}${function eF(e){return Object.keys(e).map(t=>`;${kd(t)}=${kd(e[t])}`).join("")}(e.parameters)}`}const nF=/^[^\/()?;#]+/;function Ld(e){const t=e.match(nF);return t?t[0]:""}const rF=/^[^\/()?;=#]+/,iF=/^[^=?&#]+/,aF=/^[^&#]+/;class cF{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Y([],{}):new Y([],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 n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(t.length>0||Object.keys(n).length>0)&&(r[L]=new Y(t,n)),r}parseSegment(){const t=Ld(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new w(4009,!1);return this.capture(t),new fi(Na(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const n=function oF(e){const t=e.match(rF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=Ld(this.remaining);o&&(r=o,this.capture(r))}t[Na(n)]=Na(r)}parseQueryParam(t){const n=function sF(e){const t=e.match(iF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const s=function uF(e){const t=e.match(aF);return t?t[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=Fw(n),i=Fw(r);if(t.hasOwnProperty(o)){let s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}parseParens(t){const n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=Ld(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new w(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=L);const s=this.parseChildren();n[i]=1===Object.keys(s).length?s[L]:new Y([],s),this.consumeOptional("//")}return n}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 w(4011,!1)}}function Lw(e){return e.segments.length>0?new Y([],{[L]:e}):e}function jw(e){const t={};for(const r of Object.keys(e.children)){const i=jw(e.children[r]);if(r===L&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))t[s]=a;else(i.segments.length>0||i.hasChildren())&&(t[r]=i)}return function lF(e){if(1===e.numberOfChildren&&e.children[L]){const t=e.children[L];return new Y(e.segments.concat(t.segments),t.children)}return e}(new Y(e.segments,t))}function zn(e){return e instanceof qr}function $w(e){let t;const o=Lw(function n(i){const s={};for(const u of i.children){const c=n(u);s[u.outlet]=c}const a=new Y(i.url,s);return i===e&&(t=a),a}(e.root));return t??o}function Hw(e,t,n,r){let o=e;for(;o.parent;)o=o.parent;if(0===t.length)return jd(o,o,o,n,r);const i=function fF(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new Bw(!0,0,e);let t=0,n=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Object.entries(i.outlets).forEach(([u,c])=>{a[u]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return"string"!=typeof i?[...o,i]:0===s?(i.split("/").forEach((a,u)=>{0==u&&"."===a||(0==u&&""===a?n=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new Bw(n,t,r)}(t);if(i.toRoot())return jd(o,o,new Y([],{}),n,r);const s=function hF(e,t,n){if(e.isAbsolute)return new Oa(t,!0,0);if(!n)return new Oa(t,!1,NaN);if(null===n.parent)return new Oa(n,!0,0);const r=xa(e.commands[0])?0:1;return function pF(e,t,n){let r=e,o=t,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new w(4005,!1);o=r.segments.length}return new Oa(r,!1,o-i)}(n,n.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?mi(s.segmentGroup,s.index,i.commands):Uw(s.segmentGroup,s.index,i.commands);return jd(o,s.segmentGroup,a,n,r)}function xa(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function gi(e){return"object"==typeof e&&null!=e&&e.outlets}function jd(e,t,n,r,o){let s,i={};r&&Object.entries(r).forEach(([u,c])=>{i[u]=Array.isArray(c)?c.map(l=>`${l}`):`${c}`}),s=e===t?n:Vw(e,t,n);const a=Lw(jw(s));return new qr(a,i,o)}function Vw(e,t,n){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===t?n:Vw(i,t,n)}),new Y(e.segments,r)}class Bw{constructor(t,n,r){if(this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&xa(r[0]))throw new w(4003,!1);const o=r.find(gi);if(o&&o!==Tw(r))throw new w(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Oa{constructor(t,n,r){this.segmentGroup=t,this.processChildren=n,this.index=r}}function Uw(e,t,n){if(e||(e=new Y([],{})),0===e.segments.length&&e.hasChildren())return mi(e,t,n);const r=function mF(e,t,n){let r=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=n.length)return i;const s=e.segments[o],a=n[r];if(gi(a))break;const u=`${a}`,c=r0&&void 0===u)break;if(u&&c&&"object"==typeof c&&void 0===c.outlets){if(!Gw(u,c,s))return i;r+=2}else{if(!Gw(u,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,t,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndexi!==L)&&e.children[L]&&1===e.numberOfChildren&&0===e.children[L].segments.length){const i=mi(e.children[L],t,n);return new Y(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=Uw(e.children[i],t,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new Y(e.segments,o)}}function $d(e,t,n){const r=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(t[n]=$d(new Y([],{}),0,r))}),t}function zw(e){const t={};return Object.entries(e).forEach(([n,r])=>t[n]=`${r}`),t}function Gw(e,t,n){return e==n.path&&Ot(t,n.parameters)}const vi="imperative";class Pt{constructor(t,n){this.id=t,this.url=n}}class Pa extends Pt{constructor(t,n,r="imperative",o=null){super(t,n),this.type=0,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Dn extends Pt{constructor(t,n,r){super(t,n),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class yi extends Pt{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Wr extends Pt{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=16}}class Fa extends Pt{constructor(t,n,r,o){super(t,n),this.error=r,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class qw extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class yF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class DF extends Pt{constructor(t,n,r,o,i){super(t,n),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class wF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class CF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class EF{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class _F{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class IF{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class bF{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class SF{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class MF{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ww{constructor(t,n,r){this.routerEvent=t,this.position=n,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Hd{}class Vd{constructor(t){this.url=t}}class TF{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Di,this.attachRef=null}}let Di=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(n,r){const o=this.getOrCreateContext(n);o.outlet=r,this.contexts.set(n,o)}onChildOutletDestroyed(n){const r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let r=this.getContext(n);return r||(r=new TF,this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class Zw{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const n=this.pathFromRoot(t);return n.length>1?n[n.length-2]:null}children(t){const n=Bd(t,this._root);return n?n.children.map(r=>r.value):[]}firstChild(t){const n=Bd(t,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(t){const n=Ud(t,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return Ud(t,this._root).map(n=>n.value)}}function Bd(e,t){if(e===t.value)return t;for(const n of t.children){const r=Bd(e,n);if(r)return r}return null}function Ud(e,t){if(e===t.value)return[t];for(const n of t.children){const r=Ud(e,n);if(r.length)return r.unshift(t),r}return[]}class en{constructor(t,n){this.value=t,this.children=n}toString(){return`TreeNode(${this.value})`}}function Zr(e){const t={};return e&&e.children.forEach(n=>t[n.value.outlet]=n),t}class Yw extends Zw{constructor(t,n){super(t),this.snapshot=n,zd(this,t)}toString(){return this.snapshot.toString()}}function Qw(e,t){const n=function AF(e,t){const s=new ka([],{},{},"",{},L,t,null,{});return new Jw("",new en(s,[]))}(0,t),r=new tt([new fi("",{})]),o=new tt({}),i=new tt({}),s=new tt({}),a=new tt(""),u=new Yr(r,o,s,a,i,L,t,n.root);return u.snapshot=n.root,new Yw(new en(u,[]),n)}class Yr{constructor(t,n,r,o,i,s,a,u){this.urlSubject=t,this.paramsSubject=n,this.queryParamsSubject=r,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=u,this.title=this.dataSubject?.pipe(q(c=>c[di]))??A(void 0),this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i}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(q(t=>Gr(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(q(t=>Gr(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Xw(e,t="emptyOnly"){const n=e.pathFromRoot;let r=0;if("always"!==t)for(r=n.length-1;r>=1;){const o=n[r],i=n[r-1];if(o.routeConfig&&""===o.routeConfig.path)r--;else{if(i.component)break;r--}}return function RF(e){return e.reduce((t,n)=>({params:{...t.params,...n.params},data:{...t.data,...n.data},resolve:{...n.data,...t.resolve,...n.routeConfig?.data,...n._resolvedData}}),{params:{},data:{},resolve:{}})}(n.slice(r))}class ka{get title(){return this.data?.[di]}constructor(t,n,r,o,i,s,a,u,c){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=u,this._resolve=c}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=Gr(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Gr(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Jw extends Zw{constructor(t,n){super(n),this.url=t,zd(this,n)}toString(){return Kw(this._root)}}function zd(e,t){t.value._routerState=e,t.children.forEach(n=>zd(e,n))}function Kw(e){const t=e.children.length>0?` { ${e.children.map(Kw).join(", ")} } `:"";return`${e.value}${t}`}function Gd(e){if(e.snapshot){const t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,Ot(t.queryParams,n.queryParams)||e.queryParamsSubject.next(n.queryParams),t.fragment!==n.fragment&&e.fragmentSubject.next(n.fragment),Ot(t.params,n.params)||e.paramsSubject.next(n.params),function qP(e,t){if(e.length!==t.length)return!1;for(let n=0;nOt(n.parameters,t[r].parameters))}(e.url,t.url);return n&&!(!e.parent!=!t.parent)&&(!e.parent||qd(e.parent,t.parent))}let Wd=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=L,this.activateEvents=new Pe,this.deactivateEvents=new Pe,this.attachEvents=new Pe,this.detachEvents=new Pe,this.parentContexts=_(Di),this.location=_(yt),this.changeDetector=_(Ql),this.environmentInjector=_(Qe),this.inputBinder=_(La,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(n){if(n.name){const{firstChange:r,previousValue:o}=n.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(n){return this.parentContexts.getContext(n)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const n=this.parentContexts.getContext(this.name);n?.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new w(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new w(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new w(4012,!1);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,r){if(this.isActivated)throw new w(4013,!1);this._activatedRoute=n;const o=this.location,s=n.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,u=new NF(n,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:u,environmentInjector:r??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=Te({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Mn]})}return e})();class NF{constructor(t,n,r){this.route=t,this.childContexts=n,this.parent=r}get(t,n){return t===Yr?this.route:t===Di?this.childContexts:this.parent.get(t,n)}}const La=new I("");let eC=(()=>{class e{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(n){this.unsubscribeFromRouteData(n),this.subscribeToRouteData(n)}unsubscribeFromRouteData(n){this.outletDataSubscriptions.get(n)?.unsubscribe(),this.outletDataSubscriptions.delete(n)}subscribeToRouteData(n){const{activatedRoute:r}=n,o=Nd([r.queryParams,r.params,r.data]).pipe(dt(([i,s,a],u)=>(a={...i,...s,...a},0===u?A(a):Promise.resolve(a)))).subscribe(i=>{if(!n.isActivated||!n.activatedComponentRef||n.activatedRoute!==r||null===r.component)return void this.unsubscribeFromRouteData(n);const s=function KN(e){const t=V(e);if(!t)return null;const n=new Bo(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}(r.component);if(s)for(const{templateName:a}of s.inputs)n.activatedComponentRef.setInput(a,i[a]);else this.unsubscribeFromRouteData(n)});this.outletDataSubscriptions.set(n,o)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function wi(e,t,n){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=t.value;const o=function OF(e,t,n){return t.children.map(r=>{for(const o of n.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return wi(e,r,o);return wi(e,r)})}(e,t,n);return new en(r,o)}{if(e.shouldAttach(t.value)){const i=e.retrieve(t.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=t.value,s.children=t.children.map(a=>wi(e,a)),s}}const r=function PF(e){return new Yr(new tt(e.url),new tt(e.params),new tt(e.queryParams),new tt(e.fragment),new tt(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>wi(e,i));return new en(r,o)}}const Zd="ngNavigationCancelingError";function tC(e,t){const{redirectTo:n,navigationBehaviorOptions:r}=zn(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=nC(!1,0,t);return o.url=n,o.navigationBehaviorOptions=r,o}function nC(e,t,n){const r=new Error("NavigationCancelingError: "+(e||""));return r[Zd]=!0,r.cancellationCode=t,n&&(r.url=n),r}function rC(e){return e&&e[Zd]}let oC=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=Vi({type:e,selectors:[["ng-component"]],standalone:!0,features:[sy],decls:1,vars:0,template:function(r,o){1&r&&Ws(0,"router-outlet")},dependencies:[Wd],encapsulation:2})}return e})();function Yd(e){const t=e.children&&e.children.map(Yd),n=t?{...e,children:t}:{...e};return!n.component&&!n.loadComponent&&(t||n.loadChildren)&&n.outlet&&n.outlet!==L&&(n.component=oC),n}function Ct(e){return e.outlet||L}function Ci(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const n=t.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class BF{constructor(t,n,r,o,i){this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=o,this.inputBindingEnabled=i}activate(t){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,t),Gd(this.futureState.root),this.activateChildRoutes(n,r,t)}deactivateChildRoutes(t,n,r){const o=Zr(n);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(t,n,s.children)}else this.deactivateChildRoutes(t,n,r);else i&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(t,n){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,n):this.deactivateRouteAndOutlet(t,n)}detachAndStoreRouteSubtree(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Zr(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Zr(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);r&&(r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated()),r.attachRef=null,r.route=null)}activateChildRoutes(t,n,r){const o=Zr(n);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new MF(i.value.snapshot))}),t.children.length&&this.forwardEvent(new bF(t.value.snapshot))}activateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(Gd(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(t,n,s.children)}else this.activateChildRoutes(t,n,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Gd(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=Ci(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,r)}}class iC{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class ja{constructor(t,n){this.component=t,this.route=n}}function UF(e,t,n){const r=e._root;return Ei(r,t?t._root:null,n,[r.value])}function Qr(e,t){const n=Symbol(),r=t.get(e,n);return r===n?"function"!=typeof e||function e_(e){return null!==Pi(e)}(e)?t.get(e):e:r}function Ei(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Zr(t);return e.children.forEach(s=>{(function GF(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const u=function qF(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!Un(e.url,t.url);case"pathParamsOrQueryParamsChange":return!Un(e.url,t.url)||!Ot(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!qd(e,t)||!Ot(e.queryParams,t.queryParams);default:return!qd(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);u?o.canActivateChecks.push(new iC(r)):(i.data=s.data,i._resolvedData=s._resolvedData),Ei(e,t,i.component?a?a.children:null:n,r,o),u&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new ja(a.outlet.component,s))}else s&&_i(t,a,o),o.canActivateChecks.push(new iC(r)),Ei(e,null,i.component?a?a.children:null:n,r,o)})(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>_i(a,n.getContext(s),o)),o}function _i(e,t,n){const r=Zr(e),o=e.value;Object.entries(r).forEach(([i,s])=>{_i(s,o.component?t?t.children.getContext(i):null:t,n)}),n.canDeactivateChecks.push(new ja(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function Ii(e){return"function"==typeof e}function sC(e){return e instanceof Sa||"EmptyError"===e?.name}const $a=Symbol("INITIAL_VALUE");function Xr(){return dt(e=>Nd(e.map(t=>t.pipe(Ur(1),function LP(...e){const t=io(e);return fe((n,r)=>{(t?xd(e,n,t):xd(e,n)).subscribe(r)})}($a)))).pipe(q(t=>{for(const n of t)if(!0!==n){if(n===$a)return $a;if(!1===n||n instanceof qr)return n}return!0}),Kt(t=>t!==$a),Ur(1)))}function aC(e){return function tE(...e){return pf(e)}(Me(t=>{if(zn(t))throw tC(0,t)}),q(t=>!0===t))}class Ha{constructor(t){this.segmentGroup=t||null}}class uC{constructor(t){this.urlTree=t}}function Jr(e){return ci(new Ha(e))}function cC(e){return ci(new uC(e))}class f1{constructor(t,n){this.urlSerializer=t,this.urlTree=n}noMatchError(t){return new w(4002,!1)}lineralizeSegments(t,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return A(r);if(o.numberOfChildren>1||!o.children[L])return ci(new w(4e3,!1));o=o.children[L]}}applyRedirectCommands(t,n,r){return this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),t,r)}applyRedirectCreateUrlTree(t,n,r,o){const i=this.createSegmentGroup(t,n.root,r,o);return new qr(i,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(t,n){const r={};return Object.entries(t).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[o]=n[a]}else r[o]=i}),r}createSegmentGroup(t,n,r,o){const i=this.createSegments(t,n.segments,r,o);let s={};return Object.entries(n.children).forEach(([a,u])=>{s[a]=this.createSegmentGroup(t,u,r,o)}),new Y(i,s)}createSegments(t,n,r,o){return n.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,r))}findPosParam(t,n,r){const o=r[n.path.substring(1)];if(!o)throw new w(4001,!1);return o}findOrReturn(t,n){let r=0;for(const o of n){if(o.path===t.path)return n.splice(r),o;r++}return t}}const Qd={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function h1(e,t,n,r,o){const i=Xd(e,t,n);return i.matched?(r=function kF(e,t){return e.providers&&!e._injector&&(e._injector=Sl(e.providers,t,`Route: ${e.path}`)),e._injector??t}(t,r),function c1(e,t,n,r){const o=t.canMatch;return o&&0!==o.length?A(o.map(s=>{const a=Qr(s,e);return yn(function JF(e){return e&&Ii(e.canMatch)}(a)?a.canMatch(t,n):e.runInContext(()=>a(t,n)))})).pipe(Xr(),aC()):A(!0)}(r,t,n).pipe(q(s=>!0===s?i:{...Qd}))):A(i)}function Xd(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{...Qd}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const o=(t.matcher||GP)(n,e,t);if(!o)return{...Qd};const i={};Object.entries(o.posParams??{}).forEach(([a,u])=>{i[a]=u.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:n.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function lC(e,t,n,r){return n.length>0&&function m1(e,t,n){return n.some(r=>Va(e,t,r)&&Ct(r)!==L)}(e,n,r)?{segmentGroup:new Y(t,g1(r,new Y(n,e.children))),slicedSegments:[]}:0===n.length&&function v1(e,t,n){return n.some(r=>Va(e,t,r))}(e,n,r)?{segmentGroup:new Y(e.segments,p1(e,0,n,r,e.children)),slicedSegments:n}:{segmentGroup:new Y(e.segments,e.children),slicedSegments:n}}function p1(e,t,n,r,o){const i={};for(const s of r)if(Va(e,n,s)&&!o[Ct(s)]){const a=new Y([],{});i[Ct(s)]=a}return{...o,...i}}function g1(e,t){const n={};n[L]=t;for(const r of e)if(""===r.path&&Ct(r)!==L){const o=new Y([],{});n[Ct(r)]=o}return n}function Va(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}class C1{constructor(t,n,r,o,i,s,a){this.injector=t,this.configLoader=n,this.rootComponentType=r,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.allowRedirects=!0,this.applyRedirects=new f1(this.urlSerializer,this.urlTree)}noMatchError(t){return new w(4002,!1)}recognize(){const t=lC(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,L).pipe(Bn(n=>{if(n instanceof uC)return this.allowRedirects=!1,this.urlTree=n.urlTree,this.match(n.urlTree);throw n instanceof Ha?this.noMatchError(n):n}),q(n=>{const r=new ka([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},L,this.rootComponentType,null,{}),o=new en(r,n),i=new Jw("",o),s=function dF(e,t,n=null,r=null){return Hw($w(e),t,n,r)}(r,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root),{state:i,tree:s}}))}match(t){return this.processSegmentGroup(this.injector,this.config,t.root,L).pipe(Bn(r=>{throw r instanceof Ha?this.noMatchError(r):r}))}inheritParamsAndData(t){const n=t.value,r=Xw(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(t,n,r):this.processSegment(t,n,r,r.segments,o,!0)}processChildren(t,n,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return ve(o).pipe(zr(i=>{const s=r.children[i],a=function HF(e,t){const n=e.filter(r=>Ct(r)===t);return n.push(...e.filter(r=>Ct(r)!==t)),n}(n,i);return this.processSegmentGroup(t,a,s,i)}),function HP(e,t){return fe(function $P(e,t,n,r,o){return(i,s)=>{let a=n,u=t,c=0;i.subscribe(he(s,l=>{const d=c++;u=a?e(u,l,d):(a=!0,l),r&&s.next(u)},o&&(()=>{a&&s.next(u),s.complete()})))}}(e,t,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),Ma(null),function VP(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Kt((o,i)=>e(o,i,r)):nn,Pd(1),n?Ma(t):Sw(()=>new Sa))}(),De(i=>{if(null===i)return Jr(r);const s=dC(i);return function E1(e){e.sort((t,n)=>t.value.outlet===L?-1:n.value.outlet===L?1:t.value.outlet.localeCompare(n.value.outlet))}(s),A(s)}))}processSegment(t,n,r,o,i,s){return ve(n).pipe(zr(a=>this.processSegmentAgainstRoute(a._injector??t,n,a,r,o,i,s).pipe(Bn(u=>{if(u instanceof Ha)return A(null);throw u}))),Vn(a=>!!a),Bn(a=>{if(sC(a))return function D1(e,t,n){return 0===t.length&&!e.children[n]}(r,o,i)?A([]):Jr(r);throw a}))}processSegmentAgainstRoute(t,n,r,o,i,s,a){return function y1(e,t,n,r){return!!(Ct(e)===r||r!==L&&Va(t,n,e))&&("**"===e.path||Xd(t,e,n).matched)}(r,o,i,s)?void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,o,r,i,s,a):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,o,n,r,i,s):Jr(o):Jr(o)}expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,o){const i=this.applyRedirects.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?cC(i):this.applyRedirects.lineralizeSegments(r,i).pipe(De(s=>{const a=new Y(s,{});return this.processSegment(t,n,a,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){const{matched:a,consumedSegments:u,remainingSegments:c,positionalParamSegments:l}=Xd(n,o,i);if(!a)return Jr(n);const d=this.applyRedirects.applyRedirectCommands(u,o.redirectTo,l);return o.redirectTo.startsWith("/")?cC(d):this.applyRedirects.lineralizeSegments(o,d).pipe(De(f=>this.processSegment(t,r,n,f.concat(c),s,!1)))}matchSegmentAgainstRoute(t,n,r,o,i,s){let a;if("**"===r.path){const u=o.length>0?Tw(o).parameters:{};a=A({snapshot:new ka(o,u,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,fC(r),Ct(r),r.component??r._loadedComponent??null,r,hC(r)),consumedSegments:[],remainingSegments:[]}),n.children={}}else a=h1(n,r,o,t).pipe(q(({matched:u,consumedSegments:c,remainingSegments:l,parameters:d})=>u?{snapshot:new ka(c,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,fC(r),Ct(r),r.component??r._loadedComponent??null,r,hC(r)),consumedSegments:c,remainingSegments:l}:null));return a.pipe(dt(u=>null===u?Jr(n):this.getChildConfig(t=r._injector??t,r,o).pipe(dt(({routes:c})=>{const l=r._loadedInjector??t,{snapshot:d,consumedSegments:f,remainingSegments:h}=u,{segmentGroup:p,slicedSegments:g}=lC(n,f,h,c);if(0===g.length&&p.hasChildren())return this.processChildren(l,c,p).pipe(q(D=>null===D?null:[new en(d,D)]));if(0===c.length&&0===g.length)return A([new en(d,[])]);const v=Ct(r)===i;return this.processSegment(l,c,p,g,v?L:i,!0).pipe(q(D=>[new en(d,D)]))}))))}getChildConfig(t,n,r){return n.children?A({routes:n.children,injector:t}):n.loadChildren?void 0!==n._loadedRoutes?A({routes:n._loadedRoutes,injector:n._loadedInjector}):function u1(e,t,n,r){const o=t.canLoad;return void 0===o||0===o.length?A(!0):A(o.map(s=>{const a=Qr(s,e);return yn(function ZF(e){return e&&Ii(e.canLoad)}(a)?a.canLoad(t,n):e.runInContext(()=>a(t,n)))})).pipe(Xr(),aC())}(t,n,r).pipe(De(o=>o?this.configLoader.loadChildren(t,n).pipe(Me(i=>{n._loadedRoutes=i.routes,n._loadedInjector=i.injector})):function d1(e){return ci(nC(!1,3))}())):A({routes:[],injector:t})}}function _1(e){const t=e.value.routeConfig;return t&&""===t.path}function dC(e){const t=[],n=new Set;for(const r of e){if(!_1(r)){t.push(r);continue}const o=t.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),n.add(o)):t.push(r)}for(const r of n){const o=dC(r.children);t.push(new en(r.value,o))}return t.filter(r=>!n.has(r))}function fC(e){return e.data||{}}function hC(e){return e.resolve||{}}function pC(e){return"string"==typeof e.title||null===e.title}function Jd(e){return dt(t=>{const n=e(t);return n?ve(n).pipe(q(()=>t)):A(t)})}const Kr=new I("ROUTES");let Kd=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=_(Jy)}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return A(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const r=yn(n.loadComponent()).pipe(q(gC),Me(i=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=i}),li(()=>{this.componentLoaders.delete(n)})),o=new bw(r,()=>new lt).pipe(Od());return this.componentLoaders.set(n,o),o}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return A({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function R1(e,t,n,r){return yn(e.loadChildren()).pipe(q(gC),De(o=>o instanceof oy||Array.isArray(o)?A(o):ve(t.compileModuleAsync(o))),q(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(n).injector,s=i.get(Kr,[],{optional:!0,self:!0}).flat()),{routes:s.map(Yd),injector:i}}))}(r,this.compiler,n,this.onLoadEndListener).pipe(li(()=>{this.childrenLoaders.delete(r)})),s=new bw(i,()=>new lt).pipe(Od());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function gC(e){return function N1(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let Ba=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new lt,this.transitionAbortSubject=new lt,this.configLoader=_(Kd),this.environmentInjector=_(Qe),this.urlSerializer=_(hi),this.rootContexts=_(Di),this.inputBindingEnabled=null!==_(La,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>A(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new _F(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new EF(o))}complete(){this.transitions?.complete()}handleNavigationRequest(n){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:r})}setupNavigations(n,r,o){return this.transitions=new tt({id:0,currentUrlTree:r,currentRawUrl:r,currentBrowserUrl:r,extractedUrl:n.urlHandlingStrategy.extract(r),urlAfterRedirects:n.urlHandlingStrategy.extract(r),rawUrl:r,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:vi,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Kt(i=>0!==i.id),q(i=>({...i,extractedUrl:n.urlHandlingStrategy.extract(i.rawUrl)})),dt(i=>{this.currentTransition=i;let s=!1,a=!1;return A(i).pipe(Me(u=>{this.currentNavigation={id:u.id,initialUrl:u.rawUrl,extractedUrl:u.extractedUrl,trigger:u.source,extras:u.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),dt(u=>{const c=u.currentBrowserUrl.toString(),l=!n.navigated||u.extractedUrl.toString()!==c||c!==u.currentUrlTree.toString();if(!l&&"reload"!==(u.extras.onSameUrlNavigation??n.onSameUrlNavigation)){const f="";return this.events.next(new Wr(u.id,this.urlSerializer.serialize(u.rawUrl),f,0)),u.resolve(null),Et}if(n.urlHandlingStrategy.shouldProcessUrl(u.rawUrl))return A(u).pipe(dt(f=>{const h=this.transitions?.getValue();return this.events.next(new Pa(f.id,this.urlSerializer.serialize(f.extractedUrl),f.source,f.restoredState)),h!==this.transitions?.getValue()?Et:Promise.resolve(f)}),function I1(e,t,n,r,o,i){return De(s=>function w1(e,t,n,r,o,i,s="emptyOnly"){return new C1(e,t,n,r,o,s,i).recognize()}(e,t,n,r,s.extractedUrl,o,i).pipe(q(({state:a,tree:u})=>({...s,targetSnapshot:a,urlAfterRedirects:u}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),Me(f=>{i.targetSnapshot=f.targetSnapshot,i.urlAfterRedirects=f.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:f.urlAfterRedirects};const h=new qw(f.id,this.urlSerializer.serialize(f.extractedUrl),this.urlSerializer.serialize(f.urlAfterRedirects),f.targetSnapshot);this.events.next(h)}));if(l&&n.urlHandlingStrategy.shouldProcessUrl(u.currentRawUrl)){const{id:f,extractedUrl:h,source:p,restoredState:g,extras:v}=u,D=new Pa(f,this.urlSerializer.serialize(h),p,g);this.events.next(D);const m=Qw(0,this.rootComponentType).snapshot;return this.currentTransition=i={...u,targetSnapshot:m,urlAfterRedirects:h,extras:{...v,skipLocationChange:!1,replaceUrl:!1}},A(i)}{const f="";return this.events.next(new Wr(u.id,this.urlSerializer.serialize(u.extractedUrl),f,1)),u.resolve(null),Et}}),Me(u=>{const c=new yF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(c)}),q(u=>(this.currentTransition=i={...u,guards:UF(u.targetSnapshot,u.currentSnapshot,this.rootContexts)},i)),function e1(e,t){return De(n=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=n;return 0===s.length&&0===i.length?A({...n,guardsResult:!0}):function t1(e,t,n,r){return ve(e).pipe(De(o=>function a1(e,t,n,r,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?A(i.map(a=>{const u=Ci(t)??o,c=Qr(a,u);return yn(function XF(e){return e&&Ii(e.canDeactivate)}(c)?c.canDeactivate(e,t,n,r):u.runInContext(()=>c(e,t,n,r))).pipe(Vn())})).pipe(Xr()):A(!0)}(o.component,o.route,n,t,r)),Vn(o=>!0!==o,!0))}(s,r,o,e).pipe(De(a=>a&&function WF(e){return"boolean"==typeof e}(a)?function n1(e,t,n,r){return ve(t).pipe(zr(o=>xd(function o1(e,t){return null!==e&&t&&t(new IF(e)),A(!0)}(o.route.parent,r),function r1(e,t){return null!==e&&t&&t(new SF(e)),A(!0)}(o.route,r),function s1(e,t,n){const r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function zF(e){const t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(s)).filter(s=>null!==s).map(s=>Iw(()=>A(s.guards.map(u=>{const c=Ci(s.node)??n,l=Qr(u,c);return yn(function QF(e){return e&&Ii(e.canActivateChild)}(l)?l.canActivateChild(r,e):c.runInContext(()=>l(r,e))).pipe(Vn())})).pipe(Xr())));return A(i).pipe(Xr())}(e,o.path,n),function i1(e,t,n){const r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return A(!0);const o=r.map(i=>Iw(()=>{const s=Ci(t)??n,a=Qr(i,s);return yn(function YF(e){return e&&Ii(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Vn())}));return A(o).pipe(Xr())}(e,o.route,n))),Vn(o=>!0!==o,!0))}(r,i,e,t):A(a)),q(a=>({...n,guardsResult:a})))})}(this.environmentInjector,u=>this.events.next(u)),Me(u=>{if(i.guardsResult=u.guardsResult,zn(u.guardsResult))throw tC(0,u.guardsResult);const c=new DF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot,!!u.guardsResult);this.events.next(c)}),Kt(u=>!!u.guardsResult||(this.cancelNavigationTransition(u,"",3),!1)),Jd(u=>{if(u.guards.canActivateChecks.length)return A(u).pipe(Me(c=>{const l=new wF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}),dt(c=>{let l=!1;return A(c).pipe(function b1(e,t){return De(n=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=n;if(!o.length)return A(n);let i=0;return ve(o).pipe(zr(s=>function S1(e,t,n,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!pC(o)&&(i[di]=o.title),function M1(e,t,n,r){const o=function T1(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return A({});const i={};return ve(o).pipe(De(s=>function A1(e,t,n,r){const o=Ci(t)??r,i=Qr(e,o);return yn(i.resolve?i.resolve(t,n):o.runInContext(()=>i(t,n)))}(e[s],t,n,r).pipe(Vn(),Me(a=>{i[s]=a}))),Pd(1),function BP(e){return q(()=>e)}(i),Bn(s=>sC(s)?Et:ci(s)))}(i,e,t,r).pipe(q(s=>(e._resolvedData=s,e.data=Xw(e,n).resolve,o&&pC(o)&&(e.data[di]=o.title),null)))}(s.route,r,e,t)),Me(()=>i++),Pd(1),De(s=>i===o.length?A(n):Et))})}(n.paramsInheritanceStrategy,this.environmentInjector),Me({next:()=>l=!0,complete:()=>{l||this.cancelNavigationTransition(c,"",2)}}))}),Me(c=>{const l=new CF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}))}),Jd(u=>{const c=l=>{const d=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(l.routeConfig).pipe(Me(f=>{l.component=f}),q(()=>{})));for(const f of l.children)d.push(...c(f));return d};return Nd(c(u.targetSnapshot.root)).pipe(Ma(),Ur(1))}),Jd(()=>this.afterPreactivation()),q(u=>{const c=function xF(e,t,n){const r=wi(e,t._root,n?n._root:void 0);return new Yw(r,t)}(n.routeReuseStrategy,u.targetSnapshot,u.currentRouterState);return this.currentTransition=i={...u,targetRouterState:c},i}),Me(()=>{this.events.next(new Hd)}),((e,t,n,r)=>q(o=>(new BF(t,o.targetRouterState,o.currentRouterState,n,r).activate(e),o)))(this.rootContexts,n.routeReuseStrategy,u=>this.events.next(u),this.inputBindingEnabled),Ur(1),Me({next:u=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Dn(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects))),n.titleStrategy?.updateTitle(u.targetRouterState.snapshot),u.resolve(!0)},complete:()=>{s=!0}}),function UP(e){return fe((t,n)=>{et(e).subscribe(he(n,()=>n.complete(),Za)),!n.closed&&t.subscribe(n)})}(this.transitionAbortSubject.pipe(Me(u=>{throw u}))),li(()=>{s||a||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Bn(u=>{if(a=!0,rC(u))this.events.next(new yi(i.id,this.urlSerializer.serialize(i.extractedUrl),u.message,u.cancellationCode)),function FF(e){return rC(e)&&zn(e.url)}(u)?this.events.next(new Vd(u.url)):i.resolve(!1);else{this.events.next(new Fa(i.id,this.urlSerializer.serialize(i.extractedUrl),u,i.targetSnapshot??void 0));try{i.resolve(n.errorHandler(u))}catch(c){i.reject(c)}}return Et}))}))}cancelNavigationTransition(n,r,o){const i=new yi(n.id,this.urlSerializer.serialize(n.extractedUrl),r,o);this.events.next(i),n.resolve(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function mC(e){return e!==vi}let vC=(()=>{class e{buildTitle(n){let r,o=n.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===L);return r}getResolvedTitleForRoute(n){return n.data[di]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(x1)},providedIn:"root"})}return e})(),x1=(()=>{class e extends vC{constructor(n){super(),this.title=n}updateTitle(n){const r=this.buildTitle(n);void 0!==r&&this.title.setTitle(r)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Dw))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),O1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(F1)},providedIn:"root"})}return e})();class P1{shouldDetach(t){return!1}store(t,n){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,n){return t.routeConfig===n.routeConfig}}let F1=(()=>{class e extends P1{static#e=this.\u0275fac=function(){let n;return function(o){return(n||(n=function rp(e){return $t(()=>{const t=e.prototype.constructor,n=t[Ht]||Gu(t),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Ht]||Gu(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}(e)))(o||e)}}();static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Ua=new I("",{providedIn:"root",factory:()=>({})});let k1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(L1)},providedIn:"root"})}return e})(),L1=(()=>{class e{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,r){return n}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var bi=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(bi||{});function yC(e,t){e.events.pipe(Kt(n=>n instanceof Dn||n instanceof yi||n instanceof Fa||n instanceof Wr),q(n=>n instanceof Dn||n instanceof Wr?bi.COMPLETE:n instanceof yi&&(0===n.code||1===n.code)?bi.REDIRECTING:bi.FAILED),Kt(n=>n!==bi.REDIRECTING),Ur(1)).subscribe(()=>{t()})}function j1(e){throw e}function $1(e,t,n){return t.parse("/")}const H1={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},V1={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ct=(()=>{class e{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.location.getState()?.\u0275routerPageId??this.currentPageId}get events(){return this._events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=_(Xy),this.isNgZoneEnabled=!1,this._events=new lt,this.options=_(Ua,{optional:!0})||{},this.pendingTasks=_(ia),this.errorHandler=this.options.errorHandler||j1,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||$1,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=_(k1),this.routeReuseStrategy=_(O1),this.titleStrategy=_(vC),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=_(Kr,{optional:!0})?.flat()??[],this.navigationTransitions=_(Ba),this.urlSerializer=_(hi),this.location=_(sd),this.componentInputBindingEnabled=!!_(La,{optional:!0}),this.eventsSubscription=new Ge,this.isNgZoneEnabled=_(ee)instanceof ee&&ee.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new qr,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=Qw(0,null),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=this.browserPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const n=this.navigationTransitions.events.subscribe(r=>{try{const{currentTransition:o}=this.navigationTransitions;if(null===o)return void(DC(r)&&this._events.next(r));if(r instanceof Pa)mC(o.source)&&(this.browserUrlTree=o.extractedUrl);else if(r instanceof Wr)this.rawUrlTree=o.rawUrl;else if(r instanceof qw){if("eager"===this.urlUpdateStrategy){if(!o.extras.skipLocationChange){const i=this.urlHandlingStrategy.merge(o.urlAfterRedirects,o.rawUrl);this.setBrowserUrl(i,o)}this.browserUrlTree=o.urlAfterRedirects}}else if(r instanceof Hd)this.currentUrlTree=o.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(o.urlAfterRedirects,o.rawUrl),this.routerState=o.targetRouterState,"deferred"===this.urlUpdateStrategy&&(o.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,o),this.browserUrlTree=o.urlAfterRedirects);else if(r instanceof yi)0!==r.code&&1!==r.code&&(this.navigated=!0),(3===r.code||2===r.code)&&this.restoreHistory(o);else if(r instanceof Vd){const i=this.urlHandlingStrategy.merge(r.url,o.currentRawUrl),s={skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||mC(o.source)};this.scheduleNavigation(i,vi,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}r instanceof Fa&&this.restoreHistory(o,!0),r instanceof Dn&&(this.navigated=!0),DC(r)&&this._events.next(r)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(n)}resetRootComponentType(n){this.routerState.root.component=n,this.navigationTransitions.rootComponentType=n}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const n=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),vi,n)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{this.navigateToSyncWithBrowser(n.url,r,n.state)},0)}))}navigateToSyncWithBrowser(n,r,o){const i={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const u={...o};delete u.navigationId,delete u.\u0275routerPageId,0!==Object.keys(u).length&&(i.state=u)}const a=this.parseUrl(n);this.scheduleNavigation(a,r,s,i)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(n){this.config=n.map(Yd),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(n,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:u}=r,c=u?this.currentUrlTree.fragment:s;let d,l=null;switch(a){case"merge":l={...this.currentUrlTree.queryParams,...i};break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=i||null}null!==l&&(l=this.removeEmptyProps(l));try{d=$w(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof n[0]||!n[0].startsWith("/"))&&(n=[]),d=this.currentUrlTree.root}return Hw(d,n,l,c??null)}navigateByUrl(n,r={skipLocationChange:!1}){const o=zn(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,vi,null,r)}navigate(n,r={skipLocationChange:!1}){return function B1(e){for(let t=0;t{const i=n[o];return null!=i&&(r[o]=i),r},{})}scheduleNavigation(n,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,u,c;s?(a=s.resolve,u=s.reject,c=s.promise):c=new Promise((d,f)=>{a=d,u=f});const l=this.pendingTasks.add();return yC(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(l))}),this.navigationTransitions.handleNavigationRequest({source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,currentBrowserUrl:this.browserUrlTree,rawUrl:n,extras:i,resolve:a,reject:u,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}setBrowserUrl(n,r){const o=this.urlSerializer.serialize(n);if(this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl){const s={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const i={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId+1)};this.location.go(o,"",i)}}restoreHistory(n,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-this.browserPageId;0!==i?this.location.historyGo(i):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===i&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(n,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function DC(e){return!(e instanceof Hd||e instanceof Vd)}class wC{}let G1=(()=>{class e{constructor(n,r,o,i,s){this.router=n,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(Kt(n=>n instanceof Dn),zr(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=Sl(i.providers,n,`Route: ${i.path}`));const s=i._injector??n,a=i._loadedInjector??s;(i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent)&&o.push(this.preloadConfig(s,i)),(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return ve(o).pipe(Wn())}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(n,r):A(null);const i=o.pipe(De(s=>null===s?A(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??n,s.routes))));return r.loadComponent&&!r._loadedComponent?ve([i,this.loader.loadComponent(r)]).pipe(Wn()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(b(ct),b(Jy),b(Qe),b(wC),b(Kd))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const tf=new I("");let CC=(()=>{class e{constructor(n,r,o,i,s={}){this.urlSerializer=n,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration=s.scrollPositionRestoration||"disabled",s.anchorScrolling=s.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof Pa?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof Dn?(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment)):n instanceof Wr&&0===n.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof Ww&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Ww(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function Bg(){throw new Error("invalid")}()};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function tn(e,t){return{\u0275kind:e,\u0275providers:t}}function _C(){const e=_(it);return t=>{const n=e.get(Hr);if(t!==n.components[0])return;const r=e.get(ct),o=e.get(IC);1===e.get(nf)&&r.initialNavigation(),e.get(bC,null,$.Optional)?.setUpPreloading(),e.get(tf,null,$.Optional)?.init(),r.resetRootComponentType(n.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const IC=new I("",{factory:()=>new lt}),nf=new I("",{providedIn:"root",factory:()=>1}),bC=new I("");function Y1(e){return tn(0,[{provide:bC,useExisting:G1},{provide:wC,useExisting:e}])}const SC=new I("ROUTER_FORROOT_GUARD"),X1=[sd,{provide:hi,useClass:Fd},ct,Di,{provide:Yr,useFactory:function EC(e){return e.routerState.root},deps:[ct]},Kd,[]];function J1(){return new iD("Router",ct)}let MC=(()=>{class e{constructor(n){}static forRoot(n,r){return{ngModule:e,providers:[X1,[],{provide:Kr,multi:!0,useValue:n},{provide:SC,useFactory:nk,deps:[[ct,new is,new ss]]},{provide:Ua,useValue:r||{}},r?.useHash?{provide:Hn,useClass:ox}:{provide:Hn,useClass:FD},{provide:tf,useFactory:()=>{const e=_(IO),t=_(ee),n=_(Ua),r=_(Ba),o=_(hi);return n.scrollOffset&&e.setOffset(n.scrollOffset),new CC(o,r,e,t,n)}},r?.preloadingStrategy?Y1(r.preloadingStrategy).\u0275providers:[],{provide:iD,multi:!0,useFactory:J1},r?.initialNavigation?rk(r):[],r?.bindToComponentInputs?tn(8,[eC,{provide:La,useExisting:eC}]).\u0275providers:[],[{provide:TC,useFactory:_C},{provide:Zl,multi:!0,useExisting:TC}]]}}static forChild(n){return{ngModule:e,providers:[{provide:Kr,multi:!0,useValue:n}]}}static#e=this.\u0275fac=function(r){return new(r||e)(b(SC,8))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})();function nk(e){return"guarded"}function rk(e){return["disabled"===e.initialNavigation?tn(3,[{provide:Hl,multi:!0,useFactory:()=>{const t=_(ct);return()=>{t.setUpLocationChangeListener()}}},{provide:nf,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?tn(2,[{provide:nf,useValue:0},{provide:Hl,multi:!0,deps:[it],useFactory:t=>{const n=t.get(nx,Promise.resolve());return()=>n.then(()=>new Promise(r=>{const o=t.get(ct),i=t.get(IC);yC(o,()=>{r(!0)}),t.get(Ba).afterPreactivation=()=>(r(!0),i.closed?A(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const TC=new I(""),ik=[];let sk=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({imports:[MC.forRoot(ik),MC]})}return e})();class za{}class Ga{}class Ft{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(n=>{const r=n.indexOf(":");if(r>0){const o=n.slice(0,r),i=o.toLowerCase(),s=n.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.setHeaderEntries(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ft?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(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){const n=new Ft;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof Ft?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){const n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(t.name,n);const o=("a"===t.op?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(n);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}else this.headers.delete(n),this.normalizedNames.delete(n)}}setHeaderEntries(t,n){const r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}}class ak{encodeKey(t){return AC(t)}encodeValue(t){return AC(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const ck=/%(\d[a-f0-9])/gi,lk={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function AC(e){return encodeURIComponent(e).replace(ck,(t,n)=>lk[n]??t)}function qa(e){return`${e}`}class wn{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new ak,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function uk(e,t){const n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],u=n.get(s)||[];u.push(a),n.set(s,u)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{const r=t.fromObject[n],o=Array.isArray(r)?r.map(qa):[qa(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){const n=[];return Object.keys(t).forEach(r=>{const o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const n=new wn({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}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 n=("a"===t.op?this.map.get(t.param):void 0)||[];n.push(qa(t.value)),this.map.set(t.param,n);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let r=this.map.get(t.param)||[];const o=r.indexOf(qa(t.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class dk{constructor(){this.map=new Map}set(t,n){return this.map.set(t,n),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}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function RC(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function NC(e){return typeof Blob<"u"&&e instanceof Blob}function xC(e){return typeof FormData<"u"&&e instanceof FormData}class Si{constructor(t,n,r,o){let i;if(this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function fk(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params)),this.headers||(this.headers=new Ft),this.context||(this.context=new dk),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=n;else{const a=n.indexOf("?");this.urlWithParams=n+(-1===a?"?":ad.set(f,t.setHeaders[f]),u)),t.setParams&&(c=Object.keys(t.setParams).reduce((d,f)=>d.set(f,t.setParams[f]),c)),new Si(n,r,i,{params:c,headers:u,context:l,reportProgress:a,responseType:o,withCredentials:s})}}var eo=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(eo||{});class rf{constructor(t,n=200,r="OK"){this.headers=t.headers||new Ft,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class sf extends rf{constructor(t={}){super(t),this.type=eo.ResponseHeader}clone(t={}){return new sf({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 to extends rf{constructor(t={}){super(t),this.type=eo.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new to({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 OC extends rf{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 af(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let PC=(()=>{class e{constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Si)i=n;else{let u,c;u=o.headers instanceof Ft?o.headers:new Ft(o.headers),o.params&&(c=o.params instanceof wn?o.params:new wn({fromObject:o.params})),i=new Si(n,r,void 0!==o.body?o.body:null,{headers:u,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const s=A(i).pipe(zr(u=>this.handler.handle(u)));if(n instanceof Si||"events"===o.observe)return s;const a=s.pipe(Kt(u=>u instanceof to));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(q(u=>{if(null!==u.body&&!(u.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return u.body}));case"blob":return a.pipe(q(u=>{if(null!==u.body&&!(u.body instanceof Blob))throw new Error("Response is not a Blob.");return u.body}));case"text":return a.pipe(q(u=>{if(null!==u.body&&"string"!=typeof u.body)throw new Error("Response is not a string.");return u.body}));default:return a.pipe(q(u=>u.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new wn).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,af(o,r))}post(n,r,o={}){return this.request("POST",n,af(o,r))}put(n,r,o={}){return this.request("PUT",n,af(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(b(za))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function LC(e,t){return t(e)}function gk(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}const vk=new I(""),Mi=new I(""),jC=new I("");function yk(){let e=null;return(t,n)=>{null===e&&(e=(_(vk,{optional:!0})??[]).reduceRight(gk,LC));const r=_(ia),o=r.add();return e(t,n).pipe(li(()=>r.remove(o)))}}let $C=(()=>{class e extends za{constructor(n,r){super(),this.backend=n,this.injector=r,this.chain=null,this.pendingTasks=_(ia)}handle(n){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Mi),...this.injector.get(jC,[])]));this.chain=o.reduceRight((i,s)=>function mk(e,t,n){return(r,o)=>n.runInContext(()=>t(r,i=>e(i,o)))}(i,s,this.injector),LC)}const r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(li(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(b(Ga),b(Qe))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Ek=/^\)\]\}',?\n/;let VC=(()=>{class e{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new w(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?ve(r.\u0275loadImpl()):A(null)).pipe(dt(()=>new le(i=>{const s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,v)=>s.setRequestHeader(g,v.join(","))),n.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const g=n.detectContentTypeHeader();null!==g&&s.setRequestHeader("Content-Type",g)}if(n.responseType){const g=n.responseType.toLowerCase();s.responseType="json"!==g?g:"text"}const a=n.serializeBody();let u=null;const c=()=>{if(null!==u)return u;const g=s.statusText||"OK",v=new Ft(s.getAllResponseHeaders()),D=function _k(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(s)||n.url;return u=new sf({headers:v,status:s.status,statusText:g,url:D}),u},l=()=>{let{headers:g,status:v,statusText:D,url:m}=c(),E=null;204!==v&&(E=typeof s.response>"u"?s.responseText:s.response),0===v&&(v=E?200:0);let M=v>=200&&v<300;if("json"===n.responseType&&"string"==typeof E){const j=E;E=E.replace(Ek,"");try{E=""!==E?JSON.parse(E):null}catch(ye){E=j,M&&(M=!1,E={error:ye,text:E})}}M?(i.next(new to({body:E,headers:g,status:v,statusText:D,url:m||void 0})),i.complete()):i.error(new OC({error:E,headers:g,status:v,statusText:D,url:m||void 0}))},d=g=>{const{url:v}=c(),D=new OC({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:v||void 0});i.error(D)};let f=!1;const h=g=>{f||(i.next(c()),f=!0);let v={type:eo.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(v.total=g.total),"text"===n.responseType&&s.responseText&&(v.partialText=s.responseText),i.next(v)},p=g=>{let v={type:eo.UploadProgress,loaded:g.loaded};g.lengthComputable&&(v.total=g.total),i.next(v)};return s.addEventListener("load",l),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),n.reportProgress&&(s.addEventListener("progress",h),null!==a&&s.upload&&s.upload.addEventListener("progress",p)),s.send(a),i.next({type:eo.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",l),s.removeEventListener("timeout",d),n.reportProgress&&(s.removeEventListener("progress",h),null!==a&&s.upload&&s.upload.removeEventListener("progress",p)),s.readyState!==s.DONE&&s.abort()}})))}static#e=this.\u0275fac=function(r){return new(r||e)(b(tw))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const uf=new I("XSRF_ENABLED"),BC=new I("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),UC=new I("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class zC{}let Sk=(()=>{class e{constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=GD(n,this.cookieName),this.lastCookieString=n),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je),b(xn),b(BC))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function Mk(e,t){const n=e.url.toLowerCase();if(!_(uf)||"GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t(e);const r=_(zC).getToken(),o=_(UC);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var Cn=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(Cn||{});function Tk(...e){const t=[PC,VC,$C,{provide:za,useExisting:$C},{provide:Ga,useExisting:VC},{provide:Mi,useValue:Mk,multi:!0},{provide:uf,useValue:!0},{provide:zC,useClass:Sk}];for(const n of e)t.push(...n.\u0275providers);return function yc(e){return{\u0275providers:e}}(t)}const GC=new I("LEGACY_INTERCEPTOR_FN");function Ak(){return function Gn(e,t){return{\u0275kind:e,\u0275providers:t}}(Cn.LegacyInterceptors,[{provide:GC,useFactory:yk},{provide:Mi,useExisting:GC,multi:!0}])}let Rk=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({providers:[Tk(Ak())]})}return e})(),qC=(()=>{class e{constructor(n){this.http=n}get(n){return this.http.get(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(PC))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function kk(e,t){if(1&e&&(Pn(0,"div",3)(1,"div",4)(2,"div",5)(3,"h5",6),Xs(4),Fn(),Pn(5,"h6",7),Xs(6),Fn(),Pn(7,"p",8),Xs(8),Fn()()()()),2&e){const n=t.$implicit;jo(4),Zo(n.nombre),jo(2),Zo(n.description),jo(2),Zo(n.precio)}}let Lk=(()=>{class e{constructor(n){this.MovimientoService=n,this.listaCard=[]}ngOnInit(){this.cargarDato()}cargarDato(){this.MovimientoService.get("http://localhost:8080/api/v1/productos").subscribe(n=>{console.log(n),this.listaCard=n.data,console.log(this.listaCard)})}static#e=this.\u0275fac=function(r){return new(r||e)(T(qC))};static#t=this.\u0275cmp=Vi({type:e,selectors:[["app-movimiento"]],decls:3,vars:1,consts:[[1,"container","mt-4"],[1,"row"],["class","col-md-4",4,"ngFor","ngForOf"],[1,"col-md-4"],[1,"card","mb-4"],[1,"card-body"],[1,"card-title"],[1,"card-subtitle","mb-2","text-muted"],[1,"card-text"]],template:function(r,o){1&r&&(Pn(0,"div",0)(1,"div",1),function Am(e,t,n,r,o,i,s,a){const u=y(),c=B(),l=e+H,d=c.firstCreatePass?function E0(e,t,n,r,o,i,s,a,u){const c=t.consts,l=br(t,e,4,s||null,ln(c,a));Zc(t,n,l,ln(c,u)),Yi(t,l);const d=l.tView=Wc(2,l,r,o,i,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,l),d.queries=t.queries.embeddedTView(l)),l}(l,c,u,t,n,r,o,i,s):c.data[l];Mt(d,!1);const f=Rm(c,u,d,e);Zi()&&vs(c,u,f,d),be(f,u),js(u,u[l]=Xg(f,u,f,d)),zi(d)&&Gc(c,u,d),null!=s&&qc(u,d,a)}(2,kk,9,3,"div",2),Fn()()),2&r&&(jo(2),al("ngForOf",o.listaCard))},dependencies:[ZD]})}return e})(),jk=(()=>{class e{constructor(){this.title="control_stock"}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=Vi({type:e,selectors:[["app-root"]],decls:2,vars:0,template:function(r,o){1&r&&Ws(0,"router-outlet")(1,"app-movimiento")},dependencies:[Wd,Lk]})}return e})(),$k=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e,bootstrap:[jk]});static#n=this.\u0275inj=jt({providers:[qC],imports:[vP,sk,Rk]})}return e})();gP().bootstrapModule($k).catch(e=>console.error(e))}},Q=>{Q(Q.s=489)}]); \ No newline at end of file diff --git a/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js b/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js new file mode 100644 index 0000000..3e7d2aa --- /dev/null +++ b/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcontrol_stock=self.webpackChunkcontrol_stock||[]).push([[429],{332:()=>{!function(e){const n=e.performance;function i(L){n&&n.mark&&n.mark(L)}function o(L,T){n&&n.measure&&n.measure(L,T)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(L){return c+L}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class L{static#e=this.__symbol__=a;static assertZonePatched(){if(e.Promise!==oe.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=L.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,L,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||J).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===P))return;const C=t.state!=E;C&&t._transitionTo(E,A),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==P&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(A,E):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,E,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(A,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new p(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new p(P,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new p(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||J).name+"; Execution: "+this.name+")");if(t.state===A||t.state===E){t._transitionTo(G,A,E);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CL.hasTask(t,r),onScheduleTask:(L,T,t,r)=>L.scheduleTask(t,r),onInvokeTask:(L,T,t,r,k,C)=>L.invokeTask(t,r,k,C),onCancelTask:(L,T,t,r)=>L.cancelTask(t,r)};class v{constructor(T,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=T,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:b,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=T,r.onScheduleTask||(this._scheduleTaskZS=b,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=b,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=b,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(T,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,T,t):new d(T,t)}intercept(T,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,T,t,r):t}invoke(T,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,T,t,r,k,C):t.apply(r,k)}handleError(T,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,T,t)}scheduleTask(T,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,T,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(T,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,T,t,r,k):t.callback.apply(r,k)}cancelTask(T,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,T,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(T,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,T,t)}catch(r){this.handleError(T,r)}}_updateTaskCount(T,t){const r=this._taskCounts,k=r[T],C=r[T]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:T})}}class p{constructor(T,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=T,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=T===Q&&k&&k.useG?p.invokeTask:function(){return p.invokeTask.call(e,l,this,arguments)}}static invokeTask(T,t,r){T||(T=this),ee++;try{return T.runCount++,T.zone.runTask(T,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(T,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${T}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=T,T==x&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?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 M=a("setTimeout"),O=a("Promise"),N=a("then");let K,B=[],H=!1;function q(L){if(K||e[O]&&(K=e[O].resolve(0)),K){let T=K[N];T||(T=K.then),T.call(K,L)}else e[M](L,0)}function R(L){0===ee&&0===B.length&&q(_),L&&B.push(L)}function _(){if(!H){for(H=!0;B.length;){const L=B;B=[];for(let T=0;TU,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,pe=Object.defineProperty,ve=Object.getPrototypeOf,Se=Object.create,it=Array.prototype.slice,Ze="addEventListener",De="removeEventListener",Oe=Zone.__symbol__(Ze),Ne=Zone.__symbol__(De),ie="true",ce="false",me=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const j=Zone.__symbol__,be=typeof window<"u",_e=be?window:void 0,Y=be&&_e||"object"==typeof self&&self||global,ct="removeAttribute";function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Ve(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Fe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Pe=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),Ae=!Pe&&!Fe&&!(!be||!_e.HTMLElement),Be=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Fe&&!(!be||!_e.HTMLElement),we={},Ue=function(e){if(!(e=e||Y.event))return;let n=we[e.type];n||(n=we[e.type]=j("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;return Ae&&i===_e&&"error"===e.type?(c=o&&o.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function We(e,n,i){let o=ue(e,n);if(!o&&i&&ue(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let b=we[d];b||(b=we[d]=j("ON_PROPERTY"+d)),o.set=function(v){let p=this;!p&&e===Y&&(p=Y),p&&("function"==typeof p[b]&&p.removeEventListener(d,Ue),y&&y.call(p,null),p[b]=v,"function"==typeof v&&p.addEventListener(d,Ue,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const p=v[b];if(p)return p;if(a){let M=a.call(this);if(M)return o.set.call(this,M),"function"==typeof v[ct]&&v.removeAttribute(n),M}return null},pe(e,n,o),e[c]=!0}function qe(e,n,i){if(n)for(let o=0;ofunction(y,d){const b=i(y,d);return b.cbIdx>=0&&"function"==typeof d[b.cbIdx]?Me(b.name,d[b.cbIdx],b,c):a.apply(y,d)})}function le(e,n){e[j("OriginalDelegate")]=n}let Xe=!1,je=!1;function ft(){if(Xe)return je;Xe=!0;try{const e=_e.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(je=!0)}catch{}return je}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],b=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),p=y("then"),M="__creationTrace__";i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const O=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[O];"function"==typeof u&&u.call(this,l)}catch{}}function B(l){return l&&l.then}function H(l){return l}function K(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),J=y("parentPromiseValue"),x=y("parentPromiseState"),X="Promise.then",A=null,E=!0,G=!1,h=0;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const P=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},Q="Promise resolved with itself",oe=y("currentTaskTrace");function z(l,u,s){const f=P();if(l===s)throw new TypeError(Q);if(l[q]===A){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(w){return f(()=>{z(l,!1,w)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==A)re(s),z(l,s[q],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(w){f(()=>{z(l,!1,w)})()}else{l[q]=u;const w=l[R];if(l[R]=s,l[_]===_&&u===E&&(l[q]=l[x],l[R]=l[J]),u===G&&s instanceof Error){const m=n.currentTask&&n.currentTask.data&&n.currentTask.data[M];m&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{const S=l[R],Z=!!s&&_===s[_];Z&&(s[J]=S,s[x]=w);const D=u.run(m,void 0,Z&&m!==K&&m!==H?[]:[S]);z(s,!0,D)}catch(S){z(s,!1,S)}},s)}const L=function(){},T=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),E,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new T([],"All promises were rejected"));const s=[];let f=0;try{for(let m of u)f++,s.push(t.resolve(m))}catch{return Promise.reject(new T([],"All promises were rejected"))}if(0===f)return Promise.reject(new T([],"All promises were rejected"));let g=!1;const w=[];return new t((m,S)=>{for(let Z=0;Z{g||(g=!0,m(D))},D=>{w.push(D),f--,0===f&&(g=!0,S(new T(w,"All promises were rejected")))})})}static race(u){let s,f,g=new this((S,Z)=>{s=S,f=Z});function w(S){s(S)}function m(S){f(S)}for(let S of u)B(S)||(S=this.resolve(S)),S.then(w,m);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,w=new this((D,V)=>{f=D,g=V}),m=2,S=0;const Z=[];for(let D of u){B(D)||(D=this.resolve(D));const V=S;try{D.then(F=>{Z[V]=s?s.thenCallback(F):F,m--,0===m&&f(Z)},F=>{s?(Z[V]=s.errorCallback(F),m--,0===m&&f(Z)):g(F)})}catch(F){g(F)}m++,S++}return m-=2,0===m&&f(Z),w}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=A,s[R]=[];try{const f=P();u&&u(f(I(s,E)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){let f=this.constructor?.[Symbol.species];(!f||"function"!=typeof f)&&(f=this.constructor||t);const g=new f(L),w=n.current;return this[q]==A?this[R].push(w,g,u,s):ee(this,w,g,u,s),g}catch(u){return this.then(null,u)}finally(u){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=t);const f=new s(L);f[_]=_;const g=n.current;return this[q]==A?this[R].push(g,f,u,u):ee(this,g,f,u,u),f}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[p]=f,l.prototype.then=function(g,w){return new t((S,Z)=>{f.call(this,S,Z)}).then(g,w)},l[k]=!0}return i.patchThen=C,r&&(C(r),ae(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=j("OriginalDelegate"),o=j("Promise"),c=j("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const p=e[o];if(p)return n.call(p)}if(this===Error){const p=e[c];if(p)return n.call(p)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let Ee=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){Ee=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{Ee=!1}const ht={useG:!0},te={},ze={},Ye=new RegExp("^"+me+"(\\w+)(true|false)$"),$e=j("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ce,o=(n?n(e):e)+ie,c=me+i,a=me+o;te[e]={},te[e][ce]=c,te[e][ie]=a}function dt(e,n,i,o){const c=o&&o.add||Ze,a=o&&o.rm||De,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",b=j(c),v="."+c+":",p="prependListener",M="."+p+":",O=function(R,_,J){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=E=>x.handleEvent(E),R.originalDelegate=x);try{R.invoke(R,_,[J])}catch(E){X=E}const A=R.options;return A&&"object"==typeof A&&A.once&&_[a].call(_,J.type,R.originalDelegate?R.originalDelegate:R.callback,A),X};function N(R,_,J){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][J?ie:ce]];if(X){const A=[];if(1===X.length){const E=O(X[0],x,_);E&&A.push(E)}else{const E=X.slice();for(let G=0;G{throw G})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function K(R,_){if(!R)return!1;let J=!0;_&&void 0!==_.useG&&(J=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let A=!1;_&&void 0!==_.rt&&(A=_.rt);let E=R;for(;E&&!E.hasOwnProperty(c);)E=ve(E);if(!E&&R[c]&&(E=R),!E||E[b])return!1;const G=_&&_.eventNameToString,h={},I=E[b]=E[c],P=E[j(a)]=E[a],Q=E[j(y)]=E[y],oe=E[j(d)]=E[d];let z;_&&_.prepend&&(z=E[j(_.prepend)]=E[_.prepend]);const t=J?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=J?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ie:ce]);const w=g&&s.target[g];if(w)for(let m=0;mfunction(c,a){c[$e]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,b,v){return b&&b.prototype&&c.forEach(function(p){const M=`${i}.${o}::`+p,O=b.prototype;try{if(O.hasOwnProperty(p)){const N=e.ObjectGetOwnPropertyDescriptor(O,p);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,M),e._redefineProperty(b.prototype,p,N)):O[p]&&(O[p]=e.wrapWithCurrentZone(O[p],M))}else O[p]&&(O[p]=e.wrapWithCurrentZone(O[p],M))}catch{}}),y.call(n,d,b,v)},e.attachOriginToPatched(n[o],y)}function Qe(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function et(e,n,i,o){e&&qe(e,Qe(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=qe,i.patchMethod=ae,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=pe,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Se,i.ArraySlice=it,i.patchClass=ge,i.wrapWithCurrentZone=Ie,i.filterProperties=Qe,i.attachOriginToPatched=le,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:ze,zoneSymbolEventNames:te,eventNames:o,isBrowser:Ae,isMix:Be,isNode:Pe,TRUE_STR:ie,FALSE_STR:ce,ZONE_SYMBOL_PREFIX:me,ADD_EVENT_LISTENER_STR:Ze,REMOVE_EVENT_LISTENER_STR:De})});const Re=j("zoneTask");function Te(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const p=v.data;return p.args[0]=function(){return v.invoke.apply(this,arguments)},p.handleId=c.apply(e,p.args),v}function b(v){return a.call(e,v.data.handleId)}c=ae(e,n+=o,v=>function(p,M){if("function"==typeof M[0]){const O={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?M[1]||0:void 0,args:M},N=M[0];M[0]=function(){try{return N.apply(this,arguments)}finally{O.isPeriodic||("number"==typeof O.handleId?delete y[O.handleId]:O.handleId&&(O.handleId[Re]=null))}};const B=Me(n,M[0],O,d,b);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Re]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,M)}),a=ae(e,i,v=>function(p,M){const O=M[0];let N;"number"==typeof O?N=y[O]:(N=O&&O[Re],N||(N=O)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof O?delete y[O]:O&&(O[Re]=null),N.zone.cancelTask(N)):v.apply(e,M)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("timers",e=>{const n="set",i="clear";Te(e,n,i,"Timeout"),Te(e,n,i,"Interval"),Te(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{Te(e,"request","cancel","AnimationFrame"),Te(e,"mozRequest","mozCancel","AnimationFrame"),Te(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(b,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function gt(e,n){n.patchEventPrototype(e,n)})(e,i),function mt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let b=0;b{ge("MutationObserver"),ge("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ge("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ge("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(Pe&&!Be||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(Ae){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=_e.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];et(c,He(c),i&&i.concat(a),ve(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function pt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function b(v){const p=v.XMLHttpRequest;if(!p)return;const M=p.prototype;let N=M[Oe],B=M[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Oe],B=I[Ne]}}const H="readystatechange",K="scheduled";function q(h){const I=h.data,P=I.target;P[a]=!1,P[d]=!1;const Q=P[c];N||(N=P[Oe],B=P[Ne]),Q&&B.call(P,H,Q);const oe=P[c]=()=>{if(P.readyState===P.DONE)if(!I.aborted&&P[a]&&h.state===K){const U=P[n.__symbol__("loadfalse")];if(0!==P.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=P[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],J.apply(h,I)}),X=j("fetchTaskAborting"),A=j("fetchTaskScheduling"),E=ae(M,"send",()=>function(h,I){if(!0===n.current[A]||h[o])return E.apply(h,I);{const P={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,P,q,_);h&&!0===h[d]&&!P.aborted&&Q.state===K&&Q.invoke()}}),G=ae(M,"abort",()=>function(h,I){const P=function O(h){return h[i]}(h);if(P&&"string"==typeof P.type){if(null==P.cancelFn||P.data&&P.data.aborted)return;P.zone.cancelTask(P)}else if(!0===n.current[X])return G.apply(h,I)})}(e);const i=j("xhrTask"),o=j("xhrSync"),c=j("xhrListener"),a=j("xhrScheduled"),y=j("xhrURL"),d=j("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const b=function(){return d.apply(this,Le(arguments,i+"."+c))};return le(b,d),b})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Ke(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const b=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(b)}})}}e.PromiseRejectionEvent&&(n[j("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[j("rejectionHandledHandler")]=i("rejectionhandled"))}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{!function yt(e,n){n.patchMethod(e,"queueMicrotask",i=>function(o,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}(e,i)})}},ue=>{ue(ue.s=332)}]); \ No newline at end of file diff --git a/angular/dist/control_stock/runtime.058989a62d5912ed.js b/angular/dist/control_stock/runtime.058989a62d5912ed.js new file mode 100644 index 0000000..837b970 --- /dev/null +++ b/angular/dist/control_stock/runtime.058989a62d5912ed.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,i={},_={};function a(e){var l=_[e];if(void 0!==l)return l.exports;var r=_[e]={exports:{}};return i[e](r,r.exports,a),r.exports}a.m=i,e=[],a.O=(l,r,f,o)=>{if(!r){var t=1/0;for(n=0;n=o)&&Object.keys(a.O).every(k=>a.O[k](r[c]))?r.splice(c--,1):(u=!1,o0&&e[n-1][2]>o;n--)e[n]=e[n-1];e[n]=[r,f,o]},a.o=(e,l)=>Object.prototype.hasOwnProperty.call(e,l),(()=>{var e={666:0};a.O.j=f=>0===e[f];var l=(f,o)=>{var c,s,[n,t,u]=o,v=0;if(n.some(h=>0!==e[h])){for(c in t)a.o(t,c)&&(a.m[c]=t[c]);if(u)var d=u(a)}for(f&&f(o);vcode{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} From d90b451b1f0330960247b08fc4c3710b6f84840a Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:23:58 -0300 Subject: [PATCH 12/22] Add files via upload --- angular/src/app/app-routing.module.ts | 10 +++ angular/src/app/app.component.css | 0 angular/src/app/app.component.html | 2 + angular/src/app/app.component.spec.ts | 29 +++++++ angular/src/app/app.component.ts | 10 +++ angular/src/app/app.module.ts | 27 ++++++ angular/src/app/form/form.component.css | 0 angular/src/app/form/form.component.html | 26 ++++++ angular/src/app/form/form.component.spec.ts | 21 +++++ angular/src/app/form/form.component.ts | 82 ++++++++++++++++++ angular/src/app/model/model.spec.ts | 7 ++ angular/src/app/model/model.ts | 7 ++ .../app/movimiento/movimiento.component.css | 0 .../app/movimiento/movimiento.component.html | 16 ++++ .../movimiento/movimiento.component.spec.ts | 21 +++++ .../app/movimiento/movimiento.component.ts | 31 +++++++ .../producto-deposito.component.css | 0 .../producto-deposito.component.html | 21 +++++ .../producto-deposito.component.spec.ts | 21 +++++ .../producto-deposito.component.ts | 65 ++++++++++++++ .../app/service/movimiento.service.spec.ts | 16 ++++ angular/src/app/service/movimiento.service.ts | 15 ++++ angular/src/favicon.ico | Bin 0 -> 948 bytes angular/src/index.html | 13 +++ angular/src/main.ts | 7 ++ angular/src/styles.css | 2 + 26 files changed, 449 insertions(+) create mode 100644 angular/src/app/app-routing.module.ts create mode 100644 angular/src/app/app.component.css create mode 100644 angular/src/app/app.component.html create mode 100644 angular/src/app/app.component.spec.ts create mode 100644 angular/src/app/app.component.ts create mode 100644 angular/src/app/app.module.ts create mode 100644 angular/src/app/form/form.component.css create mode 100644 angular/src/app/form/form.component.html create mode 100644 angular/src/app/form/form.component.spec.ts create mode 100644 angular/src/app/form/form.component.ts create mode 100644 angular/src/app/model/model.spec.ts create mode 100644 angular/src/app/model/model.ts create mode 100644 angular/src/app/movimiento/movimiento.component.css create mode 100644 angular/src/app/movimiento/movimiento.component.html create mode 100644 angular/src/app/movimiento/movimiento.component.spec.ts create mode 100644 angular/src/app/movimiento/movimiento.component.ts create mode 100644 angular/src/app/producto-deposito/producto-deposito.component.css create mode 100644 angular/src/app/producto-deposito/producto-deposito.component.html create mode 100644 angular/src/app/producto-deposito/producto-deposito.component.spec.ts create mode 100644 angular/src/app/producto-deposito/producto-deposito.component.ts create mode 100644 angular/src/app/service/movimiento.service.spec.ts create mode 100644 angular/src/app/service/movimiento.service.ts create mode 100644 angular/src/favicon.ico create mode 100644 angular/src/index.html create mode 100644 angular/src/main.ts create mode 100644 angular/src/styles.css diff --git a/angular/src/app/app-routing.module.ts b/angular/src/app/app-routing.module.ts new file mode 100644 index 0000000..0297262 --- /dev/null +++ b/angular/src/app/app-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +const routes: Routes = []; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/angular/src/app/app.component.css b/angular/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/app.component.html b/angular/src/app/app.component.html new file mode 100644 index 0000000..452aa9d --- /dev/null +++ b/angular/src/app/app.component.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/angular/src/app/app.component.spec.ts b/angular/src/app/app.component.spec.ts new file mode 100644 index 0000000..0170394 --- /dev/null +++ b/angular/src/app/app.component.spec.ts @@ -0,0 +1,29 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(() => TestBed.configureTestingModule({ + imports: [RouterTestingModule], + declarations: [AppComponent] + })); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'control_stock'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('control_stock'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('.content span')?.textContent).toContain('control_stock app is running!'); + }); +}); diff --git a/angular/src/app/app.component.ts b/angular/src/app/app.component.ts new file mode 100644 index 0000000..495992e --- /dev/null +++ b/angular/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] +}) +export class AppComponent { + title = 'control_stock'; +} diff --git a/angular/src/app/app.module.ts b/angular/src/app/app.module.ts new file mode 100644 index 0000000..9751f00 --- /dev/null +++ b/angular/src/app/app.module.ts @@ -0,0 +1,27 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { MovimientoComponent } from './movimiento/movimiento.component'; +import { HttpClientModule } from '@angular/common/http'; +import { MovimientoService } from './service/movimiento.service'; +import { FormComponent } from './form/form.component'; +import { FormsModule } from '@angular/forms'; +import { ProductoDepositoComponent } from './producto-deposito/producto-deposito.component'; +@NgModule({ + declarations: [ + AppComponent, + MovimientoComponent, + FormComponent, + ProductoDepositoComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + HttpClientModule, + FormsModule + ], + providers: [MovimientoService], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/angular/src/app/form/form.component.css b/angular/src/app/form/form.component.css new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/form/form.component.html b/angular/src/app/form/form.component.html new file mode 100644 index 0000000..ed49488 --- /dev/null +++ b/angular/src/app/form/form.component.html @@ -0,0 +1,26 @@ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ diff --git a/angular/src/app/form/form.component.spec.ts b/angular/src/app/form/form.component.spec.ts new file mode 100644 index 0000000..de45613 --- /dev/null +++ b/angular/src/app/form/form.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FormComponent } from './form.component'; + +describe('FormComponent', () => { + let component: FormComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [FormComponent] + }); + fixture = TestBed.createComponent(FormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/form/form.component.ts b/angular/src/app/form/form.component.ts new file mode 100644 index 0000000..c7a0dd4 --- /dev/null +++ b/angular/src/app/form/form.component.ts @@ -0,0 +1,82 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +interface DatosFormulario { + cantidad: number; + productoId: number; + movimientoTipoId: number; + depositoId: number; +} + +@Component({ + selector: 'app-form', + templateUrl: './form.component.html', +}) +export class FormComponent implements OnInit { + formularioData: DatosFormulario = { cantidad: 0, productoId: 0, movimientoTipoId: 0, depositoId: 0 }; + productos: any[] = []; // Array para almacenar opciones de productos + tiposMovimiento: any[] = []; // Array para almacenar opciones de tipos de movimiento + depositos: any[] = []; // Array para almacenar opciones de depósitos + + constructor(private http: HttpClient) {} + + ngOnInit() { + // Carga las opciones de productos, tipos de movimiento y depósitos desde tu backend. + this.cargarProductos(); + this.cargarTiposMovimiento(); + this.cargarDepositos(); + } + + cargarProductos() { + this.http.get('http://localhost:8080/api/v1/productos').subscribe( + (response: any) => { + this.productos = response; // Asigna la respuesta a this.productos + }, + (error) => { + console.error('Error al cargar opciones de productos', error); + } + ); + } + + cargarTiposMovimiento() { + this.http.get('http://localhost:8080/api/v1/movimientos_tipos').subscribe( + (response: any) => { + this.tiposMovimiento = response; // Asigna la respuesta a this.tiposMovimiento + }, + (error) => { + console.error('Error al cargar opciones de tipos de movimiento', error); + } + ); + } + + cargarDepositos() { + this.http.get('http://localhost:8080/api/v1/depositos').subscribe( + (response: any) => { + this.depositos = response; // Asigna la respuesta a this.depositos + }, + (error) => { + console.error('Error al cargar opciones de depósitos', error); + } + ); + } + + enviarDatos() { + const requestData = { + producto: { id: this.formularioData.productoId }, + deposito: { id: this.formularioData.depositoId }, + movimientoTipo: { id: this.formularioData.movimientoTipoId}, + cantidad: this.formularioData.cantidad + }; + const url = 'http://localhost:8080/api/v1/movimientos'; + + this.http.post(url, requestData).subscribe( + (response) => { + console.log('Datos enviados con éxito', response); + }, + (error) => { + console.error('Error al enviar los datos', error); + } + ); + console.log('Datos a enviar:', requestData); + } +} diff --git a/angular/src/app/model/model.spec.ts b/angular/src/app/model/model.spec.ts new file mode 100644 index 0000000..b6d43bf --- /dev/null +++ b/angular/src/app/model/model.spec.ts @@ -0,0 +1,7 @@ +import { Model } from './model'; + +describe('Model', () => { + it('should create an instance', () => { + expect(new Model()).toBeTruthy(); + }); +}); diff --git a/angular/src/app/model/model.ts b/angular/src/app/model/model.ts new file mode 100644 index 0000000..215c2dd --- /dev/null +++ b/angular/src/app/model/model.ts @@ -0,0 +1,7 @@ +export class Model { + id?: any; + cantidad?: any; + producto_id?: any; + deposito_id?: any; + movimiento_tipo_id?: any; + } \ No newline at end of file diff --git a/angular/src/app/movimiento/movimiento.component.css b/angular/src/app/movimiento/movimiento.component.css new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/movimiento/movimiento.component.html b/angular/src/app/movimiento/movimiento.component.html new file mode 100644 index 0000000..f22e425 --- /dev/null +++ b/angular/src/app/movimiento/movimiento.component.html @@ -0,0 +1,16 @@ +
+
+
+
+
+
{{ card.cantidad}}
+
{{ card.movimientoTipo.nombre}}
+

{{ card.deposito.nombre}}

+
{{ card.producto.nombre }}
+
{{ card.producto.descripcion}}
+

{{ card.precio }}

+
+
+
+
+
diff --git a/angular/src/app/movimiento/movimiento.component.spec.ts b/angular/src/app/movimiento/movimiento.component.spec.ts new file mode 100644 index 0000000..bf58b22 --- /dev/null +++ b/angular/src/app/movimiento/movimiento.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MovimientoComponent } from './movimiento.component'; + +describe('MovimientoComponent', () => { + let component: MovimientoComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [MovimientoComponent] + }); + fixture = TestBed.createComponent(MovimientoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/movimiento/movimiento.component.ts b/angular/src/app/movimiento/movimiento.component.ts new file mode 100644 index 0000000..4c65c55 --- /dev/null +++ b/angular/src/app/movimiento/movimiento.component.ts @@ -0,0 +1,31 @@ +import { Component, OnInit } from '@angular/core'; +import { MovimientoService } from '../service/movimiento.service'; +@Component({ + selector: 'app-movimiento', + templateUrl: './movimiento.component.html', + styleUrls: ['./movimiento.component.css'] +}) +export class MovimientoComponent implements OnInit { + public listaCard:any[] = []; + + constructor(private MovimientoService: MovimientoService) {} + + ngOnInit(): void { + this.cargarDato(); + + } + + public cargarDato() { + this.MovimientoService.get("http://localhost:8080/api/v1/movimientos") + .subscribe( + respuesta => { + console.log(respuesta); + this.listaCard = respuesta; + }, + error => { + console.error("Error en la solicitud:", error); + } + ); + + } +} \ No newline at end of file diff --git a/angular/src/app/producto-deposito/producto-deposito.component.css b/angular/src/app/producto-deposito/producto-deposito.component.css new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/producto-deposito/producto-deposito.component.html b/angular/src/app/producto-deposito/producto-deposito.component.html new file mode 100644 index 0000000..a844ed7 --- /dev/null +++ b/angular/src/app/producto-deposito/producto-deposito.component.html @@ -0,0 +1,21 @@ +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + diff --git a/angular/src/app/producto-deposito/producto-deposito.component.spec.ts b/angular/src/app/producto-deposito/producto-deposito.component.spec.ts new file mode 100644 index 0000000..8316e67 --- /dev/null +++ b/angular/src/app/producto-deposito/producto-deposito.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ProductoDepositoComponent } from './producto-deposito.component'; + +describe('ProductoDepositoComponent', () => { + let component: ProductoDepositoComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ProductoDepositoComponent] + }); + fixture = TestBed.createComponent(ProductoDepositoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/producto-deposito/producto-deposito.component.ts b/angular/src/app/producto-deposito/producto-deposito.component.ts new file mode 100644 index 0000000..eee9e37 --- /dev/null +++ b/angular/src/app/producto-deposito/producto-deposito.component.ts @@ -0,0 +1,65 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +interface DatosFormulario { + cantidad: number; + productoId: number; + depositoId: number; +} + +@Component({ + selector: 'app-form2', + templateUrl: './producto-deposito.component.html', +}) +export class ProductoDepositoComponent implements OnInit { + formularioData: DatosFormulario = { cantidad: 0, productoId: 0, depositoId: 0 }; + productos: any[] = []; // Array para almacenar opciones de productos + depositos: any[] = []; // Array para almacenar opciones de depósitos + + constructor(private http: HttpClient) {} + + ngOnInit() { + // Carga las opciones de productos, tipos de movimiento y depósitos desde tu backend. + this.cargarProductos(); + this.cargarDepositos(); + } + + cargarProductos() { + this.http.get('http://localhost:8080/api/v1/productos').subscribe( + (response: any) => { + this.productos = response; // Asigna la respuesta a this.productos + }, + (error) => { + console.error('Error al cargar opciones de productos', error); + } + ); + } + cargarDepositos() { + this.http.get('http://localhost:8080/api/v1/depositos').subscribe( + (response: any) => { + this.depositos = response; // Asigna la respuesta a this.depositos + }, + (error) => { + console.error('Error al cargar opciones de depósitos', error); + } + ); + } + + enviarDatos() { + const requestData = { + producto: { id: this.formularioData.productoId }, + deposito: { id: this.formularioData.depositoId } + }; + const url = 'http://localhost:8080/api/v1/productos_depositos'; + + this.http.post(url, requestData).subscribe( + (response) => { + console.log('Datos enviados con éxito', response); + }, + (error) => { + console.error('Error al enviar los datos', error); + } + ); + console.log('Datos a enviar:', requestData); + } +} diff --git a/angular/src/app/service/movimiento.service.spec.ts b/angular/src/app/service/movimiento.service.spec.ts new file mode 100644 index 0000000..bb8f95a --- /dev/null +++ b/angular/src/app/service/movimiento.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { MovimientoService } from './movimiento.service'; + +describe('MovimientoService', () => { + let service: MovimientoService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(MovimientoService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/angular/src/app/service/movimiento.service.ts b/angular/src/app/service/movimiento.service.ts new file mode 100644 index 0000000..d565045 --- /dev/null +++ b/angular/src/app/service/movimiento.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class MovimientoService { + + constructor(private http: HttpClient) { } + + public get(url: string): Observable { + return this.http.get(url); // GET + } +} \ No newline at end of file diff --git a/angular/src/favicon.ico b/angular/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + ControlStock + + + + + + + + diff --git a/angular/src/main.ts b/angular/src/main.ts new file mode 100644 index 0000000..c58dc05 --- /dev/null +++ b/angular/src/main.ts @@ -0,0 +1,7 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; + + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/angular/src/styles.css b/angular/src/styles.css new file mode 100644 index 0000000..2ea47c4 --- /dev/null +++ b/angular/src/styles.css @@ -0,0 +1,2 @@ +/* You can add global styles to this file, and also import other style files */ +@import 'bootstrap/dist/css/bootstrap.min.css'; From bfe74d373638a4e842836d82d5dd80e48fc14362 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:24:15 -0300 Subject: [PATCH 13/22] Delete angular/dist/control_stock directory --- .../dist/control_stock/3rdpartylicenses.txt | 266 ------------------ angular/dist/control_stock/favicon.ico | Bin 948 -> 0 bytes angular/dist/control_stock/index.html | 13 - .../control_stock/main.29b436af14bbc180.js | 1 - .../polyfills.7402fc72e38bd7b1.js | 1 - .../control_stock/runtime.058989a62d5912ed.js | 1 - .../control_stock/styles.87a6e181f4d11b21.css | 5 - 7 files changed, 287 deletions(-) delete mode 100644 angular/dist/control_stock/3rdpartylicenses.txt delete mode 100644 angular/dist/control_stock/favicon.ico delete mode 100644 angular/dist/control_stock/index.html delete mode 100644 angular/dist/control_stock/main.29b436af14bbc180.js delete mode 100644 angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js delete mode 100644 angular/dist/control_stock/runtime.058989a62d5912ed.js delete mode 100644 angular/dist/control_stock/styles.87a6e181f4d11b21.css diff --git a/angular/dist/control_stock/3rdpartylicenses.txt b/angular/dist/control_stock/3rdpartylicenses.txt deleted file mode 100644 index c88baaf..0000000 --- a/angular/dist/control_stock/3rdpartylicenses.txt +++ /dev/null @@ -1,266 +0,0 @@ -@angular/common -MIT - -@angular/core -MIT - -@angular/platform-browser -MIT - -@angular/router -MIT - -bootstrap -MIT -The MIT License (MIT) - -Copyright (c) 2011-2023 The Bootstrap Authors - -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. - - -rxjs -Apache-2.0 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - -zone.js -MIT -The MIT License - -Copyright (c) 2010-2023 Google LLC. https://angular.io/license - -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. diff --git a/angular/dist/control_stock/favicon.ico b/angular/dist/control_stock/favicon.ico deleted file mode 100644 index 997406ad22c29aae95893fb3d666c30258a09537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 - - - - ControlStock - - - - - - - - diff --git a/angular/dist/control_stock/main.29b436af14bbc180.js b/angular/dist/control_stock/main.29b436af14bbc180.js deleted file mode 100644 index 73d4fff..0000000 --- a/angular/dist/control_stock/main.29b436af14bbc180.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcontrol_stock=self.webpackChunkcontrol_stock||[]).push([[179],{489:()=>{function Q(e){return"function"==typeof e}function no(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const Ti=no(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function ro(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class Ge{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(Q(r))try{r()}catch(i){t=i instanceof Ti?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{ff(i)}catch(s){t=t??[],s instanceof Ti?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Ti(t)}}add(t){var n;if(t&&t!==this)if(this.closed)ff(t);else{if(t instanceof Ge){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&ro(n,t)}remove(t){const{_finalizers:n}=this;n&&ro(n,t),t instanceof Ge&&t._removeParent(this)}}Ge.EMPTY=(()=>{const e=new Ge;return e.closed=!0,e})();const lf=Ge.EMPTY;function df(e){return e instanceof Ge||e&&"closed"in e&&Q(e.remove)&&Q(e.add)&&Q(e.unsubscribe)}function ff(e){Q(e)?e():e.unsubscribe()}const En={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Ai={setTimeout(e,t,...n){const{delegate:r}=Ai;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){const{delegate:t}=Ai;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function hf(e){Ai.setTimeout(()=>{const{onUnhandledError:t}=En;if(!t)throw e;t(e)})}function Za(){}const WC=Ya("C",void 0,void 0);function Ya(e,t,n){return{kind:e,value:t,error:n}}let _n=null;function Ri(e){if(En.useDeprecatedSynchronousErrorHandling){const t=!_n;if(t&&(_n={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=_n;if(_n=null,n)throw r}}else e()}class Qa extends Ge{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,df(t)&&t.add(this)):this.destination=eE}static create(t,n,r){return new oo(t,n,r)}next(t){this.isStopped?Ja(function YC(e){return Ya("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Ja(function ZC(e){return Ya("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Ja(WC,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const XC=Function.prototype.bind;function Xa(e,t){return XC.call(e,t)}class JC{constructor(t){this.partialObserver=t}next(t){const{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Ni(r)}}error(t){const{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Ni(r)}else Ni(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Ni(n)}}}class oo extends Qa{constructor(t,n,r){let o;if(super(),Q(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&En.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Xa(t.next,i),error:t.error&&Xa(t.error,i),complete:t.complete&&Xa(t.complete,i)}):o=t}this.destination=new JC(o)}}function Ni(e){En.useDeprecatedSynchronousErrorHandling?function QC(e){En.useDeprecatedSynchronousErrorHandling&&_n&&(_n.errorThrown=!0,_n.error=e)}(e):hf(e)}function Ja(e,t){const{onStoppedNotification:n}=En;n&&Ai.setTimeout(()=>n(e,t))}const eE={closed:!0,next:Za,error:function KC(e){throw e},complete:Za},Ka="function"==typeof Symbol&&Symbol.observable||"@@observable";function nn(e){return e}function pf(e){return 0===e.length?nn:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}let le=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function rE(e){return e&&e instanceof Qa||function nE(e){return e&&Q(e.next)&&Q(e.error)&&Q(e.complete)}(e)&&df(e)}(n)?n:new oo(n,r,o);return Ri(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=gf(r))((o,i)=>{const s=new oo({next:a=>{try{n(a)}catch(u){i(u),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[Ka](){return this}pipe(...n){return pf(n)(this)}toPromise(n){return new(n=gf(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function gf(e){var t;return null!==(t=e??En.Promise)&&void 0!==t?t:Promise}const oE=no(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let lt=(()=>{class e extends le{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new mf(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new oE}next(n){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(n)}})}error(n){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){Ri(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lf:(this.currentObservers=null,i.push(n),new Ge(()=>{this.currentObservers=null,ro(i,n)}))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new le;return n.source=this,n}}return e.create=(t,n)=>new mf(t,n),e})();class mf extends lt{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:lf}}function vf(e){return Q(e?.lift)}function fe(e){return t=>{if(vf(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function he(e,t,n,r,o){return new iE(e,t,n,r,o)}class iE extends Qa{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(u){t.error(u)}}:super._next,this._error=o?function(a){try{o(a)}catch(u){t.error(u)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function q(e,t){return fe((n,r)=>{let o=0;n.subscribe(he(r,i=>{r.next(e.call(t,i,o++))}))})}function rn(e){return this instanceof rn?(this.v=e,this):new rn(e)}function Cf(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function ru(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,u){!function o(i,s,a,u){Promise.resolve(u).then(function(c){i({value:c,done:a})},s)}(a,u,(s=e[i](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Ef=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function _f(e){return Q(e?.then)}function If(e){return Q(e[Ka])}function bf(e){return Symbol.asyncIterator&&Q(e?.[Symbol.asyncIterator])}function Sf(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Mf=function ME(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Tf(e){return Q(e?.[Mf])}function Af(e){return function wf(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(f){r[f]&&(o[f]=function(h){return new Promise(function(p,g){i.push([f,h,p,g])>1||a(f,h)})})}function a(f,h){try{!function u(f){f.value instanceof rn?Promise.resolve(f.value.v).then(c,l):d(i[0][2],f)}(r[f](h))}catch(p){d(i[0][3],p)}}function c(f){a("next",f)}function l(f){a("throw",f)}function d(f,h){f(h),i.shift(),i.length&&a(i[0][0],i[0][1])}}(this,arguments,function*(){const n=e.getReader();try{for(;;){const{value:r,done:o}=yield rn(n.read());if(o)return yield rn(void 0);yield yield rn(r)}}finally{n.releaseLock()}})}function Rf(e){return Q(e?.getReader)}function et(e){if(e instanceof le)return e;if(null!=e){if(If(e))return function TE(e){return new le(t=>{const n=e[Ka]();if(Q(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Ef(e))return function AE(e){return new le(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,hf)})}(e);if(bf(e))return Nf(e);if(Tf(e))return function NE(e){return new le(t=>{for(const n of e)if(t.next(n),t.closed)return;t.complete()})}(e);if(Rf(e))return function xE(e){return Nf(Af(e))}(e)}throw Sf(e)}function Nf(e){return new le(t=>{(function OE(e,t){var n,r,o,i;return function yf(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(l){try{c(r.next(l))}catch(d){s(d)}}function u(l){try{c(r.throw(l))}catch(d){s(d)}}function c(l){l.done?i(l.value):function o(i){return i instanceof n?i:new n(function(s){s(i)})}(l.value).then(a,u)}c((r=r.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(n=Cf(e);!(r=yield n.next()).done;)if(t.next(r.value),t.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(n=>t.error(n))})}function Lt(e,t,n,r=0,o=!1){const i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function De(e,t,n=1/0){return Q(t)?De((r,o)=>q((i,s)=>t(r,i,o,s))(et(e(r,o))),n):("number"==typeof t&&(n=t),fe((r,o)=>function PE(e,t,n,r,o,i,s,a){const u=[];let c=0,l=0,d=!1;const f=()=>{d&&!u.length&&!c&&t.complete()},h=g=>c{i&&t.next(g),c++;let v=!1;et(n(g,l++)).subscribe(he(t,D=>{o?.(D),i?h(D):t.next(D)},()=>{v=!0},void 0,()=>{if(v)try{for(c--;u.length&&cp(D)):p(D)}f()}catch(D){t.error(D)}}))};return e.subscribe(he(t,h,()=>{d=!0,f()})),()=>{a?.()}}(r,o,e,n)))}function Wn(e=1/0){return De(nn,e)}const Et=new le(e=>e.complete());function ou(e){return e[e.length-1]}function io(e){return function kE(e){return e&&Q(e.schedule)}(ou(e))?e.pop():void 0}function xf(e,t=0){return fe((n,r)=>{n.subscribe(he(r,o=>Lt(r,e,()=>r.next(o),t),()=>Lt(r,e,()=>r.complete(),t),o=>Lt(r,e,()=>r.error(o),t)))})}function Of(e,t=0){return fe((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Pf(e,t){if(!e)throw new Error("Iterable cannot be null");return new le(n=>{Lt(n,t,()=>{const r=e[Symbol.asyncIterator]();Lt(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function ve(e,t){return t?function zE(e,t){if(null!=e){if(If(e))return function $E(e,t){return et(e).pipe(Of(t),xf(t))}(e,t);if(Ef(e))return function VE(e,t){return new le(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(_f(e))return function HE(e,t){return et(e).pipe(Of(t),xf(t))}(e,t);if(bf(e))return Pf(e,t);if(Tf(e))return function BE(e,t){return new le(n=>{let r;return Lt(n,t,()=>{r=e[Mf](),Lt(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void n.error(s)}i?n.complete():n.next(o)},0,!0)}),()=>Q(r?.return)&&r.return()})}(e,t);if(Rf(e))return function UE(e,t){return Pf(Af(e),t)}(e,t)}throw Sf(e)}(e,t):et(e)}class tt extends lt{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){const{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}}function A(...e){return ve(e,io(e))}function Ff(e={}){const{connector:t=(()=>new lt),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,u,c=0,l=!1,d=!1;const f=()=>{a?.unsubscribe(),a=void 0},h=()=>{f(),s=u=void 0,l=d=!1},p=()=>{const g=s;h(),g?.unsubscribe()};return fe((g,v)=>{c++,!d&&!l&&f();const D=u=u??t();v.add(()=>{c--,0===c&&!d&&!l&&(a=iu(p,o))}),D.subscribe(v),!s&&c>0&&(s=new oo({next:m=>D.next(m),error:m=>{d=!0,f(),a=iu(h,n,m),D.error(m)},complete:()=>{l=!0,f(),a=iu(h,r),D.complete()}}),et(g).subscribe(s))})(i)}}function iu(e,t,...n){if(!0===t)return void e();if(!1===t)return;const r=new oo({next:()=>{r.unsubscribe(),e()}});return et(t(...n)).subscribe(r)}function dt(e,t){return fe((n,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();n.subscribe(he(r,u=>{o?.unsubscribe();let c=0;const l=i++;et(e(u,l)).subscribe(o=he(r,d=>r.next(t?t(u,d,l,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function WE(e,t){return e===t}function Z(e){for(let t in e)if(e[t]===Z)return t;throw Error("Could not find renamed property on target object.")}function pe(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(pe).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function su(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const ZE=Z({__forward_ref__:Z});function au(e){return e.__forward_ref__=au,e.toString=function(){return pe(this())},e}function x(e){return uu(e)?e():e}function uu(e){return"function"==typeof e&&e.hasOwnProperty(ZE)&&e.__forward_ref__===au}function cu(e){return e&&!!e.\u0275providers}class w extends Error{constructor(t,n){super(function Oi(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function O(e){return"string"==typeof e?e:null==e?"":String(e)}function lu(e,t){throw new w(-201,!1)}function nt(e,t){null==e&&function R(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function S(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function jt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Pi(e){return Lf(e,ki)||Lf(e,jf)}function Lf(e,t){return e.hasOwnProperty(t)?e[t]:null}function Fi(e){return e&&(e.hasOwnProperty(du)||e.hasOwnProperty(n_))?e[du]:null}const ki=Z({\u0275prov:Z}),du=Z({\u0275inj:Z}),jf=Z({ngInjectableDef:Z}),n_=Z({ngInjectorDef:Z});var $=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}($||{});let fu;function je(e){const t=fu;return fu=e,t}function Hf(e,t,n){const r=Pi(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&$.Optional?null:void 0!==t?t:void lu(pe(e))}const J=globalThis,so={},vu="__NG_DI_FLAG__",Li="ngTempTokenPath",i_=/\n/gm,Bf="__source";let Zn;function on(e){const t=Zn;return Zn=e,t}function u_(e,t=$.Default){if(void 0===Zn)throw new w(-203,!1);return null===Zn?Hf(e,void 0,t):Zn.get(e,t&$.Optional?null:void 0,t)}function b(e,t=$.Default){return(function $f(){return fu}()||u_)(x(e),t)}function _(e,t=$.Default){return b(e,ji(t))}function ji(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function yu(e){const t=[];for(let n=0;nt){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==qf(h,c,0)||2&r&&c!==f){if(ht(r))return!1;s=!0}}}}else{if(!s&&!ht(r)&&!ht(u))return!1;if(s&&ht(u))continue;s=!1,r=u|1&r}}return ht(r)||s}function ht(e){return 0==(1&e)}function g_(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!ht(s)&&(t+=Kf(i,o),o=""),r=s,i=i||!ht(r);n++}return""!==o&&(t+=Kf(i,o)),t}function Vi(e){return $t(()=>{const t=th(e),n={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===$i.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||ft.Emulated,styles:e.styles||U,_:null,schemas:e.schemas||null,tView:null,id:""};nh(n);const r=e.dependencies;return n.directiveDefs=Bi(r,!1),n.pipeDefs=Bi(r,!0),n.id=function T_(e){let t=0;const n=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const o of n)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}(n),n})}function I_(e){return V(e)||we(e)}function b_(e){return null!==e}function sn(e){return $t(()=>({type:e.type,bootstrap:e.bootstrap||U,declarations:e.declarations||U,imports:e.imports||U,exports:e.exports||U,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function eh(e,t){if(null==e)return _t;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}function Te(e){return $t(()=>{const t=th(e);return nh(t),t})}function V(e){return e[Hi]||null}function we(e){return e[Du]||null}function Ae(e){return e[wu]||null}function We(e,t){const n=e[zf]||null;if(!n&&!0===t)throw new Error(`Type ${pe(e)} does not have '\u0275mod' property.`);return n}function th(e){const t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||_t,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||U,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:eh(e.inputs,t),outputs:eh(e.outputs)}}function nh(e){e.features?.forEach(t=>t(e))}function Bi(e,t){if(!e)return null;const n=t?Ae:I_;return()=>("function"==typeof e?e():e).map(r=>n(r)).filter(b_)}const ie=0,C=1,k=2,re=3,pt=4,lo=5,Ie=6,Qn=7,ae=8,an=9,Xn=10,P=11,fo=12,rh=13,Jn=14,ue=15,ho=16,Kn=17,It=18,po=19,oh=20,un=21,Vt=22,go=23,mo=24,H=25,Eu=1,ih=2,bt=7,er=9,Ce=11;function He(e){return Array.isArray(e)&&"object"==typeof e[Eu]}function Re(e){return Array.isArray(e)&&!0===e[Eu]}function _u(e){return 0!=(4&e.flags)}function bn(e){return e.componentOffset>-1}function zi(e){return 1==(1&e.flags)}function gt(e){return!!e.template}function Iu(e){return 0!=(512&e[k])}function Sn(e,t){return e.hasOwnProperty(Ht)?e[Ht]:null}let Ee=null,Gi=!1;function rt(e){const t=Ee;return Ee=e,t}const uh={version:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{}};function lh(e){if(!yo(e)||e.dirty){if(!e.producerMustRecompute(e)&&!hh(e))return void(e.dirty=!1);e.producerRecomputeValue(e),e.dirty=!1}}function fh(e){e.dirty=!0,function dh(e){if(void 0===e.liveConsumerNode)return;const t=Gi;Gi=!0;try{for(const n of e.liveConsumerNode)n.dirty||fh(n)}finally{Gi=t}}(e),e.consumerMarkedDirty?.(e)}function Su(e){return e&&(e.nextProducerIndex=0),rt(e)}function Mu(e,t){if(rt(t),e&&void 0!==e.producerNode&&void 0!==e.producerIndexOfThis&&void 0!==e.producerLastReadVersion){if(yo(e))for(let n=e.nextProducerIndex;ne.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function hh(e){tr(e);for(let t=0;t0}function tr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let vh=null;const Ch=()=>{},V_=(()=>({...uh,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:e=>{e.schedule(e.ref)},hasRun:!1,cleanupFn:Ch}))();class B_{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function Mn(){return Eh}function Eh(e){return e.type.prototype.ngOnChanges&&(e.setInput=z_),U_}function U_(){const e=Ih(this),t=e?.current;if(t){const n=e.previous;if(n===_t)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function z_(e,t,n,r){const o=this.declaredInputs[n],i=Ih(e)||function G_(e,t){return e[_h]=t}(e,{previous:_t,current:null}),s=i.current||(i.current={}),a=i.previous,u=a[o];s[o]=new B_(u&&u.currentValue,t,a===_t),e[r]=t}Mn.ngInherit=!0;const _h="__ngSimpleChanges__";function Ih(e){return e[_h]||null}const St=function(e,t,n){};function K(e){for(;Array.isArray(e);)e=e[ie];return e}function Ve(e,t){return K(t[e.index])}function Mh(e,t){return e.data[t]}function Ze(e,t){const n=t[e];return He(n)?n:n[ie]}function ln(e,t){return null==t?null:e[t]}function Th(e){e[Kn]=0}function X_(e){1024&e[k]||(e[k]|=1024,Rh(e,1))}function Ah(e){1024&e[k]&&(e[k]&=-1025,Rh(e,-1))}function Rh(e,t){let n=e[re];if(null===n)return;n[lo]+=t;let r=n;for(n=n[re];null!==n&&(1===t&&1===r[lo]||-1===t&&0===r[lo]);)n[lo]+=t,r=n,n=n[re]}const N={lFrame:Vh(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Oh(){return N.bindingsEnabled}function y(){return N.lFrame.lView}function B(){return N.lFrame.tView}function _e(){let e=Ph();for(;null!==e&&64===e.type;)e=e.parent;return e}function Ph(){return N.lFrame.currentTNode}function Mt(e,t){const n=N.lFrame;n.currentTNode=e,n.isParent=t}function xu(){return N.lFrame.isParent}function or(){return N.lFrame.bindingIndex++}function dI(e,t){const n=N.lFrame;n.bindingIndex=n.bindingRootIndex=e,Pu(t)}function Pu(e){N.lFrame.currentDirectiveIndex=e}function ku(e){N.lFrame.currentQueryIndex=e}function hI(e){const t=e[C];return 2===t.type?t.declTNode:1===t.type?e[Ie]:null}function $h(e,t,n){if(n&$.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&$.Host||(o=hI(i),null===o||(i=i[Jn],10&o.type))););if(null===o)return!1;t=o,e=i}const r=N.lFrame=Hh();return r.currentTNode=t,r.lView=e,!0}function Lu(e){const t=Hh(),n=e[C];N.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Hh(){const e=N.lFrame,t=null===e?null:e.child;return null===t?Vh(e):t}function Vh(e){const t={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:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function Bh(){const e=N.lFrame;return N.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Uh=Bh;function ju(){const e=Bh();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function xe(){return N.lFrame.selectedIndex}function Tn(e){N.lFrame.selectedIndex=e}let Gh=!0;function Zi(){return Gh}function dn(e){Gh=e}function Yi(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[u]<0&&(e[Kn]+=65536),(a>13>16&&(3&e[k])===t&&(e[k]+=8192,Wh(a,i)):Wh(a,i)}const ir=-1;class wo{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function Vu(e){return e!==ir}function Co(e){return 32767&e}function Eo(e,t){let n=function bI(e){return e>>16}(e),r=t;for(;n>0;)r=r[Jn],n--;return r}let Bu=!0;function Ji(e){const t=Bu;return Bu=e,t}const Zh=255,Yh=5;let SI=0;const Tt={};function Ki(e,t){const n=Qh(e,t);if(-1!==n)return n;const r=t[C];r.firstCreatePass&&(e.injectorIndex=t.length,Uu(r.data,e),Uu(t,null),Uu(r.blueprint,null));const o=es(e,t),i=e.injectorIndex;if(Vu(o)){const s=Co(o),a=Eo(o,t),u=a[C].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|u[s+c]}return t[i+8]=o,i}function Uu(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Qh(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function es(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=op(o),null===r)return ir;if(n++,o=o[Jn],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return ir}function zu(e,t,n){!function MI(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(uo)&&(r=n[uo]),null==r&&(r=n[uo]=SI++);const o=r&Zh;t.data[e+(o>>Yh)]|=1<=0?t&Zh:xI:t}(n);if("function"==typeof i){if(!$h(t,e,r))return r&$.Host?Xh(o,0,r):Jh(t,n,r,o);try{let s;if(s=i(r),null!=s||r&$.Optional)return s;lu()}finally{Uh()}}else if("number"==typeof i){let s=null,a=Qh(e,t),u=ir,c=r&$.Host?t[ue][Ie]:null;for((-1===a||r&$.SkipSelf)&&(u=-1===a?es(e,t):t[a+8],u!==ir&&np(r,!1)?(s=t[C],a=Co(u),t=Eo(u,t)):a=-1);-1!==a;){const l=t[C];if(tp(i,a,l.data)){const d=AI(a,t,n,s,r,c);if(d!==Tt)return d}u=t[a+8],u!==ir&&np(r,t[C].data[a+8]===c)&&tp(i,a,t)?(s=l,a=Co(u),t=Eo(u,t)):a=-1}}return o}function AI(e,t,n,r,o,i){const s=t[C],a=s.data[e+8],l=function ts(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,u=e.directiveStart,l=i>>20,f=o?a+l:e.directiveEnd;for(let h=r?a:a+l;h=u&&p.type===n)return h}if(o){const h=s[u];if(h&>(h)&&h.type===n)return u}return null}(a,s,n,null==r?bn(a)&&Bu:r!=s&&0!=(3&a.type),o&$.Host&&i===a);return null!==l?An(t,s,l,a):Tt}function An(e,t,n,r){let o=e[n];const i=t.data;if(function EI(e){return e instanceof wo}(o)){const s=o;s.resolving&&function YE(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new w(-200,`Circular dependency in DI detected for ${e}${n}`)}(function W(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():O(e)}(i[n]));const a=Ji(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?je(s.injectImpl):null;$h(e,r,$.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function wI(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=Eh(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}(n,i[n],t)}finally{null!==c&&je(c),Ji(a),s.resolving=!1,Uh()}}return o}function tp(e,t,n){return!!(n[t+(e>>Yh)]&1<{const t=Gu(x(e));return t&&t()}:Sn(e)}function op(e){const t=e[C],n=t.type;return 2===n?t.declTNode:1===n?e[Ie]:null}const ar="__parameters__";function cr(e,t,n){return $t(()=>{const r=function qu(e){return function(...n){if(e){const r=e(...n);for(const o in r)this[o]=r[o]}}}(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(u,c,l){const d=u.hasOwnProperty(ar)?u[ar]:Object.defineProperty(u,ar,{value:[]})[ar];for(;d.length<=l;)d.push(null);return(d[l]=d[l]||[]).push(s),u}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function dr(e,t){e.forEach(n=>Array.isArray(n)?dr(n,t):t(n))}function sp(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function rs(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}const is=ao(cr("Optional"),8),ss=ao(cr("SkipSelf"),4);function ds(e){return 128==(128&e.flags)}var fn=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(fn||{});const Ju=new Map;let lb=0;const ec="__ngContext__";function be(e,t){He(t)?(e[ec]=t[po],function fb(e){Ju.set(e[po],e)}(t)):e[ec]=t}let tc;function nc(e,t){return tc(e,t)}function To(e){const t=e[re];return Re(t)?t[re]:t}function Mp(e){return Ap(e[fo])}function Tp(e){return Ap(e[pt])}function Ap(e){for(;null!==e&&!Re(e);)e=e[pt];return e}function gr(e,t,n,r,o){if(null!=r){let i,s=!1;Re(r)?i=r:He(r)&&(s=!0,r=r[ie]);const a=K(r);0===e&&null!==n?null==o?Op(t,n,a):Rn(t,n,a,o||null,!0):1===e&&null!==n?Rn(t,n,a,o||null,!0):2===e?function ys(e,t,n){const r=ms(e,t);r&&function Nb(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function Pb(e,t,n,r,o){const i=n[bt];i!==K(n)&&gr(t,e,r,i,o);for(let a=Ce;a0&&(e[n-1][pt]=r[pt]);const i=rs(e,Ce+t);!function _b(e,t){Ro(e,t,t[P],2,null,null),t[ie]=null,t[Ie]=null}(r[C],r);const s=i[It];null!==s&&s.detachView(i[C]),r[re]=null,r[pt]=null,r[k]&=-129}return r}function oc(e,t){if(!(256&t[k])){const n=t[P];t[go]&&ph(t[go]),t[mo]&&ph(t[mo]),n.destroyNode&&Ro(e,t,n,3,null,null),function Sb(e){let t=e[fo];if(!t)return ic(e[C],e);for(;t;){let n=null;if(He(t))n=t[fo];else{const r=t[Ce];r&&(n=r)}if(!n){for(;t&&!t[pt]&&t!==e;)He(t)&&ic(t[C],t),t=t[re];null===t&&(t=e),He(t)&&ic(t[C],t),n=t&&t[pt]}t=n}}(t)}}function ic(e,t){if(!(256&t[k])){t[k]&=-129,t[k]|=256,function Rb(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r=0?r[s]():r[-s].unsubscribe(),i+=2}else n[i].call(r[n[i+1]]);null!==r&&(t[Qn]=null);const o=t[un];if(null!==o){t[un]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===ft.None||i===ft.Emulated)return null}return Ve(r,n)}}(e,t.parent,n)}function Rn(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Op(e,t,n){e.appendChild(t,n)}function Pp(e,t,n,r,o){null!==r?Rn(e,t,n,r,o):Op(e,t,n)}function ms(e,t){return e.parentNode(t)}let ac,dc,Lp=function kp(e,t,n){return 40&e.type?Ve(e,n):null};function vs(e,t,n,r){const o=sc(e,r,t),i=t[P],a=function Fp(e,t,n){return Lp(e,t,n)}(r.parent||t[Ie],r,t);if(null!=o)if(Array.isArray(n))for(let u=0;u{n.push(s)};return dr(t,s=>{const a=s;Es(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&sg(o,i),n}function sg(e,t){for(let n=0;n{t(i,r)})}}function Es(e,t,n,r){if(!(e=x(e)))return!1;let o=null,i=Fi(e);const s=!i&&V(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const u=e.ngModule;if(i=Fi(u),!i)return!1;o=u}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const u="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of u)Es(c,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{dr(i.imports,l=>{Es(l,t,n,r)&&(c||=[],c.push(l))})}finally{}void 0!==c&&sg(c,t)}if(!a){const c=Sn(o)||(()=>new o);t({provide:o,useFactory:c,deps:U},o),t({provide:og,useValue:o,multi:!0},o),t({provide:Po,useValue:()=>b(o),multi:!0},o)}const u=i.providers;if(null!=u&&!a){const c=e;Dc(u,l=>{t(l,c)})}}}return o!==e&&void 0!==e.providers}function Dc(e,t){for(let n of e)cu(n)&&(n=n.\u0275providers),Array.isArray(n)?Dc(n,t):t(n)}const lS=Z({provide:String,useValue:Z});function wc(e){return null!==e&&"object"==typeof e&&lS in e}function Nn(e){return"function"==typeof e}const Cc=new I("Set Injector scope."),_s={},fS={};let Ec;function Is(){return void 0===Ec&&(Ec=new vc),Ec}class Qe{}class bs extends Qe{get destroyed(){return this._destroyed}constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Ic(t,s=>this.processProvider(s)),this.records.set(rg,Dr(void 0,this)),o.has("environment")&&this.records.set(Qe,Dr(void 0,this));const i=this.records.get(Cc);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(og.multi,U,$.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const n of t)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const n=on(this),r=je(void 0);try{return t()}finally{on(n),je(r)}}get(t,n=so,r=$.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(Gf))return t[Gf](this);r=ji(r);const i=on(this),s=je(void 0);try{if(!(r&$.SkipSelf)){let u=this.records.get(t);if(void 0===u){const c=function vS(e){return"function"==typeof e||"object"==typeof e&&e instanceof I}(t)&&Pi(t);u=c&&this.injectableDefInScope(c)?Dr(_c(t),_s):null,this.records.set(t,u)}if(null!=u)return this.hydrate(t,u)}return(r&$.Self?Is():this.parent).get(t,n=r&$.Optional&&n===so?null:n)}catch(a){if("NullInjectorError"===a.name){if((a[Li]=a[Li]||[]).unshift(pe(t)),i)throw a;return function l_(e,t,n,r){const o=e[Li];throw t[Bf]&&o.unshift(t[Bf]),e.message=function d_(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=pe(t);if(Array.isArray(t))o=t.map(pe).join(" -> ");else if("object"==typeof t){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):pe(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(i_,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[Li]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{je(s),on(i)}}resolveInjectorInitializers(){const t=on(this),n=je(void 0);try{const o=this.get(Po.multi,U,$.Self);for(const i of o)i()}finally{on(t),je(n)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(pe(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new w(205,!1)}processProvider(t){let n=Nn(t=x(t))?t:x(t&&t.provide);const r=function pS(e){return wc(e)?Dr(void 0,e.useValue):Dr(function cg(e,t,n){let r;if(Nn(e)){const o=x(e);return Sn(o)||_c(o)}if(wc(e))r=()=>x(e.useValue);else if(function ug(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...yu(e.deps||[]));else if(function ag(e){return!(!e||!e.useExisting)}(e))r=()=>b(x(e.useExisting));else{const o=x(e&&(e.useClass||e.provide));if(!function gS(e){return!!e.deps}(e))return Sn(o)||_c(o);r=()=>new o(...yu(e.deps))}return r}(e),_s)}(t);if(Nn(t)||!0!==t.multi)this.records.get(n);else{let o=this.records.get(n);o||(o=Dr(void 0,_s,!0),o.factory=()=>yu(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){return n.value===_s&&(n.value=fS,n.value=n.factory()),"object"==typeof n.value&&n.value&&function mS(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=x(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){const n=this._onDestroyHooks.indexOf(t);-1!==n&&this._onDestroyHooks.splice(n,1)}}function _c(e){const t=Pi(e),n=null!==t?t.factory:Sn(e);if(null!==n)return n;if(e instanceof I)throw new w(204,!1);if(e instanceof Function)return function hS(e){const t=e.length;if(t>0)throw function bo(e,t){const n=[];for(let r=0;rn.factory(e):()=>new e}(e);throw new w(204,!1)}function Dr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Ic(e,t){for(const n of e)Array.isArray(n)?Ic(n,t):n&&cu(n)?Ic(n.\u0275providers,t):t(n)}const Ss=new I("AppId",{providedIn:"root",factory:()=>yS}),yS="ng",lg=new I("Platform Initializer"),xn=new I("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),dg=new I("CSP nonce",{providedIn:"root",factory:()=>function vr(){if(void 0!==dc)return dc;if(typeof document<"u")return document;throw new w(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let fg=(e,t,n)=>null;function xc(e,t,n=!1){return fg(e,t,n)}class TS{}class gg{}class RS{resolveComponentFactory(t){throw function AS(e){const t=Error(`No component factory found for ${pe(e)}.`);return t.ngComponent=e,t}(t)}}let xs=(()=>{class e{static#e=this.NULL=new RS}return e})();function NS(){return Er(_e(),y())}function Er(e,t){return new pn(Ve(e,t))}let pn=(()=>{class e{constructor(n){this.nativeElement=n}static#e=this.__NG_ELEMENT_ID__=NS}return e})();class vg{}let PS=(()=>{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>null})}return e})();class Ps{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const FS=new Ps("16.2.10"),Fc={};function Cg(e,t=null,n=null,r){const o=Eg(e,t,n,r);return o.resolveInjectorInitializers(),o}function Eg(e,t=null,n=null,r,o=new Set){const i=[n||U,cS(e)];return r=r||("object"==typeof e?void 0:pe(e)),new bs(i,t||Is(),r||null,o)}let it=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=so;static#t=this.NULL=new vc;static create(n,r){if(Array.isArray(n))return Cg({name:""},r,n,"");{const o=n.name??"";return Cg({name:o},n.parent,n.providers,o)}}static#n=this.\u0275prov=S({token:e,providedIn:"any",factory:()=>b(rg)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();function Lc(e){return e.ngOriginalError}class Gt{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&Lc(t);for(;n&&Lc(n);)n=Lc(n);return n||null}}function $c(e){return t=>{setTimeout(e,void 0,t)}}const Pe=class BS extends lt{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&"object"==typeof t){const u=t;o=u.next?.bind(u),i=u.error?.bind(u),s=u.complete?.bind(u)}this.__isAsync&&(i=$c(i),o&&(o=$c(o)),s&&(s=$c(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof Ge&&t.add(a),a}};function Ig(...e){}class ee{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Pe(!1),this.onMicrotaskEmpty=new Pe(!1),this.onStable=new Pe(!1),this.onError=new Pe(!1),typeof Zone>"u")throw new w(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function US(){const e="function"==typeof J.requestAnimationFrame;let t=J[e?"requestAnimationFrame":"setTimeout"],n=J[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&n){const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r);const o=n[Zone.__symbol__("OriginalDelegate")];o&&(n=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function qS(e){const t=()=>{!function GS(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(J,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Vc(e),e.isCheckStableRunning=!0,Hc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Vc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{if(function ZS(e){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0].data?.__ignore_ng_zone__}(a))return n.invokeTask(o,i,s,a);try{return bg(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Sg(e)}},onInvoke:(n,r,o,i,s,a,u)=>{try{return bg(e),n.invoke(o,i,s,a,u)}finally{e.shouldCoalesceRunChangeDetection&&t(),Sg(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,Vc(e),Hc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ee.isInAngularZone())throw new w(909,!1)}static assertNotInAngularZone(){if(ee.isInAngularZone())throw new w(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,zS,Ig,Ig);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const zS={};function Hc(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Vc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function bg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Sg(e){e._nesting--,Hc(e)}class WS{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Pe,this.onMicrotaskEmpty=new Pe,this.onStable=new Pe,this.onError=new Pe}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}const Mg=new I("",{providedIn:"root",factory:Tg});function Tg(){const e=_(ee);let t=!0;return function GE(...e){const t=io(e),n=function jE(e,t){return"number"==typeof ou(e)?e.pop():t}(e,1/0),r=e;return r.length?1===r.length?et(r[0]):Wn(n)(ve(r,t)):Et}(new le(o=>{t=e.isStable&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks,e.runOutsideAngular(()=>{o.next(t),o.complete()})}),new le(o=>{let i;e.runOutsideAngular(()=>{i=e.onStable.subscribe(()=>{ee.assertNotInAngularZone(),queueMicrotask(()=>{!t&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks&&(t=!0,o.next(!0))})})});const s=e.onUnstable.subscribe(()=>{ee.assertInAngularZone(),t&&(t=!1,e.runOutsideAngular(()=>{o.next(!1)}))});return()=>{i.unsubscribe(),s.unsubscribe()}}).pipe(Ff()))}function qt(e){return e instanceof Function?e():e}let Bc=(()=>{class e{constructor(){this.renderDepth=0,this.handler=null}begin(){this.handler?.validateBegin(),this.renderDepth++}end(){this.renderDepth--,0===this.renderDepth&&this.handler?.execute()}ngOnDestroy(){this.handler?.destroy(),this.handler=null}static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();function Lo(e){for(;e;){e[k]|=64;const t=To(e);if(Iu(e)&&!t)return e;e=t}return null}const Og=new I("",{providedIn:"root",factory:()=>!1});let ks=null;function Lg(e,t){return e[t]??Hg()}function jg(e,t){const n=Hg();n.producerNode?.length&&(e[t]=ks,n.lView=e,ks=$g())}const oM={...uh,consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Lo(e.lView)},lView:null};function $g(){return Object.create(oM)}function Hg(){return ks??=$g(),ks}const F={};function jo(e){Vg(B(),y(),xe()+e,!1)}function Vg(e,t,n,r){if(!r)if(3==(3&t[k])){const i=e.preOrderCheckHooks;null!==i&&Qi(t,i,n)}else{const i=e.preOrderHooks;null!==i&&Xi(t,i,0,n)}Tn(n)}function T(e,t=$.Default){const n=y();return null===n?b(e,t):Kh(_e(),n,x(e),t)}function Ls(e,t,n,r,o,i,s,a,u,c,l){const d=t.blueprint.slice();return d[ie]=o,d[k]=140|r,(null!==c||e&&2048&e[k])&&(d[k]|=2048),Th(d),d[re]=d[Jn]=e,d[ae]=n,d[Xn]=s||e&&e[Xn],d[P]=a||e&&e[P],d[an]=u||e&&e[an]||null,d[Ie]=i,d[po]=function db(){return lb++}(),d[Vt]=l,d[oh]=c,d[ue]=2==t.type?e[ue]:d,d}function br(e,t,n,r,o){let i=e.data[t];if(null===i)i=function Uc(e,t,n,r,o){const i=Ph(),s=xu(),u=e.data[t]=function fM(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return function rr(){return null!==N.skipHydrationRootTNode}()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,n,t,r,o);return null===e.firstChild&&(e.firstChild=u),null!==i&&(s?null==i.child&&null!==u.parent&&(i.child=u):null===i.next&&(i.next=u,u.prev=i)),u}(e,t,n,r,o),function lI(){return N.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=n,i.value=r,i.attrs=o;const s=function Do(){const e=N.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return Mt(i,!0),i}function $o(e,t,n,r){if(0===n)return-1;const o=t.length;for(let i=0;iH&&Vg(e,t,H,!1),St(a?2:0,o);const c=a?i:null,l=Su(c);try{null!==c&&(c.dirty=!1),n(r,o)}finally{Mu(c,l)}}finally{a&&null===t[go]&&jg(t,go),Tn(s),St(a?3:1,o)}}function zc(e,t,n){if(_u(t)){const r=rt(null);try{const i=t.directiveEnd;for(let s=t.directiveStart;snull;function qg(e,t,n,r){for(let o in e)if(e.hasOwnProperty(o)){n=null===n?{}:n;const i=e[o];null===r?Wg(n,t,o,i):r.hasOwnProperty(o)&&Wg(n,t,r[o],i)}return n}function Wg(e,t,n,r){e.hasOwnProperty(n)?e[n].push(t,r):e[n]=[t,r]}function Zc(e,t,n,r){if(Oh()){const o=null===r?null:{"":-1},i=function CM(e,t){const n=e.directiveRegistry;let r=null,o=null;if(n)for(let i=0;i0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,$o(e,n,o.hostVars,F),o)}function MM(e,t,n,r,o,i){const s=i[t];if(null!==s)for(let a=0;a{class e{constructor(){this.all=new Set,this.queue=new Map}create(n,r,o){const i=typeof Zone>"u"?null:Zone.current,s=function H_(e,t,n){const r=Object.create(V_);n&&(r.consumerAllowSignalWrites=!0),r.fn=e,r.schedule=t;const o=s=>{r.cleanupFn=s};return r.ref={notify:()=>fh(r),run:()=>{if(r.dirty=!1,r.hasRun&&!hh(r))return;r.hasRun=!0;const s=Su(r);try{r.cleanupFn(),r.cleanupFn=Ch,r.fn(o)}finally{Mu(r,s)}},cleanup:()=>r.cleanupFn()},r.ref}(n,c=>{this.all.has(c)&&this.queue.set(c,i)},o);let a;this.all.add(s),s.notify();const u=()=>{s.cleanup(),a?.(),this.all.delete(s),this.queue.delete(s)};return a=r?.onDestroy(u),{destroy:u}}flush(){if(0!==this.queue.size)for(const[n,r]of this.queue)this.queue.delete(n),r?r.run(()=>n.run()):n.run()}get isQueueEmpty(){return 0===this.queue.size}static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();function $s(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(null!==t)for(let s=0;s0){sm(e,1);const o=n.components;null!==o&&um(e,o,1)}}function um(e,t,n){for(let r=0;r-1&&(gs(t,r),rs(n,r))}this._attachedToViewContainer=!1}oc(this._lView[C],this._lView)}onDestroy(t){!function Nh(e,t){if(256==(256&e[k]))throw new w(911,!1);null===e[un]&&(e[un]=[]),e[un].push(t)}(this._lView,t)}markForCheck(){Lo(this._cdRefInjectingView||this._lView)}detach(){this._lView[k]&=-129}reattach(){this._lView[k]|=128}detectChanges(){Hs(this._lView[C],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new w(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function bb(e,t){Ro(e,t,t[P],2,null,null)}(this._lView[C],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new w(902,!1);this._appRef=t}}class kM extends Vo{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Hs(t[C],t,t[ae],!1)}checkNoChanges(){}get context(){return null}}class cm extends xs{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=V(t);return new Bo(n,this.ngModule)}}function lm(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class jM{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=ji(r);const o=this.injector.get(t,Fc,r);return o!==Fc||n===Fc?o:this.parentInjector.get(t,n,r)}}class Bo extends gg{get inputs(){const t=this.componentDef,n=t.inputTransforms,r=lm(t.inputs);if(null!==n)for(const o of r)n.hasOwnProperty(o.propName)&&(o.transform=n[o.propName]);return r}get outputs(){return lm(this.componentDef.outputs)}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function C_(e){return e.map(w_).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}create(t,n,r,o){let i=(o=o||this.ngModule)instanceof Qe?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new jM(t,i):t,a=s.get(vg,null);if(null===a)throw new w(407,!1);const d={rendererFactory:a,sanitizer:s.get(PS,null),effectManager:s.get(rm,null),afterRenderEventManager:s.get(Bc,null)},f=a.createRenderer(null,this.componentDef),h=this.componentDef.selectors[0][0]||"div",p=r?function aM(e,t,n,r){const i=r.get(Og,!1)||n===ft.ShadowDom,s=e.selectRootElement(t,i);return function uM(e){Gg(e)}(s),s}(f,r,this.componentDef.encapsulation,s):ps(f,h,function LM(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(h)),D=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let m=null;null!==p&&(m=xc(p,s,!0));const E=Wc(0,null,null,1,0,null,null,null,null,null,null),M=Ls(null,E,null,D,null,null,d,f,s,null,m);let j,ye;Lu(M);try{const kt=this.componentDef;let qn,cf=null;kt.findHostDirectiveDefs?(qn=[],cf=new Map,kt.findHostDirectiveDefs(kt,qn,cf),qn.push(kt)):qn=[kt];const Hk=function HM(e,t){const n=e[C],r=H;return e[r]=t,br(n,r,2,"#host",null)}(M,p),Vk=function VM(e,t,n,r,o,i,s){const a=o[C];!function BM(e,t,n,r){for(const o of e)t.mergedAttrs=co(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&($s(t,t.mergedAttrs,!0),null!==n&&Up(r,n,t))}(r,e,t,s);let u=null;null!==t&&(u=xc(t,o[an]));const c=i.rendererFactory.createRenderer(t,n);let l=16;n.signals?l=4096:n.onPush&&(l=64);const d=Ls(o,zg(n),null,l,o[e.index],e,i,c,null,null,u);return a.firstCreatePass&&Yc(a,e,r.length-1),js(o,d),o[e.index]=d}(Hk,p,kt,qn,M,d,f);ye=Mh(E,H),p&&function zM(e,t,n,r){if(r)Cu(e,n,["ng-version",FS.full]);else{const{attrs:o,classes:i}=function E_(e){const t=[],n=[];let r=1,o=2;for(;r0&&Bp(e,n,i.join(" "))}}(f,kt,p,r),void 0!==n&&function GM(e,t,n){const r=e.projection=[];for(let o=0;o(dn(!0),ps(r,o,function zh(){return N.lFrame.currentNamespace}()));function Zs(e){return!!e&&"function"==typeof e.then}function Fm(e){return!!e&&"function"==typeof e.subscribe}function Xs(e,t=""){const n=y(),r=B(),o=e+H,i=r.firstCreatePass?br(r,o,1,t,null):r.data[o],s=lv(r,n,i,t,e);n[o]=s,Zi()&&vs(r,n,s,i),Mt(i,!1)}let lv=(e,t,n,r,o)=>(dn(!0),function hs(e,t){return e.createText(t)}(t[P],r));function Zo(e){return vl("",e,""),Zo}function vl(e,t,n){const r=y(),o=function Mr(e,t,n,r){return Se(e,or(),n)?t+O(n)+r:F}(r,e,t,n);return o!==F&&Wt(r,xe(),o),vl}const Lr="en-US";let xv=Lr;class jn{}class oy{}class Il extends jn{constructor(t,n,r){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new cm(this);const o=We(t);this._bootstrapComponents=qt(o.bootstrap),this._r3Injector=Eg(t,n,[{provide:jn,useValue:this},{provide:xs,useValue:this.componentFactoryResolver},...r],pe(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class bl extends oy{constructor(t){super(),this.moduleType=t}create(t){return new Il(this.moduleType,t,[])}}class iy extends jn{constructor(t){super(),this.componentFactoryResolver=new cm(this),this.instance=null;const n=new bs([...t.providers,{provide:jn,useValue:this},{provide:xs,useValue:this.componentFactoryResolver}],t.parent||Is(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Sl(e,t,n=null){return new iy({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}let NA=(()=>{class e{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const r=ig(0,n.type),o=r.length>0?Sl([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=S({token:e,providedIn:"environment",factory:()=>new e(b(Qe))})}return e})();function sy(e){e.getStandaloneInjector=t=>t.get(NA).getOrCreateStandaloneInjector(e)}function iR(e,t,n,r=!0){const o=t[C];if(function Mb(e,t,n,r){const o=Ce+r,i=n.length;r>0&&(n[o-1][pt]=t),r{class e{static#e=this.__NG_ELEMENT_ID__=uR}return e})();const sR=Zt,aR=class extends sR{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){const o=function oR(e,t,n,r){const o=t.tView,a=Ls(e,o,n,4096&e[k]?4096:16,null,t,null,null,null,r?.injector??null,r?.hydrationInfo??null);a[ho]=e[t.index];const c=e[It];return null!==c&&(a[It]=c.createEmbeddedView(o)),Kc(o,a,n),a}(this._declarationLView,this._declarationTContainer,t,{injector:n,hydrationInfo:r});return new Vo(o)}};function uR(){return function na(e,t){return 4&e.type?new aR(t,e,Er(e,t)):null}(_e(),y())}let yt=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=pR}return e})();function pR(){return function Iy(e,t){let n;const r=t[e.index];return Re(r)?n=r:(n=Xg(r,t,null,e),t[e.index]=n,js(t,n)),by(n,t,e,r),new Ey(n,e,t)}(_e(),y())}const gR=yt,Ey=class extends gR{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Er(this._hostTNode,this._hostLView)}get injector(){return new Oe(this._hostTNode,this._hostLView)}get parentInjector(){const t=es(this._hostTNode,this._hostLView);if(Vu(t)){const n=Eo(t,this._hostLView),r=Co(t);return new Oe(n[C].data[r+8],n)}return new Oe(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=_y(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-Ce}createEmbeddedView(t,n,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const a=t.createEmbeddedViewImpl(n||{},i,null);return this.insertImpl(a,o,false),a}createComponent(t,n,r,o,i){const s=t&&!function Io(e){return"function"==typeof e}(t);let a;if(s)a=n;else{const g=n||{};a=g.index,r=g.injector,o=g.projectableNodes,i=g.environmentInjector||g.ngModuleRef}const u=s?t:new Bo(V(t)),c=r||this.parentInjector;if(!i&&null==u.ngModule){const v=(s?c:this.parentInjector).get(Qe,null);v&&(i=v)}V(u.componentType??{});const h=u.create(c,o,null,i);return this.insertImpl(h.hostView,a,false),h}insert(t,n){return this.insertImpl(t,n,!1)}insertImpl(t,n,r){const o=t._lView;if(function Q_(e){return Re(e[re])}(o)){const u=this.indexOf(t);if(-1!==u)this.detach(u);else{const c=o[re],l=new Ey(c,c[Ie],c[re]);l.detach(l.indexOf(t))}}const s=this._adjustIndex(n),a=this._lContainer;return iR(a,o,s,!r),t.attachToViewContainerRef(),sp(Al(a),s,t),t}move(t,n){return this.insert(t,n)}indexOf(t){const n=_y(this._lContainer);return null!==n?n.indexOf(t):-1}remove(t){const n=this._adjustIndex(t,-1),r=gs(this._lContainer,n);r&&(rs(Al(this._lContainer),n),oc(r[C],r))}detach(t){const n=this._adjustIndex(t,-1),r=gs(this._lContainer,n);return r&&null!=rs(Al(this._lContainer),n)?new Vo(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function _y(e){return e[8]}function Al(e){return e[8]||(e[8]=[])}let by=function Sy(e,t,n,r){if(e[bt])return;let o;o=8&n.type?K(r):function mR(e,t){const n=e[P],r=n.createComment(""),o=Ve(t,e);return Rn(n,ms(n,o),r,function xb(e,t){return e.nextSibling(t)}(n,o),!1),r}(t,n),e[bt]=o};const Hl=new I("Application Initializer");let Vl=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r}),this.appInits=_(Hl,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const o of this.appInits){const i=o();if(Zs(i))n.push(i);else if(Fm(i)){const s=new Promise((a,u)=>{i.subscribe({complete:a,error:u})});n.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Xy=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const Yt=new I("LocaleId",{providedIn:"root",factory:()=>_(Yt,$.Optional|$.SkipSelf)||function WR(){return typeof $localize<"u"&&$localize.locale||Lr}()});let ia=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new tt(!1)}add(){this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class QR{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}let Jy=(()=>{class e{compileModuleSync(n){return new bl(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=qt(We(n).declarations).reduce((s,a)=>{const u=V(a);return u&&s.push(new Bo(u)),s},[]);return new QR(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const nD=new I(""),aa=new I("");let ql,zl=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,ql||(function mN(e){ql=e}(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?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:()=>{ee.assertNotInAngularZone(),queueMicrotask(()=>{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())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!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(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static#e=this.\u0275fac=function(r){return new(r||e)(b(ee),b(Gl),b(aa))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Gl=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return ql?.findTestabilityInTree(this,n,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),mn=null;const rD=new I("AllowMultipleToken"),Wl=new I("PlatformDestroyListeners"),Zl=new I("appBootstrapListener");class iD{constructor(t,n){this.name=t,this.token=n}}function aD(e,t,n=[]){const r=`Platform: ${t}`,o=new I(r);return(i=[])=>{let s=Yl();if(!s||s.injector.get(rD,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function DN(e){if(mn&&!mn.get(rD,!1))throw new w(400,!1);(function oD(){!function F_(e){vh=e}(()=>{throw new w(600,!1)})})(),mn=e;const t=e.get(cD);(function sD(e){e.get(lg,null)?.forEach(n=>n())})(e)}(function uD(e=[],t){return it.create({name:t,providers:[{provide:Cc,useValue:"platform"},{provide:Wl,useValue:new Set([()=>mn=null])},...e]})}(a,r))}return function CN(e){const t=Yl();if(!t)throw new w(401,!1);return t}()}}function Yl(){return mn?.get(cD)??null}let cD=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function EN(e="zone.js",t){return"noop"===e?new WS:"zone.js"===e?new ee(t):e}(r?.ngZone,function lD(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing}));return o.run(()=>{const i=function RA(e,t,n){return new Il(e,t,n)}(n.moduleType,this.injector,function gD(e){return[{provide:ee,useFactory:e},{provide:Po,multi:!0,useFactory:()=>{const t=_(IN,{optional:!0});return()=>t.initialize()}},{provide:pD,useFactory:_N},{provide:Mg,useFactory:Tg}]}(()=>o)),s=i.injector.get(Gt,null);return o.runOutsideAngular(()=>{const a=o.onError.subscribe({next:u=>{s.handleError(u)}});i.onDestroy(()=>{ua(this._modules,i),a.unsubscribe()})}),function dD(e,t,n){try{const r=n();return Zs(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(s,o,()=>{const a=i.injector.get(Vl);return a.runInitializers(),a.donePromise.then(()=>(function Ov(e){nt(e,"Expected localeId to be defined"),"string"==typeof e&&(xv=e.toLowerCase().replace(/_/g,"-"))}(i.injector.get(Yt,Lr)||Lr),this._moduleDoBootstrap(i),i))})})}bootstrapModule(n,r=[]){const o=fD({},r);return function vN(e,t,n){const r=new bl(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(Hr);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new w(-403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new w(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Wl,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(r){return new(r||e)(b(it))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function fD(e,t){return Array.isArray(t)?t.reduce(fD,e):{...e,...t}}let Hr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=_(pD),this.zoneIsStable=_(Mg),this.componentTypes=[],this.components=[],this.isStable=_(ia).hasPendingTasks.pipe(dt(n=>n?A(!1):this.zoneIsStable),function qE(e,t=nn){return e=e??WE,fe((n,r)=>{let o,i=!0;n.subscribe(he(r,s=>{const a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}(),Ff()),this._injector=_(Qe)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const o=n instanceof gg;if(!this._injector.get(Vl).done)throw!o&&function Yn(e){const t=V(e)||we(e)||Ae(e);return null!==t&&t.standalone}(n),new w(405,!1);let s;s=o?n:this._injector.get(xs).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function yN(e){return e.isBoundToModule}(s)?void 0:this._injector.get(jn),c=s.create(it.NULL,[],r||s.selector,a),l=c.location.nativeElement,d=c.injector.get(nD,null);return d?.registerApplication(l),c.onDestroy(()=>{this.detachView(c.hostView),ua(this.components,c),d?.unregisterApplication(l)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new w(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this.internalErrorHandler(n)}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;ua(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(Zl,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>ua(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new w(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ua(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const pD=new I("",{providedIn:"root",factory:()=>_(Gt).handleError.bind(void 0)});function _N(){const e=_(ee),t=_(Gt);return n=>e.runOutsideAngular(()=>t.handleError(n))}let IN=(()=>{class e{constructor(){this.zone=_(ee),this.applicationRef=_(Hr)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();let Ql=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=SN}return e})();function SN(e){return function MN(e,t,n){if(bn(e)&&!n){const r=Ze(e.index,t);return new Vo(r,r)}return 47&e.type?new Vo(t[ue],t):null}(_e(),y(),16==(16&e))}class DD{constructor(){}supports(t){return Bs(t)}create(t){return new ON(t)}}const xN=(e,t)=>t;class ON{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||xN}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),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,n,r,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new PN(n,r),i,o),t}_verifyReinsertion(t,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const n=t._next;this._addToRemovals(this._unlink(t)),t=n}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,n,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,i=t._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const o=null===n?this._itHead:n._next;return t._next=o,t._prev=n,null===o?this._itTail=t:o._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new wD),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new wD),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,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class PN{constructor(t,n){this.item=t,this.trackById=n,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 FN{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,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class wD{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new FN,this.map.set(n,r)),r.add(t)}get(t,n){const o=this.map.get(t);return o?o.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function CD(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:_D});constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||_D()),deps:[[e,new ss,new is]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new w(901,!1)}}return e})();const HN=aD(null,"core",[]);let VN=(()=>{class e{constructor(n){}static#e=this.\u0275fac=function(r){return new(r||e)(b(Hr))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})(),rd=null;function Vr(){return rd}class tx{}const Je=new I("DocumentToken");let od=(()=>{class e{historyGo(n){throw new Error("Not implemented")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(rx)},providedIn:"platform"})}return e})();const nx=new I("Location Initialized");let rx=(()=>{class e extends od{constructor(){super(),this._doc=_(Je),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Vr().getBaseHref(this._doc)}onPopState(n){const r=Vr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=Vr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}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(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return new e},providedIn:"platform"})}return e})();function id(e,t){if(0==e.length)return t;if(0==t.length)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function OD(e){const t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function Qt(e){return e&&"?"!==e[0]?"?"+e:e}let Hn=(()=>{class e{historyGo(n){throw new Error("Not implemented")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(FD)},providedIn:"root"})}return e})();const PD=new I("appBaseHref");let FD=(()=>{class e extends Hn{constructor(n,r){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??_(Je).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return id(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+Qt(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){const s=this.prepareExternalUrl(o+Qt(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){const s=this.prepareExternalUrl(o+Qt(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(od),b(PD,8))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ox=(()=>{class e extends Hn{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=id(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Qt(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Qt(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(od),b(PD,8))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),sd=(()=>{class e{constructor(n){this._subject=new Pe,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const r=this._locationStrategy.getBaseHref();this._basePath=function ax(e){if(new RegExp("^(https?:)?//").test(e)){const[,n]=e.split(/\/\/[^\/]+/);return n}return e}(OD(kD(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+Qt(r))}normalize(n){return e.stripTrailingSlash(function sx(e,t){if(!e||!t.startsWith(e))return t;const n=t.substring(e.length);return""===n||["/",";","?","#"].includes(n[0])?n:t}(this._basePath,kD(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Qt(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Qt(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r,complete:o})}static#e=this.normalizeQueryParams=Qt;static#t=this.joinWithSlash=id;static#n=this.stripTrailingSlash=OD;static#r=this.\u0275fac=function(r){return new(r||e)(b(Hn))};static#o=this.\u0275prov=S({token:e,factory:function(){return function ix(){return new sd(b(Hn))}()},providedIn:"root"})}return e})();function kD(e){return e.replace(/\/index.html$/,"")}function GD(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}class Wx{constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}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 ZD=(()=>{class e{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new Wx(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),YD(a,o)}});for(let o=0,i=r.length;o{YD(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(T(yt),T(Zt),T(da))};static#t=this.\u0275dir=Te({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function YD(e,t){e.context.$implicit=t.item}let wO=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})();function ew(e){return"server"===e}let IO=(()=>{class e{static#e=this.\u0275prov=S({token:e,providedIn:"root",factory:()=>new bO(b(Je),window)})}return e})();class bO{constructor(t,n){this.document=t,this.window=n,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 n=function SO(e,t){const n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.supportsScrolling()&&(this.window.history.scrollRestoration=t)}scrollToElement(t){const n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}class tw{}class YO extends tx{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class _d extends YO{static makeCurrent(){!function ex(e){rd||(rd=e)}(new _d)}onAndCancel(t,n,r){return t.addEventListener(n,r),()=>{t.removeEventListener(n,r)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||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,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function QO(){return ui=ui||document.querySelector("base"),ui?ui.getAttribute("href"):null}();return null==n?null:function XO(e){ba=ba||document.createElement("a"),ba.setAttribute("href",e);const t=ba.pathname;return"/"===t.charAt(0)?t:`/${t}`}(n)}resetBaseElement(){ui=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return GD(document.cookie,t)}}let ba,ui=null,KO=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Id=new I("EventManagerPlugins");let sw=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new w(5101,!1);return this._eventNameToPlugin.set(n,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(b(Id),b(ee))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();class aw{constructor(t){this._doc=t}}const bd="ng-app-id";let uw=(()=>{class e{constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.platformId=i,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=ew(i),this.resetHostNodes()}addStyles(n){for(const r of n)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(n){for(const r of n)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(r=>r.remove()),n.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const r of this.getAllStyles())this.addStyleToHost(n,r)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const r of this.hostNodes)this.addStyleToHost(r,n)}onStyleRemoved(n){const r=this.styleRef;r.get(n)?.elements?.forEach(o=>o.remove()),r.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${bd}="${this.appId}"]`);if(n?.length){const r=new Map;return n.forEach(o=>{null!=o.textContent&&r.set(o.textContent,o)}),r}return null}changeUsageCount(n,r){const o=this.styleRef;if(o.has(n)){const i=o.get(n);return i.usage+=r,i.usage}return o.set(n,{usage:r,elements:[]}),r}getStyleElement(n,r){const o=this.styleNodesInDOM,i=o?.get(r);if(i?.parentNode===n)return o.delete(r),i.removeAttribute(bd),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(bd,this.appId),s}}addStyleToHost(n,r){const o=this.getStyleElement(n,r);n.appendChild(o);const i=this.styleRef,s=i.get(r)?.elements;s?s.push(o):i.set(r,{elements:[o],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je),b(Ss),b(dg,8),b(xn))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Sd={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/",math:"http://www.w3.org/1998/MathML/"},Md=/%COMP%/g,rP=new I("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function lw(e,t){return t.map(n=>n.replace(Md,e))}let dw=(()=>{class e{constructor(n,r,o,i,s,a,u,c=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=u,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=ew(a),this.defaultRenderer=new Td(n,s,u,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===ft.ShadowDom&&(r={...r,encapsulation:ft.Emulated});const o=this.getOrCreateRenderer(n,r);return o instanceof hw?o.applyToHost(n):o instanceof Ad&&o.applyStyles(),o}getOrCreateRenderer(n,r){const o=this.rendererByCompId;let i=o.get(r.id);if(!i){const s=this.doc,a=this.ngZone,u=this.eventManager,c=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case ft.Emulated:i=new hw(u,c,r,this.appId,l,s,a,d);break;case ft.ShadowDom:return new aP(u,c,n,r,s,a,this.nonce,d);default:i=new Ad(u,c,r,l,s,a,d)}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(r){return new(r||e)(b(sw),b(uw),b(Ss),b(rP),b(Je),b(xn),b(ee),b(dg))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();class Td{constructor(t,n,r,o){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,n){return n?this.doc.createElementNS(Sd[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(fw(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(fw(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?this.doc.querySelector(t):t;if(!r)throw new w(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=Sd[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=Sd[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(fn.DashCase|fn.Important)?t.style.setProperty(n,r,o&fn.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&fn.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t[n]=r}setValue(t,n){t.nodeValue=n}listen(t,n,r){if("string"==typeof t&&!(t=Vr().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${n}`);return this.eventManager.addEventListener(t,n,this.decoratePreventDefault(r))}decoratePreventDefault(t){return n=>{if("__ngUnwrap__"===n)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))&&n.preventDefault()}}}function fw(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class aP extends Td{constructor(t,n,r,o,i,s,a,u){super(t,i,s,u),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=lw(o.id,o.styles);for(const l of c){const d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=l,this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(this.nodeOrShadowRoot(t),n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Ad extends Td{constructor(t,n,r,o,i,s,a,u){super(t,i,s,a),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o,this.styles=u?lw(u,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class hw extends Ad{constructor(t,n,r,o,i,s,a,u){const c=o+"-"+r.id;super(t,n,r,i,s,a,u,c),this.contentAttr=function oP(e){return"_ngcontent-%COMP%".replace(Md,e)}(c),this.hostAttr=function iP(e){return"_nghost-%COMP%".replace(Md,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}let uP=(()=>{class e extends aw{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const pw=["alt","control","meta","shift"],cP={"\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"},lP={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let dP=(()=>{class e extends aw{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Vr().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),pw.forEach(c=>{const l=r.indexOf(c);l>-1&&(r.splice(l,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const u={};return u.domEventName=o,u.fullKey=s,u}static matchEventFullKeyCode(n,r){let o=cP[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),pw.forEach(s=>{s!==o&&(0,lP[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const gP=aD(HN,"browser",[{provide:xn,useValue:"browser"},{provide:lg,useValue:function fP(){_d.makeCurrent()},multi:!0},{provide:Je,useFactory:function pP(){return function Hb(e){dc=e}(document),document},deps:[]}]),mP=new I(""),vw=[{provide:aa,useClass:class JO{addToWindow(t){J.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new w(5103,!1);return i},J.getAllAngularTestabilities=()=>t.getAllTestabilities(),J.getAllAngularRootElements=()=>t.getAllRootElements(),J.frameworkStabilizers||(J.frameworkStabilizers=[]),J.frameworkStabilizers.push(r=>{const o=J.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(u){s=s||u,i--,0==i&&r(s)};o.forEach(u=>{u.whenStable(a)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?Vr().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:nD,useClass:zl,deps:[ee,Gl,aa]},{provide:zl,useClass:zl,deps:[ee,Gl,aa]}],yw=[{provide:Cc,useValue:"root"},{provide:Gt,useFactory:function hP(){return new Gt},deps:[]},{provide:Id,useClass:uP,multi:!0,deps:[Je,ee,xn]},{provide:Id,useClass:dP,multi:!0,deps:[Je]},dw,uw,sw,{provide:vg,useExisting:dw},{provide:tw,useClass:KO,deps:[]},[]];let vP=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:Ss,useValue:n.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(b(mP,12))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({providers:[...yw,...vw],imports:[wO,VN]})}return e})(),Dw=(()=>{class e{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je))};static#t=this.\u0275prov=S({token:e,factory:function(r){let o=null;return o=r?new r:function DP(){return new Dw(b(Je))}(),o},providedIn:"root"})}return e})();typeof window<"u"&&window;const{isArray:bP}=Array,{getPrototypeOf:SP,prototype:MP,keys:TP}=Object;const{isArray:NP}=Array;function Nd(...e){const t=io(e),n=function LE(e){return Q(ou(e))?e.pop():void 0}(e),{args:r,keys:o}=function AP(e){if(1===e.length){const t=e[0];if(bP(t))return{args:t,keys:null};if(function RP(e){return e&&"object"==typeof e&&SP(e)===MP}(t)){const n=TP(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}(e);if(0===r.length)return ve([],t);const i=new le(function FP(e,t,n=nn){return r=>{_w(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let u=0;u{const c=ve(e[u],t);let l=!1;c.subscribe(he(r,d=>{i[u]=d,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,t,o?s=>function PP(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}(o,s):nn));return n?i.pipe(function OP(e){return q(t=>function xP(e,t){return NP(t)?e(...t):e(t)}(e,t))}(n)):i}function _w(e,t,n){e?Lt(n,e,t):t()}const Sa=no(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function xd(...e){return function kP(){return Wn(1)}()(ve(e,io(e)))}function Iw(e){return new le(t=>{et(e()).subscribe(t)})}function ci(e,t){const n=Q(e)?e:()=>e,r=o=>o.error(n());return new le(t?o=>t.schedule(r,0,o):r)}function Od(){return fe((e,t)=>{let n=null;e._refCount++;const r=he(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(n=null);const o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}class bw extends le{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,vf(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Ge;const n=this.getSubject();t.add(this.source.subscribe(he(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Ge.EMPTY)}return t}refCount(){return Od()(this)}}function Ur(e){return e<=0?()=>Et:fe((t,n)=>{let r=0;t.subscribe(he(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Kt(e,t){return fe((n,r)=>{let o=0;n.subscribe(he(r,i=>e.call(t,i,o++)&&r.next(i)))})}function Ma(e){return fe((t,n)=>{let r=!1;t.subscribe(he(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function Sw(e=jP){return fe((t,n)=>{let r=!1;t.subscribe(he(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function jP(){return new Sa}function Vn(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Kt((o,i)=>e(o,i,r)):nn,Ur(1),n?Ma(t):Sw(()=>new Sa))}function zr(e,t){return Q(t)?De(e,t,1):De(e,1)}function Me(e,t,n){const r=Q(e)||t||n?{next:e,error:t,complete:n}:e;return r?fe((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(he(i,u=>{var c;null===(c=r.next)||void 0===c||c.call(r,u),i.next(u)},()=>{var u;a=!1,null===(u=r.complete)||void 0===u||u.call(r),i.complete()},u=>{var c;a=!1,null===(c=r.error)||void 0===c||c.call(r,u),i.error(u)},()=>{var u,c;a&&(null===(u=r.unsubscribe)||void 0===u||u.call(r)),null===(c=r.finalize)||void 0===c||c.call(r)}))}):nn}function Bn(e){return fe((t,n)=>{let i,r=null,o=!1;r=t.subscribe(he(n,void 0,void 0,s=>{i=et(e(s,Bn(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function Pd(e){return e<=0?()=>Et:fe((t,n)=>{let r=[];t.subscribe(he(n,o=>{r.push(o),e{for(const o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function li(e){return fe((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}const L="primary",di=Symbol("RouteTitle");class zP{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n[0]:n}return null}getAll(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function Gr(e){return new zP(e)}function GP(e,t,n){const r=n.path.split("/");if(r.length>e.length||"full"===n.pathMatch&&(t.hasChildren()||r.lengthr[i]===o)}return e===t}function Tw(e){return e.length>0?e[e.length-1]:null}function yn(e){return function IP(e){return!!e&&(e instanceof le||Q(e.lift)&&Q(e.subscribe))}(e)?e:Zs(e)?ve(Promise.resolve(e)):A(e)}const WP={exact:function Nw(e,t,n){if(!Un(e.segments,t.segments)||!Ta(e.segments,t.segments,n)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const r in t.children)if(!e.children[r]||!Nw(e.children[r],t.children[r],n))return!1;return!0},subset:xw},Aw={exact:function ZP(e,t){return Ot(e,t)},subset:function YP(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>Mw(e[n],t[n]))},ignored:()=>!0};function Rw(e,t,n){return WP[n.paths](e.root,t.root,n.matrixParams)&&Aw[n.queryParams](e.queryParams,t.queryParams)&&!("exact"===n.fragment&&e.fragment!==t.fragment)}function xw(e,t,n){return Ow(e,t,t.segments,n)}function Ow(e,t,n,r){if(e.segments.length>n.length){const o=e.segments.slice(0,n.length);return!(!Un(o,n)||t.hasChildren()||!Ta(o,n,r))}if(e.segments.length===n.length){if(!Un(e.segments,n)||!Ta(e.segments,n,r))return!1;for(const o in t.children)if(!e.children[o]||!xw(e.children[o],t.children[o],r))return!1;return!0}{const o=n.slice(0,e.segments.length),i=n.slice(e.segments.length);return!!(Un(e.segments,o)&&Ta(e.segments,o,r)&&e.children[L])&&Ow(e.children[L],t,i,r)}}function Ta(e,t,n){return t.every((r,o)=>Aw[n](e[o].parameters,r.parameters))}class qr{constructor(t=new Y([],{}),n={},r=null){this.root=t,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Gr(this.queryParams)),this._queryParamMap}toString(){return JP.serialize(this)}}class Y{constructor(t,n){this.segments=t,this.children=n,this.parent=null,Object.values(n).forEach(r=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Aa(this)}}class fi{constructor(t,n){this.path=t,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=Gr(this.parameters)),this._parameterMap}toString(){return kw(this)}}function Un(e,t){return e.length===t.length&&e.every((n,r)=>n.path===t[r].path)}let hi=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return new Fd},providedIn:"root"})}return e})();class Fd{parse(t){const n=new cF(t);return new qr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(t){const n=`/${pi(t.root,!0)}`,r=function tF(e){const t=Object.keys(e).map(n=>{const r=e[n];return Array.isArray(r)?r.map(o=>`${Ra(n)}=${Ra(o)}`).join("&"):`${Ra(n)}=${Ra(r)}`}).filter(n=>!!n);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${n}${r}${"string"==typeof t.fragment?`#${function KP(e){return encodeURI(e)}(t.fragment)}`:""}`}}const JP=new Fd;function Aa(e){return e.segments.map(t=>kw(t)).join("/")}function pi(e,t){if(!e.hasChildren())return Aa(e);if(t){const n=e.children[L]?pi(e.children[L],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==L&&r.push(`${o}:${pi(i,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function XP(e,t){let n=[];return Object.entries(e.children).forEach(([r,o])=>{r===L&&(n=n.concat(t(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==L&&(n=n.concat(t(o,r)))}),n}(e,(r,o)=>o===L?[pi(e.children[L],!1)]:[`${o}:${pi(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[L]?`${Aa(e)}/${n[0]}`:`${Aa(e)}/(${n.join("//")})`}}function Pw(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Ra(e){return Pw(e).replace(/%3B/gi,";")}function kd(e){return Pw(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Na(e){return decodeURIComponent(e)}function Fw(e){return Na(e.replace(/\+/g,"%20"))}function kw(e){return`${kd(e.path)}${function eF(e){return Object.keys(e).map(t=>`;${kd(t)}=${kd(e[t])}`).join("")}(e.parameters)}`}const nF=/^[^\/()?;#]+/;function Ld(e){const t=e.match(nF);return t?t[0]:""}const rF=/^[^\/()?;=#]+/,iF=/^[^=?&#]+/,aF=/^[^&#]+/;class cF{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Y([],{}):new Y([],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 n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(t.length>0||Object.keys(n).length>0)&&(r[L]=new Y(t,n)),r}parseSegment(){const t=Ld(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new w(4009,!1);return this.capture(t),new fi(Na(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const n=function oF(e){const t=e.match(rF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=Ld(this.remaining);o&&(r=o,this.capture(r))}t[Na(n)]=Na(r)}parseQueryParam(t){const n=function sF(e){const t=e.match(iF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const s=function uF(e){const t=e.match(aF);return t?t[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=Fw(n),i=Fw(r);if(t.hasOwnProperty(o)){let s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}parseParens(t){const n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=Ld(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new w(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=L);const s=this.parseChildren();n[i]=1===Object.keys(s).length?s[L]:new Y([],s),this.consumeOptional("//")}return n}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 w(4011,!1)}}function Lw(e){return e.segments.length>0?new Y([],{[L]:e}):e}function jw(e){const t={};for(const r of Object.keys(e.children)){const i=jw(e.children[r]);if(r===L&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))t[s]=a;else(i.segments.length>0||i.hasChildren())&&(t[r]=i)}return function lF(e){if(1===e.numberOfChildren&&e.children[L]){const t=e.children[L];return new Y(e.segments.concat(t.segments),t.children)}return e}(new Y(e.segments,t))}function zn(e){return e instanceof qr}function $w(e){let t;const o=Lw(function n(i){const s={};for(const u of i.children){const c=n(u);s[u.outlet]=c}const a=new Y(i.url,s);return i===e&&(t=a),a}(e.root));return t??o}function Hw(e,t,n,r){let o=e;for(;o.parent;)o=o.parent;if(0===t.length)return jd(o,o,o,n,r);const i=function fF(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new Bw(!0,0,e);let t=0,n=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Object.entries(i.outlets).forEach(([u,c])=>{a[u]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return"string"!=typeof i?[...o,i]:0===s?(i.split("/").forEach((a,u)=>{0==u&&"."===a||(0==u&&""===a?n=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new Bw(n,t,r)}(t);if(i.toRoot())return jd(o,o,new Y([],{}),n,r);const s=function hF(e,t,n){if(e.isAbsolute)return new Oa(t,!0,0);if(!n)return new Oa(t,!1,NaN);if(null===n.parent)return new Oa(n,!0,0);const r=xa(e.commands[0])?0:1;return function pF(e,t,n){let r=e,o=t,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new w(4005,!1);o=r.segments.length}return new Oa(r,!1,o-i)}(n,n.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?mi(s.segmentGroup,s.index,i.commands):Uw(s.segmentGroup,s.index,i.commands);return jd(o,s.segmentGroup,a,n,r)}function xa(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function gi(e){return"object"==typeof e&&null!=e&&e.outlets}function jd(e,t,n,r,o){let s,i={};r&&Object.entries(r).forEach(([u,c])=>{i[u]=Array.isArray(c)?c.map(l=>`${l}`):`${c}`}),s=e===t?n:Vw(e,t,n);const a=Lw(jw(s));return new qr(a,i,o)}function Vw(e,t,n){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===t?n:Vw(i,t,n)}),new Y(e.segments,r)}class Bw{constructor(t,n,r){if(this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&xa(r[0]))throw new w(4003,!1);const o=r.find(gi);if(o&&o!==Tw(r))throw new w(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Oa{constructor(t,n,r){this.segmentGroup=t,this.processChildren=n,this.index=r}}function Uw(e,t,n){if(e||(e=new Y([],{})),0===e.segments.length&&e.hasChildren())return mi(e,t,n);const r=function mF(e,t,n){let r=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=n.length)return i;const s=e.segments[o],a=n[r];if(gi(a))break;const u=`${a}`,c=r0&&void 0===u)break;if(u&&c&&"object"==typeof c&&void 0===c.outlets){if(!Gw(u,c,s))return i;r+=2}else{if(!Gw(u,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,t,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndexi!==L)&&e.children[L]&&1===e.numberOfChildren&&0===e.children[L].segments.length){const i=mi(e.children[L],t,n);return new Y(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=Uw(e.children[i],t,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new Y(e.segments,o)}}function $d(e,t,n){const r=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(t[n]=$d(new Y([],{}),0,r))}),t}function zw(e){const t={};return Object.entries(e).forEach(([n,r])=>t[n]=`${r}`),t}function Gw(e,t,n){return e==n.path&&Ot(t,n.parameters)}const vi="imperative";class Pt{constructor(t,n){this.id=t,this.url=n}}class Pa extends Pt{constructor(t,n,r="imperative",o=null){super(t,n),this.type=0,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Dn extends Pt{constructor(t,n,r){super(t,n),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class yi extends Pt{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Wr extends Pt{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=16}}class Fa extends Pt{constructor(t,n,r,o){super(t,n),this.error=r,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class qw extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class yF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class DF extends Pt{constructor(t,n,r,o,i){super(t,n),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class wF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class CF extends Pt{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class EF{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class _F{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class IF{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class bF{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class SF{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class MF{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ww{constructor(t,n,r){this.routerEvent=t,this.position=n,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Hd{}class Vd{constructor(t){this.url=t}}class TF{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Di,this.attachRef=null}}let Di=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(n,r){const o=this.getOrCreateContext(n);o.outlet=r,this.contexts.set(n,o)}onChildOutletDestroyed(n){const r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let r=this.getContext(n);return r||(r=new TF,this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class Zw{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const n=this.pathFromRoot(t);return n.length>1?n[n.length-2]:null}children(t){const n=Bd(t,this._root);return n?n.children.map(r=>r.value):[]}firstChild(t){const n=Bd(t,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(t){const n=Ud(t,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return Ud(t,this._root).map(n=>n.value)}}function Bd(e,t){if(e===t.value)return t;for(const n of t.children){const r=Bd(e,n);if(r)return r}return null}function Ud(e,t){if(e===t.value)return[t];for(const n of t.children){const r=Ud(e,n);if(r.length)return r.unshift(t),r}return[]}class en{constructor(t,n){this.value=t,this.children=n}toString(){return`TreeNode(${this.value})`}}function Zr(e){const t={};return e&&e.children.forEach(n=>t[n.value.outlet]=n),t}class Yw extends Zw{constructor(t,n){super(t),this.snapshot=n,zd(this,t)}toString(){return this.snapshot.toString()}}function Qw(e,t){const n=function AF(e,t){const s=new ka([],{},{},"",{},L,t,null,{});return new Jw("",new en(s,[]))}(0,t),r=new tt([new fi("",{})]),o=new tt({}),i=new tt({}),s=new tt({}),a=new tt(""),u=new Yr(r,o,s,a,i,L,t,n.root);return u.snapshot=n.root,new Yw(new en(u,[]),n)}class Yr{constructor(t,n,r,o,i,s,a,u){this.urlSubject=t,this.paramsSubject=n,this.queryParamsSubject=r,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=u,this.title=this.dataSubject?.pipe(q(c=>c[di]))??A(void 0),this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i}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(q(t=>Gr(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(q(t=>Gr(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Xw(e,t="emptyOnly"){const n=e.pathFromRoot;let r=0;if("always"!==t)for(r=n.length-1;r>=1;){const o=n[r],i=n[r-1];if(o.routeConfig&&""===o.routeConfig.path)r--;else{if(i.component)break;r--}}return function RF(e){return e.reduce((t,n)=>({params:{...t.params,...n.params},data:{...t.data,...n.data},resolve:{...n.data,...t.resolve,...n.routeConfig?.data,...n._resolvedData}}),{params:{},data:{},resolve:{}})}(n.slice(r))}class ka{get title(){return this.data?.[di]}constructor(t,n,r,o,i,s,a,u,c){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=u,this._resolve=c}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=Gr(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Gr(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Jw extends Zw{constructor(t,n){super(n),this.url=t,zd(this,n)}toString(){return Kw(this._root)}}function zd(e,t){t.value._routerState=e,t.children.forEach(n=>zd(e,n))}function Kw(e){const t=e.children.length>0?` { ${e.children.map(Kw).join(", ")} } `:"";return`${e.value}${t}`}function Gd(e){if(e.snapshot){const t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,Ot(t.queryParams,n.queryParams)||e.queryParamsSubject.next(n.queryParams),t.fragment!==n.fragment&&e.fragmentSubject.next(n.fragment),Ot(t.params,n.params)||e.paramsSubject.next(n.params),function qP(e,t){if(e.length!==t.length)return!1;for(let n=0;nOt(n.parameters,t[r].parameters))}(e.url,t.url);return n&&!(!e.parent!=!t.parent)&&(!e.parent||qd(e.parent,t.parent))}let Wd=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=L,this.activateEvents=new Pe,this.deactivateEvents=new Pe,this.attachEvents=new Pe,this.detachEvents=new Pe,this.parentContexts=_(Di),this.location=_(yt),this.changeDetector=_(Ql),this.environmentInjector=_(Qe),this.inputBinder=_(La,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(n){if(n.name){const{firstChange:r,previousValue:o}=n.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(n){return this.parentContexts.getContext(n)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const n=this.parentContexts.getContext(this.name);n?.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new w(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new w(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new w(4012,!1);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,r){if(this.isActivated)throw new w(4013,!1);this._activatedRoute=n;const o=this.location,s=n.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,u=new NF(n,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:u,environmentInjector:r??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=Te({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Mn]})}return e})();class NF{constructor(t,n,r){this.route=t,this.childContexts=n,this.parent=r}get(t,n){return t===Yr?this.route:t===Di?this.childContexts:this.parent.get(t,n)}}const La=new I("");let eC=(()=>{class e{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(n){this.unsubscribeFromRouteData(n),this.subscribeToRouteData(n)}unsubscribeFromRouteData(n){this.outletDataSubscriptions.get(n)?.unsubscribe(),this.outletDataSubscriptions.delete(n)}subscribeToRouteData(n){const{activatedRoute:r}=n,o=Nd([r.queryParams,r.params,r.data]).pipe(dt(([i,s,a],u)=>(a={...i,...s,...a},0===u?A(a):Promise.resolve(a)))).subscribe(i=>{if(!n.isActivated||!n.activatedComponentRef||n.activatedRoute!==r||null===r.component)return void this.unsubscribeFromRouteData(n);const s=function KN(e){const t=V(e);if(!t)return null;const n=new Bo(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}(r.component);if(s)for(const{templateName:a}of s.inputs)n.activatedComponentRef.setInput(a,i[a]);else this.unsubscribeFromRouteData(n)});this.outletDataSubscriptions.set(n,o)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function wi(e,t,n){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=t.value;const o=function OF(e,t,n){return t.children.map(r=>{for(const o of n.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return wi(e,r,o);return wi(e,r)})}(e,t,n);return new en(r,o)}{if(e.shouldAttach(t.value)){const i=e.retrieve(t.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=t.value,s.children=t.children.map(a=>wi(e,a)),s}}const r=function PF(e){return new Yr(new tt(e.url),new tt(e.params),new tt(e.queryParams),new tt(e.fragment),new tt(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>wi(e,i));return new en(r,o)}}const Zd="ngNavigationCancelingError";function tC(e,t){const{redirectTo:n,navigationBehaviorOptions:r}=zn(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=nC(!1,0,t);return o.url=n,o.navigationBehaviorOptions=r,o}function nC(e,t,n){const r=new Error("NavigationCancelingError: "+(e||""));return r[Zd]=!0,r.cancellationCode=t,n&&(r.url=n),r}function rC(e){return e&&e[Zd]}let oC=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=Vi({type:e,selectors:[["ng-component"]],standalone:!0,features:[sy],decls:1,vars:0,template:function(r,o){1&r&&Ws(0,"router-outlet")},dependencies:[Wd],encapsulation:2})}return e})();function Yd(e){const t=e.children&&e.children.map(Yd),n=t?{...e,children:t}:{...e};return!n.component&&!n.loadComponent&&(t||n.loadChildren)&&n.outlet&&n.outlet!==L&&(n.component=oC),n}function Ct(e){return e.outlet||L}function Ci(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const n=t.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class BF{constructor(t,n,r,o,i){this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=o,this.inputBindingEnabled=i}activate(t){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,t),Gd(this.futureState.root),this.activateChildRoutes(n,r,t)}deactivateChildRoutes(t,n,r){const o=Zr(n);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(t,n,s.children)}else this.deactivateChildRoutes(t,n,r);else i&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(t,n){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,n):this.deactivateRouteAndOutlet(t,n)}detachAndStoreRouteSubtree(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Zr(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Zr(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);r&&(r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated()),r.attachRef=null,r.route=null)}activateChildRoutes(t,n,r){const o=Zr(n);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new MF(i.value.snapshot))}),t.children.length&&this.forwardEvent(new bF(t.value.snapshot))}activateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(Gd(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(t,n,s.children)}else this.activateChildRoutes(t,n,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Gd(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=Ci(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,r)}}class iC{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class ja{constructor(t,n){this.component=t,this.route=n}}function UF(e,t,n){const r=e._root;return Ei(r,t?t._root:null,n,[r.value])}function Qr(e,t){const n=Symbol(),r=t.get(e,n);return r===n?"function"!=typeof e||function e_(e){return null!==Pi(e)}(e)?t.get(e):e:r}function Ei(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Zr(t);return e.children.forEach(s=>{(function GF(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const u=function qF(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!Un(e.url,t.url);case"pathParamsOrQueryParamsChange":return!Un(e.url,t.url)||!Ot(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!qd(e,t)||!Ot(e.queryParams,t.queryParams);default:return!qd(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);u?o.canActivateChecks.push(new iC(r)):(i.data=s.data,i._resolvedData=s._resolvedData),Ei(e,t,i.component?a?a.children:null:n,r,o),u&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new ja(a.outlet.component,s))}else s&&_i(t,a,o),o.canActivateChecks.push(new iC(r)),Ei(e,null,i.component?a?a.children:null:n,r,o)})(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>_i(a,n.getContext(s),o)),o}function _i(e,t,n){const r=Zr(e),o=e.value;Object.entries(r).forEach(([i,s])=>{_i(s,o.component?t?t.children.getContext(i):null:t,n)}),n.canDeactivateChecks.push(new ja(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function Ii(e){return"function"==typeof e}function sC(e){return e instanceof Sa||"EmptyError"===e?.name}const $a=Symbol("INITIAL_VALUE");function Xr(){return dt(e=>Nd(e.map(t=>t.pipe(Ur(1),function LP(...e){const t=io(e);return fe((n,r)=>{(t?xd(e,n,t):xd(e,n)).subscribe(r)})}($a)))).pipe(q(t=>{for(const n of t)if(!0!==n){if(n===$a)return $a;if(!1===n||n instanceof qr)return n}return!0}),Kt(t=>t!==$a),Ur(1)))}function aC(e){return function tE(...e){return pf(e)}(Me(t=>{if(zn(t))throw tC(0,t)}),q(t=>!0===t))}class Ha{constructor(t){this.segmentGroup=t||null}}class uC{constructor(t){this.urlTree=t}}function Jr(e){return ci(new Ha(e))}function cC(e){return ci(new uC(e))}class f1{constructor(t,n){this.urlSerializer=t,this.urlTree=n}noMatchError(t){return new w(4002,!1)}lineralizeSegments(t,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return A(r);if(o.numberOfChildren>1||!o.children[L])return ci(new w(4e3,!1));o=o.children[L]}}applyRedirectCommands(t,n,r){return this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),t,r)}applyRedirectCreateUrlTree(t,n,r,o){const i=this.createSegmentGroup(t,n.root,r,o);return new qr(i,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(t,n){const r={};return Object.entries(t).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[o]=n[a]}else r[o]=i}),r}createSegmentGroup(t,n,r,o){const i=this.createSegments(t,n.segments,r,o);let s={};return Object.entries(n.children).forEach(([a,u])=>{s[a]=this.createSegmentGroup(t,u,r,o)}),new Y(i,s)}createSegments(t,n,r,o){return n.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,r))}findPosParam(t,n,r){const o=r[n.path.substring(1)];if(!o)throw new w(4001,!1);return o}findOrReturn(t,n){let r=0;for(const o of n){if(o.path===t.path)return n.splice(r),o;r++}return t}}const Qd={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function h1(e,t,n,r,o){const i=Xd(e,t,n);return i.matched?(r=function kF(e,t){return e.providers&&!e._injector&&(e._injector=Sl(e.providers,t,`Route: ${e.path}`)),e._injector??t}(t,r),function c1(e,t,n,r){const o=t.canMatch;return o&&0!==o.length?A(o.map(s=>{const a=Qr(s,e);return yn(function JF(e){return e&&Ii(e.canMatch)}(a)?a.canMatch(t,n):e.runInContext(()=>a(t,n)))})).pipe(Xr(),aC()):A(!0)}(r,t,n).pipe(q(s=>!0===s?i:{...Qd}))):A(i)}function Xd(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{...Qd}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const o=(t.matcher||GP)(n,e,t);if(!o)return{...Qd};const i={};Object.entries(o.posParams??{}).forEach(([a,u])=>{i[a]=u.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:n.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function lC(e,t,n,r){return n.length>0&&function m1(e,t,n){return n.some(r=>Va(e,t,r)&&Ct(r)!==L)}(e,n,r)?{segmentGroup:new Y(t,g1(r,new Y(n,e.children))),slicedSegments:[]}:0===n.length&&function v1(e,t,n){return n.some(r=>Va(e,t,r))}(e,n,r)?{segmentGroup:new Y(e.segments,p1(e,0,n,r,e.children)),slicedSegments:n}:{segmentGroup:new Y(e.segments,e.children),slicedSegments:n}}function p1(e,t,n,r,o){const i={};for(const s of r)if(Va(e,n,s)&&!o[Ct(s)]){const a=new Y([],{});i[Ct(s)]=a}return{...o,...i}}function g1(e,t){const n={};n[L]=t;for(const r of e)if(""===r.path&&Ct(r)!==L){const o=new Y([],{});n[Ct(r)]=o}return n}function Va(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}class C1{constructor(t,n,r,o,i,s,a){this.injector=t,this.configLoader=n,this.rootComponentType=r,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.allowRedirects=!0,this.applyRedirects=new f1(this.urlSerializer,this.urlTree)}noMatchError(t){return new w(4002,!1)}recognize(){const t=lC(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,L).pipe(Bn(n=>{if(n instanceof uC)return this.allowRedirects=!1,this.urlTree=n.urlTree,this.match(n.urlTree);throw n instanceof Ha?this.noMatchError(n):n}),q(n=>{const r=new ka([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},L,this.rootComponentType,null,{}),o=new en(r,n),i=new Jw("",o),s=function dF(e,t,n=null,r=null){return Hw($w(e),t,n,r)}(r,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root),{state:i,tree:s}}))}match(t){return this.processSegmentGroup(this.injector,this.config,t.root,L).pipe(Bn(r=>{throw r instanceof Ha?this.noMatchError(r):r}))}inheritParamsAndData(t){const n=t.value,r=Xw(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(t,n,r):this.processSegment(t,n,r,r.segments,o,!0)}processChildren(t,n,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return ve(o).pipe(zr(i=>{const s=r.children[i],a=function HF(e,t){const n=e.filter(r=>Ct(r)===t);return n.push(...e.filter(r=>Ct(r)!==t)),n}(n,i);return this.processSegmentGroup(t,a,s,i)}),function HP(e,t){return fe(function $P(e,t,n,r,o){return(i,s)=>{let a=n,u=t,c=0;i.subscribe(he(s,l=>{const d=c++;u=a?e(u,l,d):(a=!0,l),r&&s.next(u)},o&&(()=>{a&&s.next(u),s.complete()})))}}(e,t,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),Ma(null),function VP(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Kt((o,i)=>e(o,i,r)):nn,Pd(1),n?Ma(t):Sw(()=>new Sa))}(),De(i=>{if(null===i)return Jr(r);const s=dC(i);return function E1(e){e.sort((t,n)=>t.value.outlet===L?-1:n.value.outlet===L?1:t.value.outlet.localeCompare(n.value.outlet))}(s),A(s)}))}processSegment(t,n,r,o,i,s){return ve(n).pipe(zr(a=>this.processSegmentAgainstRoute(a._injector??t,n,a,r,o,i,s).pipe(Bn(u=>{if(u instanceof Ha)return A(null);throw u}))),Vn(a=>!!a),Bn(a=>{if(sC(a))return function D1(e,t,n){return 0===t.length&&!e.children[n]}(r,o,i)?A([]):Jr(r);throw a}))}processSegmentAgainstRoute(t,n,r,o,i,s,a){return function y1(e,t,n,r){return!!(Ct(e)===r||r!==L&&Va(t,n,e))&&("**"===e.path||Xd(t,e,n).matched)}(r,o,i,s)?void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,o,r,i,s,a):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,o,n,r,i,s):Jr(o):Jr(o)}expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,o){const i=this.applyRedirects.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?cC(i):this.applyRedirects.lineralizeSegments(r,i).pipe(De(s=>{const a=new Y(s,{});return this.processSegment(t,n,a,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){const{matched:a,consumedSegments:u,remainingSegments:c,positionalParamSegments:l}=Xd(n,o,i);if(!a)return Jr(n);const d=this.applyRedirects.applyRedirectCommands(u,o.redirectTo,l);return o.redirectTo.startsWith("/")?cC(d):this.applyRedirects.lineralizeSegments(o,d).pipe(De(f=>this.processSegment(t,r,n,f.concat(c),s,!1)))}matchSegmentAgainstRoute(t,n,r,o,i,s){let a;if("**"===r.path){const u=o.length>0?Tw(o).parameters:{};a=A({snapshot:new ka(o,u,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,fC(r),Ct(r),r.component??r._loadedComponent??null,r,hC(r)),consumedSegments:[],remainingSegments:[]}),n.children={}}else a=h1(n,r,o,t).pipe(q(({matched:u,consumedSegments:c,remainingSegments:l,parameters:d})=>u?{snapshot:new ka(c,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,fC(r),Ct(r),r.component??r._loadedComponent??null,r,hC(r)),consumedSegments:c,remainingSegments:l}:null));return a.pipe(dt(u=>null===u?Jr(n):this.getChildConfig(t=r._injector??t,r,o).pipe(dt(({routes:c})=>{const l=r._loadedInjector??t,{snapshot:d,consumedSegments:f,remainingSegments:h}=u,{segmentGroup:p,slicedSegments:g}=lC(n,f,h,c);if(0===g.length&&p.hasChildren())return this.processChildren(l,c,p).pipe(q(D=>null===D?null:[new en(d,D)]));if(0===c.length&&0===g.length)return A([new en(d,[])]);const v=Ct(r)===i;return this.processSegment(l,c,p,g,v?L:i,!0).pipe(q(D=>[new en(d,D)]))}))))}getChildConfig(t,n,r){return n.children?A({routes:n.children,injector:t}):n.loadChildren?void 0!==n._loadedRoutes?A({routes:n._loadedRoutes,injector:n._loadedInjector}):function u1(e,t,n,r){const o=t.canLoad;return void 0===o||0===o.length?A(!0):A(o.map(s=>{const a=Qr(s,e);return yn(function ZF(e){return e&&Ii(e.canLoad)}(a)?a.canLoad(t,n):e.runInContext(()=>a(t,n)))})).pipe(Xr(),aC())}(t,n,r).pipe(De(o=>o?this.configLoader.loadChildren(t,n).pipe(Me(i=>{n._loadedRoutes=i.routes,n._loadedInjector=i.injector})):function d1(e){return ci(nC(!1,3))}())):A({routes:[],injector:t})}}function _1(e){const t=e.value.routeConfig;return t&&""===t.path}function dC(e){const t=[],n=new Set;for(const r of e){if(!_1(r)){t.push(r);continue}const o=t.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),n.add(o)):t.push(r)}for(const r of n){const o=dC(r.children);t.push(new en(r.value,o))}return t.filter(r=>!n.has(r))}function fC(e){return e.data||{}}function hC(e){return e.resolve||{}}function pC(e){return"string"==typeof e.title||null===e.title}function Jd(e){return dt(t=>{const n=e(t);return n?ve(n).pipe(q(()=>t)):A(t)})}const Kr=new I("ROUTES");let Kd=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=_(Jy)}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return A(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const r=yn(n.loadComponent()).pipe(q(gC),Me(i=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=i}),li(()=>{this.componentLoaders.delete(n)})),o=new bw(r,()=>new lt).pipe(Od());return this.componentLoaders.set(n,o),o}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return A({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function R1(e,t,n,r){return yn(e.loadChildren()).pipe(q(gC),De(o=>o instanceof oy||Array.isArray(o)?A(o):ve(t.compileModuleAsync(o))),q(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(n).injector,s=i.get(Kr,[],{optional:!0,self:!0}).flat()),{routes:s.map(Yd),injector:i}}))}(r,this.compiler,n,this.onLoadEndListener).pipe(li(()=>{this.childrenLoaders.delete(r)})),s=new bw(i,()=>new lt).pipe(Od());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function gC(e){return function N1(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let Ba=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new lt,this.transitionAbortSubject=new lt,this.configLoader=_(Kd),this.environmentInjector=_(Qe),this.urlSerializer=_(hi),this.rootContexts=_(Di),this.inputBindingEnabled=null!==_(La,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>A(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new _F(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new EF(o))}complete(){this.transitions?.complete()}handleNavigationRequest(n){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:r})}setupNavigations(n,r,o){return this.transitions=new tt({id:0,currentUrlTree:r,currentRawUrl:r,currentBrowserUrl:r,extractedUrl:n.urlHandlingStrategy.extract(r),urlAfterRedirects:n.urlHandlingStrategy.extract(r),rawUrl:r,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:vi,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Kt(i=>0!==i.id),q(i=>({...i,extractedUrl:n.urlHandlingStrategy.extract(i.rawUrl)})),dt(i=>{this.currentTransition=i;let s=!1,a=!1;return A(i).pipe(Me(u=>{this.currentNavigation={id:u.id,initialUrl:u.rawUrl,extractedUrl:u.extractedUrl,trigger:u.source,extras:u.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),dt(u=>{const c=u.currentBrowserUrl.toString(),l=!n.navigated||u.extractedUrl.toString()!==c||c!==u.currentUrlTree.toString();if(!l&&"reload"!==(u.extras.onSameUrlNavigation??n.onSameUrlNavigation)){const f="";return this.events.next(new Wr(u.id,this.urlSerializer.serialize(u.rawUrl),f,0)),u.resolve(null),Et}if(n.urlHandlingStrategy.shouldProcessUrl(u.rawUrl))return A(u).pipe(dt(f=>{const h=this.transitions?.getValue();return this.events.next(new Pa(f.id,this.urlSerializer.serialize(f.extractedUrl),f.source,f.restoredState)),h!==this.transitions?.getValue()?Et:Promise.resolve(f)}),function I1(e,t,n,r,o,i){return De(s=>function w1(e,t,n,r,o,i,s="emptyOnly"){return new C1(e,t,n,r,o,s,i).recognize()}(e,t,n,r,s.extractedUrl,o,i).pipe(q(({state:a,tree:u})=>({...s,targetSnapshot:a,urlAfterRedirects:u}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),Me(f=>{i.targetSnapshot=f.targetSnapshot,i.urlAfterRedirects=f.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:f.urlAfterRedirects};const h=new qw(f.id,this.urlSerializer.serialize(f.extractedUrl),this.urlSerializer.serialize(f.urlAfterRedirects),f.targetSnapshot);this.events.next(h)}));if(l&&n.urlHandlingStrategy.shouldProcessUrl(u.currentRawUrl)){const{id:f,extractedUrl:h,source:p,restoredState:g,extras:v}=u,D=new Pa(f,this.urlSerializer.serialize(h),p,g);this.events.next(D);const m=Qw(0,this.rootComponentType).snapshot;return this.currentTransition=i={...u,targetSnapshot:m,urlAfterRedirects:h,extras:{...v,skipLocationChange:!1,replaceUrl:!1}},A(i)}{const f="";return this.events.next(new Wr(u.id,this.urlSerializer.serialize(u.extractedUrl),f,1)),u.resolve(null),Et}}),Me(u=>{const c=new yF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(c)}),q(u=>(this.currentTransition=i={...u,guards:UF(u.targetSnapshot,u.currentSnapshot,this.rootContexts)},i)),function e1(e,t){return De(n=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=n;return 0===s.length&&0===i.length?A({...n,guardsResult:!0}):function t1(e,t,n,r){return ve(e).pipe(De(o=>function a1(e,t,n,r,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?A(i.map(a=>{const u=Ci(t)??o,c=Qr(a,u);return yn(function XF(e){return e&&Ii(e.canDeactivate)}(c)?c.canDeactivate(e,t,n,r):u.runInContext(()=>c(e,t,n,r))).pipe(Vn())})).pipe(Xr()):A(!0)}(o.component,o.route,n,t,r)),Vn(o=>!0!==o,!0))}(s,r,o,e).pipe(De(a=>a&&function WF(e){return"boolean"==typeof e}(a)?function n1(e,t,n,r){return ve(t).pipe(zr(o=>xd(function o1(e,t){return null!==e&&t&&t(new IF(e)),A(!0)}(o.route.parent,r),function r1(e,t){return null!==e&&t&&t(new SF(e)),A(!0)}(o.route,r),function s1(e,t,n){const r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function zF(e){const t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(s)).filter(s=>null!==s).map(s=>Iw(()=>A(s.guards.map(u=>{const c=Ci(s.node)??n,l=Qr(u,c);return yn(function QF(e){return e&&Ii(e.canActivateChild)}(l)?l.canActivateChild(r,e):c.runInContext(()=>l(r,e))).pipe(Vn())})).pipe(Xr())));return A(i).pipe(Xr())}(e,o.path,n),function i1(e,t,n){const r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return A(!0);const o=r.map(i=>Iw(()=>{const s=Ci(t)??n,a=Qr(i,s);return yn(function YF(e){return e&&Ii(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Vn())}));return A(o).pipe(Xr())}(e,o.route,n))),Vn(o=>!0!==o,!0))}(r,i,e,t):A(a)),q(a=>({...n,guardsResult:a})))})}(this.environmentInjector,u=>this.events.next(u)),Me(u=>{if(i.guardsResult=u.guardsResult,zn(u.guardsResult))throw tC(0,u.guardsResult);const c=new DF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot,!!u.guardsResult);this.events.next(c)}),Kt(u=>!!u.guardsResult||(this.cancelNavigationTransition(u,"",3),!1)),Jd(u=>{if(u.guards.canActivateChecks.length)return A(u).pipe(Me(c=>{const l=new wF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}),dt(c=>{let l=!1;return A(c).pipe(function b1(e,t){return De(n=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=n;if(!o.length)return A(n);let i=0;return ve(o).pipe(zr(s=>function S1(e,t,n,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!pC(o)&&(i[di]=o.title),function M1(e,t,n,r){const o=function T1(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return A({});const i={};return ve(o).pipe(De(s=>function A1(e,t,n,r){const o=Ci(t)??r,i=Qr(e,o);return yn(i.resolve?i.resolve(t,n):o.runInContext(()=>i(t,n)))}(e[s],t,n,r).pipe(Vn(),Me(a=>{i[s]=a}))),Pd(1),function BP(e){return q(()=>e)}(i),Bn(s=>sC(s)?Et:ci(s)))}(i,e,t,r).pipe(q(s=>(e._resolvedData=s,e.data=Xw(e,n).resolve,o&&pC(o)&&(e.data[di]=o.title),null)))}(s.route,r,e,t)),Me(()=>i++),Pd(1),De(s=>i===o.length?A(n):Et))})}(n.paramsInheritanceStrategy,this.environmentInjector),Me({next:()=>l=!0,complete:()=>{l||this.cancelNavigationTransition(c,"",2)}}))}),Me(c=>{const l=new CF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}))}),Jd(u=>{const c=l=>{const d=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(l.routeConfig).pipe(Me(f=>{l.component=f}),q(()=>{})));for(const f of l.children)d.push(...c(f));return d};return Nd(c(u.targetSnapshot.root)).pipe(Ma(),Ur(1))}),Jd(()=>this.afterPreactivation()),q(u=>{const c=function xF(e,t,n){const r=wi(e,t._root,n?n._root:void 0);return new Yw(r,t)}(n.routeReuseStrategy,u.targetSnapshot,u.currentRouterState);return this.currentTransition=i={...u,targetRouterState:c},i}),Me(()=>{this.events.next(new Hd)}),((e,t,n,r)=>q(o=>(new BF(t,o.targetRouterState,o.currentRouterState,n,r).activate(e),o)))(this.rootContexts,n.routeReuseStrategy,u=>this.events.next(u),this.inputBindingEnabled),Ur(1),Me({next:u=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Dn(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects))),n.titleStrategy?.updateTitle(u.targetRouterState.snapshot),u.resolve(!0)},complete:()=>{s=!0}}),function UP(e){return fe((t,n)=>{et(e).subscribe(he(n,()=>n.complete(),Za)),!n.closed&&t.subscribe(n)})}(this.transitionAbortSubject.pipe(Me(u=>{throw u}))),li(()=>{s||a||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Bn(u=>{if(a=!0,rC(u))this.events.next(new yi(i.id,this.urlSerializer.serialize(i.extractedUrl),u.message,u.cancellationCode)),function FF(e){return rC(e)&&zn(e.url)}(u)?this.events.next(new Vd(u.url)):i.resolve(!1);else{this.events.next(new Fa(i.id,this.urlSerializer.serialize(i.extractedUrl),u,i.targetSnapshot??void 0));try{i.resolve(n.errorHandler(u))}catch(c){i.reject(c)}}return Et}))}))}cancelNavigationTransition(n,r,o){const i=new yi(n.id,this.urlSerializer.serialize(n.extractedUrl),r,o);this.events.next(i),n.resolve(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function mC(e){return e!==vi}let vC=(()=>{class e{buildTitle(n){let r,o=n.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===L);return r}getResolvedTitleForRoute(n){return n.data[di]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(x1)},providedIn:"root"})}return e})(),x1=(()=>{class e extends vC{constructor(n){super(),this.title=n}updateTitle(n){const r=this.buildTitle(n);void 0!==r&&this.title.setTitle(r)}static#e=this.\u0275fac=function(r){return new(r||e)(b(Dw))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),O1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(F1)},providedIn:"root"})}return e})();class P1{shouldDetach(t){return!1}store(t,n){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,n){return t.routeConfig===n.routeConfig}}let F1=(()=>{class e extends P1{static#e=this.\u0275fac=function(){let n;return function(o){return(n||(n=function rp(e){return $t(()=>{const t=e.prototype.constructor,n=t[Ht]||Gu(t),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Ht]||Gu(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}(e)))(o||e)}}();static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Ua=new I("",{providedIn:"root",factory:()=>({})});let k1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:function(){return _(L1)},providedIn:"root"})}return e})(),L1=(()=>{class e{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,r){return n}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var bi=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(bi||{});function yC(e,t){e.events.pipe(Kt(n=>n instanceof Dn||n instanceof yi||n instanceof Fa||n instanceof Wr),q(n=>n instanceof Dn||n instanceof Wr?bi.COMPLETE:n instanceof yi&&(0===n.code||1===n.code)?bi.REDIRECTING:bi.FAILED),Kt(n=>n!==bi.REDIRECTING),Ur(1)).subscribe(()=>{t()})}function j1(e){throw e}function $1(e,t,n){return t.parse("/")}const H1={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},V1={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ct=(()=>{class e{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.location.getState()?.\u0275routerPageId??this.currentPageId}get events(){return this._events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=_(Xy),this.isNgZoneEnabled=!1,this._events=new lt,this.options=_(Ua,{optional:!0})||{},this.pendingTasks=_(ia),this.errorHandler=this.options.errorHandler||j1,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||$1,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=_(k1),this.routeReuseStrategy=_(O1),this.titleStrategy=_(vC),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=_(Kr,{optional:!0})?.flat()??[],this.navigationTransitions=_(Ba),this.urlSerializer=_(hi),this.location=_(sd),this.componentInputBindingEnabled=!!_(La,{optional:!0}),this.eventsSubscription=new Ge,this.isNgZoneEnabled=_(ee)instanceof ee&&ee.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new qr,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=Qw(0,null),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=this.browserPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const n=this.navigationTransitions.events.subscribe(r=>{try{const{currentTransition:o}=this.navigationTransitions;if(null===o)return void(DC(r)&&this._events.next(r));if(r instanceof Pa)mC(o.source)&&(this.browserUrlTree=o.extractedUrl);else if(r instanceof Wr)this.rawUrlTree=o.rawUrl;else if(r instanceof qw){if("eager"===this.urlUpdateStrategy){if(!o.extras.skipLocationChange){const i=this.urlHandlingStrategy.merge(o.urlAfterRedirects,o.rawUrl);this.setBrowserUrl(i,o)}this.browserUrlTree=o.urlAfterRedirects}}else if(r instanceof Hd)this.currentUrlTree=o.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(o.urlAfterRedirects,o.rawUrl),this.routerState=o.targetRouterState,"deferred"===this.urlUpdateStrategy&&(o.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,o),this.browserUrlTree=o.urlAfterRedirects);else if(r instanceof yi)0!==r.code&&1!==r.code&&(this.navigated=!0),(3===r.code||2===r.code)&&this.restoreHistory(o);else if(r instanceof Vd){const i=this.urlHandlingStrategy.merge(r.url,o.currentRawUrl),s={skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||mC(o.source)};this.scheduleNavigation(i,vi,null,s,{resolve:o.resolve,reject:o.reject,promise:o.promise})}r instanceof Fa&&this.restoreHistory(o,!0),r instanceof Dn&&(this.navigated=!0),DC(r)&&this._events.next(r)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(n)}resetRootComponentType(n){this.routerState.root.component=n,this.navigationTransitions.rootComponentType=n}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const n=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),vi,n)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{this.navigateToSyncWithBrowser(n.url,r,n.state)},0)}))}navigateToSyncWithBrowser(n,r,o){const i={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const u={...o};delete u.navigationId,delete u.\u0275routerPageId,0!==Object.keys(u).length&&(i.state=u)}const a=this.parseUrl(n);this.scheduleNavigation(a,r,s,i)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(n){this.config=n.map(Yd),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(n,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:u}=r,c=u?this.currentUrlTree.fragment:s;let d,l=null;switch(a){case"merge":l={...this.currentUrlTree.queryParams,...i};break;case"preserve":l=this.currentUrlTree.queryParams;break;default:l=i||null}null!==l&&(l=this.removeEmptyProps(l));try{d=$w(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof n[0]||!n[0].startsWith("/"))&&(n=[]),d=this.currentUrlTree.root}return Hw(d,n,l,c??null)}navigateByUrl(n,r={skipLocationChange:!1}){const o=zn(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,vi,null,r)}navigate(n,r={skipLocationChange:!1}){return function B1(e){for(let t=0;t{const i=n[o];return null!=i&&(r[o]=i),r},{})}scheduleNavigation(n,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,u,c;s?(a=s.resolve,u=s.reject,c=s.promise):c=new Promise((d,f)=>{a=d,u=f});const l=this.pendingTasks.add();return yC(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(l))}),this.navigationTransitions.handleNavigationRequest({source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,currentBrowserUrl:this.browserUrlTree,rawUrl:n,extras:i,resolve:a,reject:u,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}setBrowserUrl(n,r){const o=this.urlSerializer.serialize(n);if(this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl){const s={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const i={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId+1)};this.location.go(o,"",i)}}restoreHistory(n,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-this.browserPageId;0!==i?this.location.historyGo(i):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===i&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(n,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function DC(e){return!(e instanceof Hd||e instanceof Vd)}class wC{}let G1=(()=>{class e{constructor(n,r,o,i,s){this.router=n,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(Kt(n=>n instanceof Dn),zr(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=Sl(i.providers,n,`Route: ${i.path}`));const s=i._injector??n,a=i._loadedInjector??s;(i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent)&&o.push(this.preloadConfig(s,i)),(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return ve(o).pipe(Wn())}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(n,r):A(null);const i=o.pipe(De(s=>null===s?A(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??n,s.routes))));return r.loadComponent&&!r._loadedComponent?ve([i,this.loader.loadComponent(r)]).pipe(Wn()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(b(ct),b(Jy),b(Qe),b(wC),b(Kd))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const tf=new I("");let CC=(()=>{class e{constructor(n,r,o,i,s={}){this.urlSerializer=n,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration=s.scrollPositionRestoration||"disabled",s.anchorScrolling=s.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof Pa?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof Dn?(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment)):n instanceof Wr&&0===n.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof Ww&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Ww(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function Bg(){throw new Error("invalid")}()};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function tn(e,t){return{\u0275kind:e,\u0275providers:t}}function _C(){const e=_(it);return t=>{const n=e.get(Hr);if(t!==n.components[0])return;const r=e.get(ct),o=e.get(IC);1===e.get(nf)&&r.initialNavigation(),e.get(bC,null,$.Optional)?.setUpPreloading(),e.get(tf,null,$.Optional)?.init(),r.resetRootComponentType(n.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const IC=new I("",{factory:()=>new lt}),nf=new I("",{providedIn:"root",factory:()=>1}),bC=new I("");function Y1(e){return tn(0,[{provide:bC,useExisting:G1},{provide:wC,useExisting:e}])}const SC=new I("ROUTER_FORROOT_GUARD"),X1=[sd,{provide:hi,useClass:Fd},ct,Di,{provide:Yr,useFactory:function EC(e){return e.routerState.root},deps:[ct]},Kd,[]];function J1(){return new iD("Router",ct)}let MC=(()=>{class e{constructor(n){}static forRoot(n,r){return{ngModule:e,providers:[X1,[],{provide:Kr,multi:!0,useValue:n},{provide:SC,useFactory:nk,deps:[[ct,new is,new ss]]},{provide:Ua,useValue:r||{}},r?.useHash?{provide:Hn,useClass:ox}:{provide:Hn,useClass:FD},{provide:tf,useFactory:()=>{const e=_(IO),t=_(ee),n=_(Ua),r=_(Ba),o=_(hi);return n.scrollOffset&&e.setOffset(n.scrollOffset),new CC(o,r,e,t,n)}},r?.preloadingStrategy?Y1(r.preloadingStrategy).\u0275providers:[],{provide:iD,multi:!0,useFactory:J1},r?.initialNavigation?rk(r):[],r?.bindToComponentInputs?tn(8,[eC,{provide:La,useExisting:eC}]).\u0275providers:[],[{provide:TC,useFactory:_C},{provide:Zl,multi:!0,useExisting:TC}]]}}static forChild(n){return{ngModule:e,providers:[{provide:Kr,multi:!0,useValue:n}]}}static#e=this.\u0275fac=function(r){return new(r||e)(b(SC,8))};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({})}return e})();function nk(e){return"guarded"}function rk(e){return["disabled"===e.initialNavigation?tn(3,[{provide:Hl,multi:!0,useFactory:()=>{const t=_(ct);return()=>{t.setUpLocationChangeListener()}}},{provide:nf,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?tn(2,[{provide:nf,useValue:0},{provide:Hl,multi:!0,deps:[it],useFactory:t=>{const n=t.get(nx,Promise.resolve());return()=>n.then(()=>new Promise(r=>{const o=t.get(ct),i=t.get(IC);yC(o,()=>{r(!0)}),t.get(Ba).afterPreactivation=()=>(r(!0),i.closed?A(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const TC=new I(""),ik=[];let sk=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({imports:[MC.forRoot(ik),MC]})}return e})();class za{}class Ga{}class Ft{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(n=>{const r=n.indexOf(":");if(r>0){const o=n.slice(0,r),i=o.toLowerCase(),s=n.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.setHeaderEntries(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ft?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(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){const n=new Ft;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof Ft?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){const n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(t.name,n);const o=("a"===t.op?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(n);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}else this.headers.delete(n),this.normalizedNames.delete(n)}}setHeaderEntries(t,n){const r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}}class ak{encodeKey(t){return AC(t)}encodeValue(t){return AC(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const ck=/%(\d[a-f0-9])/gi,lk={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function AC(e){return encodeURIComponent(e).replace(ck,(t,n)=>lk[n]??t)}function qa(e){return`${e}`}class wn{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new ak,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function uk(e,t){const n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],u=n.get(s)||[];u.push(a),n.set(s,u)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{const r=t.fromObject[n],o=Array.isArray(r)?r.map(qa):[qa(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){const n=[];return Object.keys(t).forEach(r=>{const o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const n=new wn({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}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 n=("a"===t.op?this.map.get(t.param):void 0)||[];n.push(qa(t.value)),this.map.set(t.param,n);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let r=this.map.get(t.param)||[];const o=r.indexOf(qa(t.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class dk{constructor(){this.map=new Map}set(t,n){return this.map.set(t,n),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}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function RC(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function NC(e){return typeof Blob<"u"&&e instanceof Blob}function xC(e){return typeof FormData<"u"&&e instanceof FormData}class Si{constructor(t,n,r,o){let i;if(this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function fk(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params)),this.headers||(this.headers=new Ft),this.context||(this.context=new dk),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=n;else{const a=n.indexOf("?");this.urlWithParams=n+(-1===a?"?":ad.set(f,t.setHeaders[f]),u)),t.setParams&&(c=Object.keys(t.setParams).reduce((d,f)=>d.set(f,t.setParams[f]),c)),new Si(n,r,i,{params:c,headers:u,context:l,reportProgress:a,responseType:o,withCredentials:s})}}var eo=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(eo||{});class rf{constructor(t,n=200,r="OK"){this.headers=t.headers||new Ft,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class sf extends rf{constructor(t={}){super(t),this.type=eo.ResponseHeader}clone(t={}){return new sf({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 to extends rf{constructor(t={}){super(t),this.type=eo.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new to({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 OC extends rf{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 af(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let PC=(()=>{class e{constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Si)i=n;else{let u,c;u=o.headers instanceof Ft?o.headers:new Ft(o.headers),o.params&&(c=o.params instanceof wn?o.params:new wn({fromObject:o.params})),i=new Si(n,r,void 0!==o.body?o.body:null,{headers:u,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const s=A(i).pipe(zr(u=>this.handler.handle(u)));if(n instanceof Si||"events"===o.observe)return s;const a=s.pipe(Kt(u=>u instanceof to));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(q(u=>{if(null!==u.body&&!(u.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return u.body}));case"blob":return a.pipe(q(u=>{if(null!==u.body&&!(u.body instanceof Blob))throw new Error("Response is not a Blob.");return u.body}));case"text":return a.pipe(q(u=>{if(null!==u.body&&"string"!=typeof u.body)throw new Error("Response is not a string.");return u.body}));default:return a.pipe(q(u=>u.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new wn).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,af(o,r))}post(n,r,o={}){return this.request("POST",n,af(o,r))}put(n,r,o={}){return this.request("PUT",n,af(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(b(za))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function LC(e,t){return t(e)}function gk(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}const vk=new I(""),Mi=new I(""),jC=new I("");function yk(){let e=null;return(t,n)=>{null===e&&(e=(_(vk,{optional:!0})??[]).reduceRight(gk,LC));const r=_(ia),o=r.add();return e(t,n).pipe(li(()=>r.remove(o)))}}let $C=(()=>{class e extends za{constructor(n,r){super(),this.backend=n,this.injector=r,this.chain=null,this.pendingTasks=_(ia)}handle(n){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(Mi),...this.injector.get(jC,[])]));this.chain=o.reduceRight((i,s)=>function mk(e,t,n){return(r,o)=>n.runInContext(()=>t(r,i=>e(i,o)))}(i,s,this.injector),LC)}const r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(li(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(b(Ga),b(Qe))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const Ek=/^\)\]\}',?\n/;let VC=(()=>{class e{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new w(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?ve(r.\u0275loadImpl()):A(null)).pipe(dt(()=>new le(i=>{const s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,v)=>s.setRequestHeader(g,v.join(","))),n.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const g=n.detectContentTypeHeader();null!==g&&s.setRequestHeader("Content-Type",g)}if(n.responseType){const g=n.responseType.toLowerCase();s.responseType="json"!==g?g:"text"}const a=n.serializeBody();let u=null;const c=()=>{if(null!==u)return u;const g=s.statusText||"OK",v=new Ft(s.getAllResponseHeaders()),D=function _k(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(s)||n.url;return u=new sf({headers:v,status:s.status,statusText:g,url:D}),u},l=()=>{let{headers:g,status:v,statusText:D,url:m}=c(),E=null;204!==v&&(E=typeof s.response>"u"?s.responseText:s.response),0===v&&(v=E?200:0);let M=v>=200&&v<300;if("json"===n.responseType&&"string"==typeof E){const j=E;E=E.replace(Ek,"");try{E=""!==E?JSON.parse(E):null}catch(ye){E=j,M&&(M=!1,E={error:ye,text:E})}}M?(i.next(new to({body:E,headers:g,status:v,statusText:D,url:m||void 0})),i.complete()):i.error(new OC({error:E,headers:g,status:v,statusText:D,url:m||void 0}))},d=g=>{const{url:v}=c(),D=new OC({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:v||void 0});i.error(D)};let f=!1;const h=g=>{f||(i.next(c()),f=!0);let v={type:eo.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(v.total=g.total),"text"===n.responseType&&s.responseText&&(v.partialText=s.responseText),i.next(v)},p=g=>{let v={type:eo.UploadProgress,loaded:g.loaded};g.lengthComputable&&(v.total=g.total),i.next(v)};return s.addEventListener("load",l),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),n.reportProgress&&(s.addEventListener("progress",h),null!==a&&s.upload&&s.upload.addEventListener("progress",p)),s.send(a),i.next({type:eo.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",l),s.removeEventListener("timeout",d),n.reportProgress&&(s.removeEventListener("progress",h),null!==a&&s.upload&&s.upload.removeEventListener("progress",p)),s.readyState!==s.DONE&&s.abort()}})))}static#e=this.\u0275fac=function(r){return new(r||e)(b(tw))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();const uf=new I("XSRF_ENABLED"),BC=new I("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),UC=new I("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class zC{}let Sk=(()=>{class e{constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=GD(n,this.cookieName),this.lastCookieString=n),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(b(Je),b(xn),b(BC))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function Mk(e,t){const n=e.url.toLowerCase();if(!_(uf)||"GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t(e);const r=_(zC).getToken(),o=_(UC);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var Cn=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(Cn||{});function Tk(...e){const t=[PC,VC,$C,{provide:za,useExisting:$C},{provide:Ga,useExisting:VC},{provide:Mi,useValue:Mk,multi:!0},{provide:uf,useValue:!0},{provide:zC,useClass:Sk}];for(const n of e)t.push(...n.\u0275providers);return function yc(e){return{\u0275providers:e}}(t)}const GC=new I("LEGACY_INTERCEPTOR_FN");function Ak(){return function Gn(e,t){return{\u0275kind:e,\u0275providers:t}}(Cn.LegacyInterceptors,[{provide:GC,useFactory:yk},{provide:Mi,useExisting:GC,multi:!0}])}let Rk=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e});static#n=this.\u0275inj=jt({providers:[Tk(Ak())]})}return e})(),qC=(()=>{class e{constructor(n){this.http=n}get(n){return this.http.get(n)}static#e=this.\u0275fac=function(r){return new(r||e)(b(PC))};static#t=this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function kk(e,t){if(1&e&&(Pn(0,"div",3)(1,"div",4)(2,"div",5)(3,"h5",6),Xs(4),Fn(),Pn(5,"h6",7),Xs(6),Fn(),Pn(7,"p",8),Xs(8),Fn()()()()),2&e){const n=t.$implicit;jo(4),Zo(n.nombre),jo(2),Zo(n.description),jo(2),Zo(n.precio)}}let Lk=(()=>{class e{constructor(n){this.MovimientoService=n,this.listaCard=[]}ngOnInit(){this.cargarDato()}cargarDato(){this.MovimientoService.get("http://localhost:8080/api/v1/productos").subscribe(n=>{console.log(n),this.listaCard=n.data,console.log(this.listaCard)})}static#e=this.\u0275fac=function(r){return new(r||e)(T(qC))};static#t=this.\u0275cmp=Vi({type:e,selectors:[["app-movimiento"]],decls:3,vars:1,consts:[[1,"container","mt-4"],[1,"row"],["class","col-md-4",4,"ngFor","ngForOf"],[1,"col-md-4"],[1,"card","mb-4"],[1,"card-body"],[1,"card-title"],[1,"card-subtitle","mb-2","text-muted"],[1,"card-text"]],template:function(r,o){1&r&&(Pn(0,"div",0)(1,"div",1),function Am(e,t,n,r,o,i,s,a){const u=y(),c=B(),l=e+H,d=c.firstCreatePass?function E0(e,t,n,r,o,i,s,a,u){const c=t.consts,l=br(t,e,4,s||null,ln(c,a));Zc(t,n,l,ln(c,u)),Yi(t,l);const d=l.tView=Wc(2,l,r,o,i,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,l),d.queries=t.queries.embeddedTView(l)),l}(l,c,u,t,n,r,o,i,s):c.data[l];Mt(d,!1);const f=Rm(c,u,d,e);Zi()&&vs(c,u,f,d),be(f,u),js(u,u[l]=Xg(f,u,f,d)),zi(d)&&Gc(c,u,d),null!=s&&qc(u,d,a)}(2,kk,9,3,"div",2),Fn()()),2&r&&(jo(2),al("ngForOf",o.listaCard))},dependencies:[ZD]})}return e})(),jk=(()=>{class e{constructor(){this.title="control_stock"}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=Vi({type:e,selectors:[["app-root"]],decls:2,vars:0,template:function(r,o){1&r&&Ws(0,"router-outlet")(1,"app-movimiento")},dependencies:[Wd,Lk]})}return e})(),$k=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=sn({type:e,bootstrap:[jk]});static#n=this.\u0275inj=jt({providers:[qC],imports:[vP,sk,Rk]})}return e})();gP().bootstrapModule($k).catch(e=>console.error(e))}},Q=>{Q(Q.s=489)}]); \ No newline at end of file diff --git a/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js b/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js deleted file mode 100644 index 3e7d2aa..0000000 --- a/angular/dist/control_stock/polyfills.7402fc72e38bd7b1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcontrol_stock=self.webpackChunkcontrol_stock||[]).push([[429],{332:()=>{!function(e){const n=e.performance;function i(L){n&&n.mark&&n.mark(L)}function o(L,T){n&&n.measure&&n.measure(L,T)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(L){return c+L}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class L{static#e=this.__symbol__=a;static assertZonePatched(){if(e.Promise!==oe.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=L.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,L,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||J).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===P))return;const C=t.state!=E;C&&t._transitionTo(E,A),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==P&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(A,E):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,E,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(A,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new p(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new p(P,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new p(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||J).name+"; Execution: "+this.name+")");if(t.state===A||t.state===E){t._transitionTo(G,A,E);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CL.hasTask(t,r),onScheduleTask:(L,T,t,r)=>L.scheduleTask(t,r),onInvokeTask:(L,T,t,r,k,C)=>L.invokeTask(t,r,k,C),onCancelTask:(L,T,t,r)=>L.cancelTask(t,r)};class v{constructor(T,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=T,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:b,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=T,r.onScheduleTask||(this._scheduleTaskZS=b,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=b,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=b,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(T,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,T,t):new d(T,t)}intercept(T,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,T,t,r):t}invoke(T,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,T,t,r,k,C):t.apply(r,k)}handleError(T,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,T,t)}scheduleTask(T,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,T,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(T,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,T,t,r,k):t.callback.apply(r,k)}cancelTask(T,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,T,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(T,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,T,t)}catch(r){this.handleError(T,r)}}_updateTaskCount(T,t){const r=this._taskCounts,k=r[T],C=r[T]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:T})}}class p{constructor(T,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=T,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=T===Q&&k&&k.useG?p.invokeTask:function(){return p.invokeTask.call(e,l,this,arguments)}}static invokeTask(T,t,r){T||(T=this),ee++;try{return T.runCount++,T.zone.runTask(T,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(T,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${T}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=T,T==x&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?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 M=a("setTimeout"),O=a("Promise"),N=a("then");let K,B=[],H=!1;function q(L){if(K||e[O]&&(K=e[O].resolve(0)),K){let T=K[N];T||(T=K.then),T.call(K,L)}else e[M](L,0)}function R(L){0===ee&&0===B.length&&q(_),L&&B.push(L)}function _(){if(!H){for(H=!0;B.length;){const L=B;B=[];for(let T=0;TU,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,pe=Object.defineProperty,ve=Object.getPrototypeOf,Se=Object.create,it=Array.prototype.slice,Ze="addEventListener",De="removeEventListener",Oe=Zone.__symbol__(Ze),Ne=Zone.__symbol__(De),ie="true",ce="false",me=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const j=Zone.__symbol__,be=typeof window<"u",_e=be?window:void 0,Y=be&&_e||"object"==typeof self&&self||global,ct="removeAttribute";function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Ve(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Fe=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Pe=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),Ae=!Pe&&!Fe&&!(!be||!_e.HTMLElement),Be=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Fe&&!(!be||!_e.HTMLElement),we={},Ue=function(e){if(!(e=e||Y.event))return;let n=we[e.type];n||(n=we[e.type]=j("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;return Ae&&i===_e&&"error"===e.type?(c=o&&o.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function We(e,n,i){let o=ue(e,n);if(!o&&i&&ue(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let b=we[d];b||(b=we[d]=j("ON_PROPERTY"+d)),o.set=function(v){let p=this;!p&&e===Y&&(p=Y),p&&("function"==typeof p[b]&&p.removeEventListener(d,Ue),y&&y.call(p,null),p[b]=v,"function"==typeof v&&p.addEventListener(d,Ue,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const p=v[b];if(p)return p;if(a){let M=a.call(this);if(M)return o.set.call(this,M),"function"==typeof v[ct]&&v.removeAttribute(n),M}return null},pe(e,n,o),e[c]=!0}function qe(e,n,i){if(n)for(let o=0;ofunction(y,d){const b=i(y,d);return b.cbIdx>=0&&"function"==typeof d[b.cbIdx]?Me(b.name,d[b.cbIdx],b,c):a.apply(y,d)})}function le(e,n){e[j("OriginalDelegate")]=n}let Xe=!1,je=!1;function ft(){if(Xe)return je;Xe=!0;try{const e=_e.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(je=!0)}catch{}return je}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],b=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),p=y("then"),M="__creationTrace__";i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const O=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[O];"function"==typeof u&&u.call(this,l)}catch{}}function B(l){return l&&l.then}function H(l){return l}function K(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),J=y("parentPromiseValue"),x=y("parentPromiseState"),X="Promise.then",A=null,E=!0,G=!1,h=0;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const P=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},Q="Promise resolved with itself",oe=y("currentTaskTrace");function z(l,u,s){const f=P();if(l===s)throw new TypeError(Q);if(l[q]===A){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(w){return f(()=>{z(l,!1,w)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==A)re(s),z(l,s[q],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(w){f(()=>{z(l,!1,w)})()}else{l[q]=u;const w=l[R];if(l[R]=s,l[_]===_&&u===E&&(l[q]=l[x],l[R]=l[J]),u===G&&s instanceof Error){const m=n.currentTask&&n.currentTask.data&&n.currentTask.data[M];m&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{const S=l[R],Z=!!s&&_===s[_];Z&&(s[J]=S,s[x]=w);const D=u.run(m,void 0,Z&&m!==K&&m!==H?[]:[S]);z(s,!0,D)}catch(S){z(s,!1,S)}},s)}const L=function(){},T=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),E,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new T([],"All promises were rejected"));const s=[];let f=0;try{for(let m of u)f++,s.push(t.resolve(m))}catch{return Promise.reject(new T([],"All promises were rejected"))}if(0===f)return Promise.reject(new T([],"All promises were rejected"));let g=!1;const w=[];return new t((m,S)=>{for(let Z=0;Z{g||(g=!0,m(D))},D=>{w.push(D),f--,0===f&&(g=!0,S(new T(w,"All promises were rejected")))})})}static race(u){let s,f,g=new this((S,Z)=>{s=S,f=Z});function w(S){s(S)}function m(S){f(S)}for(let S of u)B(S)||(S=this.resolve(S)),S.then(w,m);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,w=new this((D,V)=>{f=D,g=V}),m=2,S=0;const Z=[];for(let D of u){B(D)||(D=this.resolve(D));const V=S;try{D.then(F=>{Z[V]=s?s.thenCallback(F):F,m--,0===m&&f(Z)},F=>{s?(Z[V]=s.errorCallback(F),m--,0===m&&f(Z)):g(F)})}catch(F){g(F)}m++,S++}return m-=2,0===m&&f(Z),w}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=A,s[R]=[];try{const f=P();u&&u(f(I(s,E)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){let f=this.constructor?.[Symbol.species];(!f||"function"!=typeof f)&&(f=this.constructor||t);const g=new f(L),w=n.current;return this[q]==A?this[R].push(w,g,u,s):ee(this,w,g,u,s),g}catch(u){return this.then(null,u)}finally(u){let s=this.constructor?.[Symbol.species];(!s||"function"!=typeof s)&&(s=t);const f=new s(L);f[_]=_;const g=n.current;return this[q]==A?this[R].push(g,f,u,u):ee(this,g,f,u,u),f}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[p]=f,l.prototype.then=function(g,w){return new t((S,Z)=>{f.call(this,S,Z)}).then(g,w)},l[k]=!0}return i.patchThen=C,r&&(C(r),ae(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=j("OriginalDelegate"),o=j("Promise"),c=j("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const p=e[o];if(p)return n.call(p)}if(this===Error){const p=e[c];if(p)return n.call(p)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let Ee=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){Ee=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{Ee=!1}const ht={useG:!0},te={},ze={},Ye=new RegExp("^"+me+"(\\w+)(true|false)$"),$e=j("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ce,o=(n?n(e):e)+ie,c=me+i,a=me+o;te[e]={},te[e][ce]=c,te[e][ie]=a}function dt(e,n,i,o){const c=o&&o.add||Ze,a=o&&o.rm||De,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",b=j(c),v="."+c+":",p="prependListener",M="."+p+":",O=function(R,_,J){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=E=>x.handleEvent(E),R.originalDelegate=x);try{R.invoke(R,_,[J])}catch(E){X=E}const A=R.options;return A&&"object"==typeof A&&A.once&&_[a].call(_,J.type,R.originalDelegate?R.originalDelegate:R.callback,A),X};function N(R,_,J){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][J?ie:ce]];if(X){const A=[];if(1===X.length){const E=O(X[0],x,_);E&&A.push(E)}else{const E=X.slice();for(let G=0;G{throw G})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function K(R,_){if(!R)return!1;let J=!0;_&&void 0!==_.useG&&(J=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let A=!1;_&&void 0!==_.rt&&(A=_.rt);let E=R;for(;E&&!E.hasOwnProperty(c);)E=ve(E);if(!E&&R[c]&&(E=R),!E||E[b])return!1;const G=_&&_.eventNameToString,h={},I=E[b]=E[c],P=E[j(a)]=E[a],Q=E[j(y)]=E[y],oe=E[j(d)]=E[d];let z;_&&_.prepend&&(z=E[j(_.prepend)]=E[_.prepend]);const t=J?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=J?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ie:ce]);const w=g&&s.target[g];if(w)for(let m=0;mfunction(c,a){c[$e]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,b,v){return b&&b.prototype&&c.forEach(function(p){const M=`${i}.${o}::`+p,O=b.prototype;try{if(O.hasOwnProperty(p)){const N=e.ObjectGetOwnPropertyDescriptor(O,p);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,M),e._redefineProperty(b.prototype,p,N)):O[p]&&(O[p]=e.wrapWithCurrentZone(O[p],M))}else O[p]&&(O[p]=e.wrapWithCurrentZone(O[p],M))}catch{}}),y.call(n,d,b,v)},e.attachOriginToPatched(n[o],y)}function Qe(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function et(e,n,i,o){e&&qe(e,Qe(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=qe,i.patchMethod=ae,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=pe,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Se,i.ArraySlice=it,i.patchClass=ge,i.wrapWithCurrentZone=Ie,i.filterProperties=Qe,i.attachOriginToPatched=le,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:ze,zoneSymbolEventNames:te,eventNames:o,isBrowser:Ae,isMix:Be,isNode:Pe,TRUE_STR:ie,FALSE_STR:ce,ZONE_SYMBOL_PREFIX:me,ADD_EVENT_LISTENER_STR:Ze,REMOVE_EVENT_LISTENER_STR:De})});const Re=j("zoneTask");function Te(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const p=v.data;return p.args[0]=function(){return v.invoke.apply(this,arguments)},p.handleId=c.apply(e,p.args),v}function b(v){return a.call(e,v.data.handleId)}c=ae(e,n+=o,v=>function(p,M){if("function"==typeof M[0]){const O={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?M[1]||0:void 0,args:M},N=M[0];M[0]=function(){try{return N.apply(this,arguments)}finally{O.isPeriodic||("number"==typeof O.handleId?delete y[O.handleId]:O.handleId&&(O.handleId[Re]=null))}};const B=Me(n,M[0],O,d,b);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Re]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,M)}),a=ae(e,i,v=>function(p,M){const O=M[0];let N;"number"==typeof O?N=y[O]:(N=O&&O[Re],N||(N=O)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof O?delete y[O]:O&&(O[Re]=null),N.zone.cancelTask(N)):v.apply(e,M)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("timers",e=>{const n="set",i="clear";Te(e,n,i,"Timeout"),Te(e,n,i,"Interval"),Te(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{Te(e,"request","cancel","AnimationFrame"),Te(e,"mozRequest","mozCancel","AnimationFrame"),Te(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(b,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function gt(e,n){n.patchEventPrototype(e,n)})(e,i),function mt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let b=0;b{ge("MutationObserver"),ge("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ge("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ge("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(Pe&&!Be||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(Ae){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=_e.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];et(c,He(c),i&&i.concat(a),ve(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function pt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function b(v){const p=v.XMLHttpRequest;if(!p)return;const M=p.prototype;let N=M[Oe],B=M[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Oe],B=I[Ne]}}const H="readystatechange",K="scheduled";function q(h){const I=h.data,P=I.target;P[a]=!1,P[d]=!1;const Q=P[c];N||(N=P[Oe],B=P[Ne]),Q&&B.call(P,H,Q);const oe=P[c]=()=>{if(P.readyState===P.DONE)if(!I.aborted&&P[a]&&h.state===K){const U=P[n.__symbol__("loadfalse")];if(0!==P.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=P[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],J.apply(h,I)}),X=j("fetchTaskAborting"),A=j("fetchTaskScheduling"),E=ae(M,"send",()=>function(h,I){if(!0===n.current[A]||h[o])return E.apply(h,I);{const P={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,P,q,_);h&&!0===h[d]&&!P.aborted&&Q.state===K&&Q.invoke()}}),G=ae(M,"abort",()=>function(h,I){const P=function O(h){return h[i]}(h);if(P&&"string"==typeof P.type){if(null==P.cancelFn||P.data&&P.data.aborted)return;P.zone.cancelTask(P)}else if(!0===n.current[X])return G.apply(h,I)})}(e);const i=j("xhrTask"),o=j("xhrSync"),c=j("xhrListener"),a=j("xhrScheduled"),y=j("xhrURL"),d=j("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const b=function(){return d.apply(this,Le(arguments,i+"."+c))};return le(b,d),b})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Ke(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const b=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(b)}})}}e.PromiseRejectionEvent&&(n[j("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[j("rejectionHandledHandler")]=i("rejectionhandled"))}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{!function yt(e,n){n.patchMethod(e,"queueMicrotask",i=>function(o,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}(e,i)})}},ue=>{ue(ue.s=332)}]); \ No newline at end of file diff --git a/angular/dist/control_stock/runtime.058989a62d5912ed.js b/angular/dist/control_stock/runtime.058989a62d5912ed.js deleted file mode 100644 index 837b970..0000000 --- a/angular/dist/control_stock/runtime.058989a62d5912ed.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,i={},_={};function a(e){var l=_[e];if(void 0!==l)return l.exports;var r=_[e]={exports:{}};return i[e](r,r.exports,a),r.exports}a.m=i,e=[],a.O=(l,r,f,o)=>{if(!r){var t=1/0;for(n=0;n=o)&&Object.keys(a.O).every(k=>a.O[k](r[c]))?r.splice(c--,1):(u=!1,o0&&e[n-1][2]>o;n--)e[n]=e[n-1];e[n]=[r,f,o]},a.o=(e,l)=>Object.prototype.hasOwnProperty.call(e,l),(()=>{var e={666:0};a.O.j=f=>0===e[f];var l=(f,o)=>{var c,s,[n,t,u]=o,v=0;if(n.some(h=>0!==e[h])){for(c in t)a.o(t,c)&&(a.m[c]=t[c]);if(u)var d=u(a)}for(f&&f(o);vcode{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:.25rem}.g-1,.gy-1{--bs-gutter-y:.25rem}.g-2,.gx-2{--bs-gutter-x:.5rem}.g-2,.gy-2{--bs-gutter-y:.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:.75rem;--bs-btn-padding-y:.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, .15),0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity:.65;--bs-btn-focus-box-shadow:0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:.25rem;--bs-btn-padding-x:.5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:.5rem;--bs-dropdown-spacer:.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, .15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:.5rem;--bs-navbar-toggler-padding-y:.25rem;--bs-navbar-toggler-padding-x:.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:.25rem;--bs-navbar-toggler-transition:box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, .55);--bs-navbar-hover-color:rgba(255, 255, 255, .75);--bs-navbar-disabled-color:rgba(255, 255, 255, .25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform .2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:.75rem;--bs-pagination-padding-y:.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:.5rem;--bs-pagination-padding-y:.25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:.65em;--bs-badge-padding-y:.35em;--bs-badge-font-size:.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:.5;--bs-btn-close-hover-opacity:.75;--bs-btn-close-focus-shadow:0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:.75rem;--bs-toast-padding-y:.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:.5rem;--bs-tooltip-padding-y:.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:.9;--bs-tooltip-arrow-width:.8rem;--bs-tooltip-arrow-height:.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translate(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-border-width:.25em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-.125em;--bs-spinner-animation-speed:.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform .3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:.1}.border-opacity-25{--bs-border-opacity:.25}.border-opacity-50{--bs-border-opacity:.5}.border-opacity-75{--bs-border-opacity:.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:#00000080!important}.text-white-50{--bs-text-opacity:1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:.25}.text-opacity-50{--bs-text-opacity:.5}.text-opacity-75{--bs-text-opacity:.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:.1}.bg-opacity-25{--bs-bg-opacity:.25}.bg-opacity-50{--bs-bg-opacity:.5}.bg-opacity-75{--bs-bg-opacity:.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{object-fit:contain!important}.object-fit-sm-cover{object-fit:cover!important}.object-fit-sm-fill{object-fit:fill!important}.object-fit-sm-scale{object-fit:scale-down!important}.object-fit-sm-none{object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{column-gap:0!important}.column-gap-sm-1{column-gap:.25rem!important}.column-gap-sm-2{column-gap:.5rem!important}.column-gap-sm-3{column-gap:1rem!important}.column-gap-sm-4{column-gap:1.5rem!important}.column-gap-sm-5{column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{object-fit:contain!important}.object-fit-md-cover{object-fit:cover!important}.object-fit-md-fill{object-fit:fill!important}.object-fit-md-scale{object-fit:scale-down!important}.object-fit-md-none{object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{column-gap:0!important}.column-gap-md-1{column-gap:.25rem!important}.column-gap-md-2{column-gap:.5rem!important}.column-gap-md-3{column-gap:1rem!important}.column-gap-md-4{column-gap:1.5rem!important}.column-gap-md-5{column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{object-fit:contain!important}.object-fit-lg-cover{object-fit:cover!important}.object-fit-lg-fill{object-fit:fill!important}.object-fit-lg-scale{object-fit:scale-down!important}.object-fit-lg-none{object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{column-gap:0!important}.column-gap-lg-1{column-gap:.25rem!important}.column-gap-lg-2{column-gap:.5rem!important}.column-gap-lg-3{column-gap:1rem!important}.column-gap-lg-4{column-gap:1.5rem!important}.column-gap-lg-5{column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{object-fit:contain!important}.object-fit-xl-cover{object-fit:cover!important}.object-fit-xl-fill{object-fit:fill!important}.object-fit-xl-scale{object-fit:scale-down!important}.object-fit-xl-none{object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{column-gap:0!important}.column-gap-xl-1{column-gap:.25rem!important}.column-gap-xl-2{column-gap:.5rem!important}.column-gap-xl-3{column-gap:1rem!important}.column-gap-xl-4{column-gap:1.5rem!important}.column-gap-xl-5{column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{object-fit:contain!important}.object-fit-xxl-cover{object-fit:cover!important}.object-fit-xxl-fill{object-fit:fill!important}.object-fit-xxl-scale{object-fit:scale-down!important}.object-fit-xxl-none{object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{column-gap:0!important}.column-gap-xxl-1{column-gap:.25rem!important}.column-gap-xxl-2{column-gap:.5rem!important}.column-gap-xxl-3{column-gap:1rem!important}.column-gap-xxl-4{column-gap:1.5rem!important}.column-gap-xxl-5{column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} From 7ca3fa2e3b0eeea9350455d2187b57eb1f9e59b2 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:24:24 -0300 Subject: [PATCH 14/22] Delete angular/i --- angular/i | 1 - 1 file changed, 1 deletion(-) delete mode 100644 angular/i diff --git a/angular/i b/angular/i deleted file mode 100644 index 8b13789..0000000 --- a/angular/i +++ /dev/null @@ -1 +0,0 @@ - From 84abba05e87734a45bdd6f039f0894038ef7572c Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:33:17 -0300 Subject: [PATCH 15/22] Add files via upload --- angular/src/app/form/form.component.css | 45 +++++++++++++++++++ angular/src/app/form/form.component.html | 57 +++++++++++++----------- 2 files changed, 77 insertions(+), 25 deletions(-) diff --git a/angular/src/app/form/form.component.css b/angular/src/app/form/form.component.css index e69de29..e017508 100644 --- a/angular/src/app/form/form.component.css +++ b/angular/src/app/form/form.component.css @@ -0,0 +1,45 @@ +/* Center the form and make inputs smaller */ +.my-form { + text-align: center; + max-width: 400px; + margin: 0 auto; + } + + /* Custom input style */ + .custom-input { + border: 1px solid #3498db; + border-radius: 5px; + padding: 5px; + width: 100%; + margin-bottom: 10px; + } + + /* Custom select style */ + .custom-select { + border: 1px solid #e74c3c; + border-radius: 5px; + padding: 5px; + width: 100%; + margin-bottom: 10px; + } + + /* Custom button style */ + .custom-button { + background-color: #27ae60; + border: none; + color: white; + padding: 10px 20px; + border-radius: 5px; + cursor: pointer; + width: 100%; + } + .page-header { + font-size: 24px; + text-align: center; + margin-bottom: 20px; + color: #333; /* Color de texto deseado */ + } + /* Optional: Add more custom styles as needed */ + + /* Optional: Add more custom styles as needed */ + \ No newline at end of file diff --git a/angular/src/app/form/form.component.html b/angular/src/app/form/form.component.html index ed49488..144b17c 100644 --- a/angular/src/app/form/form.component.html +++ b/angular/src/app/form/form.component.html @@ -1,26 +1,33 @@ -
-
- - -
-
- - -
-
- - -
-
- - -
- -
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + From 79971c31aa440d9e9d53d83a83dafbeb3a61e737 Mon Sep 17 00:00:00 2001 From: SomeTheodor <137733932+SomeTheodor@users.noreply.github.com> Date: Wed, 1 Nov 2023 12:08:41 -0300 Subject: [PATCH 16/22] Add files via upload --- angular/src/app/form/form.component.css | 12 +++-- angular/src/app/form/form.component.html | 20 ++++++-- angular/src/app/form/form.component.ts | 65 ++++++++++++++++-------- 3 files changed, 69 insertions(+), 28 deletions(-) diff --git a/angular/src/app/form/form.component.css b/angular/src/app/form/form.component.css index e017508..14b72b2 100644 --- a/angular/src/app/form/form.component.css +++ b/angular/src/app/form/form.component.css @@ -39,7 +39,13 @@ margin-bottom: 20px; color: #333; /* Color de texto deseado */ } - /* Optional: Add more custom styles as needed */ - - /* Optional: Add more custom styles as needed */ + .error-message { + background-color: #f44336; /* Color de fondo rojo */ + color: white; /* Color de texto blanco */ + padding: 10px; /* Espaciado interior */ + border: 1px solid #d32f2f; /* Borde rojo */ + border-radius: 4px; /* Bordes redondeados */ + margin-top: 10px; /* Margen superior para separar de otros elementos */ + text-align: center; + } \ No newline at end of file diff --git a/angular/src/app/form/form.component.html b/angular/src/app/form/form.component.html index 144b17c..2fcc55f 100644 --- a/angular/src/app/form/form.component.html +++ b/angular/src/app/form/form.component.html @@ -2,6 +2,9 @@

Ingresa tu Movimiento

+
+ {{ errorMensaje }} +
@@ -9,11 +12,18 @@

Ingresa tu Movimiento

- - -
+ + + +

Cantidad total del producto: {{ cantidadProducto }}

+ +
    +
  • + {{ deposito.deposito.nombre }} - Cantidad: {{ deposito.cantidad }} +
  • +
-

Cantidad total del producto: {{ cantidadProducto }}

+

Cantidad total del producto: {{ cantidadProducto }}

-
    -
  • +
      +
    • {{ deposito.deposito.nombre }} - Cantidad: {{ deposito.cantidad }}
    • -
    +
+