aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/css/main.css7392
-rw-r--r--docs/css/main.min.css2
-rw-r--r--docs/css/main.min.css.map1
-rw-r--r--docs/img/doge420logo.pngbin0 -> 27879 bytes
-rw-r--r--docs/index.html85
-rw-r--r--docs/js/RDKit_minimal.js1
-rw-r--r--docs/js/RDKit_minimal.min.js2
-rw-r--r--docs/js/RDKit_minimal.min.js.map1
-rw-r--r--docs/js/RDKit_minimal.wasmbin0 -> 4603887 bytes
-rw-r--r--docs/js/main.js8910
-rw-r--r--docs/js/main.min.js2
-rw-r--r--docs/js/main.min.js.map1
-rw-r--r--docs/js/my.js0
-rw-r--r--docs/js/my.min.js2
-rw-r--r--docs/js/my.min.js.map1
15 files changed, 16400 insertions, 0 deletions
diff --git a/docs/css/main.css b/docs/css/main.css
new file mode 100644
index 0000000..4edf0a5
--- /dev/null
+++ b/docs/css/main.css
@@ -0,0 +1,7392 @@
+:root {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #cc2eaa;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #2ecc71;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-primary: #0d6efd;
+ --bs-secondary: #6c757d;
+ --bs-success: #2ecc71;
+ --bs-info: #0dcaf0;
+ --bs-warning: #ffc107;
+ --bs-danger: #cc2eaa;
+ --bs-light: #f8f9fa;
+ --bs-dark: #212529;
+ --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); }
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box; }
+
+@media (prefers-reduced-motion: no-preference) {
+ :root {
+ scroll-behavior: smooth; } }
+
+body {
+ margin: 0;
+ font-family: var(--bs-font-sans-serif);
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+
+[tabindex="-1"]:focus:not(:focus-visible) {
+ outline: 0 !important; }
+
+hr {
+ margin: 1rem 0;
+ color: inherit;
+ background-color: currentColor;
+ border: 0;
+ opacity: 0.25; }
+
+hr:not([size]) {
+ height: 1px; }
+
+h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ line-height: 1.2; }
+
+h1, .h1 {
+ font-size: calc(1.375rem + 1.5vw); }
+ @media (min-width: 1200px) {
+ h1, .h1 {
+ font-size: 2.5rem; } }
+
+h2, .h2 {
+ font-size: calc(1.325rem + 0.9vw); }
+ @media (min-width: 1200px) {
+ h2, .h2 {
+ font-size: 2rem; } }
+
+h3, .h3 {
+ font-size: calc(1.3rem + 0.6vw); }
+ @media (min-width: 1200px) {
+ h3, .h3 {
+ font-size: 1.75rem; } }
+
+h4, .h4 {
+ font-size: calc(1.275rem + 0.3vw); }
+ @media (min-width: 1200px) {
+ h4, .h4 {
+ font-size: 1.5rem; } }
+
+h5, .h5 {
+ font-size: 1.25rem; }
+
+h6, .h6 {
+ font-size: 1rem; }
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem; }
+
+abbr[title],
+abbr[data-bs-original-title] {
+ text-decoration: underline;
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+ cursor: help;
+ -webkit-text-decoration-skip-ink: none;
+ text-decoration-skip-ink: none; }
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit; }
+
+ol,
+ul {
+ padding-left: 2rem; }
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem; }
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0; }
+
+dt {
+ font-weight: 700; }
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0; }
+
+blockquote {
+ margin: 0 0 1rem; }
+
+b,
+strong {
+ font-weight: bolder; }
+
+small, .small {
+ font-size: 0.875em; }
+
+mark, .mark {
+ padding: 0.2em;
+ background-color: #fcf8e3; }
+
+sub,
+sup {
+ position: relative;
+ font-size: 0.75em;
+ line-height: 0;
+ vertical-align: baseline; }
+
+sub {
+ bottom: -.25em; }
+
+sup {
+ top: -.5em; }
+
+a {
+ color: #0d6efd;
+ text-decoration: underline; }
+ a:hover {
+ color: #0a58ca; }
+
+a:not([href]):not([class]), a:not([href]):not([class]):hover {
+ color: inherit;
+ text-decoration: none; }
+
+pre,
+code,
+kbd,
+samp {
+ font-family: var(--bs-font-monospace);
+ font-size: 1em;
+ direction: ltr /* rtl:ignore */;
+ unicode-bidi: bidi-override; }
+
+pre {
+ display: block;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+ font-size: 0.875em; }
+ pre code {
+ font-size: inherit;
+ color: inherit;
+ word-break: normal; }
+
+code {
+ font-size: 0.875em;
+ color: #d63384;
+ word-wrap: break-word; }
+ a > code {
+ color: inherit; }
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 0.875em;
+ color: #fff;
+ background-color: #212529;
+ border-radius: 0.2rem; }
+ kbd kbd {
+ padding: 0;
+ font-size: 1em;
+ font-weight: 700; }
+
+figure {
+ margin: 0 0 1rem; }
+
+img,
+svg {
+ vertical-align: middle; }
+
+table {
+ caption-side: bottom;
+ border-collapse: collapse; }
+
+caption {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ color: #6c757d;
+ text-align: left; }
+
+th {
+ text-align: inherit;
+ text-align: -webkit-match-parent; }
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0; }
+
+label {
+ display: inline-block; }
+
+button {
+ border-radius: 0; }
+
+button:focus:not(:focus-visible) {
+ outline: 0; }
+
+input,
+button,
+select,
+optgroup,
+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; }
+
+[list]::-webkit-calendar-picker-indicator {
+ display: none; }
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; }
+ button:not(:disabled),
+ [type="button"]:not(:disabled),
+ [type="reset"]:not(:disabled),
+ [type="submit"]: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: 0.5rem;
+ font-size: calc(1.275rem + 0.3vw);
+ line-height: inherit; }
+ @media (min-width: 1200px) {
+ legend {
+ font-size: 1.5rem; } }
+ legend + * {
+ clear: left; }
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+ padding: 0; }
+
+::-webkit-inner-spin-button {
+ height: auto; }
+
+[type="search"] {
+ outline-offset: -2px;
+ -webkit-appearance: textfield; }
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+::-webkit-color-swatch-wrapper {
+ padding: 0; }
+
+::file-selector-button {
+ font: inherit; }
+
+::-webkit-file-upload-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 {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline-item {
+ display: inline-block; }
+ .list-inline-item:not(:last-child) {
+ margin-right: 0.5rem; }
+
+.initialism {
+ font-size: 0.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: 0.875em;
+ color: #6c757d; }
+ .blockquote-footer::before {
+ content: "\2014\00A0"; }
+
+.img-fluid {
+ max-width: 100%;
+ height: auto; }
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+ border-radius: 0.25rem;
+ max-width: 100%;
+ height: auto; }
+
+.figure {
+ display: inline-block; }
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1; }
+
+.figure-caption {
+ font-size: 0.875em;
+ color: #6c757d; }
+
+.container,
+.container-fluid,
+.container-sm,
+.container-md,
+.container-lg,
+.container-xl,
+.container-xxl {
+ width: 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left: var(--bs-gutter-x, 0.75rem);
+ margin-right: auto;
+ margin-left: auto; }
+
+@media (min-width: 576px) {
+ .container, .container-sm {
+ max-width: 540px; } }
+
+@media (min-width: 768px) {
+ .container, .container-sm, .container-md {
+ max-width: 720px; } }
+
+@media (min-width: 992px) {
+ .container, .container-sm, .container-md, .container-lg {
+ max-width: 960px; } }
+
+@media (min-width: 1200px) {
+ .container, .container-sm, .container-md, .container-lg, .container-xl {
+ max-width: 1140px; } }
+
+@media (min-width: 1400px) {
+ .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
+ max-width: 1320px; } }
+
+.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(var(--bs-gutter-y) * -1);
+ margin-right: calc(var(--bs-gutter-x) / -2);
+ margin-left: calc(var(--bs-gutter-x) / -2); }
+ .row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) / 2);
+ padding-left: calc(var(--bs-gutter-x) / 2);
+ 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.33333%; }
+
+.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.66667%; }
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto; }
+
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+
+.offset-1 {
+ margin-left: 8.33333%; }
+
+.offset-2 {
+ margin-left: 16.66667%; }
+
+.offset-3 {
+ margin-left: 25%; }
+
+.offset-4 {
+ margin-left: 33.33333%; }
+
+.offset-5 {
+ margin-left: 41.66667%; }
+
+.offset-6 {
+ margin-left: 50%; }
+
+.offset-7 {
+ margin-left: 58.33333%; }
+
+.offset-8 {
+ margin-left: 66.66667%; }
+
+.offset-9 {
+ margin-left: 75%; }
+
+.offset-10 {
+ margin-left: 83.33333%; }
+
+.offset-11 {
+ margin-left: 91.66667%; }
+
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0; }
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0; }
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem; }
+
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem; }
+
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem; }
+
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.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.33333%; }
+ .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.66667%; }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-sm-0 {
+ margin-left: 0; }
+ .offset-sm-1 {
+ margin-left: 8.33333%; }
+ .offset-sm-2 {
+ margin-left: 16.66667%; }
+ .offset-sm-3 {
+ margin-left: 25%; }
+ .offset-sm-4 {
+ margin-left: 33.33333%; }
+ .offset-sm-5 {
+ margin-left: 41.66667%; }
+ .offset-sm-6 {
+ margin-left: 50%; }
+ .offset-sm-7 {
+ margin-left: 58.33333%; }
+ .offset-sm-8 {
+ margin-left: 66.66667%; }
+ .offset-sm-9 {
+ margin-left: 75%; }
+ .offset-sm-10 {
+ margin-left: 83.33333%; }
+ .offset-sm-11 {
+ margin-left: 91.66667%; }
+ .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: 0.25rem; }
+ .g-sm-1,
+ .gy-sm-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-sm-2,
+ .gx-sm-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-sm-2,
+ .gy-sm-2 {
+ --bs-gutter-y: 0.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.33333%; }
+ .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.66667%; }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-md-0 {
+ margin-left: 0; }
+ .offset-md-1 {
+ margin-left: 8.33333%; }
+ .offset-md-2 {
+ margin-left: 16.66667%; }
+ .offset-md-3 {
+ margin-left: 25%; }
+ .offset-md-4 {
+ margin-left: 33.33333%; }
+ .offset-md-5 {
+ margin-left: 41.66667%; }
+ .offset-md-6 {
+ margin-left: 50%; }
+ .offset-md-7 {
+ margin-left: 58.33333%; }
+ .offset-md-8 {
+ margin-left: 66.66667%; }
+ .offset-md-9 {
+ margin-left: 75%; }
+ .offset-md-10 {
+ margin-left: 83.33333%; }
+ .offset-md-11 {
+ margin-left: 91.66667%; }
+ .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: 0.25rem; }
+ .g-md-1,
+ .gy-md-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-md-2,
+ .gx-md-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-md-2,
+ .gy-md-2 {
+ --bs-gutter-y: 0.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.33333%; }
+ .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.66667%; }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-lg-0 {
+ margin-left: 0; }
+ .offset-lg-1 {
+ margin-left: 8.33333%; }
+ .offset-lg-2 {
+ margin-left: 16.66667%; }
+ .offset-lg-3 {
+ margin-left: 25%; }
+ .offset-lg-4 {
+ margin-left: 33.33333%; }
+ .offset-lg-5 {
+ margin-left: 41.66667%; }
+ .offset-lg-6 {
+ margin-left: 50%; }
+ .offset-lg-7 {
+ margin-left: 58.33333%; }
+ .offset-lg-8 {
+ margin-left: 66.66667%; }
+ .offset-lg-9 {
+ margin-left: 75%; }
+ .offset-lg-10 {
+ margin-left: 83.33333%; }
+ .offset-lg-11 {
+ margin-left: 91.66667%; }
+ .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: 0.25rem; }
+ .g-lg-1,
+ .gy-lg-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-lg-2,
+ .gx-lg-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-lg-2,
+ .gy-lg-2 {
+ --bs-gutter-y: 0.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.33333%; }
+ .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.66667%; }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-xl-0 {
+ margin-left: 0; }
+ .offset-xl-1 {
+ margin-left: 8.33333%; }
+ .offset-xl-2 {
+ margin-left: 16.66667%; }
+ .offset-xl-3 {
+ margin-left: 25%; }
+ .offset-xl-4 {
+ margin-left: 33.33333%; }
+ .offset-xl-5 {
+ margin-left: 41.66667%; }
+ .offset-xl-6 {
+ margin-left: 50%; }
+ .offset-xl-7 {
+ margin-left: 58.33333%; }
+ .offset-xl-8 {
+ margin-left: 66.66667%; }
+ .offset-xl-9 {
+ margin-left: 75%; }
+ .offset-xl-10 {
+ margin-left: 83.33333%; }
+ .offset-xl-11 {
+ margin-left: 91.66667%; }
+ .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: 0.25rem; }
+ .g-xl-1,
+ .gy-xl-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-xl-2,
+ .gx-xl-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-xl-2,
+ .gy-xl-2 {
+ --bs-gutter-y: 0.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.33333%; }
+ .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.66667%; }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-xxl-0 {
+ margin-left: 0; }
+ .offset-xxl-1 {
+ margin-left: 8.33333%; }
+ .offset-xxl-2 {
+ margin-left: 16.66667%; }
+ .offset-xxl-3 {
+ margin-left: 25%; }
+ .offset-xxl-4 {
+ margin-left: 33.33333%; }
+ .offset-xxl-5 {
+ margin-left: 41.66667%; }
+ .offset-xxl-6 {
+ margin-left: 50%; }
+ .offset-xxl-7 {
+ margin-left: 58.33333%; }
+ .offset-xxl-8 {
+ margin-left: 66.66667%; }
+ .offset-xxl-9 {
+ margin-left: 75%; }
+ .offset-xxl-10 {
+ margin-left: 83.33333%; }
+ .offset-xxl-11 {
+ margin-left: 91.66667%; }
+ .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: 0.25rem; }
+ .g-xxl-1,
+ .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-xxl-2,
+ .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-xxl-2,
+ .gy-xxl-2 {
+ --bs-gutter-y: 0.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-bg: transparent;
+ --bs-table-striped-color: #212529;
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: #212529;
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: #212529;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+ vertical-align: top;
+ border-color: #dee2e6; }
+ .table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); }
+ .table > tbody {
+ vertical-align: inherit; }
+ .table > thead {
+ vertical-align: bottom; }
+ .table > :not(:last-child) > :last-child > * {
+ border-bottom-color: currentColor; }
+
+.caption-top {
+ caption-side: top; }
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem; }
+
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0; }
+ .table-bordered > :not(caption) > * > * {
+ border-width: 0 1px; }
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0; }
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color); }
+
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color); }
+
+.table-hover > tbody > tr:hover {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color); }
+
+.table-primary {
+ --bs-table-bg: #cfe2ff;
+ --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: #000;
+ border-color: #bacbe6; }
+
+.table-secondary {
+ --bs-table-bg: #e2e3e5;
+ --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: #000;
+ border-color: #cbccce; }
+
+.table-success {
+ --bs-table-bg: #d5f5e3;
+ --bs-table-striped-bg: #cae9d8;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #c0ddcc;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c5e3d2;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #c0ddcc; }
+
+.table-info {
+ --bs-table-bg: #cff4fc;
+ --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: #000;
+ border-color: #badce3; }
+
+.table-warning {
+ --bs-table-bg: #fff3cd;
+ --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: #000;
+ border-color: #e6dbb9; }
+
+.table-danger {
+ --bs-table-bg: #f5d5ee;
+ --bs-table-striped-bg: #e9cae2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #ddc0d6;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e3c5dc;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #ddc0d6; }
+
+.table-light {
+ --bs-table-bg: #f8f9fa;
+ --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: #000;
+ border-color: #dfe0e1; }
+
+.table-dark {
+ --bs-table-bg: #212529;
+ --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: #fff;
+ border-color: #373b3e; }
+
+.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: 0.5rem; }
+
+.col-form-label {
+ padding-top: calc(0.375rem + 1px);
+ padding-bottom: calc(0.375rem + 1px);
+ margin-bottom: 0;
+ font-size: inherit;
+ line-height: 1.5; }
+
+.col-form-label-lg {
+ padding-top: calc(0.5rem + 1px);
+ padding-bottom: calc(0.5rem + 1px);
+ font-size: 1.25rem; }
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem + 1px);
+ padding-bottom: calc(0.25rem + 1px);
+ font-size: 0.875rem; }
+
+.form-text {
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #6c757d; }
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 0.25rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.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: #212529;
+ background-color: #fff;
+ border-color: #86b7fe;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+ .form-control::-webkit-date-and-time-value {
+ height: 1.5em; }
+ .form-control::-moz-placeholder {
+ color: #6c757d;
+ opacity: 1; }
+ .form-control:-ms-input-placeholder {
+ color: #6c757d;
+ opacity: 1; }
+ .form-control::placeholder {
+ color: #6c757d;
+ opacity: 1; }
+ .form-control:disabled, .form-control[readonly] {
+ background-color: #e9ecef;
+ opacity: 1; }
+ .form-control::file-selector-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ -webkit-margin-end: 0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.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: #dde0e3; }
+ .form-control::-webkit-file-upload-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ -webkit-margin-end: 0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-control::-webkit-file-upload-button {
+ -webkit-transition: none;
+ transition: none; } }
+ .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #dde0e3; }
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0;
+ margin-bottom: 0;
+ line-height: 1.5;
+ color: #212529;
+ background-color: transparent;
+ border: solid transparent;
+ border-width: 1px 0; }
+ .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+ padding-right: 0;
+ padding-left: 0; }
+
+.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + 2px);
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem; }
+ .form-control-sm::file-selector-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ -webkit-margin-end: 0.5rem;
+ margin-inline-end: 0.5rem; }
+ .form-control-sm::-webkit-file-upload-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ -webkit-margin-end: 0.5rem;
+ margin-inline-end: 0.5rem; }
+
+.form-control-lg {
+ min-height: calc(1.5em + 1rem + 2px);
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem; }
+ .form-control-lg::file-selector-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem; }
+ .form-control-lg::-webkit-file-upload-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem; }
+
+textarea.form-control {
+ min-height: calc(1.5em + 0.75rem + 2px); }
+
+textarea.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + 2px); }
+
+textarea.form-control-lg {
+ min-height: calc(1.5em + 1rem + 2px); }
+
+.form-control-color {
+ max-width: 3rem;
+ height: auto;
+ padding: 0.375rem; }
+ .form-control-color:not(:disabled):not([readonly]) {
+ cursor: pointer; }
+ .form-control-color::-moz-color-swatch {
+ height: 1.5em;
+ border-radius: 0.25rem; }
+ .form-control-color::-webkit-color-swatch {
+ height: 1.5em;
+ border-radius: 0.25rem; }
+
+.form-select {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right 0.75rem center;
+ background-size: 16px 12px;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none; }
+ .form-select:focus {
+ border-color: #86b7fe;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+ .form-select[multiple], .form-select[size]:not([size="1"]) {
+ padding-right: 0.75rem;
+ background-image: none; }
+ .form-select:disabled {
+ color: #6c757d;
+ background-color: #e9ecef; }
+ .form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 #212529; }
+
+.form-select-sm {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ padding-left: 0.5rem;
+ font-size: 0.875rem; }
+
+.form-select-lg {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 1rem;
+ font-size: 1.25rem; }
+
+.form-check {
+ display: block;
+ min-height: 1.5rem;
+ padding-left: 1.5em;
+ margin-bottom: 0.125rem; }
+ .form-check .form-check-input {
+ float: left;
+ margin-left: -1.5em; }
+
+.form-check-input {
+ width: 1em;
+ height: 1em;
+ margin-top: 0.25em;
+ vertical-align: top;
+ background-color: #fff;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: 1px solid rgba(0, 0, 0, 0.25);
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ -webkit-print-color-adjust: exact;
+ color-adjust: exact; }
+ .form-check-input[type="checkbox"] {
+ border-radius: 0.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 0.25rem rgba(13, 110, 253, 0.25); }
+ .form-check-input:checked {
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+ .form-check-input:checked[type="checkbox"] {
+ background-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 10l3 3l6-6'/%3e%3c/svg%3e"); }
+ .form-check-input:checked[type="radio"] {
+ background-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;
+ background-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: 0.5; }
+ .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ opacity: 0.5; }
+
+.form-switch {
+ padding-left: 2.5em; }
+ .form-switch .form-check-input {
+ width: 2em;
+ margin-left: -2.5em;
+ background-image: 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");
+ background-position: left center;
+ border-radius: 2em;
+ transition: background-position 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-switch .form-check-input {
+ transition: none; } }
+ .form-switch .form-check-input:focus {
+ background-image: 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;
+ background-image: 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-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: 0.65; }
+
+.form-range {
+ width: 100%;
+ height: 1.5rem;
+ padding: 0;
+ background-color: transparent;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none; }
+ .form-range:focus {
+ outline: 0; }
+ .form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+ .form-range:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+ .form-range::-moz-focus-outer {
+ border: 0; }
+ .form-range::-webkit-slider-thumb {
+ width: 1rem;
+ height: 1rem;
+ margin-top: -0.25rem;
+ background-color: #0d6efd;
+ border: 0;
+ border-radius: 1rem;
+ -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ -webkit-appearance: none;
+ appearance: none; }
+ @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: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem; }
+ .form-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #0d6efd;
+ border: 0;
+ border-radius: 1rem;
+ -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ -moz-appearance: none;
+ appearance: none; }
+ @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: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem; }
+ .form-range:disabled {
+ pointer-events: none; }
+ .form-range:disabled::-webkit-slider-thumb {
+ background-color: #adb5bd; }
+ .form-range:disabled::-moz-range-thumb {
+ background-color: #adb5bd; }
+
+.form-floating {
+ position: relative; }
+ .form-floating > .form-control,
+ .form-floating > .form-select {
+ height: calc(3.5rem + 2px);
+ padding: 1rem 0.75rem; }
+ .form-floating > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ padding: 1rem 0.75rem;
+ pointer-events: none;
+ border: 1px solid transparent;
+ transform-origin: 0 0;
+ transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-floating > label {
+ transition: none; } }
+ .form-floating > .form-control::-moz-placeholder {
+ color: transparent; }
+ .form-floating > .form-control:-ms-input-placeholder {
+ color: transparent; }
+ .form-floating > .form-control::placeholder {
+ color: transparent; }
+ .form-floating > .form-control:not(:-moz-placeholder-shown) {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:not(:-ms-input-placeholder) {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:-webkit-autofill {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-select {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+ .form-floating > .form-control:not(:-ms-input-placeholder) ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+ .form-floating > .form-control:focus ~ label,
+ .form-floating > .form-control:not(:placeholder-shown) ~ label,
+ .form-floating > .form-select ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+ .form-floating > .form-control:-webkit-autofill ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%; }
+ .input-group > .form-control,
+ .input-group > .form-select {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0; }
+ .input-group > .form-control:focus,
+ .input-group > .form-select:focus {
+ z-index: 3; }
+ .input-group .btn {
+ position: relative;
+ z-index: 2; }
+ .input-group .btn:focus {
+ z-index: 3; }
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #e9ecef;
+ border: 1px solid #ced4da;
+ border-radius: 0.25rem; }
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem; }
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem; }
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: 3rem; }
+
+.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
+.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),
+.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4) {
+ 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: -1px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.valid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #2ecc71; }
+
+.valid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: .1rem;
+ font-size: 0.875rem;
+ color: #000;
+ background-color: rgba(46, 204, 113, 0.9);
+ border-radius: 0.25rem; }
+
+.was-validated :valid ~ .valid-feedback,
+.was-validated :valid ~ .valid-tooltip,
+.is-valid ~ .valid-feedback,
+.is-valid ~ .valid-tooltip {
+ display: block; }
+
+.was-validated .form-control:valid, .form-control.is-valid {
+ border-color: #2ecc71;
+ padding-right: calc(1.5em + 0.75rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232ecc71' d='M2.3 6.73L.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(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+ border-color: #2ecc71;
+ box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }
+
+.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
+
+.was-validated .form-select:valid, .form-select.is-valid {
+ border-color: #2ecc71;
+ padding-right: 4.125rem;
+ background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232ecc71' d='M2.3 6.73L.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-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+ border-color: #2ecc71;
+ box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: #2ecc71; }
+ .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: #2ecc71; }
+ .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }
+ .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: #2ecc71; }
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+ margin-left: .5em; }
+
+.invalid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #cc2eaa; }
+
+.invalid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: .1rem;
+ font-size: 0.875rem;
+ color: #fff;
+ background-color: rgba(204, 46, 170, 0.9);
+ border-radius: 0.25rem; }
+
+.was-validated :invalid ~ .invalid-feedback,
+.was-validated :invalid ~ .invalid-tooltip,
+.is-invalid ~ .invalid-feedback,
+.is-invalid ~ .invalid-tooltip {
+ display: block; }
+
+.was-validated .form-control:invalid, .form-control.is-invalid {
+ border-color: #cc2eaa;
+ padding-right: calc(1.5em + 0.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='%23cc2eaa'%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='%23cc2eaa' stroke='none'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+ border-color: #cc2eaa;
+ box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }
+
+.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
+
+.was-validated .form-select:invalid, .form-select.is-invalid {
+ border-color: #cc2eaa;
+ padding-right: 4.125rem;
+ background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e"), 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='%23cc2eaa'%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='%23cc2eaa' stroke='none'/%3e%3c/svg%3e");
+ background-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+ border-color: #cc2eaa;
+ box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+ border-color: #cc2eaa; }
+ .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: #cc2eaa; }
+ .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }
+ .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: #cc2eaa; }
+
+.form-check-inline .form-check-input ~ .invalid-feedback {
+ margin-left: .5em; }
+
+.btn {
+ display: inline-block;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ border-radius: 0.25rem;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none; } }
+ .btn:hover {
+ color: #212529; }
+ .btn-check:focus + .btn, .btn:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+ .btn:disabled, .btn.disabled,
+ fieldset:disabled .btn {
+ pointer-events: none;
+ opacity: 0.65; }
+
+.btn-primary {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+ .btn-primary:hover {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca; }
+ .btn-check:focus + .btn-primary, .btn-primary:focus {
+ color: #fff;
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); }
+ .btn-check:checked + .btn-primary,
+ .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active,
+ .show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0a58ca;
+ border-color: #0a53be; }
+ .btn-check:checked + .btn-primary:focus,
+ .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus,
+ .show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); }
+ .btn-primary:disabled, .btn-primary.disabled {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+
+.btn-secondary {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d; }
+ .btn-secondary:hover {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64; }
+ .btn-check:focus + .btn-secondary, .btn-secondary:focus {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); }
+ .btn-check:checked + .btn-secondary,
+ .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active,
+ .show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #565e64;
+ border-color: #51585e; }
+ .btn-check:checked + .btn-secondary:focus,
+ .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus,
+ .show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); }
+ .btn-secondary:disabled, .btn-secondary.disabled {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d; }
+
+.btn-success {
+ color: #000;
+ background-color: #2ecc71;
+ border-color: #2ecc71; }
+ .btn-success:hover {
+ color: #000;
+ background-color: #4dd486;
+ border-color: #43d17f; }
+ .btn-check:focus + .btn-success, .btn-success:focus {
+ color: #000;
+ background-color: #4dd486;
+ border-color: #43d17f;
+ box-shadow: 0 0 0 0.25rem rgba(39, 173, 96, 0.5); }
+ .btn-check:checked + .btn-success,
+ .btn-check:active + .btn-success, .btn-success:active, .btn-success.active,
+ .show > .btn-success.dropdown-toggle {
+ color: #000;
+ background-color: #58d68d;
+ border-color: #43d17f; }
+ .btn-check:checked + .btn-success:focus,
+ .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus,
+ .show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(39, 173, 96, 0.5); }
+ .btn-success:disabled, .btn-success.disabled {
+ color: #000;
+ background-color: #2ecc71;
+ border-color: #2ecc71; }
+
+.btn-info {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0; }
+ .btn-info:hover {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2; }
+ .btn-check:focus + .btn-info, .btn-info:focus {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); }
+ .btn-check:checked + .btn-info,
+ .btn-check:active + .btn-info, .btn-info:active, .btn-info.active,
+ .show > .btn-info.dropdown-toggle {
+ color: #000;
+ background-color: #3dd5f3;
+ border-color: #25cff2; }
+ .btn-check:checked + .btn-info:focus,
+ .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus,
+ .show > .btn-info.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); }
+ .btn-info:disabled, .btn-info.disabled {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0; }
+
+.btn-warning {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-warning:hover {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720; }
+ .btn-check:focus + .btn-warning, .btn-warning:focus {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); }
+ .btn-check:checked + .btn-warning,
+ .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active,
+ .show > .btn-warning.dropdown-toggle {
+ color: #000;
+ background-color: #ffcd39;
+ border-color: #ffc720; }
+ .btn-check:checked + .btn-warning:focus,
+ .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus,
+ .show > .btn-warning.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); }
+ .btn-warning:disabled, .btn-warning.disabled {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+
+.btn-danger {
+ color: #fff;
+ background-color: #cc2eaa;
+ border-color: #cc2eaa; }
+ .btn-danger:hover {
+ color: #fff;
+ background-color: #ad2791;
+ border-color: #a32588; }
+ .btn-check:focus + .btn-danger, .btn-danger:focus {
+ color: #fff;
+ background-color: #ad2791;
+ border-color: #a32588;
+ box-shadow: 0 0 0 0.25rem rgba(212, 77, 183, 0.5); }
+ .btn-check:checked + .btn-danger,
+ .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active,
+ .show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #a32588;
+ border-color: #992380; }
+ .btn-check:checked + .btn-danger:focus,
+ .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus,
+ .show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(212, 77, 183, 0.5); }
+ .btn-danger:disabled, .btn-danger.disabled {
+ color: #fff;
+ background-color: #cc2eaa;
+ border-color: #cc2eaa; }
+
+.btn-light {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-light:hover {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb; }
+ .btn-check:focus + .btn-light, .btn-light:focus {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); }
+ .btn-check:checked + .btn-light,
+ .btn-check:active + .btn-light, .btn-light:active, .btn-light.active,
+ .show > .btn-light.dropdown-toggle {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb; }
+ .btn-check:checked + .btn-light:focus,
+ .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus,
+ .show > .btn-light.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); }
+ .btn-light:disabled, .btn-light.disabled {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+
+.btn-dark {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529; }
+ .btn-dark:hover {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21; }
+ .btn-check:focus + .btn-dark, .btn-dark:focus {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); }
+ .btn-check:checked + .btn-dark,
+ .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active,
+ .show > .btn-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #1a1e21;
+ border-color: #191c1f; }
+ .btn-check:checked + .btn-dark:focus,
+ .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus,
+ .show > .btn-dark.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); }
+ .btn-dark:disabled, .btn-dark.disabled {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529; }
+
+.btn-outline-primary {
+ color: #0d6efd;
+ border-color: #0d6efd; }
+ .btn-outline-primary:hover {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+ .btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); }
+ .btn-check:checked + .btn-outline-primary,
+ .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+ .btn-check:checked + .btn-outline-primary:focus,
+ .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); }
+ .btn-outline-primary:disabled, .btn-outline-primary.disabled {
+ color: #0d6efd;
+ background-color: transparent; }
+
+.btn-outline-secondary {
+ color: #6c757d;
+ border-color: #6c757d; }
+ .btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d; }
+ .btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); }
+ .btn-check:checked + .btn-outline-secondary,
+ .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d; }
+ .btn-check:checked + .btn-outline-secondary:focus,
+ .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); }
+ .btn-outline-secondary:disabled, .btn-outline-secondary.disabled {
+ color: #6c757d;
+ background-color: transparent; }
+
+.btn-outline-success {
+ color: #2ecc71;
+ border-color: #2ecc71; }
+ .btn-outline-success:hover {
+ color: #000;
+ background-color: #2ecc71;
+ border-color: #2ecc71; }
+ .btn-check:focus + .btn-outline-success, .btn-outline-success:focus {
+ box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.5); }
+ .btn-check:checked + .btn-outline-success,
+ .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {
+ color: #000;
+ background-color: #2ecc71;
+ border-color: #2ecc71; }
+ .btn-check:checked + .btn-outline-success:focus,
+ .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.5); }
+ .btn-outline-success:disabled, .btn-outline-success.disabled {
+ color: #2ecc71;
+ background-color: transparent; }
+
+.btn-outline-info {
+ color: #0dcaf0;
+ border-color: #0dcaf0; }
+ .btn-outline-info:hover {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0; }
+ .btn-check:focus + .btn-outline-info, .btn-outline-info:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); }
+ .btn-check:checked + .btn-outline-info,
+ .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0; }
+ .btn-check:checked + .btn-outline-info:focus,
+ .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); }
+ .btn-outline-info:disabled, .btn-outline-info.disabled {
+ color: #0dcaf0;
+ background-color: transparent; }
+
+.btn-outline-warning {
+ color: #ffc107;
+ border-color: #ffc107; }
+ .btn-outline-warning:hover {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); }
+ .btn-check:checked + .btn-outline-warning,
+ .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107; }
+ .btn-check:checked + .btn-outline-warning:focus,
+ .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); }
+ .btn-outline-warning:disabled, .btn-outline-warning.disabled {
+ color: #ffc107;
+ background-color: transparent; }
+
+.btn-outline-danger {
+ color: #cc2eaa;
+ border-color: #cc2eaa; }
+ .btn-outline-danger:hover {
+ color: #fff;
+ background-color: #cc2eaa;
+ border-color: #cc2eaa; }
+ .btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {
+ box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.5); }
+ .btn-check:checked + .btn-outline-danger,
+ .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {
+ color: #fff;
+ background-color: #cc2eaa;
+ border-color: #cc2eaa; }
+ .btn-check:checked + .btn-outline-danger:focus,
+ .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.5); }
+ .btn-outline-danger:disabled, .btn-outline-danger.disabled {
+ color: #cc2eaa;
+ background-color: transparent; }
+
+.btn-outline-light {
+ color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-outline-light:hover {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-check:focus + .btn-outline-light, .btn-outline-light:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); }
+ .btn-check:checked + .btn-outline-light,
+ .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa; }
+ .btn-check:checked + .btn-outline-light:focus,
+ .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); }
+ .btn-outline-light:disabled, .btn-outline-light.disabled {
+ color: #f8f9fa;
+ background-color: transparent; }
+
+.btn-outline-dark {
+ color: #212529;
+ border-color: #212529; }
+ .btn-outline-dark:hover {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529; }
+ .btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); }
+ .btn-check:checked + .btn-outline-dark,
+ .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529; }
+ .btn-check:checked + .btn-outline-dark:focus,
+ .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); }
+ .btn-outline-dark:disabled, .btn-outline-dark.disabled {
+ color: #212529;
+ background-color: transparent; }
+
+.btn-link {
+ font-weight: 400;
+ color: #0d6efd;
+ text-decoration: underline; }
+ .btn-link:hover {
+ color: #0a58ca; }
+ .btn-link:disabled, .btn-link.disabled {
+ color: #6c757d; }
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.3rem; }
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem; }
+
+.fade {
+ transition: opacity 0.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 0.35s ease; }
+ @media (prefers-reduced-motion: reduce) {
+ .collapsing {
+ transition: none; } }
+
+.dropup,
+.dropend,
+.dropdown,
+.dropstart {
+ position: relative; }
+
+.dropdown-toggle {
+ white-space: nowrap; }
+ .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent; }
+ .dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ z-index: 1000;
+ display: none;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem; }
+ .dropdown-menu[data-bs-popper] {
+ left: 0;
+ margin-top: 0.125rem; }
+
+.dropdown-menu-start {
+ --bs-position: start; }
+ .dropdown-menu-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+
+.dropdown-menu-end {
+ --bs-position: end; }
+ .dropdown-menu-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; }
+
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start; }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+ .dropdown-menu-sm-end {
+ --bs-position: end; }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; } }
+
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start; }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+ .dropdown-menu-md-end {
+ --bs-position: end; }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; } }
+
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start; }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+ .dropdown-menu-lg-end {
+ --bs-position: end; }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; } }
+
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start; }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+ .dropdown-menu-xl-end {
+ --bs-position: end; }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; } }
+
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start; }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto /* rtl:ignore */;
+ left: 0 /* rtl:ignore */; }
+ .dropdown-menu-xxl-end {
+ --bs-position: end; }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0 /* rtl:ignore */;
+ left: auto /* rtl:ignore */; } }
+
+.dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%; }
+ .dropup .dropdown-menu[data-bs-popper] {
+ margin-top: 0;
+ margin-bottom: 0.125rem; }
+
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent; }
+
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropend .dropdown-menu {
+ top: 0;
+ right: auto;
+ left: 100%; }
+ .dropend .dropdown-menu[data-bs-popper] {
+ margin-top: 0;
+ margin-left: 0.125rem; }
+
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid; }
+
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropend .dropdown-toggle::after {
+ vertical-align: 0; }
+
+.dropstart .dropdown-menu {
+ top: 0;
+ right: 100%;
+ left: auto; }
+ .dropstart .dropdown-menu[data-bs-popper] {
+ margin-top: 0;
+ margin-right: 0.125rem; }
+
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: ""; }
+
+.dropstart .dropdown-toggle::after {
+ display: none; }
+
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent; }
+
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0; }
+
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0; }
+
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid rgba(0, 0, 0, 0.15); }
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0; }
+ .dropdown-item:hover, .dropdown-item:focus {
+ color: #1e2125;
+ background-color: #e9ecef; }
+ .dropdown-item.active, .dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #0d6efd; }
+ .dropdown-item.disabled, .dropdown-item:disabled {
+ color: #adb5bd;
+ pointer-events: none;
+ background-color: transparent; }
+
+.dropdown-menu.show {
+ display: block; }
+
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #6c757d;
+ white-space: nowrap; }
+
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1rem;
+ color: #212529; }
+
+.dropdown-menu-dark {
+ color: #dee2e6;
+ background-color: #343a40;
+ border-color: rgba(0, 0, 0, 0.15); }
+ .dropdown-menu-dark .dropdown-item {
+ color: #dee2e6; }
+ .dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.15); }
+ .dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {
+ color: #fff;
+ background-color: #0d6efd; }
+ .dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {
+ color: #adb5bd; }
+ .dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(0, 0, 0, 0.15); }
+ .dropdown-menu-dark .dropdown-item-text {
+ color: #dee2e6; }
+ .dropdown-menu-dark .dropdown-header {
+ color: #adb5bd; }
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle; }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ flex: 1 1 auto; }
+ .btn-group > .btn-check:checked + .btn,
+ .btn-group > .btn-check:focus + .btn,
+ .btn-group > .btn:hover,
+ .btn-group > .btn:focus,
+ .btn-group > .btn:active,
+ .btn-group > .btn.active,
+ .btn-group-vertical > .btn-check:checked + .btn,
+ .btn-group-vertical > .btn-check:focus + .btn,
+ .btn-group-vertical > .btn:hover,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .btn:active,
+ .btn-group-vertical > .btn.active {
+ z-index: 1; }
+
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start; }
+ .btn-toolbar .input-group {
+ width: auto; }
+
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px; }
+
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.btn-group > .btn:nth-child(n + 3),
+.btn-group > :not(.btn-check) + .btn,
+.btn-group > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.dropdown-toggle-split {
+ padding-right: 0.5625rem;
+ padding-left: 0.5625rem; }
+ .dropdown-toggle-split::after,
+ .dropup .dropdown-toggle-split::after,
+ .dropend .dropdown-toggle-split::after {
+ margin-left: 0; }
+ .dropstart .dropdown-toggle-split::before {
+ margin-right: 0; }
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem; }
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.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:not(:first-child),
+ .btn-group-vertical > .btn-group:not(:first-child) {
+ margin-top: -1px; }
+ .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+ .btn-group-vertical > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+ .btn-group-vertical > .btn ~ .btn,
+ .btn-group-vertical > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none; }
+
+.nav-link {
+ display: block;
+ padding: 0.5rem 1rem;
+ text-decoration: none;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .nav-link {
+ transition: none; } }
+ .nav-link.disabled {
+ color: #6c757d;
+ pointer-events: none;
+ cursor: default; }
+
+.nav-tabs {
+ border-bottom: 1px solid #dee2e6; }
+ .nav-tabs .nav-link {
+ margin-bottom: -1px;
+ background: none;
+ border: 1px solid transparent;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem; }
+ .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ border-color: #e9ecef #e9ecef #dee2e6;
+ isolation: isolate; }
+ .nav-tabs .nav-link.disabled {
+ color: #6c757d;
+ background-color: transparent;
+ border-color: transparent; }
+ .nav-tabs .nav-link.active,
+ .nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff; }
+ .nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
+
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: 0.25rem; }
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #0d6efd; }
+
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center; }
+
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center; }
+
+.tab-content > .tab-pane {
+ display: none; }
+
+.tab-content > .active {
+ display: block; }
+
+.navbar {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem; }
+ .navbar > .container,
+ .navbar > .container-fluid, .navbar > .container-sm, .navbar > .container-md, .navbar > .container-lg, .navbar > .container-xl, .navbar > .container-xxl {
+ display: flex;
+ flex-wrap: inherit;
+ align-items: center;
+ justify-content: space-between; }
+
+.navbar-brand {
+ padding-top: 0.3125rem;
+ padding-bottom: 0.3125rem;
+ margin-right: 1rem;
+ font-size: 1.25rem;
+ text-decoration: none;
+ white-space: nowrap; }
+
+.navbar-nav {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none; }
+ .navbar-nav .nav-link {
+ padding-right: 0;
+ padding-left: 0; }
+ .navbar-nav .dropdown-menu {
+ position: static; }
+
+.navbar-text {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem; }
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center; }
+
+.navbar-toggler {
+ padding: 0.25rem 0.75rem;
+ font-size: 1.25rem;
+ line-height: 1;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 0.25rem;
+ transition: box-shadow 0.15s ease-in-out; }
+ @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 0.25rem; }
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ 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: 0.5rem;
+ padding-left: 0.5rem; }
+ .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; } }
+
+@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: 0.5rem;
+ padding-left: 0.5rem; }
+ .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; } }
+
+@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: 0.5rem;
+ padding-left: 0.5rem; }
+ .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; } }
+
+@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: 0.5rem;
+ padding-left: 0.5rem; }
+ .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; } }
+
+@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: 0.5rem;
+ padding-left: 0.5rem; }
+ .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 {
+ 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: 0.5rem;
+ padding-left: 0.5rem; }
+ .navbar-expand .navbar-nav-scroll {
+ overflow: visible; }
+ .navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand .navbar-toggler {
+ display: none; }
+
+.navbar-light .navbar-brand {
+ color: rgba(0, 0, 0, 0.9); }
+ .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(0, 0, 0, 0.55); }
+ .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+ color: rgba(0, 0, 0, 0.7); }
+ .navbar-light .navbar-nav .nav-link.disabled {
+ color: rgba(0, 0, 0, 0.3); }
+
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .nav-link.active {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-toggler {
+ color: rgba(0, 0, 0, 0.55);
+ border-color: rgba(0, 0, 0, 0.1); }
+
+.navbar-light .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
+
+.navbar-light .navbar-text {
+ color: rgba(0, 0, 0, 0.55); }
+ .navbar-light .navbar-text a,
+ .navbar-light .navbar-text a:hover,
+ .navbar-light .navbar-text a:focus {
+ color: rgba(0, 0, 0, 0.9); }
+
+.navbar-dark .navbar-brand {
+ color: #fff; }
+ .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+ color: #fff; }
+
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 0.55); }
+ .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+ color: rgba(255, 255, 255, 0.75); }
+ .navbar-dark .navbar-nav .nav-link.disabled {
+ color: rgba(255, 255, 255, 0.25); }
+
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .nav-link.active {
+ color: #fff; }
+
+.navbar-dark .navbar-toggler {
+ color: rgba(255, 255, 255, 0.55);
+ border-color: rgba(255, 255, 255, 0.1); }
+
+.navbar-dark .navbar-toggler-icon {
+ background-image: 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"); }
+
+.navbar-dark .navbar-text {
+ color: rgba(255, 255, 255, 0.55); }
+ .navbar-dark .navbar-text a,
+ .navbar-dark .navbar-text a:hover,
+ .navbar-dark .navbar-text a:focus {
+ color: #fff; }
+
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 0.25rem; }
+ .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: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px); }
+ .card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px); }
+ .card > .card-header + .list-group,
+ .card > .list-group + .card-footer {
+ border-top: 0; }
+
+.card-body {
+ flex: 1 1 auto;
+ padding: 1rem 1rem; }
+
+.card-title {
+ margin-bottom: 0.5rem; }
+
+.card-subtitle {
+ margin-top: -0.25rem;
+ margin-bottom: 0; }
+
+.card-text:last-child {
+ margin-bottom: 0; }
+
+.card-link:hover {
+ text-decoration: none; }
+
+.card-link + .card-link {
+ margin-left: 1rem /* rtl:ignore */; }
+
+.card-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125); }
+ .card-header:first-child {
+ border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }
+
+.card-footer {
+ padding: 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125); }
+ .card-footer:last-child {
+ border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }
+
+.card-header-tabs {
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+ margin-left: -0.5rem;
+ border-bottom: 0; }
+
+.card-header-pills {
+ margin-right: -0.5rem;
+ margin-left: -0.5rem; }
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1rem;
+ border-radius: calc(0.25rem - 1px); }
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%; }
+
+.card-img,
+.card-img-top {
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px); }
+
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: calc(0.25rem - 1px);
+ border-bottom-left-radius: calc(0.25rem - 1px); }
+
+.card-group > .card {
+ margin-bottom: 0.75rem; }
+
+@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-img-top,
+ .card-group > .card:not(:last-child) .card-header {
+ border-top-right-radius: 0; }
+ .card-group > .card:not(:last-child) .card-img-bottom,
+ .card-group > .card:not(:last-child) .card-footer {
+ 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-img-top,
+ .card-group > .card:not(:first-child) .card-header {
+ border-top-left-radius: 0; }
+ .card-group > .card:not(:first-child) .card-img-bottom,
+ .card-group > .card:not(:first-child) .card-footer {
+ border-bottom-left-radius: 0; } }
+
+.breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ padding: 0 0;
+ margin-bottom: 1rem;
+ list-style: none; }
+
+.breadcrumb-item + .breadcrumb-item {
+ padding-left: 0.5rem; }
+ .breadcrumb-item + .breadcrumb-item::before {
+ float: left;
+ padding-right: 0.5rem;
+ color: #6c757d;
+ content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }
+
+.breadcrumb-item.active {
+ color: #6c757d; }
+
+.pagination {
+ display: flex;
+ padding-left: 0;
+ list-style: none; }
+
+.page-link {
+ position: relative;
+ display: block;
+ color: #0d6efd;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .page-link {
+ transition: none; } }
+ .page-link:hover {
+ z-index: 2;
+ color: #0a58ca;
+ background-color: #e9ecef;
+ border-color: #dee2e6; }
+ .page-link:focus {
+ z-index: 3;
+ color: #0a58ca;
+ background-color: #e9ecef;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+
+.page-item:not(:first-child) .page-link {
+ margin-left: -1px; }
+
+.page-item.active .page-link {
+ z-index: 3;
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+
+.page-item.disabled .page-link {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+ border-color: #dee2e6; }
+
+.page-link {
+ padding: 0.375rem 0.75rem; }
+
+.page-item:first-child .page-link {
+ border-top-left-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem; }
+
+.page-item:last-child .page-link {
+ border-top-right-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem; }
+
+.pagination-lg .page-link {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem; }
+
+.pagination-lg .page-item:first-child .page-link {
+ border-top-left-radius: 0.3rem;
+ border-bottom-left-radius: 0.3rem; }
+
+.pagination-lg .page-item:last-child .page-link {
+ border-top-right-radius: 0.3rem;
+ border-bottom-right-radius: 0.3rem; }
+
+.pagination-sm .page-link {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem; }
+
+.pagination-sm .page-item:first-child .page-link {
+ border-top-left-radius: 0.2rem;
+ border-bottom-left-radius: 0.2rem; }
+
+.pagination-sm .page-item:last-child .page-link {
+ border-top-right-radius: 0.2rem;
+ border-bottom-right-radius: 0.2rem; }
+
+.badge {
+ display: inline-block;
+ padding: 0.35em 0.65em;
+ font-size: 0.75em;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25rem; }
+ .badge:empty {
+ display: none; }
+
+.btn .badge {
+ position: relative;
+ top: -1px; }
+
+.alert {
+ position: relative;
+ padding: 1rem 1rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+ border-radius: 0.25rem; }
+
+.alert-heading {
+ color: inherit; }
+
+.alert-link {
+ font-weight: 700; }
+
+.alert-dismissible {
+ padding-right: 3rem; }
+ .alert-dismissible .btn-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ padding: 1.25rem 1rem; }
+
+.alert-primary {
+ color: #084298;
+ background-color: #cfe2ff;
+ border-color: #b6d4fe; }
+ .alert-primary .alert-link {
+ color: #06357a; }
+
+.alert-secondary {
+ color: #41464b;
+ background-color: #e2e3e5;
+ border-color: #d3d6d8; }
+ .alert-secondary .alert-link {
+ color: #34383c; }
+
+.alert-success {
+ color: #1c7a44;
+ background-color: #d5f5e3;
+ border-color: #c0f0d4; }
+ .alert-success .alert-link {
+ color: #166236; }
+
+.alert-info {
+ color: #055160;
+ background-color: #cff4fc;
+ border-color: #b6effb; }
+ .alert-info .alert-link {
+ color: #04414d; }
+
+.alert-warning {
+ color: #664d03;
+ background-color: #fff3cd;
+ border-color: #ffecb5; }
+ .alert-warning .alert-link {
+ color: #523e02; }
+
+.alert-danger {
+ color: #7a1c66;
+ background-color: #f5d5ee;
+ border-color: #f0c0e6; }
+ .alert-danger .alert-link {
+ color: #621652; }
+
+.alert-light {
+ color: #636464;
+ background-color: #fefefe;
+ border-color: #fdfdfe; }
+ .alert-light .alert-link {
+ color: #4f5050; }
+
+.alert-dark {
+ color: #141619;
+ background-color: #d3d3d4;
+ border-color: #bcbebf; }
+ .alert-dark .alert-link {
+ color: #101214; }
+
+@-webkit-keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem; } }
+
+@keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem; } }
+
+.progress {
+ display: flex;
+ height: 1rem;
+ overflow: hidden;
+ font-size: 0.75rem;
+ background-color: #e9ecef;
+ border-radius: 0.25rem; }
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #0d6efd;
+ transition: width 0.6s ease; }
+ @media (prefers-reduced-motion: reduce) {
+ .progress-bar {
+ transition: none; } }
+
+.progress-bar-striped {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem; }
+
+.progress-bar-animated {
+ -webkit-animation: 1s linear infinite progress-bar-stripes;
+ animation: 1s linear infinite progress-bar-stripes; }
+ @media (prefers-reduced-motion: reduce) {
+ .progress-bar-animated {
+ -webkit-animation: none;
+ animation: none; } }
+
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: 0.25rem; }
+
+.list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit; }
+ .list-group-item-action:hover, .list-group-item-action:focus {
+ z-index: 1;
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa; }
+ .list-group-item-action:active {
+ color: #212529;
+ background-color: #e9ecef; }
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.5rem 1rem;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125); }
+ .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: #6c757d;
+ pointer-events: none;
+ background-color: #fff; }
+ .list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #0d6efd;
+ border-color: #0d6efd; }
+ .list-group-item + .list-group-item {
+ border-top-width: 0; }
+ .list-group-item + .list-group-item.active {
+ margin-top: -1px;
+ border-top-width: 1px; }
+
+.list-group-horizontal {
+ flex-direction: row; }
+ .list-group-horizontal > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; }
+
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row; }
+ .list-group-horizontal-sm > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal-sm > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; } }
+
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row; }
+ .list-group-horizontal-md > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal-md > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; } }
+
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row; }
+ .list-group-horizontal-lg > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal-lg > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; } }
+
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row; }
+ .list-group-horizontal-xl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal-xl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; } }
+
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row; }
+ .list-group-horizontal-xxl > .list-group-item:first-child {
+ border-bottom-left-radius: 0.25rem;
+ border-top-right-radius: 0; }
+ .list-group-horizontal-xxl > .list-group-item:last-child {
+ border-top-right-radius: 0.25rem;
+ 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: 1px;
+ border-left-width: 0; }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px; } }
+
+.list-group-flush {
+ border-radius: 0; }
+ .list-group-flush > .list-group-item {
+ border-width: 0 0 1px; }
+ .list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0; }
+
+.list-group-item-primary {
+ color: #084298;
+ background-color: #cfe2ff; }
+ .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+ color: #084298;
+ background-color: #bacbe6; }
+ .list-group-item-primary.list-group-item-action.active {
+ color: #fff;
+ background-color: #084298;
+ border-color: #084298; }
+
+.list-group-item-secondary {
+ color: #41464b;
+ background-color: #e2e3e5; }
+ .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+ color: #41464b;
+ background-color: #cbccce; }
+ .list-group-item-secondary.list-group-item-action.active {
+ color: #fff;
+ background-color: #41464b;
+ border-color: #41464b; }
+
+.list-group-item-success {
+ color: #1c7a44;
+ background-color: #d5f5e3; }
+ .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+ color: #1c7a44;
+ background-color: #c0ddcc; }
+ .list-group-item-success.list-group-item-action.active {
+ color: #fff;
+ background-color: #1c7a44;
+ border-color: #1c7a44; }
+
+.list-group-item-info {
+ color: #055160;
+ background-color: #cff4fc; }
+ .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+ color: #055160;
+ background-color: #badce3; }
+ .list-group-item-info.list-group-item-action.active {
+ color: #fff;
+ background-color: #055160;
+ border-color: #055160; }
+
+.list-group-item-warning {
+ color: #664d03;
+ background-color: #fff3cd; }
+ .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+ color: #664d03;
+ background-color: #e6dbb9; }
+ .list-group-item-warning.list-group-item-action.active {
+ color: #fff;
+ background-color: #664d03;
+ border-color: #664d03; }
+
+.list-group-item-danger {
+ color: #7a1c66;
+ background-color: #f5d5ee; }
+ .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+ color: #7a1c66;
+ background-color: #ddc0d6; }
+ .list-group-item-danger.list-group-item-action.active {
+ color: #fff;
+ background-color: #7a1c66;
+ border-color: #7a1c66; }
+
+.list-group-item-light {
+ color: #636464;
+ background-color: #fefefe; }
+ .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+ color: #636464;
+ background-color: #e5e5e5; }
+ .list-group-item-light.list-group-item-action.active {
+ color: #fff;
+ background-color: #636464;
+ border-color: #636464; }
+
+.list-group-item-dark {
+ color: #141619;
+ background-color: #d3d3d4; }
+ .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+ color: #141619;
+ background-color: #bebebf; }
+ .list-group-item-dark.list-group-item-action.active {
+ color: #fff;
+ background-color: #141619;
+ border-color: #141619; }
+
+.btn-close {
+ box-sizing: content-box;
+ width: 1em;
+ height: 1em;
+ padding: 0.25em 0.25em;
+ color: #000;
+ background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
+ border: 0;
+ border-radius: 0.25rem;
+ opacity: 0.5; }
+ .btn-close:hover {
+ color: #000;
+ text-decoration: none;
+ opacity: 0.75; }
+ .btn-close:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ opacity: 1; }
+ .btn-close:disabled, .btn-close.disabled {
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ opacity: 0.25; }
+
+.btn-close-white {
+ filter: invert(1) grayscale(100%) brightness(200%); }
+
+.toast {
+ width: 350px;
+ max-width: 100%;
+ font-size: 0.875rem;
+ pointer-events: auto;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem; }
+ .toast:not(.showing):not(.show) {
+ opacity: 0; }
+ .toast.hide {
+ display: none; }
+
+.toast-container {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none; }
+ .toast-container > :not(:last-child) {
+ margin-bottom: 0.75rem; }
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: 0.5rem 0.75rem;
+ color: #6c757d;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+ border-top-left-radius: calc(0.25rem - 1px);
+ border-top-right-radius: calc(0.25rem - 1px); }
+ .toast-header .btn-close {
+ margin-right: -0.375rem;
+ margin-left: 0.75rem; }
+
+.toast-body {
+ padding: 0.75rem;
+ word-wrap: break-word; }
+
+.modal-open {
+ overflow: hidden; }
+ .modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto; }
+
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ outline: 0; }
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 0.5rem;
+ pointer-events: none; }
+ .modal.fade .modal-dialog {
+ transition: transform 0.3s ease-out;
+ transform: translate(0, -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% - 1rem); }
+ .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% - 1rem); }
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ pointer-events: auto;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0; }
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000; }
+ .modal-backdrop.fade {
+ opacity: 0; }
+ .modal-backdrop.show {
+ opacity: 0.5; }
+
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+ border-bottom: 1px solid #dee2e6;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px); }
+ .modal-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin: -0.5rem -0.5rem -0.5rem auto; }
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: 1.5; }
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 1rem; }
+
+.modal-footer {
+ display: flex;
+ flex-wrap: wrap;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0.75rem;
+ border-top: 1px solid #dee2e6;
+ border-bottom-right-radius: calc(0.3rem - 1px);
+ border-bottom-left-radius: calc(0.3rem - 1px); }
+ .modal-footer > * {
+ margin: 0.25rem; }
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll; }
+
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 1.75rem auto; }
+ .modal-dialog-scrollable {
+ height: calc(100% - 3.5rem); }
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem); }
+ .modal-sm {
+ max-width: 300px; } }
+
+@media (min-width: 992px) {
+ .modal-lg,
+ .modal-xl {
+ max-width: 800px; } }
+
+@media (min-width: 1200px) {
+ .modal-xl {
+ max-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-header {
+ border-radius: 0; }
+ .modal-fullscreen .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen .modal-footer {
+ border-radius: 0; }
+
+@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-header {
+ border-radius: 0; }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0; } }
+
+@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-header {
+ border-radius: 0; }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0; } }
+
+@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-header {
+ border-radius: 0; }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0; } }
+
+@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-header {
+ border-radius: 0; }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0; } }
+
+@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-header {
+ border-radius: 0; }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto; }
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0; } }
+
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ margin: 0;
+ 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;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0; }
+ .tooltip.show {
+ opacity: 0.9; }
+ .tooltip .tooltip-arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem; }
+ .tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid; }
+
+.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^="top"] {
+ padding: 0.4rem 0; }
+ .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow {
+ bottom: 0; }
+ .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
+ top: -1px;
+ border-width: 0.4rem 0.4rem 0;
+ border-top-color: #000; }
+
+.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^="right"] {
+ padding: 0 0.4rem; }
+ .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
+ left: 0;
+ width: 0.4rem;
+ height: 0.8rem; }
+ .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
+ right: -1px;
+ border-width: 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: #000; }
+
+.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^="bottom"] {
+ padding: 0.4rem 0; }
+ .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow {
+ top: 0; }
+ .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 0.4rem 0.4rem;
+ border-bottom-color: #000; }
+
+.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^="left"] {
+ padding: 0 0.4rem; }
+ .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
+ right: 0;
+ width: 0.4rem;
+ height: 0.8rem; }
+ .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
+ left: -1px;
+ border-width: 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: #000; }
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem; }
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0 /* rtl:ignore */;
+ z-index: 1060;
+ display: block;
+ max-width: 276px;
+ 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;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem; }
+ .popover .popover-arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem; }
+ .popover .popover-arrow::before, .popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid; }
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow {
+ bottom: calc(-0.5rem - 1px); }
+ .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
+ bottom: 0;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: rgba(0, 0, 0, 0.25); }
+ .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
+ bottom: 1px;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: #fff; }
+
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow {
+ left: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem; }
+ .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
+ left: 0;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: rgba(0, 0, 0, 0.25); }
+ .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
+ left: 1px;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: #fff; }
+
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow {
+ top: calc(-0.5rem - 1px); }
+ .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
+ top: 0;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25); }
+ .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
+ top: 1px;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: #fff; }
+
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 1rem;
+ margin-left: -0.5rem;
+ content: "";
+ border-bottom: 1px solid #f0f0f0; }
+
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow {
+ right: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem; }
+ .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
+ right: 0;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: rgba(0, 0, 0, 0.25); }
+ .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
+ right: 1px;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: #fff; }
+
+.popover-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ background-color: #f0f0f0;
+ border-bottom: 1px solid #d8d8d8;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px); }
+ .popover-header:empty {
+ display: none; }
+
+.popover-body {
+ padding: 1rem 1rem;
+ color: #212529; }
+
+.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%;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ transition: transform 0.6s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none; } }
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block; }
+
+/* rtl:begin:ignore */
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
+ transform: translateX(100%); }
+
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
+ transform: translateX(-100%); }
+
+/* rtl:end:ignore */
+.carousel-fade .carousel-item {
+ opacity: 0;
+ transition-property: opacity;
+ transform: none; }
+
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-start,
+.carousel-fade .carousel-item-prev.carousel-item-end {
+ z-index: 1;
+ opacity: 1; }
+
+.carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
+ z-index: 0;
+ opacity: 0;
+ transition: opacity 0s 0.6s; }
+ @media (prefers-reduced-motion: reduce) {
+ .carousel-fade .active.carousel-item-start,
+ .carousel-fade .active.carousel-item-end {
+ transition: none; } }
+
+.carousel-control-prev,
+.carousel-control-next {
+ 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: none;
+ border: 0;
+ opacity: 0.5;
+ transition: opacity 0.15s ease; }
+ @media (prefers-reduced-motion: reduce) {
+ .carousel-control-prev,
+ .carousel-control-next {
+ transition: none; } }
+ .carousel-control-prev:hover, .carousel-control-prev:focus,
+ .carousel-control-next:hover,
+ .carousel-control-next:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ opacity: 0.9; }
+
+.carousel-control-prev {
+ left: 0; }
+
+.carousel-control-next {
+ right: 0; }
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-size: 100% 100%; }
+
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
+.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%;
+ list-style: none; }
+ .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: 0.5;
+ transition: opacity 0.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-prev-icon,
+.carousel-dark .carousel-control-next-icon {
+ filter: invert(1) grayscale(100); }
+
+.carousel-dark .carousel-indicators [data-bs-target] {
+ background-color: #000; }
+
+.carousel-dark .carousel-caption {
+ color: #000; }
+
+@-webkit-keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */; } }
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */; } }
+
+.spinner-border {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ vertical-align: text-bottom;
+ border: 0.25em solid currentColor;
+ border-right-color: transparent;
+ border-radius: 50%;
+ -webkit-animation: 0.75s linear infinite spinner-border;
+ animation: 0.75s linear infinite spinner-border; }
+
+.spinner-border-sm {
+ width: 1rem;
+ height: 1rem;
+ border-width: 0.2em; }
+
+@-webkit-keyframes spinner-grow {
+ 0% {
+ transform: scale(0); }
+ 50% {
+ opacity: 1;
+ transform: none; } }
+
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0); }
+ 50% {
+ opacity: 1;
+ transform: none; } }
+
+.spinner-grow {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ vertical-align: text-bottom;
+ background-color: currentColor;
+ border-radius: 50%;
+ opacity: 0;
+ -webkit-animation: 0.75s linear infinite spinner-grow;
+ animation: 0.75s linear infinite spinner-grow; }
+
+.spinner-grow-sm {
+ width: 1rem;
+ height: 1rem; }
+
+@media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+ .spinner-grow {
+ -webkit-animation-duration: 1.5s;
+ animation-duration: 1.5s; } }
+
+.clearfix::after {
+ display: block;
+ clear: both;
+ content: ""; }
+
+.link-primary {
+ color: #0d6efd; }
+ .link-primary:hover, .link-primary:focus {
+ color: #0a58ca; }
+
+.link-secondary {
+ color: #6c757d; }
+ .link-secondary:hover, .link-secondary:focus {
+ color: #565e64; }
+
+.link-success {
+ color: #2ecc71; }
+ .link-success:hover, .link-success:focus {
+ color: #58d68d; }
+
+.link-info {
+ color: #0dcaf0; }
+ .link-info:hover, .link-info:focus {
+ color: #3dd5f3; }
+
+.link-warning {
+ color: #ffc107; }
+ .link-warning:hover, .link-warning:focus {
+ color: #ffcd39; }
+
+.link-danger {
+ color: #cc2eaa; }
+ .link-danger:hover, .link-danger:focus {
+ color: #a32588; }
+
+.link-light {
+ color: #f8f9fa; }
+ .link-light:hover, .link-light:focus {
+ color: #f9fafb; }
+
+.link-dark {
+ color: #212529; }
+ .link-dark:hover, .link-dark:focus {
+ color: #1a1e21; }
+
+.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: calc(3 / 4 * 100%); }
+
+.ratio-16x9 {
+ --bs-aspect-ratio: calc(9 / 16 * 100%); }
+
+.ratio-21x9 {
+ --bs-aspect-ratio: calc(9 / 21 * 100%); }
+
+.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; }
+
+@media (min-width: 576px) {
+ .sticky-sm-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+@media (min-width: 768px) {
+ .sticky-md-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+@media (min-width: 992px) {
+ .sticky-lg-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+@media (min-width: 1200px) {
+ .sticky-xl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+@media (min-width: 1400px) {
+ .sticky-xxl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; } }
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ position: absolute !important;
+ 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; }
+
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ content: ""; }
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+
+.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; }
+
+.overflow-auto {
+ overflow: auto !important; }
+
+.overflow-hidden {
+ overflow: hidden !important; }
+
+.overflow-visible {
+ overflow: visible !important; }
+
+.overflow-scroll {
+ overflow: 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-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: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
+
+.shadow-sm {
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
+
+.shadow-lg {
+ box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }
+
+.shadow-none {
+ box-shadow: none !important; }
+
+.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: translateX(-50%) !important; }
+
+.translate-middle-y {
+ transform: translateY(-50%) !important; }
+
+.border {
+ border: 1px solid #dee2e6 !important; }
+
+.border-0 {
+ border: 0 !important; }
+
+.border-top {
+ border-top: 1px solid #dee2e6 !important; }
+
+.border-top-0 {
+ border-top: 0 !important; }
+
+.border-end {
+ border-right: 1px solid #dee2e6 !important; }
+
+.border-end-0 {
+ border-right: 0 !important; }
+
+.border-bottom {
+ border-bottom: 1px solid #dee2e6 !important; }
+
+.border-bottom-0 {
+ border-bottom: 0 !important; }
+
+.border-start {
+ border-left: 1px solid #dee2e6 !important; }
+
+.border-start-0 {
+ border-left: 0 !important; }
+
+.border-primary {
+ border-color: #0d6efd !important; }
+
+.border-secondary {
+ border-color: #6c757d !important; }
+
+.border-success {
+ border-color: #2ecc71 !important; }
+
+.border-info {
+ border-color: #0dcaf0 !important; }
+
+.border-warning {
+ border-color: #ffc107 !important; }
+
+.border-danger {
+ border-color: #cc2eaa !important; }
+
+.border-light {
+ border-color: #f8f9fa !important; }
+
+.border-dark {
+ border-color: #212529 !important; }
+
+.border-white {
+ border-color: #fff !important; }
+
+.border-0 {
+ border-width: 0 !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; }
+
+.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; }
+
+.gap-0 {
+ gap: 0 !important; }
+
+.gap-1 {
+ gap: 0.25rem !important; }
+
+.gap-2 {
+ gap: 0.5rem !important; }
+
+.gap-3 {
+ gap: 1rem !important; }
+
+.gap-4 {
+ gap: 1.5rem !important; }
+
+.gap-5 {
+ gap: 3rem !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: 0.25rem !important; }
+
+.m-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+
+.mt-2 {
+ margin-top: 0.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: 0.25rem !important; }
+
+.me-2 {
+ margin-right: 0.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: 0.25rem !important; }
+
+.mb-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+
+.ms-2 {
+ margin-left: 0.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: 0.25rem !important; }
+
+.p-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+
+.pt-2 {
+ padding-top: 0.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: 0.25rem !important; }
+
+.pe-2 {
+ padding-right: 0.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: 0.25rem !important; }
+
+.pb-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+
+.ps-2 {
+ padding-left: 0.5rem !important; }
+
+.ps-3 {
+ padding-left: 1rem !important; }
+
+.ps-4 {
+ padding-left: 1.5rem !important; }
+
+.ps-5 {
+ padding-left: 3rem !important; }
+
+.fs-1 {
+ font-size: calc(1.375rem + 1.5vw) !important; }
+
+.fs-2 {
+ font-size: calc(1.325rem + 0.9vw) !important; }
+
+.fs-3 {
+ font-size: calc(1.3rem + 0.6vw) !important; }
+
+.fs-4 {
+ font-size: calc(1.275rem + 0.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-light {
+ font-weight: 300 !important; }
+
+.fw-lighter {
+ font-weight: lighter !important; }
+
+.fw-normal {
+ font-weight: 400 !important; }
+
+.fw-bold {
+ font-weight: 700 !important; }
+
+.fw-bolder {
+ font-weight: bolder !important; }
+
+.text-lowercase {
+ text-transform: lowercase !important; }
+
+.text-uppercase {
+ text-transform: uppercase !important; }
+
+.text-capitalize {
+ text-transform: capitalize !important; }
+
+.text-start {
+ text-align: left !important; }
+
+.text-end {
+ text-align: right !important; }
+
+.text-center {
+ text-align: center !important; }
+
+.text-primary {
+ color: #0d6efd !important; }
+
+.text-secondary {
+ color: #6c757d !important; }
+
+.text-success {
+ color: #2ecc71 !important; }
+
+.text-info {
+ color: #0dcaf0 !important; }
+
+.text-warning {
+ color: #ffc107 !important; }
+
+.text-danger {
+ color: #cc2eaa !important; }
+
+.text-light {
+ color: #f8f9fa !important; }
+
+.text-dark {
+ color: #212529 !important; }
+
+.text-white {
+ color: #fff !important; }
+
+.text-body {
+ color: #212529 !important; }
+
+.text-muted {
+ color: #6c757d !important; }
+
+.text-black-50 {
+ color: rgba(0, 0, 0, 0.5) !important; }
+
+.text-white-50 {
+ color: rgba(255, 255, 255, 0.5) !important; }
+
+.text-reset {
+ color: inherit !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; }
+
+.bg-primary {
+ background-color: #0d6efd !important; }
+
+.bg-secondary {
+ background-color: #6c757d !important; }
+
+.bg-success {
+ background-color: #2ecc71 !important; }
+
+.bg-info {
+ background-color: #0dcaf0 !important; }
+
+.bg-warning {
+ background-color: #ffc107 !important; }
+
+.bg-danger {
+ background-color: #cc2eaa !important; }
+
+.bg-light {
+ background-color: #f8f9fa !important; }
+
+.bg-dark {
+ background-color: #212529 !important; }
+
+.bg-body {
+ background-color: #fff !important; }
+
+.bg-white {
+ background-color: #fff !important; }
+
+.bg-transparent {
+ background-color: transparent !important; }
+
+.bg-gradient {
+ background-image: var(--bs-gradient) !important; }
+
+.text-wrap {
+ white-space: normal !important; }
+
+.text-nowrap {
+ white-space: nowrap !important; }
+
+.text-decoration-none {
+ text-decoration: none !important; }
+
+.text-decoration-underline {
+ text-decoration: underline !important; }
+
+.text-decoration-line-through {
+ text-decoration: line-through !important; }
+
+/* rtl:begin:remove */
+.text-break {
+ word-wrap: break-word !important;
+ word-break: break-word !important; }
+
+/* rtl:end:remove */
+.font-monospace {
+ font-family: var(--bs-font-monospace) !important; }
+
+.user-select-all {
+ -webkit-user-select: all !important;
+ -moz-user-select: all !important;
+ -ms-user-select: all !important;
+ user-select: all !important; }
+
+.user-select-auto {
+ -webkit-user-select: auto !important;
+ -moz-user-select: auto !important;
+ -ms-user-select: auto !important;
+ user-select: auto !important; }
+
+.user-select-none {
+ -webkit-user-select: none !important;
+ -moz-user-select: none !important;
+ -ms-user-select: none !important;
+ user-select: none !important; }
+
+.pe-none {
+ pointer-events: none !important; }
+
+.pe-auto {
+ pointer-events: auto !important; }
+
+.rounded {
+ border-radius: 0.25rem !important; }
+
+.rounded-0 {
+ border-radius: 0 !important; }
+
+.rounded-1 {
+ border-radius: 0.2rem !important; }
+
+.rounded-2 {
+ border-radius: 0.25rem !important; }
+
+.rounded-3 {
+ border-radius: 0.3rem !important; }
+
+.rounded-circle {
+ border-radius: 50% !important; }
+
+.rounded-pill {
+ border-radius: 50rem !important; }
+
+.rounded-top {
+ border-top-left-radius: 0.25rem !important;
+ border-top-right-radius: 0.25rem !important; }
+
+.rounded-end {
+ border-top-right-radius: 0.25rem !important;
+ border-bottom-right-radius: 0.25rem !important; }
+
+.rounded-bottom {
+ border-bottom-right-radius: 0.25rem !important;
+ border-bottom-left-radius: 0.25rem !important; }
+
+.rounded-start {
+ border-bottom-left-radius: 0.25rem !important;
+ border-top-left-radius: 0.25rem !important; }
+
+.visible {
+ visibility: visible !important; }
+
+.invisible {
+ visibility: hidden !important; }
+
+@media (min-width: 576px) {
+ .float-sm-start {
+ float: left !important; }
+ .float-sm-end {
+ float: right !important; }
+ .float-sm-none {
+ float: 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-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; }
+ .gap-sm-0 {
+ gap: 0 !important; }
+ .gap-sm-1 {
+ gap: 0.25rem !important; }
+ .gap-sm-2 {
+ gap: 0.5rem !important; }
+ .gap-sm-3 {
+ gap: 1rem !important; }
+ .gap-sm-4 {
+ gap: 1.5rem !important; }
+ .gap-sm-5 {
+ gap: 3rem !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: 0.25rem !important; }
+ .m-sm-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+ .mt-sm-2 {
+ margin-top: 0.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: 0.25rem !important; }
+ .me-sm-2 {
+ margin-right: 0.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: 0.25rem !important; }
+ .mb-sm-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+ .ms-sm-2 {
+ margin-left: 0.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: 0.25rem !important; }
+ .p-sm-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+ .pt-sm-2 {
+ padding-top: 0.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: 0.25rem !important; }
+ .pe-sm-2 {
+ padding-right: 0.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: 0.25rem !important; }
+ .pb-sm-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+ .ps-sm-2 {
+ padding-left: 0.5rem !important; }
+ .ps-sm-3 {
+ padding-left: 1rem !important; }
+ .ps-sm-4 {
+ padding-left: 1.5rem !important; }
+ .ps-sm-5 {
+ padding-left: 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; }
+ .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-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; }
+ .gap-md-0 {
+ gap: 0 !important; }
+ .gap-md-1 {
+ gap: 0.25rem !important; }
+ .gap-md-2 {
+ gap: 0.5rem !important; }
+ .gap-md-3 {
+ gap: 1rem !important; }
+ .gap-md-4 {
+ gap: 1.5rem !important; }
+ .gap-md-5 {
+ gap: 3rem !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: 0.25rem !important; }
+ .m-md-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+ .mt-md-2 {
+ margin-top: 0.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: 0.25rem !important; }
+ .me-md-2 {
+ margin-right: 0.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: 0.25rem !important; }
+ .mb-md-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+ .ms-md-2 {
+ margin-left: 0.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: 0.25rem !important; }
+ .p-md-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+ .pt-md-2 {
+ padding-top: 0.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: 0.25rem !important; }
+ .pe-md-2 {
+ padding-right: 0.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: 0.25rem !important; }
+ .pb-md-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+ .ps-md-2 {
+ padding-left: 0.5rem !important; }
+ .ps-md-3 {
+ padding-left: 1rem !important; }
+ .ps-md-4 {
+ padding-left: 1.5rem !important; }
+ .ps-md-5 {
+ padding-left: 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; }
+ .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-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; }
+ .gap-lg-0 {
+ gap: 0 !important; }
+ .gap-lg-1 {
+ gap: 0.25rem !important; }
+ .gap-lg-2 {
+ gap: 0.5rem !important; }
+ .gap-lg-3 {
+ gap: 1rem !important; }
+ .gap-lg-4 {
+ gap: 1.5rem !important; }
+ .gap-lg-5 {
+ gap: 3rem !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: 0.25rem !important; }
+ .m-lg-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+ .mt-lg-2 {
+ margin-top: 0.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: 0.25rem !important; }
+ .me-lg-2 {
+ margin-right: 0.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: 0.25rem !important; }
+ .mb-lg-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+ .ms-lg-2 {
+ margin-left: 0.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: 0.25rem !important; }
+ .p-lg-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+ .pt-lg-2 {
+ padding-top: 0.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: 0.25rem !important; }
+ .pe-lg-2 {
+ padding-right: 0.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: 0.25rem !important; }
+ .pb-lg-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+ .ps-lg-2 {
+ padding-left: 0.5rem !important; }
+ .ps-lg-3 {
+ padding-left: 1rem !important; }
+ .ps-lg-4 {
+ padding-left: 1.5rem !important; }
+ .ps-lg-5 {
+ padding-left: 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; }
+ .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-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; }
+ .gap-xl-0 {
+ gap: 0 !important; }
+ .gap-xl-1 {
+ gap: 0.25rem !important; }
+ .gap-xl-2 {
+ gap: 0.5rem !important; }
+ .gap-xl-3 {
+ gap: 1rem !important; }
+ .gap-xl-4 {
+ gap: 1.5rem !important; }
+ .gap-xl-5 {
+ gap: 3rem !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: 0.25rem !important; }
+ .m-xl-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+ .mt-xl-2 {
+ margin-top: 0.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: 0.25rem !important; }
+ .me-xl-2 {
+ margin-right: 0.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: 0.25rem !important; }
+ .mb-xl-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+ .ms-xl-2 {
+ margin-left: 0.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: 0.25rem !important; }
+ .p-xl-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+ .pt-xl-2 {
+ padding-top: 0.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: 0.25rem !important; }
+ .pe-xl-2 {
+ padding-right: 0.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: 0.25rem !important; }
+ .pb-xl-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+ .ps-xl-2 {
+ padding-left: 0.5rem !important; }
+ .ps-xl-3 {
+ padding-left: 1rem !important; }
+ .ps-xl-4 {
+ padding-left: 1.5rem !important; }
+ .ps-xl-5 {
+ padding-left: 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; }
+ .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-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; }
+ .gap-xxl-0 {
+ gap: 0 !important; }
+ .gap-xxl-1 {
+ gap: 0.25rem !important; }
+ .gap-xxl-2 {
+ gap: 0.5rem !important; }
+ .gap-xxl-3 {
+ gap: 1rem !important; }
+ .gap-xxl-4 {
+ gap: 1.5rem !important; }
+ .gap-xxl-5 {
+ gap: 3rem !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: 0.25rem !important; }
+ .m-xxl-2 {
+ margin: 0.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: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.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: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.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: 0.25rem !important; }
+ .mt-xxl-2 {
+ margin-top: 0.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: 0.25rem !important; }
+ .me-xxl-2 {
+ margin-right: 0.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: 0.25rem !important; }
+ .mb-xxl-2 {
+ margin-bottom: 0.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: 0.25rem !important; }
+ .ms-xxl-2 {
+ margin-left: 0.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: 0.25rem !important; }
+ .p-xxl-2 {
+ padding: 0.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: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.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: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.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: 0.25rem !important; }
+ .pt-xxl-2 {
+ padding-top: 0.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: 0.25rem !important; }
+ .pe-xxl-2 {
+ padding-right: 0.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: 0.25rem !important; }
+ .pb-xxl-2 {
+ padding-bottom: 0.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: 0.25rem !important; }
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important; }
+ .ps-xxl-3 {
+ padding-left: 1rem !important; }
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important; }
+ .ps-xxl-5 {
+ padding-left: 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-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; } }
diff --git a/docs/css/main.min.css b/docs/css/main.min.css
new file mode 100644
index 0000000..22db985
--- /dev/null
+++ b/docs/css/main.min.css
@@ -0,0 +1,2 @@
+:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#cc2eaa;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#2ecc71;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#2ecc71;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#cc2eaa;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}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:#6c757d;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}[list]::-webkit-calendar-picker-indicator{display:none}[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]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-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{padding-left:0;list-style:none}.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\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);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}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x)/ -2);margin-left:calc(var(--bs-gutter-x)/ -2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/ 2);padding-left:calc(var(--bs-gutter-x)/ 2);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.33333%}.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.66667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.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.33333%}.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.66667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.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:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.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.33333%}.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.66667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.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:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.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.33333%}.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.66667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.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:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.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.33333%}.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.66667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.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:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.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.33333%}.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.66667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.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:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.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-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--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:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--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:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d5f5e3;--bs-table-striped-bg:#cae9d8;--bs-table-striped-color:#000;--bs-table-active-bg:#c0ddcc;--bs-table-active-color:#000;--bs-table-hover-bg:#c5e3d2;--bs-table-hover-color:#000;color:#000;border-color:#c0ddcc}.table-info{--bs-table-bg:#cff4fc;--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:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--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:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f5d5ee;--bs-table-striped-bg:#e9cae2;--bs-table-striped-color:#000;--bs-table-active-bg:#ddc0d6;--bs-table-active-color:#000;--bs-table-hover-bg:#e3c5dc;--bs-table-hover-color:#000;color:#000;border-color:#ddc0d6}.table-light{--bs-table-bg:#f8f9fa;--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:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--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:#fff;border-color:#373b3e}.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 + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;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:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;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:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;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::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 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 + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image: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 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#6c757d;background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.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-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;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 rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-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 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-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;background-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{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image: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");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{background-image: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;background-image: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-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}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;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;-webkit-appearance:none;appearance:none}@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:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;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;-moz-appearance:none;appearance:none}@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:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px 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::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.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:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.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:.3rem}.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:.2rem}.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)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){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>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){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:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#2ecc71}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#000;background-color:rgba(46,204,113,.9);border-radius:.25rem}.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:#2ecc71;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='%232ecc71' d='M2.3 6.73L.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:#2ecc71;box-shadow:0 0 0 .25rem rgba(46,204,113,.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:#2ecc71;padding-right:4.125rem;background-image: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 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232ecc71' d='M2.3 6.73L.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-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:#2ecc71;box-shadow:0 0 0 .25rem rgba(46,204,113,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#2ecc71}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#2ecc71}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(46,204,113,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#2ecc71}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#cc2eaa}.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:rgba(204,46,170,.9);border-radius:.25rem}.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:#cc2eaa;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='%23cc2eaa'%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='%23cc2eaa' 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:#cc2eaa;box-shadow:0 0 0 .25rem rgba(204,46,170,.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:#cc2eaa;padding-right:4.125rem;background-image: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 5l6 6 6-6'/%3e%3c/svg%3e"),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='%23cc2eaa'%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='%23cc2eaa' stroke='none'/%3e%3c/svg%3e");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:#cc2eaa;box-shadow:0 0 0 .25rem rgba(204,46,170,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#cc2eaa}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#cc2eaa}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(204,46,170,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#cc2eaa}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;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:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#000;background-color:#2ecc71;border-color:#2ecc71}.btn-success:hover{color:#000;background-color:#4dd486;border-color:#43d17f}.btn-check:focus+.btn-success,.btn-success:focus{color:#000;background-color:#4dd486;border-color:#43d17f;box-shadow:0 0 0 .25rem rgba(39,173,96,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#000;background-color:#58d68d;border-color:#43d17f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(39,173,96,.5)}.btn-success.disabled,.btn-success:disabled{color:#000;background-color:#2ecc71;border-color:#2ecc71}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#cc2eaa;border-color:#cc2eaa}.btn-danger:hover{color:#fff;background-color:#ad2791;border-color:#a32588}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#ad2791;border-color:#a32588;box-shadow:0 0 0 .25rem rgba(212,77,183,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#a32588;border-color:#992380}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(212,77,183,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#cc2eaa;border-color:#cc2eaa}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#2ecc71;border-color:#2ecc71}.btn-outline-success:hover{color:#000;background-color:#2ecc71;border-color:#2ecc71}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(46,204,113,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#000;background-color:#2ecc71;border-color:#2ecc71}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(46,204,113,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#2ecc71;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#cc2eaa;border-color:#cc2eaa}.btn-outline-danger:hover{color:#fff;background-color:#cc2eaa;border-color:#cc2eaa}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(204,46,170,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#cc2eaa;border-color:#cc2eaa}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(204,46,170,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#cc2eaa;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.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}}.dropdown,.dropend,.dropstart,.dropup{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{position:absolute;top:100%;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{left:0;margin-top:.125rem}.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{top:auto;bottom:100%}.dropup .dropdown-menu[data-bs-popper]{margin-top:0;margin-bottom:.125rem}.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{top:0;right:auto;left:100%}.dropend .dropdown-menu[data-bs-popper]{margin-top:0;margin-left:.125rem}.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{top:0;right:100%;left:auto}.dropstart .dropdown-menu[data-bs-popper]{margin-top:0;margin-right:.125rem}.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:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .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>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.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:-1px}.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{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;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.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.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}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.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:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@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 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;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:.5rem;padding-left:.5rem}.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}}@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:.5rem;padding-left:.5rem}.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}}@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:.5rem;padding-left:.5rem}.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}}@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:.5rem;padding-left:.5rem}.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}}@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:.5rem;padding-left:.5rem}.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{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:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image: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")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.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:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@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}}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;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:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#1c7a44;background-color:#d5f5e3;border-color:#c0f0d4}.alert-success .alert-link{color:#166236}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#7a1c66;background-color:#f5d5ee;border-color:#f0c0e6}.alert-danger .alert-link{color:#621652}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@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:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.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:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;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:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#1c7a44;background-color:#d5f5e3}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1c7a44;background-color:#c0ddcc}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c7a44;border-color:#1c7a44}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#7a1c66;background-color:#f5d5ee}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#7a1c66;background-color:#ddc0d6}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#7a1c66;border-color:#7a1c66}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-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% - 1rem)}.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% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-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-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@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-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@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-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;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;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;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;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.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:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.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%;-webkit-backface-visibility:hidden;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:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-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%;list-style:none}.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}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#2ecc71}.link-success:focus,.link-success:hover{color:#58d68d}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#cc2eaa}.link-danger:focus,.link-danger:hover{color:#a32588}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.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:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.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}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;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}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow: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-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:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.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:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#2ecc71!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#cc2eaa!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-0{border-width:0!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}.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}.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}.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}.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-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#2ecc71!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#cc2eaa!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!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}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#2ecc71!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#cc2eaa!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body{background-color:#fff!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!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-break{word-wrap:break-word!important;word-break:break-word!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float: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-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}.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}.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}.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}.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-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}.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}.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}.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}.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-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}.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}.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}.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}.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-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}.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}.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}.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}.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-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}.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}.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}.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-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}}
+/*# sourceMappingURL=main.min.css.map */
diff --git a/docs/css/main.min.css.map b/docs/css/main.min.css.map
new file mode 100644
index 0000000..a30f7ec
--- /dev/null
+++ b/docs/css/main.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../../node_modules/bootstrap/scss/_root.scss","../../../node_modules/bootstrap/scss/_reboot.scss","main.min.css","../../../node_modules/bootstrap/scss/vendor/_rfs.scss","main.css","../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../node_modules/bootstrap/scss/_type.scss","../../../node_modules/bootstrap/scss/mixins/_lists.scss","../../../node_modules/bootstrap/scss/_images.scss","../../../node_modules/bootstrap/scss/mixins/_image.scss","../../../node_modules/bootstrap/scss/_containers.scss","../../../node_modules/bootstrap/scss/mixins/_container.scss","../../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../../node_modules/bootstrap/scss/_grid.scss","../../../node_modules/bootstrap/scss/mixins/_grid.scss","../../../node_modules/bootstrap/scss/_tables.scss","../../../node_modules/bootstrap/scss/mixins/_table-variants.scss","../../../node_modules/bootstrap/scss/forms/_labels.scss","../../../node_modules/bootstrap/scss/forms/_form-text.scss","../../../node_modules/bootstrap/scss/forms/_form-control.scss","../../../node_modules/bootstrap/scss/mixins/_transition.scss","../../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../../node_modules/bootstrap/scss/forms/_form-select.scss","../../../node_modules/bootstrap/scss/forms/_form-check.scss","../../../node_modules/bootstrap/scss/forms/_form-range.scss","../../../node_modules/bootstrap/scss/forms/_floating-labels.scss","../../../node_modules/bootstrap/scss/forms/_input-group.scss","../../../node_modules/bootstrap/scss/mixins/_forms.scss","../../../node_modules/bootstrap/scss/_buttons.scss","../../../node_modules/bootstrap/scss/mixins/_buttons.scss","../../../node_modules/bootstrap/scss/_transitions.scss","../../../node_modules/bootstrap/scss/_dropdown.scss","../../../node_modules/bootstrap/scss/mixins/_caret.scss","../../../node_modules/bootstrap/scss/_button-group.scss","../../../node_modules/bootstrap/scss/_nav.scss","../../../node_modules/bootstrap/scss/_navbar.scss","../../../node_modules/bootstrap/scss/_card.scss","../../../node_modules/bootstrap/scss/_breadcrumb.scss","../../../node_modules/bootstrap/scss/_pagination.scss","../../../node_modules/bootstrap/scss/mixins/_pagination.scss","../../../node_modules/bootstrap/scss/_badge.scss","../../../node_modules/bootstrap/scss/_alert.scss","../../../node_modules/bootstrap/scss/mixins/_alert.scss","../../../node_modules/bootstrap/scss/_progress.scss","../../../node_modules/bootstrap/scss/_list-group.scss","../../../node_modules/bootstrap/scss/mixins/_list-group.scss","../../../node_modules/bootstrap/scss/_close.scss","../../../node_modules/bootstrap/scss/_toasts.scss","../../../node_modules/bootstrap/scss/_modal.scss","../../../node_modules/bootstrap/scss/_tooltip.scss","../../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../../node_modules/bootstrap/scss/_popover.scss","../../../node_modules/bootstrap/scss/_carousel.scss","../../../node_modules/bootstrap/scss/mixins/_clearfix.scss","../../../node_modules/bootstrap/scss/_spinners.scss","../../../node_modules/bootstrap/scss/helpers/_colored-links.scss","../../../node_modules/bootstrap/scss/helpers/_ratio.scss","../../../node_modules/bootstrap/scss/helpers/_position.scss","../../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../../../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../../../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../../node_modules/bootstrap/scss/mixins/_utilities.scss","../../../node_modules/bootstrap/scss/utilities/_api.scss"],"names":[],"mappings":"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","file":"main.min.css","sourcesContent":[":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n font-size: $font-size-root;\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: $body-text-align;\n background-color: $body-bg; // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\n\nbutton,\nselect {\n text-transform: none;\n}\n\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n cursor: pointer;\n}\n\n// Remove the inheritance of word-wrap in Safari.\n// See https://github.com/twbs/bootstrap/issues/24990\n\nselect {\n word-wrap: normal;\n}\n\n// Remove the dropdown arrow in Chrome from inputs built with datalists.\n// See https://stackoverflow.com/a/54997118\n\n[list]::-webkit-calendar-picker-indicator {\n display: none;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n\n @if $enable-button-pointers {\n &:not(:disabled) {\n cursor: pointer; // 3\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n// unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n// So we reset that to ensure fieldsets behave more like a standard block element.\n// See https://github.com/twbs/bootstrap/issues/12359\n// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\nfieldset {\n min-width: 0; // 1\n padding: 0; // 2\n margin: 0; // 2\n border: 0; // 2\n}\n\n// 1. By using `float: left`, the legend will behave like a block element.\n// This way the border of a fieldset wraps around the legend if present.\n// 2. Fix wrapping bug.\n// See https://github.com/twbs/bootstrap/issues/29712\n\nlegend {\n float: left; // 1\n width: 100%;\n padding: 0;\n margin-bottom: $legend-margin-bottom;\n @include font-size($legend-font-size);\n font-weight: $legend-font-weight;\n line-height: inherit;\n\n + * {\n clear: left; // 2\n }\n}\n\n// Fix height of inputs with a type of datetime-local, date, month, week, or time\n// See https://github.com/twbs/bootstrap/issues/18842\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n// 1. Correct the outline style in Safari.\n// 2. This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\n[type=\"search\"] {\n outline-offset: -2px; // 1\n -webkit-appearance: textfield; // 2\n}\n\n// 1. A few input types should stay LTR\n// See https://rtlstyling.com/posts/rtl-styling#form-inputs\n// 2. RTL only output\n// See https://rtlcss.com/learn/usage-guide/control-directives/#raw\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n\n// Remove the inner padding in Chrome and Safari on macOS.\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n// Remove padding around color pickers in webkit browsers\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n\n// Inherit font family and line height for file input buttons\n\n// stylelint-disable-next-line selector-pseudo-element-no-unknown\n::file-selector-button {\n font: inherit;\n}\n\n// 1. Change font properties to `inherit`\n// 2. Correct the inability to style clickable types in iOS and Safari.\n\n::-webkit-file-upload-button {\n font: inherit; // 1\n -webkit-appearance: button; // 2\n}\n\n// Correct element displays\n\noutput {\n display: inline-block;\n}\n\n// Remove border from iframe\n\niframe {\n border: 0;\n}\n\n// Summary\n//\n// 1. Add the correct display in all browsers\n\nsummary {\n display: list-item; // 1\n cursor: pointer;\n}\n\n\n// Progress\n//\n// Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\nprogress {\n vertical-align: baseline;\n}\n\n\n// Hidden attribute\n//\n// Always hide an element with the `hidden` HTML attribute.\n\n[hidden] {\n display: none !important;\n}\n",null,"// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: $rfs-base-value / ($rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: $rfs-base-value / ($rfs-base-value * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + ' ' + if($rfs-unit == rem, #{$value / ($value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + ' ' + if($rfs-unit == px, #{$value / ($value * 0 + 1) * $rfs-rem-value}px, $value);\n }\n @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + ' ' + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: '';\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + ' 0';\n }\n\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + ' ' + $value;\n }\n\n @else {\n // Remove unit from $value for calculations\n $value: $value / ($value * 0 + if($unit == px, 1, 1 / $rfs-rem-value));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + ' ' + if($rfs-unit == rem, #{$value / $rfs-rem-value}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + (abs($value) - $rfs-base-value) / $rfs-factor;\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{$value-min / $rfs-rem-value}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$value-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluidVal: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluidVal {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule {\n #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n",":root {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #cc2eaa;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #2ecc71;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #2ecc71;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #cc2eaa;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", \"Liberation Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth; } }\n\nbody {\n margin: 0;\n font-family: var(--bs-font-sans-serif);\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important; }\n\nhr {\n margin: 1rem 0;\n color: inherit;\n background-color: currentColor;\n border: 0;\n opacity: 0.25; }\n\nhr:not([size]) {\n height: 1px; }\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw); }\n @media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem; } }\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw); }\n @media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem; } }\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw); }\n @media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem; } }\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw); }\n @media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem; } }\n\nh5, .h5 {\n font-size: 1.25rem; }\n\nh6, .h6 {\n font-size: 1rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-bs-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul {\n padding-left: 2rem; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall, .small {\n font-size: 0.875em; }\n\nmark, .mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #0d6efd;\n text-decoration: underline; }\n a:hover {\n color: #0a58ca; }\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n direction: ltr /* rtl:ignore */;\n unicode-bidi: bidi-override; }\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\ncode {\n font-size: 0.875em;\n color: #d63384;\n word-wrap: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 0.875em;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 1em;\n font-weight: 700; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg,\nsvg {\n vertical-align: middle; }\n\ntable {\n caption-side: bottom;\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: #6c757d;\n text-align: left; }\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent; }\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0; }\n\nlabel {\n display: inline-block; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus:not(:focus-visible) {\n outline: 0; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\nselect {\n text-transform: none; }\n\n[role=\"button\"] {\n cursor: pointer; }\n\nselect {\n word-wrap: normal; }\n\n[list]::-webkit-calendar-picker-indicator {\n display: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; }\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer; }\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ntextarea {\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit; }\n @media (min-width: 1200px) {\n legend {\n font-size: 1.5rem; } }\n legend + * {\n clear: left; }\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0; }\n\n::-webkit-inner-spin-button {\n height: auto; }\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: textfield; }\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-color-swatch-wrapper {\n padding: 0; }\n\n::file-selector-button {\n font: inherit; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\niframe {\n border: 0; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\nprogress {\n vertical-align: baseline; }\n\n[hidden] {\n display: none !important; }\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300; }\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem; } }\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem; } }\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem; } }\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem; } }\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem; } }\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2; }\n @media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem; } }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem; }\n .blockquote > :last-child {\n margin-bottom: 0; }\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d; }\n .blockquote-footer::before {\n content: \"\\2014\\00A0\"; }\n\n.img-fluid {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 0.875em;\n color: #6c757d; }\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl,\n.container-xxl {\n width: 100%;\n padding-right: var(--bs-gutter-x, 0.75rem);\n padding-left: var(--bs-gutter-x, 0.75rem);\n margin-right: auto;\n margin-left: auto; }\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px; } }\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px; } }\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px; } }\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px; } }\n\n@media (min-width: 1400px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {\n max-width: 1320px; } }\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(var(--bs-gutter-y) * -1);\n margin-right: calc(var(--bs-gutter-x) / -2);\n margin-left: calc(var(--bs-gutter-x) / -2); }\n .row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) / 2);\n padding-left: calc(var(--bs-gutter-x) / 2);\n margin-top: var(--bs-gutter-y); }\n\n.col {\n flex: 1 0 0%; }\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto; }\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto; }\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%; }\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%; }\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%; }\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0; }\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0; }\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem; }\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem; }\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem; }\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem; }\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem; }\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem; }\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem; }\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem; }\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem; }\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem; }\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%; }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto; }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto; }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%; }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%; }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%; }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0; }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0; }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem; }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem; }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem; }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem; }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem; }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem; }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem; }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem; }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem; }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem; } }\n\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%; }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto; }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto; }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%; }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%; }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%; }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0; }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0; }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem; }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem; }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem; }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem; }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem; }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem; }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem; }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem; }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem; }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem; } }\n\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%; }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto; }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto; }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%; }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%; }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%; }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0; }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0; }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem; }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem; }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem; }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem; }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem; }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem; }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem; }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem; }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem; }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem; } }\n\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%; }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto; }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto; }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%; }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%; }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%; }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0; }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0; }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem; }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem; }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem; }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem; }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem; }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem; }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem; }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem; }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem; }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem; } }\n\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%; }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto; }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%; }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%; }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333%; }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%; }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%; }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto; }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333%; }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66667%; }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%; }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333%; }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66667%; }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%; }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333%; }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66667%; }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%; }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333%; }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66667%; }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%; }\n .offset-xxl-0 {\n margin-left: 0; }\n .offset-xxl-1 {\n margin-left: 8.33333%; }\n .offset-xxl-2 {\n margin-left: 16.66667%; }\n .offset-xxl-3 {\n margin-left: 25%; }\n .offset-xxl-4 {\n margin-left: 33.33333%; }\n .offset-xxl-5 {\n margin-left: 41.66667%; }\n .offset-xxl-6 {\n margin-left: 50%; }\n .offset-xxl-7 {\n margin-left: 58.33333%; }\n .offset-xxl-8 {\n margin-left: 66.66667%; }\n .offset-xxl-9 {\n margin-left: 75%; }\n .offset-xxl-10 {\n margin-left: 83.33333%; }\n .offset-xxl-11 {\n margin-left: 91.66667%; }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0; }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0; }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem; }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem; }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem; }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem; }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem; }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem; }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem; }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem; }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem; }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem; } }\n\n.table {\n --bs-table-bg: transparent;\n --bs-table-striped-color: #212529;\n --bs-table-striped-bg: rgba(0, 0, 0, 0.05);\n --bs-table-active-color: #212529;\n --bs-table-active-bg: rgba(0, 0, 0, 0.1);\n --bs-table-hover-color: #212529;\n --bs-table-hover-bg: rgba(0, 0, 0, 0.075);\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n vertical-align: top;\n border-color: #dee2e6; }\n .table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n background-color: var(--bs-table-bg);\n border-bottom-width: 1px;\n box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); }\n .table > tbody {\n vertical-align: inherit; }\n .table > thead {\n vertical-align: bottom; }\n .table > :not(:last-child) > :last-child > * {\n border-bottom-color: currentColor; }\n\n.caption-top {\n caption-side: top; }\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem; }\n\n.table-bordered > :not(caption) > * {\n border-width: 1px 0; }\n .table-bordered > :not(caption) > * > * {\n border-width: 0 1px; }\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0; }\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n --bs-table-accent-bg: var(--bs-table-striped-bg);\n color: var(--bs-table-striped-color); }\n\n.table-active {\n --bs-table-accent-bg: var(--bs-table-active-bg);\n color: var(--bs-table-active-color); }\n\n.table-hover > tbody > tr:hover {\n --bs-table-accent-bg: var(--bs-table-hover-bg);\n color: var(--bs-table-hover-color); }\n\n.table-primary {\n --bs-table-bg: #cfe2ff;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #bacbe6; }\n\n.table-secondary {\n --bs-table-bg: #e2e3e5;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #cbccce; }\n\n.table-success {\n --bs-table-bg: #d5f5e3;\n --bs-table-striped-bg: #cae9d8;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #c0ddcc;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c5e3d2;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #c0ddcc; }\n\n.table-info {\n --bs-table-bg: #cff4fc;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #badce3; }\n\n.table-warning {\n --bs-table-bg: #fff3cd;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #e6dbb9; }\n\n.table-danger {\n --bs-table-bg: #f5d5ee;\n --bs-table-striped-bg: #e9cae2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #ddc0d6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e3c5dc;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #ddc0d6; }\n\n.table-light {\n --bs-table-bg: #f8f9fa;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: #000;\n border-color: #dfe0e1; }\n\n.table-dark {\n --bs-table-bg: #212529;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: #fff;\n border-color: #373b3e; }\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; } }\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; } }\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; } }\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; } }\n\n@media (max-width: 1399.98px) {\n .table-responsive-xxl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; } }\n\n.form-label {\n margin-bottom: 0.5rem; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem; }\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #6c757d; }\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n appearance: none;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control[type=\"file\"] {\n overflow: hidden; }\n .form-control[type=\"file\"]:not(:disabled):not([readonly]) {\n cursor: pointer; }\n .form-control:focus {\n color: #212529;\n background-color: #fff;\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .form-control::-webkit-date-and-time-value {\n height: 1.5em; }\n .form-control::placeholder {\n color: #6c757d;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1; }\n .form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #212529;\n background-color: #e9ecef;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none; } }\n .form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: #dde0e3; }\n .form-control::-webkit-file-upload-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: #212529;\n background-color: #e9ecef;\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: 1px;\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control::-webkit-file-upload-button {\n transition: none; } }\n .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: #dde0e3; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n .form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem; }\n .form-control-sm::-webkit-file-upload-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem; }\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n .form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem; }\n .form-control-lg::-webkit-file-upload-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem; }\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + 2px); }\n\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + 2px); }\n\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + 2px); }\n\n.form-control-color {\n max-width: 3rem;\n height: auto;\n padding: 0.375rem; }\n .form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer; }\n .form-control-color::-moz-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem; }\n .form-control-color::-webkit-color-swatch {\n height: 1.5em;\n border-radius: 0.25rem; }\n\n.form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n background-color: #fff;\n background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none; }\n .form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none; }\n .form-select:disabled {\n color: #6c757d;\n background-color: #e9ecef; }\n .form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #212529; }\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem; }\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem; }\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem; }\n .form-check .form-check-input {\n float: left;\n margin-left: -1.5em; }\n\n.form-check-input {\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n background-color: #fff;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: 1px solid rgba(0, 0, 0, 0.25);\n appearance: none;\n color-adjust: exact; }\n .form-check-input[type=\"checkbox\"] {\n border-radius: 0.25em; }\n .form-check-input[type=\"radio\"] {\n border-radius: 50%; }\n .form-check-input:active {\n filter: brightness(90%); }\n .form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd; }\n .form-check-input:checked[type=\"checkbox\"] {\n background-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 10l3 3l6-6'/%3e%3c/svg%3e\"); }\n .form-check-input:checked[type=\"radio\"] {\n background-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\"); }\n .form-check-input[type=\"checkbox\"]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n background-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\"); }\n .form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5; }\n .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n opacity: 0.5; }\n\n.form-switch {\n padding-left: 2.5em; }\n .form-switch .form-check-input {\n width: 2em;\n margin-left: -2.5em;\n background-image: 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\");\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none; } }\n .form-switch .form-check-input:focus {\n background-image: 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\"); }\n .form-switch .form-check-input:checked {\n background-position: right center;\n background-image: 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\"); }\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem; }\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n .btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65; }\n\n.form-range {\n width: 100%;\n height: 1.5rem;\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .form-range:focus {\n outline: 0; }\n .form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .form-range::-moz-focus-outer {\n border: 0; }\n .form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none; } }\n .form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe; }\n .form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none; } }\n .form-range::-moz-range-thumb:active {\n background-color: #b6d4fe; }\n .form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .form-range:disabled {\n pointer-events: none; }\n .form-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .form-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n\n.form-floating {\n position: relative; }\n .form-floating > .form-control,\n .form-floating > .form-select {\n height: calc(3.5rem + 2px);\n padding: 1rem 0.75rem; }\n .form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n padding: 1rem 0.75rem;\n pointer-events: none;\n border: 1px solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none; } }\n .form-floating > .form-control::placeholder {\n color: transparent; }\n .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem; }\n .form-floating > .form-control:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem; }\n .form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem; }\n .form-floating > .form-control:focus ~ label,\n .form-floating > .form-control:not(:placeholder-shown) ~ label,\n .form-floating > .form-select ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }\n .form-floating > .form-control:-webkit-autofill ~ label {\n opacity: 0.65;\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-select {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; }\n .input-group > .form-control:focus,\n .input-group > .form-select:focus {\n z-index: 3; }\n .input-group .btn {\n position: relative;\n z-index: 2; }\n .input-group .btn:focus {\n z-index: 3; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem; }\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem; }\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #2ecc71; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n color: #000;\n background-color: rgba(46, 204, 113, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #2ecc71;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232ecc71' d='M2.3 6.73L.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\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #2ecc71;\n box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: #2ecc71;\n padding-right: 4.125rem;\n background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e\"), url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232ecc71' d='M2.3 6.73L.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\");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: #2ecc71;\n box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: #2ecc71; }\n .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: #2ecc71; }\n .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.25); }\n .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #2ecc71; }\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: .5em; }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: #cc2eaa; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: rgba(204, 46, 170, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #cc2eaa;\n padding-right: calc(1.5em + 0.75rem);\n 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='%23cc2eaa'%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='%23cc2eaa' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #cc2eaa;\n box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: #cc2eaa;\n padding-right: 4.125rem;\n background-image: 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 5l6 6 6-6'/%3e%3c/svg%3e\"), 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='%23cc2eaa'%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='%23cc2eaa' stroke='none'/%3e%3c/svg%3e\");\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: #cc2eaa;\n box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: #cc2eaa; }\n .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: #cc2eaa; }\n .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.25); }\n .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #cc2eaa; }\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: .5em; }\n\n.btn {\n display: inline-block;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none; } }\n .btn:hover {\n color: #212529; }\n .btn-check:focus + .btn, .btn:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n .btn:disabled, .btn.disabled,\n fieldset:disabled .btn {\n pointer-events: none;\n opacity: 0.65; }\n\n.btn-primary {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n .btn-primary:hover {\n color: #fff;\n background-color: #0b5ed7;\n border-color: #0a58ca; }\n .btn-check:focus + .btn-primary, .btn-primary:focus {\n color: #fff;\n background-color: #0b5ed7;\n border-color: #0a58ca;\n box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); }\n .btn-check:checked + .btn-primary,\n .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active,\n .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0a58ca;\n border-color: #0a53be; }\n .btn-check:checked + .btn-primary:focus,\n .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus,\n .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); }\n .btn-primary:disabled, .btn-primary.disabled {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d; }\n .btn-secondary:hover {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64; }\n .btn-check:focus + .btn-secondary, .btn-secondary:focus {\n color: #fff;\n background-color: #5c636a;\n border-color: #565e64;\n box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); }\n .btn-check:checked + .btn-secondary,\n .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active,\n .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #565e64;\n border-color: #51585e; }\n .btn-check:checked + .btn-secondary:focus,\n .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); }\n .btn-secondary:disabled, .btn-secondary.disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d; }\n\n.btn-success {\n color: #000;\n background-color: #2ecc71;\n border-color: #2ecc71; }\n .btn-success:hover {\n color: #000;\n background-color: #4dd486;\n border-color: #43d17f; }\n .btn-check:focus + .btn-success, .btn-success:focus {\n color: #000;\n background-color: #4dd486;\n border-color: #43d17f;\n box-shadow: 0 0 0 0.25rem rgba(39, 173, 96, 0.5); }\n .btn-check:checked + .btn-success,\n .btn-check:active + .btn-success, .btn-success:active, .btn-success.active,\n .show > .btn-success.dropdown-toggle {\n color: #000;\n background-color: #58d68d;\n border-color: #43d17f; }\n .btn-check:checked + .btn-success:focus,\n .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(39, 173, 96, 0.5); }\n .btn-success:disabled, .btn-success.disabled {\n color: #000;\n background-color: #2ecc71;\n border-color: #2ecc71; }\n\n.btn-info {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0; }\n .btn-info:hover {\n color: #000;\n background-color: #31d2f2;\n border-color: #25cff2; }\n .btn-check:focus + .btn-info, .btn-info:focus {\n color: #000;\n background-color: #31d2f2;\n border-color: #25cff2;\n box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); }\n .btn-check:checked + .btn-info,\n .btn-check:active + .btn-info, .btn-info:active, .btn-info.active,\n .show > .btn-info.dropdown-toggle {\n color: #000;\n background-color: #3dd5f3;\n border-color: #25cff2; }\n .btn-check:checked + .btn-info:focus,\n .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); }\n .btn-info:disabled, .btn-info.disabled {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0; }\n\n.btn-warning {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107; }\n .btn-warning:hover {\n color: #000;\n background-color: #ffca2c;\n border-color: #ffc720; }\n .btn-check:focus + .btn-warning, .btn-warning:focus {\n color: #000;\n background-color: #ffca2c;\n border-color: #ffc720;\n box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); }\n .btn-check:checked + .btn-warning,\n .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active,\n .show > .btn-warning.dropdown-toggle {\n color: #000;\n background-color: #ffcd39;\n border-color: #ffc720; }\n .btn-check:checked + .btn-warning:focus,\n .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); }\n .btn-warning:disabled, .btn-warning.disabled {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107; }\n\n.btn-danger {\n color: #fff;\n background-color: #cc2eaa;\n border-color: #cc2eaa; }\n .btn-danger:hover {\n color: #fff;\n background-color: #ad2791;\n border-color: #a32588; }\n .btn-check:focus + .btn-danger, .btn-danger:focus {\n color: #fff;\n background-color: #ad2791;\n border-color: #a32588;\n box-shadow: 0 0 0 0.25rem rgba(212, 77, 183, 0.5); }\n .btn-check:checked + .btn-danger,\n .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #a32588;\n border-color: #992380; }\n .btn-check:checked + .btn-danger:focus,\n .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(212, 77, 183, 0.5); }\n .btn-danger:disabled, .btn-danger.disabled {\n color: #fff;\n background-color: #cc2eaa;\n border-color: #cc2eaa; }\n\n.btn-light {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-light:hover {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb; }\n .btn-check:focus + .btn-light, .btn-light:focus {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb;\n box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); }\n .btn-check:checked + .btn-light,\n .btn-check:active + .btn-light, .btn-light:active, .btn-light.active,\n .show > .btn-light.dropdown-toggle {\n color: #000;\n background-color: #f9fafb;\n border-color: #f9fafb; }\n .btn-check:checked + .btn-light:focus,\n .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); }\n .btn-light:disabled, .btn-light.disabled {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n\n.btn-dark {\n color: #fff;\n background-color: #212529;\n border-color: #212529; }\n .btn-dark:hover {\n color: #fff;\n background-color: #1c1f23;\n border-color: #1a1e21; }\n .btn-check:focus + .btn-dark, .btn-dark:focus {\n color: #fff;\n background-color: #1c1f23;\n border-color: #1a1e21;\n box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); }\n .btn-check:checked + .btn-dark,\n .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1a1e21;\n border-color: #191c1f; }\n .btn-check:checked + .btn-dark:focus,\n .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); }\n .btn-dark:disabled, .btn-dark.disabled {\n color: #fff;\n background-color: #212529;\n border-color: #212529; }\n\n.btn-outline-primary {\n color: #0d6efd;\n border-color: #0d6efd; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n .btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); }\n .btn-check:checked + .btn-outline-primary,\n .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n .btn-check:checked + .btn-outline-primary:focus,\n .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); }\n .btn-outline-primary:disabled, .btn-outline-primary.disabled {\n color: #0d6efd;\n background-color: transparent; }\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d; }\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d; }\n .btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {\n box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); }\n .btn-check:checked + .btn-outline-secondary,\n .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d; }\n .btn-check:checked + .btn-outline-secondary:focus,\n .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); }\n .btn-outline-secondary:disabled, .btn-outline-secondary.disabled {\n color: #6c757d;\n background-color: transparent; }\n\n.btn-outline-success {\n color: #2ecc71;\n border-color: #2ecc71; }\n .btn-outline-success:hover {\n color: #000;\n background-color: #2ecc71;\n border-color: #2ecc71; }\n .btn-check:focus + .btn-outline-success, .btn-outline-success:focus {\n box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.5); }\n .btn-check:checked + .btn-outline-success,\n .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {\n color: #000;\n background-color: #2ecc71;\n border-color: #2ecc71; }\n .btn-check:checked + .btn-outline-success:focus,\n .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(46, 204, 113, 0.5); }\n .btn-outline-success:disabled, .btn-outline-success.disabled {\n color: #2ecc71;\n background-color: transparent; }\n\n.btn-outline-info {\n color: #0dcaf0;\n border-color: #0dcaf0; }\n .btn-outline-info:hover {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0; }\n .btn-check:focus + .btn-outline-info, .btn-outline-info:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); }\n .btn-check:checked + .btn-outline-info,\n .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {\n color: #000;\n background-color: #0dcaf0;\n border-color: #0dcaf0; }\n .btn-check:checked + .btn-outline-info:focus,\n .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); }\n .btn-outline-info:disabled, .btn-outline-info.disabled {\n color: #0dcaf0;\n background-color: transparent; }\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107; }\n .btn-outline-warning:hover {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107; }\n .btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {\n box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); }\n .btn-check:checked + .btn-outline-warning,\n .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {\n color: #000;\n background-color: #ffc107;\n border-color: #ffc107; }\n .btn-check:checked + .btn-outline-warning:focus,\n .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); }\n .btn-outline-warning:disabled, .btn-outline-warning.disabled {\n color: #ffc107;\n background-color: transparent; }\n\n.btn-outline-danger {\n color: #cc2eaa;\n border-color: #cc2eaa; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #cc2eaa;\n border-color: #cc2eaa; }\n .btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {\n box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.5); }\n .btn-check:checked + .btn-outline-danger,\n .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {\n color: #fff;\n background-color: #cc2eaa;\n border-color: #cc2eaa; }\n .btn-check:checked + .btn-outline-danger:focus,\n .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(204, 46, 170, 0.5); }\n .btn-outline-danger:disabled, .btn-outline-danger.disabled {\n color: #cc2eaa;\n background-color: transparent; }\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:hover {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-check:focus + .btn-outline-light, .btn-outline-light:focus {\n box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); }\n .btn-check:checked + .btn-outline-light,\n .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {\n color: #000;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-check:checked + .btn-outline-light:focus,\n .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); }\n .btn-outline-light:disabled, .btn-outline-light.disabled {\n color: #f8f9fa;\n background-color: transparent; }\n\n.btn-outline-dark {\n color: #212529;\n border-color: #212529; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #212529;\n border-color: #212529; }\n .btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {\n box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); }\n .btn-check:checked + .btn-outline-dark,\n .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {\n color: #fff;\n background-color: #212529;\n border-color: #212529; }\n .btn-check:checked + .btn-outline-dark:focus,\n .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {\n box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); }\n .btn-outline-dark:disabled, .btn-outline-dark.disabled {\n color: #212529;\n background-color: transparent; }\n\n.btn-link {\n font-weight: 400;\n color: #0d6efd;\n text-decoration: underline; }\n .btn-link:hover {\n color: #0a58ca; }\n .btn-link:disabled, .btn-link.disabled {\n color: #6c757d; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n z-index: 1000;\n display: none;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n .dropdown-menu[data-bs-popper] {\n left: 0;\n margin-top: 0.125rem; }\n\n.dropdown-menu-start {\n --bs-position: start; }\n .dropdown-menu-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n\n.dropdown-menu-end {\n --bs-position: end; }\n .dropdown-menu-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; }\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-start {\n --bs-position: start; }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n .dropdown-menu-sm-end {\n --bs-position: end; }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; } }\n\n@media (min-width: 768px) {\n .dropdown-menu-md-start {\n --bs-position: start; }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n .dropdown-menu-md-end {\n --bs-position: end; }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; } }\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-start {\n --bs-position: start; }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n .dropdown-menu-lg-end {\n --bs-position: end; }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; } }\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start; }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n .dropdown-menu-xl-end {\n --bs-position: end; }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; } }\n\n@media (min-width: 1400px) {\n .dropdown-menu-xxl-start {\n --bs-position: start; }\n .dropdown-menu-xxl-start[data-bs-popper] {\n right: auto /* rtl:ignore */;\n left: 0 /* rtl:ignore */; }\n .dropdown-menu-xxl-end {\n --bs-position: end; }\n .dropdown-menu-xxl-end[data-bs-popper] {\n right: 0 /* rtl:ignore */;\n left: auto /* rtl:ignore */; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%; }\n .dropup .dropdown-menu[data-bs-popper] {\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropend .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%; }\n .dropend .dropdown-menu[data-bs-popper] {\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropend .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropstart .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto; }\n .dropstart .dropdown-menu[data-bs-popper] {\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\"; }\n\n.dropstart .dropdown-toggle::after {\n display: none; }\n\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropstart .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid rgba(0, 0, 0, 0.15); }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #1e2125;\n background-color: #e9ecef; }\n .dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #0d6efd; }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1rem;\n color: #212529; }\n\n.dropdown-menu-dark {\n color: #dee2e6;\n background-color: #343a40;\n border-color: rgba(0, 0, 0, 0.15); }\n .dropdown-menu-dark .dropdown-item {\n color: #dee2e6; }\n .dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.15); }\n .dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {\n color: #fff;\n background-color: #0d6efd; }\n .dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {\n color: #adb5bd; }\n .dropdown-menu-dark .dropdown-divider {\n border-color: rgba(0, 0, 0, 0.15); }\n .dropdown-menu-dark .dropdown-item-text {\n color: #dee2e6; }\n .dropdown-menu-dark .dropdown-header {\n color: #adb5bd; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn-check:checked + .btn,\n .btn-group > .btn-check:focus + .btn,\n .btn-group > .btn:hover,\n .btn-group > .btn:focus,\n .btn-group > .btn:active,\n .btn-group > .btn.active,\n .btn-group-vertical > .btn-check:checked + .btn,\n .btn-group-vertical > .btn-check:focus + .btn,\n .btn-group-vertical > .btn:hover,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:nth-child(n + 3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropend .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropstart .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn ~ .btn,\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n text-decoration: none;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none; } }\n .nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6; }\n .nav-tabs .nav-link {\n margin-bottom: -1px;\n background: none;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n isolation: isolate; }\n .nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n background: none;\n border: 0;\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #0d6efd; }\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n .navbar > .container,\n .navbar > .container-fluid, .navbar > .container-sm, .navbar > .container-md, .navbar > .container-lg, .navbar > .container-xl, .navbar > .container-xxl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n text-decoration: none;\n white-space: nowrap; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static; }\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n transition: box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none; } }\n .navbar-toggler:hover {\n text-decoration: none; }\n .navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 0.25rem; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%; }\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto; }\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n@media (min-width: 1400px) {\n .navbar-expand-xxl {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand-xxl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xxl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xxl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xxl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xxl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xxl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9); }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.55); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7); }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.55);\n border-color: rgba(0, 0, 0, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"); }\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.55); }\n .navbar-light .navbar-text a,\n .navbar-light .navbar-text a:hover,\n .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.55); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75); }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.55);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: 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\"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.55); }\n .navbar-dark .navbar-text a,\n .navbar-dark .navbar-text a:hover,\n .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group {\n border-top: inherit;\n border-bottom: inherit; }\n .card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n .card > .card-header + .list-group,\n .card > .list-group + .card-footer {\n border-top: 0; }\n\n.card-body {\n flex: 1 1 auto;\n padding: 1rem 1rem; }\n\n.card-title {\n margin-bottom: 0.5rem; }\n\n.card-subtitle {\n margin-top: -0.25rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1rem /* rtl:ignore */; }\n\n.card-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n\n.card-footer {\n padding: 0.5rem 1rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.5rem;\n margin-bottom: -0.5rem;\n margin-left: -0.5rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.5rem;\n margin-left: -0.5rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1rem;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%; }\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-group > .card {\n margin-bottom: 0.75rem; }\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0 0;\n margin-bottom: 1rem;\n list-style: none; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #6c757d;\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */; }\n\n.breadcrumb-item.active {\n color: #6c757d; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none; }\n\n.page-link {\n position: relative;\n display: block;\n color: #0d6efd;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #dee2e6;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none; } }\n .page-link:hover {\n z-index: 2;\n color: #0a58ca;\n background-color: #e9ecef;\n border-color: #dee2e6; }\n .page-link:focus {\n z-index: 3;\n color: #0a58ca;\n background-color: #e9ecef;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }\n\n.page-item:not(:first-child) .page-link {\n margin-left: -1px; }\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n border-color: #dee2e6; }\n\n.page-link {\n padding: 0.375rem 0.75rem; }\n\n.page-item:first-child .page-link {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.35em 0.65em;\n font-size: 0.75em;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem; }\n .badge:empty {\n display: none; }\n\n.btn .badge {\n position: relative;\n top: -1px; }\n\n.alert {\n position: relative;\n padding: 1rem 1rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 3rem; }\n .alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem; }\n\n.alert-primary {\n color: #084298;\n background-color: #cfe2ff;\n border-color: #b6d4fe; }\n .alert-primary .alert-link {\n color: #06357a; }\n\n.alert-secondary {\n color: #41464b;\n background-color: #e2e3e5;\n border-color: #d3d6d8; }\n .alert-secondary .alert-link {\n color: #34383c; }\n\n.alert-success {\n color: #1c7a44;\n background-color: #d5f5e3;\n border-color: #c0f0d4; }\n .alert-success .alert-link {\n color: #166236; }\n\n.alert-info {\n color: #055160;\n background-color: #cff4fc;\n border-color: #b6effb; }\n .alert-info .alert-link {\n color: #04414d; }\n\n.alert-warning {\n color: #664d03;\n background-color: #fff3cd;\n border-color: #ffecb5; }\n .alert-warning .alert-link {\n color: #523e02; }\n\n.alert-danger {\n color: #7a1c66;\n background-color: #f5d5ee;\n border-color: #f0c0e6; }\n .alert-danger .alert-link {\n color: #621652; }\n\n.alert-light {\n color: #636464;\n background-color: #fefefe;\n border-color: #fdfdfe; }\n .alert-light .alert-link {\n color: #4f5050; }\n\n.alert-dark {\n color: #141619;\n background-color: #d3d3d4;\n border-color: #bcbebf; }\n .alert-dark .alert-link {\n color: #101214; }\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #0d6efd;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem; }\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa; }\n .list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.5rem 1rem;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125); }\n .list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff; }\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #0d6efd;\n border-color: #0d6efd; }\n .list-group-item + .list-group-item {\n border-top-width: 0; }\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px; }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; }\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1400px) {\n .list-group-horizontal-xxl {\n flex-direction: row; }\n .list-group-horizontal-xxl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xxl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xxl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n.list-group-flush {\n border-radius: 0; }\n .list-group-flush > .list-group-item {\n border-width: 0 0 1px; }\n .list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0; }\n\n.list-group-item-primary {\n color: #084298;\n background-color: #cfe2ff; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #084298;\n background-color: #bacbe6; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #084298;\n border-color: #084298; }\n\n.list-group-item-secondary {\n color: #41464b;\n background-color: #e2e3e5; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #41464b;\n background-color: #cbccce; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #41464b;\n border-color: #41464b; }\n\n.list-group-item-success {\n color: #1c7a44;\n background-color: #d5f5e3; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #1c7a44;\n background-color: #c0ddcc; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #1c7a44;\n border-color: #1c7a44; }\n\n.list-group-item-info {\n color: #055160;\n background-color: #cff4fc; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #055160;\n background-color: #badce3; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #055160;\n border-color: #055160; }\n\n.list-group-item-warning {\n color: #664d03;\n background-color: #fff3cd; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #664d03;\n background-color: #e6dbb9; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #664d03;\n border-color: #664d03; }\n\n.list-group-item-danger {\n color: #7a1c66;\n background-color: #f5d5ee; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #7a1c66;\n background-color: #ddc0d6; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #7a1c66;\n border-color: #7a1c66; }\n\n.list-group-item-light {\n color: #636464;\n background-color: #fefefe; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #636464;\n background-color: #e5e5e5; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #636464;\n border-color: #636464; }\n\n.list-group-item-dark {\n color: #141619;\n background-color: #d3d3d4; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #141619;\n background-color: #bebebf; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #141619;\n border-color: #141619; }\n\n.btn-close {\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: #000;\n background: transparent 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 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e\") center/1em auto no-repeat;\n border: 0;\n border-radius: 0.25rem;\n opacity: 0.5; }\n .btn-close:hover {\n color: #000;\n text-decoration: none;\n opacity: 0.75; }\n .btn-close:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n opacity: 1; }\n .btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: 0.25; }\n\n.btn-close-white {\n filter: invert(1) grayscale(100%) brightness(200%); }\n\n.toast {\n width: 350px;\n max-width: 100%;\n font-size: 0.875rem;\n pointer-events: auto;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n .toast:not(.showing):not(.show) {\n opacity: 0; }\n .toast.hide {\n display: none; }\n\n.toast-container {\n width: max-content;\n max-width: 100%;\n pointer-events: none; }\n .toast-container > :not(:last-child) {\n margin-bottom: 0.75rem; }\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.5rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .toast-header .btn-close {\n margin-right: -0.375rem;\n margin-left: 0.75rem; }\n\n.toast-body {\n padding: 0.75rem;\n word-wrap: break-word; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n .modal.modal-static .modal-dialog {\n transform: scale(1.02); }\n\n.modal-dialog-scrollable {\n height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.5; }\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .modal-header .btn-close {\n padding: 0.5rem 0.5rem;\n margin: -0.5rem -0.5rem -0.5rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n flex-shrink: 0;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .modal-footer > * {\n margin: 0.25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n height: calc(100% - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen .modal-header {\n border-radius: 0; }\n .modal-fullscreen .modal-body {\n overflow-y: auto; }\n .modal-fullscreen .modal-footer {\n border-radius: 0; }\n\n@media (max-width: 575.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen-sm-down .modal-header {\n border-radius: 0; }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto; }\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0; } }\n\n@media (max-width: 767.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen-md-down .modal-header {\n border-radius: 0; }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto; }\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0; } }\n\n@media (max-width: 991.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen-lg-down .modal-header {\n border-radius: 0; }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto; }\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0; } }\n\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen-xl-down .modal-header {\n border-radius: 0; }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto; }\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0; } }\n\n@media (max-width: 1399.98px) {\n .modal-fullscreen-xxl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0; }\n .modal-fullscreen-xxl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0; }\n .modal-fullscreen-xxl-down .modal-header {\n border-radius: 0; }\n .modal-fullscreen-xxl-down .modal-body {\n overflow-y: auto; }\n .modal-fullscreen-xxl-down .modal-footer {\n border-radius: 0; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=\"top\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=\"top\"] .tooltip-arrow {\n bottom: 0; }\n .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=\"top\"] .tooltip-arrow::before {\n top: -1px;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=\"right\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=\"right\"] .tooltip-arrow::before {\n right: -1px;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=\"bottom\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=\"bottom\"] .tooltip-arrow {\n top: 0; }\n .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=\"left\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=\"left\"] .tooltip-arrow::before {\n left: -1px;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0 /* rtl:ignore */;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem; }\n .popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=\"top\"] > .popover-arrow {\n bottom: calc(-0.5rem - 1px); }\n .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff; }\n\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=\"right\"] > .popover-arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem; }\n .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff; }\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=\"bottom\"] > .popover-arrow {\n top: calc(-0.5rem - 1px); }\n .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff; }\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f0f0f0; }\n\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=\"left\"] > .popover-arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem; }\n .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff; }\n\n.popover-header {\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f0f0f0;\n border-bottom: 1px solid #d8d8d8;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 1rem 1rem;\n color: #212529; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n/* rtl:begin:ignore */\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%); }\n\n/* rtl:end:ignore */\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%; }\n\n/* rtl:options: {\n \"autoRename\": true,\n \"stringMap\":[ {\n \"name\" : \"prev-next\",\n \"search\" : \"prev\",\n \"replace\" : \"next\"\n } ]\n} */\n.carousel-control-prev-icon {\n 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\"); }\n\n.carousel-control-next-icon {\n 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\"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center; }\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100); }\n\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000; }\n\n.carousel-dark .carousel-caption {\n color: #000; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */; } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1;\n transform: none; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: 0.75s linear infinite spinner-grow; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s; } }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.link-primary {\n color: #0d6efd; }\n .link-primary:hover, .link-primary:focus {\n color: #0a58ca; }\n\n.link-secondary {\n color: #6c757d; }\n .link-secondary:hover, .link-secondary:focus {\n color: #565e64; }\n\n.link-success {\n color: #2ecc71; }\n .link-success:hover, .link-success:focus {\n color: #58d68d; }\n\n.link-info {\n color: #0dcaf0; }\n .link-info:hover, .link-info:focus {\n color: #3dd5f3; }\n\n.link-warning {\n color: #ffc107; }\n .link-warning:hover, .link-warning:focus {\n color: #ffcd39; }\n\n.link-danger {\n color: #cc2eaa; }\n .link-danger:hover, .link-danger:focus {\n color: #a32588; }\n\n.link-light {\n color: #f8f9fa; }\n .link-light:hover, .link-light:focus {\n color: #f9fafb; }\n\n.link-dark {\n color: #212529; }\n .link-dark:hover, .link-dark:focus {\n color: #1a1e21; }\n\n.ratio {\n position: relative;\n width: 100%; }\n .ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\"; }\n .ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%; }\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%; }\n\n.ratio-4x3 {\n --bs-aspect-ratio: calc(3 / 4 * 100%); }\n\n.ratio-16x9 {\n --bs-aspect-ratio: calc(9 / 16 * 100%); }\n\n.ratio-21x9 {\n --bs-aspect-ratio: calc(9 / 21 * 100%); }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; }\n\n@media (min-width: 576px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n@media (min-width: 768px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n@media (min-width: 992px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n@media (min-width: 1400px) {\n .sticky-xxl-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important; }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\"; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.float-start {\n float: left !important; }\n\n.float-end {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.overflow-visible {\n overflow: visible !important; }\n\n.overflow-scroll {\n overflow: scroll !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-grid {\n display: grid !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n.d-none {\n display: none !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.top-0 {\n top: 0 !important; }\n\n.top-50 {\n top: 50% !important; }\n\n.top-100 {\n top: 100% !important; }\n\n.bottom-0 {\n bottom: 0 !important; }\n\n.bottom-50 {\n bottom: 50% !important; }\n\n.bottom-100 {\n bottom: 100% !important; }\n\n.start-0 {\n left: 0 !important; }\n\n.start-50 {\n left: 50% !important; }\n\n.start-100 {\n left: 100% !important; }\n\n.end-0 {\n right: 0 !important; }\n\n.end-50 {\n right: 50% !important; }\n\n.end-100 {\n right: 100% !important; }\n\n.translate-middle {\n transform: translate(-50%, -50%) !important; }\n\n.translate-middle-x {\n transform: translateX(-50%) !important; }\n\n.translate-middle-y {\n transform: translateY(-50%) !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-end {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-end-0 {\n border-right: 0 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-start {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-start-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #0d6efd !important; }\n\n.border-secondary {\n border-color: #6c757d !important; }\n\n.border-success {\n border-color: #2ecc71 !important; }\n\n.border-info {\n border-color: #0dcaf0 !important; }\n\n.border-warning {\n border-color: #ffc107 !important; }\n\n.border-danger {\n border-color: #cc2eaa !important; }\n\n.border-light {\n border-color: #f8f9fa !important; }\n\n.border-dark {\n border-color: #212529 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.border-0 {\n border-width: 0 !important; }\n\n.border-1 {\n border-width: 1px !important; }\n\n.border-2 {\n border-width: 2px !important; }\n\n.border-3 {\n border-width: 3px !important; }\n\n.border-4 {\n border-width: 4px !important; }\n\n.border-5 {\n border-width: 5px !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.gap-0 {\n gap: 0 !important; }\n\n.gap-1 {\n gap: 0.25rem !important; }\n\n.gap-2 {\n gap: 0.5rem !important; }\n\n.gap-3 {\n gap: 1rem !important; }\n\n.gap-4 {\n gap: 1.5rem !important; }\n\n.gap-5 {\n gap: 3rem !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.justify-content-evenly {\n justify-content: space-evenly !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n.order-first {\n order: -1 !important; }\n\n.order-0 {\n order: 0 !important; }\n\n.order-1 {\n order: 1 !important; }\n\n.order-2 {\n order: 2 !important; }\n\n.order-3 {\n order: 3 !important; }\n\n.order-4 {\n order: 4 !important; }\n\n.order-5 {\n order: 5 !important; }\n\n.order-last {\n order: 6 !important; }\n\n.m-0 {\n margin: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n\n.mt-0 {\n margin-top: 0 !important; }\n\n.mt-1 {\n margin-top: 0.25rem !important; }\n\n.mt-2 {\n margin-top: 0.5rem !important; }\n\n.mt-3 {\n margin-top: 1rem !important; }\n\n.mt-4 {\n margin-top: 1.5rem !important; }\n\n.mt-5 {\n margin-top: 3rem !important; }\n\n.mt-auto {\n margin-top: auto !important; }\n\n.me-0 {\n margin-right: 0 !important; }\n\n.me-1 {\n margin-right: 0.25rem !important; }\n\n.me-2 {\n margin-right: 0.5rem !important; }\n\n.me-3 {\n margin-right: 1rem !important; }\n\n.me-4 {\n margin-right: 1.5rem !important; }\n\n.me-5 {\n margin-right: 3rem !important; }\n\n.me-auto {\n margin-right: auto !important; }\n\n.mb-0 {\n margin-bottom: 0 !important; }\n\n.mb-1 {\n margin-bottom: 0.25rem !important; }\n\n.mb-2 {\n margin-bottom: 0.5rem !important; }\n\n.mb-3 {\n margin-bottom: 1rem !important; }\n\n.mb-4 {\n margin-bottom: 1.5rem !important; }\n\n.mb-5 {\n margin-bottom: 3rem !important; }\n\n.mb-auto {\n margin-bottom: auto !important; }\n\n.ms-0 {\n margin-left: 0 !important; }\n\n.ms-1 {\n margin-left: 0.25rem !important; }\n\n.ms-2 {\n margin-left: 0.5rem !important; }\n\n.ms-3 {\n margin-left: 1rem !important; }\n\n.ms-4 {\n margin-left: 1.5rem !important; }\n\n.ms-5 {\n margin-left: 3rem !important; }\n\n.ms-auto {\n margin-left: auto !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n\n.pt-0 {\n padding-top: 0 !important; }\n\n.pt-1 {\n padding-top: 0.25rem !important; }\n\n.pt-2 {\n padding-top: 0.5rem !important; }\n\n.pt-3 {\n padding-top: 1rem !important; }\n\n.pt-4 {\n padding-top: 1.5rem !important; }\n\n.pt-5 {\n padding-top: 3rem !important; }\n\n.pe-0 {\n padding-right: 0 !important; }\n\n.pe-1 {\n padding-right: 0.25rem !important; }\n\n.pe-2 {\n padding-right: 0.5rem !important; }\n\n.pe-3 {\n padding-right: 1rem !important; }\n\n.pe-4 {\n padding-right: 1.5rem !important; }\n\n.pe-5 {\n padding-right: 3rem !important; }\n\n.pb-0 {\n padding-bottom: 0 !important; }\n\n.pb-1 {\n padding-bottom: 0.25rem !important; }\n\n.pb-2 {\n padding-bottom: 0.5rem !important; }\n\n.pb-3 {\n padding-bottom: 1rem !important; }\n\n.pb-4 {\n padding-bottom: 1.5rem !important; }\n\n.pb-5 {\n padding-bottom: 3rem !important; }\n\n.ps-0 {\n padding-left: 0 !important; }\n\n.ps-1 {\n padding-left: 0.25rem !important; }\n\n.ps-2 {\n padding-left: 0.5rem !important; }\n\n.ps-3 {\n padding-left: 1rem !important; }\n\n.ps-4 {\n padding-left: 1.5rem !important; }\n\n.ps-5 {\n padding-left: 3rem !important; }\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important; }\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important; }\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important; }\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important; }\n\n.fs-5 {\n font-size: 1.25rem !important; }\n\n.fs-6 {\n font-size: 1rem !important; }\n\n.fst-italic {\n font-style: italic !important; }\n\n.fst-normal {\n font-style: normal !important; }\n\n.fw-light {\n font-weight: 300 !important; }\n\n.fw-lighter {\n font-weight: lighter !important; }\n\n.fw-normal {\n font-weight: 400 !important; }\n\n.fw-bold {\n font-weight: 700 !important; }\n\n.fw-bolder {\n font-weight: bolder !important; }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.text-start {\n text-align: left !important; }\n\n.text-end {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n.text-primary {\n color: #0d6efd !important; }\n\n.text-secondary {\n color: #6c757d !important; }\n\n.text-success {\n color: #2ecc71 !important; }\n\n.text-info {\n color: #0dcaf0 !important; }\n\n.text-warning {\n color: #ffc107 !important; }\n\n.text-danger {\n color: #cc2eaa !important; }\n\n.text-light {\n color: #f8f9fa !important; }\n\n.text-dark {\n color: #212529 !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-body {\n color: #212529 !important; }\n\n.text-muted {\n color: #6c757d !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.lh-1 {\n line-height: 1 !important; }\n\n.lh-sm {\n line-height: 1.25 !important; }\n\n.lh-base {\n line-height: 1.5 !important; }\n\n.lh-lg {\n line-height: 2 !important; }\n\n.bg-primary {\n background-color: #0d6efd !important; }\n\n.bg-secondary {\n background-color: #6c757d !important; }\n\n.bg-success {\n background-color: #2ecc71 !important; }\n\n.bg-info {\n background-color: #0dcaf0 !important; }\n\n.bg-warning {\n background-color: #ffc107 !important; }\n\n.bg-danger {\n background-color: #cc2eaa !important; }\n\n.bg-light {\n background-color: #f8f9fa !important; }\n\n.bg-dark {\n background-color: #212529 !important; }\n\n.bg-body {\n background-color: #fff !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-decoration-underline {\n text-decoration: underline !important; }\n\n.text-decoration-line-through {\n text-decoration: line-through !important; }\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important; }\n\n/* rtl:end:remove */\n.font-monospace {\n font-family: var(--bs-font-monospace) !important; }\n\n.user-select-all {\n user-select: all !important; }\n\n.user-select-auto {\n user-select: auto !important; }\n\n.user-select-none {\n user-select: none !important; }\n\n.pe-none {\n pointer-events: none !important; }\n\n.pe-auto {\n pointer-events: auto !important; }\n\n.rounded {\n border-radius: 0.25rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.rounded-1 {\n border-radius: 0.2rem !important; }\n\n.rounded-2 {\n border-radius: 0.25rem !important; }\n\n.rounded-3 {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-end {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-start {\n border-bottom-left-radius: 0.25rem !important;\n border-top-left-radius: 0.25rem !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media (min-width: 576px) {\n .float-sm-start {\n float: left !important; }\n .float-sm-end {\n float: right !important; }\n .float-sm-none {\n float: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-grid {\n display: grid !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; }\n .d-sm-none {\n display: none !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .gap-sm-0 {\n gap: 0 !important; }\n .gap-sm-1 {\n gap: 0.25rem !important; }\n .gap-sm-2 {\n gap: 0.5rem !important; }\n .gap-sm-3 {\n gap: 1rem !important; }\n .gap-sm-4 {\n gap: 1.5rem !important; }\n .gap-sm-5 {\n gap: 3rem !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; }\n .order-sm-first {\n order: -1 !important; }\n .order-sm-0 {\n order: 0 !important; }\n .order-sm-1 {\n order: 1 !important; }\n .order-sm-2 {\n order: 2 !important; }\n .order-sm-3 {\n order: 3 !important; }\n .order-sm-4 {\n order: 4 !important; }\n .order-sm-5 {\n order: 5 !important; }\n .order-sm-last {\n order: 6 !important; }\n .m-sm-0 {\n margin: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n .mt-sm-0 {\n margin-top: 0 !important; }\n .mt-sm-1 {\n margin-top: 0.25rem !important; }\n .mt-sm-2 {\n margin-top: 0.5rem !important; }\n .mt-sm-3 {\n margin-top: 1rem !important; }\n .mt-sm-4 {\n margin-top: 1.5rem !important; }\n .mt-sm-5 {\n margin-top: 3rem !important; }\n .mt-sm-auto {\n margin-top: auto !important; }\n .me-sm-0 {\n margin-right: 0 !important; }\n .me-sm-1 {\n margin-right: 0.25rem !important; }\n .me-sm-2 {\n margin-right: 0.5rem !important; }\n .me-sm-3 {\n margin-right: 1rem !important; }\n .me-sm-4 {\n margin-right: 1.5rem !important; }\n .me-sm-5 {\n margin-right: 3rem !important; }\n .me-sm-auto {\n margin-right: auto !important; }\n .mb-sm-0 {\n margin-bottom: 0 !important; }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important; }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important; }\n .mb-sm-3 {\n margin-bottom: 1rem !important; }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important; }\n .mb-sm-5 {\n margin-bottom: 3rem !important; }\n .mb-sm-auto {\n margin-bottom: auto !important; }\n .ms-sm-0 {\n margin-left: 0 !important; }\n .ms-sm-1 {\n margin-left: 0.25rem !important; }\n .ms-sm-2 {\n margin-left: 0.5rem !important; }\n .ms-sm-3 {\n margin-left: 1rem !important; }\n .ms-sm-4 {\n margin-left: 1.5rem !important; }\n .ms-sm-5 {\n margin-left: 3rem !important; }\n .ms-sm-auto {\n margin-left: auto !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .pt-sm-0 {\n padding-top: 0 !important; }\n .pt-sm-1 {\n padding-top: 0.25rem !important; }\n .pt-sm-2 {\n padding-top: 0.5rem !important; }\n .pt-sm-3 {\n padding-top: 1rem !important; }\n .pt-sm-4 {\n padding-top: 1.5rem !important; }\n .pt-sm-5 {\n padding-top: 3rem !important; }\n .pe-sm-0 {\n padding-right: 0 !important; }\n .pe-sm-1 {\n padding-right: 0.25rem !important; }\n .pe-sm-2 {\n padding-right: 0.5rem !important; }\n .pe-sm-3 {\n padding-right: 1rem !important; }\n .pe-sm-4 {\n padding-right: 1.5rem !important; }\n .pe-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-0 {\n padding-bottom: 0 !important; }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pb-sm-3 {\n padding-bottom: 1rem !important; }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pb-sm-5 {\n padding-bottom: 3rem !important; }\n .ps-sm-0 {\n padding-left: 0 !important; }\n .ps-sm-1 {\n padding-left: 0.25rem !important; }\n .ps-sm-2 {\n padding-left: 0.5rem !important; }\n .ps-sm-3 {\n padding-left: 1rem !important; }\n .ps-sm-4 {\n padding-left: 1.5rem !important; }\n .ps-sm-5 {\n padding-left: 3rem !important; }\n .text-sm-start {\n text-align: left !important; }\n .text-sm-end {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 768px) {\n .float-md-start {\n float: left !important; }\n .float-md-end {\n float: right !important; }\n .float-md-none {\n float: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-grid {\n display: grid !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; }\n .d-md-none {\n display: none !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .gap-md-0 {\n gap: 0 !important; }\n .gap-md-1 {\n gap: 0.25rem !important; }\n .gap-md-2 {\n gap: 0.5rem !important; }\n .gap-md-3 {\n gap: 1rem !important; }\n .gap-md-4 {\n gap: 1.5rem !important; }\n .gap-md-5 {\n gap: 3rem !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .justify-content-md-evenly {\n justify-content: space-evenly !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; }\n .order-md-first {\n order: -1 !important; }\n .order-md-0 {\n order: 0 !important; }\n .order-md-1 {\n order: 1 !important; }\n .order-md-2 {\n order: 2 !important; }\n .order-md-3 {\n order: 3 !important; }\n .order-md-4 {\n order: 4 !important; }\n .order-md-5 {\n order: 5 !important; }\n .order-md-last {\n order: 6 !important; }\n .m-md-0 {\n margin: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n .mt-md-0 {\n margin-top: 0 !important; }\n .mt-md-1 {\n margin-top: 0.25rem !important; }\n .mt-md-2 {\n margin-top: 0.5rem !important; }\n .mt-md-3 {\n margin-top: 1rem !important; }\n .mt-md-4 {\n margin-top: 1.5rem !important; }\n .mt-md-5 {\n margin-top: 3rem !important; }\n .mt-md-auto {\n margin-top: auto !important; }\n .me-md-0 {\n margin-right: 0 !important; }\n .me-md-1 {\n margin-right: 0.25rem !important; }\n .me-md-2 {\n margin-right: 0.5rem !important; }\n .me-md-3 {\n margin-right: 1rem !important; }\n .me-md-4 {\n margin-right: 1.5rem !important; }\n .me-md-5 {\n margin-right: 3rem !important; }\n .me-md-auto {\n margin-right: auto !important; }\n .mb-md-0 {\n margin-bottom: 0 !important; }\n .mb-md-1 {\n margin-bottom: 0.25rem !important; }\n .mb-md-2 {\n margin-bottom: 0.5rem !important; }\n .mb-md-3 {\n margin-bottom: 1rem !important; }\n .mb-md-4 {\n margin-bottom: 1.5rem !important; }\n .mb-md-5 {\n margin-bottom: 3rem !important; }\n .mb-md-auto {\n margin-bottom: auto !important; }\n .ms-md-0 {\n margin-left: 0 !important; }\n .ms-md-1 {\n margin-left: 0.25rem !important; }\n .ms-md-2 {\n margin-left: 0.5rem !important; }\n .ms-md-3 {\n margin-left: 1rem !important; }\n .ms-md-4 {\n margin-left: 1.5rem !important; }\n .ms-md-5 {\n margin-left: 3rem !important; }\n .ms-md-auto {\n margin-left: auto !important; }\n .p-md-0 {\n padding: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .pt-md-0 {\n padding-top: 0 !important; }\n .pt-md-1 {\n padding-top: 0.25rem !important; }\n .pt-md-2 {\n padding-top: 0.5rem !important; }\n .pt-md-3 {\n padding-top: 1rem !important; }\n .pt-md-4 {\n padding-top: 1.5rem !important; }\n .pt-md-5 {\n padding-top: 3rem !important; }\n .pe-md-0 {\n padding-right: 0 !important; }\n .pe-md-1 {\n padding-right: 0.25rem !important; }\n .pe-md-2 {\n padding-right: 0.5rem !important; }\n .pe-md-3 {\n padding-right: 1rem !important; }\n .pe-md-4 {\n padding-right: 1.5rem !important; }\n .pe-md-5 {\n padding-right: 3rem !important; }\n .pb-md-0 {\n padding-bottom: 0 !important; }\n .pb-md-1 {\n padding-bottom: 0.25rem !important; }\n .pb-md-2 {\n padding-bottom: 0.5rem !important; }\n .pb-md-3 {\n padding-bottom: 1rem !important; }\n .pb-md-4 {\n padding-bottom: 1.5rem !important; }\n .pb-md-5 {\n padding-bottom: 3rem !important; }\n .ps-md-0 {\n padding-left: 0 !important; }\n .ps-md-1 {\n padding-left: 0.25rem !important; }\n .ps-md-2 {\n padding-left: 0.5rem !important; }\n .ps-md-3 {\n padding-left: 1rem !important; }\n .ps-md-4 {\n padding-left: 1.5rem !important; }\n .ps-md-5 {\n padding-left: 3rem !important; }\n .text-md-start {\n text-align: left !important; }\n .text-md-end {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 992px) {\n .float-lg-start {\n float: left !important; }\n .float-lg-end {\n float: right !important; }\n .float-lg-none {\n float: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-grid {\n display: grid !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; }\n .d-lg-none {\n display: none !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .gap-lg-0 {\n gap: 0 !important; }\n .gap-lg-1 {\n gap: 0.25rem !important; }\n .gap-lg-2 {\n gap: 0.5rem !important; }\n .gap-lg-3 {\n gap: 1rem !important; }\n .gap-lg-4 {\n gap: 1.5rem !important; }\n .gap-lg-5 {\n gap: 3rem !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; }\n .order-lg-first {\n order: -1 !important; }\n .order-lg-0 {\n order: 0 !important; }\n .order-lg-1 {\n order: 1 !important; }\n .order-lg-2 {\n order: 2 !important; }\n .order-lg-3 {\n order: 3 !important; }\n .order-lg-4 {\n order: 4 !important; }\n .order-lg-5 {\n order: 5 !important; }\n .order-lg-last {\n order: 6 !important; }\n .m-lg-0 {\n margin: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n .mt-lg-0 {\n margin-top: 0 !important; }\n .mt-lg-1 {\n margin-top: 0.25rem !important; }\n .mt-lg-2 {\n margin-top: 0.5rem !important; }\n .mt-lg-3 {\n margin-top: 1rem !important; }\n .mt-lg-4 {\n margin-top: 1.5rem !important; }\n .mt-lg-5 {\n margin-top: 3rem !important; }\n .mt-lg-auto {\n margin-top: auto !important; }\n .me-lg-0 {\n margin-right: 0 !important; }\n .me-lg-1 {\n margin-right: 0.25rem !important; }\n .me-lg-2 {\n margin-right: 0.5rem !important; }\n .me-lg-3 {\n margin-right: 1rem !important; }\n .me-lg-4 {\n margin-right: 1.5rem !important; }\n .me-lg-5 {\n margin-right: 3rem !important; }\n .me-lg-auto {\n margin-right: auto !important; }\n .mb-lg-0 {\n margin-bottom: 0 !important; }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important; }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important; }\n .mb-lg-3 {\n margin-bottom: 1rem !important; }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important; }\n .mb-lg-5 {\n margin-bottom: 3rem !important; }\n .mb-lg-auto {\n margin-bottom: auto !important; }\n .ms-lg-0 {\n margin-left: 0 !important; }\n .ms-lg-1 {\n margin-left: 0.25rem !important; }\n .ms-lg-2 {\n margin-left: 0.5rem !important; }\n .ms-lg-3 {\n margin-left: 1rem !important; }\n .ms-lg-4 {\n margin-left: 1.5rem !important; }\n .ms-lg-5 {\n margin-left: 3rem !important; }\n .ms-lg-auto {\n margin-left: auto !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .pt-lg-0 {\n padding-top: 0 !important; }\n .pt-lg-1 {\n padding-top: 0.25rem !important; }\n .pt-lg-2 {\n padding-top: 0.5rem !important; }\n .pt-lg-3 {\n padding-top: 1rem !important; }\n .pt-lg-4 {\n padding-top: 1.5rem !important; }\n .pt-lg-5 {\n padding-top: 3rem !important; }\n .pe-lg-0 {\n padding-right: 0 !important; }\n .pe-lg-1 {\n padding-right: 0.25rem !important; }\n .pe-lg-2 {\n padding-right: 0.5rem !important; }\n .pe-lg-3 {\n padding-right: 1rem !important; }\n .pe-lg-4 {\n padding-right: 1.5rem !important; }\n .pe-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-0 {\n padding-bottom: 0 !important; }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pb-lg-3 {\n padding-bottom: 1rem !important; }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pb-lg-5 {\n padding-bottom: 3rem !important; }\n .ps-lg-0 {\n padding-left: 0 !important; }\n .ps-lg-1 {\n padding-left: 0.25rem !important; }\n .ps-lg-2 {\n padding-left: 0.5rem !important; }\n .ps-lg-3 {\n padding-left: 1rem !important; }\n .ps-lg-4 {\n padding-left: 1.5rem !important; }\n .ps-lg-5 {\n padding-left: 3rem !important; }\n .text-lg-start {\n text-align: left !important; }\n .text-lg-end {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important; }\n .float-xl-end {\n float: right !important; }\n .float-xl-none {\n float: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-grid {\n display: grid !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; }\n .d-xl-none {\n display: none !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .gap-xl-0 {\n gap: 0 !important; }\n .gap-xl-1 {\n gap: 0.25rem !important; }\n .gap-xl-2 {\n gap: 0.5rem !important; }\n .gap-xl-3 {\n gap: 1rem !important; }\n .gap-xl-4 {\n gap: 1.5rem !important; }\n .gap-xl-5 {\n gap: 3rem !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; }\n .order-xl-first {\n order: -1 !important; }\n .order-xl-0 {\n order: 0 !important; }\n .order-xl-1 {\n order: 1 !important; }\n .order-xl-2 {\n order: 2 !important; }\n .order-xl-3 {\n order: 3 !important; }\n .order-xl-4 {\n order: 4 !important; }\n .order-xl-5 {\n order: 5 !important; }\n .order-xl-last {\n order: 6 !important; }\n .m-xl-0 {\n margin: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n .mt-xl-0 {\n margin-top: 0 !important; }\n .mt-xl-1 {\n margin-top: 0.25rem !important; }\n .mt-xl-2 {\n margin-top: 0.5rem !important; }\n .mt-xl-3 {\n margin-top: 1rem !important; }\n .mt-xl-4 {\n margin-top: 1.5rem !important; }\n .mt-xl-5 {\n margin-top: 3rem !important; }\n .mt-xl-auto {\n margin-top: auto !important; }\n .me-xl-0 {\n margin-right: 0 !important; }\n .me-xl-1 {\n margin-right: 0.25rem !important; }\n .me-xl-2 {\n margin-right: 0.5rem !important; }\n .me-xl-3 {\n margin-right: 1rem !important; }\n .me-xl-4 {\n margin-right: 1.5rem !important; }\n .me-xl-5 {\n margin-right: 3rem !important; }\n .me-xl-auto {\n margin-right: auto !important; }\n .mb-xl-0 {\n margin-bottom: 0 !important; }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important; }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important; }\n .mb-xl-3 {\n margin-bottom: 1rem !important; }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important; }\n .mb-xl-5 {\n margin-bottom: 3rem !important; }\n .mb-xl-auto {\n margin-bottom: auto !important; }\n .ms-xl-0 {\n margin-left: 0 !important; }\n .ms-xl-1 {\n margin-left: 0.25rem !important; }\n .ms-xl-2 {\n margin-left: 0.5rem !important; }\n .ms-xl-3 {\n margin-left: 1rem !important; }\n .ms-xl-4 {\n margin-left: 1.5rem !important; }\n .ms-xl-5 {\n margin-left: 3rem !important; }\n .ms-xl-auto {\n margin-left: auto !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .pt-xl-0 {\n padding-top: 0 !important; }\n .pt-xl-1 {\n padding-top: 0.25rem !important; }\n .pt-xl-2 {\n padding-top: 0.5rem !important; }\n .pt-xl-3 {\n padding-top: 1rem !important; }\n .pt-xl-4 {\n padding-top: 1.5rem !important; }\n .pt-xl-5 {\n padding-top: 3rem !important; }\n .pe-xl-0 {\n padding-right: 0 !important; }\n .pe-xl-1 {\n padding-right: 0.25rem !important; }\n .pe-xl-2 {\n padding-right: 0.5rem !important; }\n .pe-xl-3 {\n padding-right: 1rem !important; }\n .pe-xl-4 {\n padding-right: 1.5rem !important; }\n .pe-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-0 {\n padding-bottom: 0 !important; }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pb-xl-3 {\n padding-bottom: 1rem !important; }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pb-xl-5 {\n padding-bottom: 3rem !important; }\n .ps-xl-0 {\n padding-left: 0 !important; }\n .ps-xl-1 {\n padding-left: 0.25rem !important; }\n .ps-xl-2 {\n padding-left: 0.5rem !important; }\n .ps-xl-3 {\n padding-left: 1rem !important; }\n .ps-xl-4 {\n padding-left: 1.5rem !important; }\n .ps-xl-5 {\n padding-left: 3rem !important; }\n .text-xl-start {\n text-align: left !important; }\n .text-xl-end {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n@media (min-width: 1400px) {\n .float-xxl-start {\n float: left !important; }\n .float-xxl-end {\n float: right !important; }\n .float-xxl-none {\n float: none !important; }\n .d-xxl-inline {\n display: inline !important; }\n .d-xxl-inline-block {\n display: inline-block !important; }\n .d-xxl-block {\n display: block !important; }\n .d-xxl-grid {\n display: grid !important; }\n .d-xxl-table {\n display: table !important; }\n .d-xxl-table-row {\n display: table-row !important; }\n .d-xxl-table-cell {\n display: table-cell !important; }\n .d-xxl-flex {\n display: flex !important; }\n .d-xxl-inline-flex {\n display: inline-flex !important; }\n .d-xxl-none {\n display: none !important; }\n .flex-xxl-fill {\n flex: 1 1 auto !important; }\n .flex-xxl-row {\n flex-direction: row !important; }\n .flex-xxl-column {\n flex-direction: column !important; }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important; }\n .flex-xxl-wrap {\n flex-wrap: wrap !important; }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .gap-xxl-0 {\n gap: 0 !important; }\n .gap-xxl-1 {\n gap: 0.25rem !important; }\n .gap-xxl-2 {\n gap: 0.5rem !important; }\n .gap-xxl-3 {\n gap: 1rem !important; }\n .gap-xxl-4 {\n gap: 1.5rem !important; }\n .gap-xxl-5 {\n gap: 3rem !important; }\n .justify-content-xxl-start {\n justify-content: flex-start !important; }\n .justify-content-xxl-end {\n justify-content: flex-end !important; }\n .justify-content-xxl-center {\n justify-content: center !important; }\n .justify-content-xxl-between {\n justify-content: space-between !important; }\n .justify-content-xxl-around {\n justify-content: space-around !important; }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important; }\n .align-items-xxl-start {\n align-items: flex-start !important; }\n .align-items-xxl-end {\n align-items: flex-end !important; }\n .align-items-xxl-center {\n align-items: center !important; }\n .align-items-xxl-baseline {\n align-items: baseline !important; }\n .align-items-xxl-stretch {\n align-items: stretch !important; }\n .align-content-xxl-start {\n align-content: flex-start !important; }\n .align-content-xxl-end {\n align-content: flex-end !important; }\n .align-content-xxl-center {\n align-content: center !important; }\n .align-content-xxl-between {\n align-content: space-between !important; }\n .align-content-xxl-around {\n align-content: space-around !important; }\n .align-content-xxl-stretch {\n align-content: stretch !important; }\n .align-self-xxl-auto {\n align-self: auto !important; }\n .align-self-xxl-start {\n align-self: flex-start !important; }\n .align-self-xxl-end {\n align-self: flex-end !important; }\n .align-self-xxl-center {\n align-self: center !important; }\n .align-self-xxl-baseline {\n align-self: baseline !important; }\n .align-self-xxl-stretch {\n align-self: stretch !important; }\n .order-xxl-first {\n order: -1 !important; }\n .order-xxl-0 {\n order: 0 !important; }\n .order-xxl-1 {\n order: 1 !important; }\n .order-xxl-2 {\n order: 2 !important; }\n .order-xxl-3 {\n order: 3 !important; }\n .order-xxl-4 {\n order: 4 !important; }\n .order-xxl-5 {\n order: 5 !important; }\n .order-xxl-last {\n order: 6 !important; }\n .m-xxl-0 {\n margin: 0 !important; }\n .m-xxl-1 {\n margin: 0.25rem !important; }\n .m-xxl-2 {\n margin: 0.5rem !important; }\n .m-xxl-3 {\n margin: 1rem !important; }\n .m-xxl-4 {\n margin: 1.5rem !important; }\n .m-xxl-5 {\n margin: 3rem !important; }\n .m-xxl-auto {\n margin: auto !important; }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n .mt-xxl-0 {\n margin-top: 0 !important; }\n .mt-xxl-1 {\n margin-top: 0.25rem !important; }\n .mt-xxl-2 {\n margin-top: 0.5rem !important; }\n .mt-xxl-3 {\n margin-top: 1rem !important; }\n .mt-xxl-4 {\n margin-top: 1.5rem !important; }\n .mt-xxl-5 {\n margin-top: 3rem !important; }\n .mt-xxl-auto {\n margin-top: auto !important; }\n .me-xxl-0 {\n margin-right: 0 !important; }\n .me-xxl-1 {\n margin-right: 0.25rem !important; }\n .me-xxl-2 {\n margin-right: 0.5rem !important; }\n .me-xxl-3 {\n margin-right: 1rem !important; }\n .me-xxl-4 {\n margin-right: 1.5rem !important; }\n .me-xxl-5 {\n margin-right: 3rem !important; }\n .me-xxl-auto {\n margin-right: auto !important; }\n .mb-xxl-0 {\n margin-bottom: 0 !important; }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important; }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important; }\n .mb-xxl-3 {\n margin-bottom: 1rem !important; }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important; }\n .mb-xxl-5 {\n margin-bottom: 3rem !important; }\n .mb-xxl-auto {\n margin-bottom: auto !important; }\n .ms-xxl-0 {\n margin-left: 0 !important; }\n .ms-xxl-1 {\n margin-left: 0.25rem !important; }\n .ms-xxl-2 {\n margin-left: 0.5rem !important; }\n .ms-xxl-3 {\n margin-left: 1rem !important; }\n .ms-xxl-4 {\n margin-left: 1.5rem !important; }\n .ms-xxl-5 {\n margin-left: 3rem !important; }\n .ms-xxl-auto {\n margin-left: auto !important; }\n .p-xxl-0 {\n padding: 0 !important; }\n .p-xxl-1 {\n padding: 0.25rem !important; }\n .p-xxl-2 {\n padding: 0.5rem !important; }\n .p-xxl-3 {\n padding: 1rem !important; }\n .p-xxl-4 {\n padding: 1.5rem !important; }\n .p-xxl-5 {\n padding: 3rem !important; }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .pt-xxl-0 {\n padding-top: 0 !important; }\n .pt-xxl-1 {\n padding-top: 0.25rem !important; }\n .pt-xxl-2 {\n padding-top: 0.5rem !important; }\n .pt-xxl-3 {\n padding-top: 1rem !important; }\n .pt-xxl-4 {\n padding-top: 1.5rem !important; }\n .pt-xxl-5 {\n padding-top: 3rem !important; }\n .pe-xxl-0 {\n padding-right: 0 !important; }\n .pe-xxl-1 {\n padding-right: 0.25rem !important; }\n .pe-xxl-2 {\n padding-right: 0.5rem !important; }\n .pe-xxl-3 {\n padding-right: 1rem !important; }\n .pe-xxl-4 {\n padding-right: 1.5rem !important; }\n .pe-xxl-5 {\n padding-right: 3rem !important; }\n .pb-xxl-0 {\n padding-bottom: 0 !important; }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important; }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important; }\n .pb-xxl-3 {\n padding-bottom: 1rem !important; }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important; }\n .pb-xxl-5 {\n padding-bottom: 3rem !important; }\n .ps-xxl-0 {\n padding-left: 0 !important; }\n .ps-xxl-1 {\n padding-left: 0.25rem !important; }\n .ps-xxl-2 {\n padding-left: 0.5rem !important; }\n .ps-xxl-3 {\n padding-left: 1rem !important; }\n .ps-xxl-4 {\n padding-left: 1.5rem !important; }\n .ps-xxl-5 {\n padding-left: 3rem !important; }\n .text-xxl-start {\n text-align: left !important; }\n .text-xxl-end {\n text-align: right !important; }\n .text-xxl-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important; }\n .fs-2 {\n font-size: 2rem !important; }\n .fs-3 {\n font-size: 1.75rem !important; }\n .fs-4 {\n font-size: 1.5rem !important; } }\n\n@media print {\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-grid {\n display: grid !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; }\n .d-print-none {\n display: none !important; } }\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n","//\n// Headings\n//\n.h1 {\n @extend h1;\n}\n\n.h2 {\n @extend h2;\n}\n\n.h3 {\n @extend h3;\n}\n\n.h4 {\n @extend h4;\n}\n\n.h5 {\n @extend h5;\n}\n\n.h6 {\n @extend h6;\n}\n\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n .display-#{$display} {\n @include font-size($font-size);\n font-weight: $display-font-weight;\n line-height: $display-line-height;\n }\n}\n\n//\n// Emphasis\n//\n.small {\n @extend small;\n}\n\n.mark {\n @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size($initialism-font-size);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-font-size);\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n.blockquote-footer {\n margin-top: -$blockquote-margin-y;\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-footer-font-size);\n color: $blockquote-footer-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n","// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n width: 100%;\n padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});\n padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});\n margin-right: auto;\n margin-left: auto;\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n\n > * {\n @include make-col-ready();\n }\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n --#{$variable-prefix}gutter-x: #{$gutter};\n --#{$variable-prefix}gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(var(--#{$variable-prefix}gutter-y) * -1); // stylelint-disable-line function-disallowed-list\n margin-right: calc(var(--#{$variable-prefix}gutter-x) / -2); // stylelint-disable-line function-disallowed-list\n margin-left: calc(var(--#{$variable-prefix}gutter-x) / -2); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n // Add box sizing if only the grid is loaded\n box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we set the width\n // later on to override this initial width.\n flex-shrink: 0;\n width: 100%;\n max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n padding-right: calc(var(--#{$variable-prefix}gutter-x) / 2); // stylelint-disable-line function-disallowed-list\n padding-left: calc(var(--#{$variable-prefix}gutter-x) / 2); // stylelint-disable-line function-disallowed-list\n margin-top: var(--#{$variable-prefix}gutter-y);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 auto;\n width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n > * {\n flex: 0 0 auto;\n width: 100% / $count;\n }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n }\n\n .row-cols#{$infix}-auto > * {\n @include make-col-auto();\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n\n // Gutters\n //\n // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n @each $key, $value in $gutters {\n .g#{$infix}-#{$key},\n .gx#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-x: #{$value};\n }\n\n .g#{$infix}-#{$key},\n .gy#{$infix}-#{$key} {\n --#{$variable-prefix}gutter-y: #{$value};\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n --#{$variable-prefix}table-bg: #{$table-bg};\n --#{$variable-prefix}table-striped-color: #{$table-striped-color};\n --#{$variable-prefix}table-striped-bg: #{$table-striped-bg};\n --#{$variable-prefix}table-active-color: #{$table-active-color};\n --#{$variable-prefix}table-active-bg: #{$table-active-bg};\n --#{$variable-prefix}table-hover-color: #{$table-hover-color};\n --#{$variable-prefix}table-hover-bg: #{$table-hover-bg};\n\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n vertical-align: $table-cell-vertical-align;\n border-color: $table-border-color;\n\n // Target th & td\n // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: $table-cell-padding-y $table-cell-padding-x;\n background-color: var(--#{$variable-prefix}table-bg);\n border-bottom-width: $table-border-width;\n box-shadow: inset 0 0 0 9999px var(--#{$variable-prefix}table-accent-bg);\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n\n // Highlight border color between thead, tbody and tfoot.\n > :not(:last-child) > :last-child > * {\n border-bottom-color: $table-group-separator-color;\n }\n}\n\n\n//\n// Change placement of captions with a class\n//\n\n.caption-top {\n caption-side: top;\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n//\n// When borders are added on all sides of the cells, the corners can render odd when\n// these borders do not have the same color or if they are semi-transparent.\n// Therefor we add top and border bottoms to the `tr`s and left and right borders\n// to the `td`s or `th`s\n\n.table-bordered {\n > :not(caption) > * {\n border-width: $table-border-width 0;\n\n // stylelint-disable-next-line selector-max-universal\n > * {\n border-width: 0 $table-border-width;\n }\n }\n}\n\n.table-borderless {\n // stylelint-disable-next-line selector-max-universal\n > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(#{$table-striped-order}) {\n --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);\n color: var(--#{$variable-prefix}table-striped-color);\n }\n}\n\n// Active table\n//\n// The `.table-active` class can be added to highlight rows or cells\n\n.table-active {\n --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg);\n color: var(--#{$variable-prefix}table-active-color);\n}\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);\n color: var(--#{$variable-prefix}table-hover-color);\n }\n}\n\n\n// Table variants\n//\n// Table variants set the table cell backgrounds, border colors\n// and the colors of the striped, hovered & active tables\n\n@each $color, $value in $table-variants {\n @include table-variant($color, $value);\n}\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @include media-breakpoint-down($breakpoint) {\n .table-responsive#{$infix} {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n","// scss-docs-start table-variant\n@mixin table-variant($state, $background) {\n .table-#{$state} {\n $color: color-contrast(opaque($body-bg, $background));\n $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));\n $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));\n $active-bg: mix($color, $background, percentage($table-active-bg-factor));\n\n --#{$variable-prefix}table-bg: #{$background};\n --#{$variable-prefix}table-striped-bg: #{$striped-bg};\n --#{$variable-prefix}table-striped-color: #{color-contrast($striped-bg)};\n --#{$variable-prefix}table-active-bg: #{$active-bg};\n --#{$variable-prefix}table-active-color: #{color-contrast($active-bg)};\n --#{$variable-prefix}table-hover-bg: #{$hover-bg};\n --#{$variable-prefix}table-hover-color: #{color-contrast($hover-bg)};\n\n color: $color;\n border-color: mix($color, $background, percentage($table-border-factor));\n }\n}\n// scss-docs-end table-variant\n","//\n// Labels\n//\n\n.form-label {\n margin-bottom: $form-label-margin-bottom;\n @include font-size($form-label-font-size);\n font-style: $form-label-font-style;\n font-weight: $form-label-font-weight;\n color: $form-label-color;\n}\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n font-style: $form-label-font-style;\n font-weight: $form-label-font-weight;\n line-height: $input-line-height;\n color: $form-label-color;\n}\n\n.col-form-label-lg {\n padding-top: add($input-padding-y-lg, $input-border-width);\n padding-bottom: add($input-padding-y-lg, $input-border-width);\n @include font-size($input-font-size-lg);\n}\n\n.col-form-label-sm {\n padding-top: add($input-padding-y-sm, $input-border-width);\n padding-bottom: add($input-padding-y-sm, $input-border-width);\n @include font-size($input-font-size-sm);\n}\n","//\n// Form text\n//\n\n.form-text {\n margin-top: $form-text-margin-top;\n @include font-size($form-text-font-size);\n font-style: $form-text-font-style;\n font-weight: $form-text-font-weight;\n color: $form-text-color;\n}\n","//\n// General form controls (plus a few specific high-level interventions)\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n appearance: none; // Fix appearance for date inputs in Safari\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n &[type=\"file\"] {\n overflow: hidden; // prevent pseudo element button overlap\n\n &:not(:disabled):not([readonly]) {\n cursor: pointer;\n }\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $input-focus-box-shadow;\n }\n }\n\n // Add some height to date inputs on iOS\n // https://github.com/twbs/bootstrap/issues/23307\n // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n &::-webkit-date-and-time-value {\n // Multiply line-height by 1em if it has no unit\n height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n }\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n border-color: $input-disabled-border-color;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n\n // File input buttons theming\n // stylelint-disable-next-line selector-pseudo-element-no-unknown\n &::file-selector-button {\n padding: $input-padding-y $input-padding-x;\n margin: (-$input-padding-y) (-$input-padding-x);\n margin-inline-end: $input-padding-x;\n color: $form-file-button-color;\n @include gradient-bg($form-file-button-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: $input-border-width;\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition($btn-transition);\n }\n\n // stylelint-disable-next-line selector-pseudo-element-no-unknown\n &:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: $form-file-button-hover-bg;\n }\n\n &::-webkit-file-upload-button {\n padding: $input-padding-y $input-padding-x;\n margin: (-$input-padding-y) (-$input-padding-x);\n margin-inline-end: $input-padding-x;\n color: $form-file-button-color;\n @include gradient-bg($form-file-button-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: $input-border-width;\n border-radius: 0; // stylelint-disable-line property-disallowed-list\n @include transition($btn-transition);\n }\n\n &:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: $form-file-button-hover-bg;\n }\n}\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: $input-padding-y 0;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n min-height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n @include border-radius($input-border-radius-sm);\n\n // stylelint-disable-next-line selector-pseudo-element-no-unknown\n &::file-selector-button {\n padding: $input-padding-y-sm $input-padding-x-sm;\n margin: (-$input-padding-y-sm) (-$input-padding-x-sm);\n margin-inline-end: $input-padding-x-sm;\n }\n\n &::-webkit-file-upload-button {\n padding: $input-padding-y-sm $input-padding-x-sm;\n margin: (-$input-padding-y-sm) (-$input-padding-x-sm);\n margin-inline-end: $input-padding-x-sm;\n }\n}\n\n.form-control-lg {\n min-height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n @include border-radius($input-border-radius-lg);\n\n // stylelint-disable-next-line selector-pseudo-element-no-unknown\n &::file-selector-button {\n padding: $input-padding-y-lg $input-padding-x-lg;\n margin: (-$input-padding-y-lg) (-$input-padding-x-lg);\n margin-inline-end: $input-padding-x-lg;\n }\n\n &::-webkit-file-upload-button {\n padding: $input-padding-y-lg $input-padding-x-lg;\n margin: (-$input-padding-y-lg) (-$input-padding-x-lg);\n margin-inline-end: $input-padding-x-lg;\n }\n}\n\n// Make sure textareas don't shrink too much when resized\n// https://github.com/twbs/bootstrap/pull/29124\n// stylelint-disable selector-no-qualifying-type\ntextarea {\n &.form-control {\n min-height: $input-height;\n }\n\n &.form-control-sm {\n min-height: $input-height-sm;\n }\n\n &.form-control-lg {\n min-height: $input-height-lg;\n }\n}\n// stylelint-enable selector-no-qualifying-type\n\n.form-control-color {\n max-width: 3rem;\n height: auto; // Override fixed browser height\n padding: $input-padding-y;\n\n &:not(:disabled):not([readonly]) {\n cursor: pointer;\n }\n\n &::-moz-color-swatch {\n height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n @include border-radius($input-border-radius);\n }\n\n &::-webkit-color-swatch {\n height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n @include border-radius($input-border-radius);\n }\n}\n","// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n @if length($transition) == 0 {\n $transition: $transition-base;\n }\n\n @if length($transition) > 1 {\n @each $value in $transition {\n @if $value == null or $value == none {\n @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n }\n }\n }\n\n @if $enable-transitions {\n @if nth($transition, 1) != null {\n transition: $transition;\n }\n\n @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n }\n}\n","// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n background-color: $color;\n\n @if $enable-gradients {\n background-image: var(--#{$variable-prefix}gradient);\n }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n","// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n\n.form-select {\n display: block;\n width: 100%;\n padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;\n font-family: $form-select-font-family;\n @include font-size($form-select-font-size);\n font-weight: $form-select-font-weight;\n line-height: $form-select-line-height;\n color: $form-select-color;\n background-color: $form-select-bg;\n background-image: escape-svg($form-select-indicator);\n background-repeat: no-repeat;\n background-position: $form-select-bg-position;\n background-size: $form-select-bg-size;\n border: $form-select-border-width solid $form-select-border-color;\n @include border-radius($form-select-border-radius, 0);\n @include box-shadow($form-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $form-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: $form-select-focus-box-shadow;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n padding-right: $form-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $form-select-disabled-color;\n background-color: $form-select-disabled-bg;\n border-color: $form-select-disabled-border-color;\n }\n\n // Remove outline from select box in FF\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 $form-select-color;\n }\n}\n\n.form-select-sm {\n padding-top: $form-select-padding-y-sm;\n padding-bottom: $form-select-padding-y-sm;\n padding-left: $form-select-padding-x-sm;\n @include font-size($form-select-font-size-sm);\n}\n\n.form-select-lg {\n padding-top: $form-select-padding-y-lg;\n padding-bottom: $form-select-padding-y-lg;\n padding-left: $form-select-padding-x-lg;\n @include font-size($form-select-font-size-lg);\n}\n","//\n// Check/radio\n//\n\n.form-check {\n display: block;\n min-height: $form-check-min-height;\n padding-left: $form-check-padding-start;\n margin-bottom: $form-check-margin-bottom;\n\n .form-check-input {\n float: left;\n margin-left: $form-check-padding-start * -1;\n }\n}\n\n.form-check-input {\n width: $form-check-input-width;\n height: $form-check-input-width;\n margin-top: ($line-height-base - $form-check-input-width) / 2; // line-height minus check height\n vertical-align: top;\n background-color: $form-check-input-bg;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: $form-check-input-border;\n appearance: none;\n color-adjust: exact; // Keep themed appearance for print\n @include transition($form-check-transition);\n\n &[type=\"checkbox\"] {\n @include border-radius($form-check-input-border-radius);\n }\n\n &[type=\"radio\"] {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: $form-check-radio-border-radius;\n }\n\n &:active {\n filter: $form-check-input-active-filter;\n }\n\n &:focus {\n border-color: $form-check-input-focus-border;\n outline: 0;\n box-shadow: $form-check-input-focus-box-shadow;\n }\n\n &:checked {\n background-color: $form-check-input-checked-bg-color;\n border-color: $form-check-input-checked-border-color;\n\n &[type=\"checkbox\"] {\n @if $enable-gradients {\n background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);\n } @else {\n background-image: escape-svg($form-check-input-checked-bg-image);\n }\n }\n\n &[type=\"radio\"] {\n @if $enable-gradients {\n background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);\n } @else {\n background-image: escape-svg($form-check-radio-checked-bg-image);\n }\n }\n }\n\n &[type=\"checkbox\"]:indeterminate {\n background-color: $form-check-input-indeterminate-bg-color;\n border-color: $form-check-input-indeterminate-border-color;\n\n @if $enable-gradients {\n background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient);\n } @else {\n background-image: escape-svg($form-check-input-indeterminate-bg-image);\n }\n }\n\n &:disabled {\n pointer-events: none;\n filter: none;\n opacity: $form-check-input-disabled-opacity;\n }\n\n // Use disabled attribute in addition of :disabled pseudo-class\n // See: https://github.com/twbs/bootstrap/issues/28247\n &[disabled],\n &:disabled {\n ~ .form-check-label {\n opacity: $form-check-label-disabled-opacity;\n }\n }\n}\n\n.form-check-label {\n color: $form-check-label-color;\n cursor: $form-check-label-cursor;\n}\n\n//\n// Switch\n//\n\n.form-switch {\n padding-left: $form-switch-padding-start;\n\n .form-check-input {\n width: $form-switch-width;\n margin-left: $form-switch-padding-start * -1;\n background-image: escape-svg($form-switch-bg-image);\n background-position: left center;\n @include border-radius($form-switch-border-radius);\n @include transition($form-switch-transition);\n\n &:focus {\n background-image: escape-svg($form-switch-focus-bg-image);\n }\n\n &:checked {\n background-position: $form-switch-checked-bg-position;\n\n @if $enable-gradients {\n background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient);\n } @else {\n background-image: escape-svg($form-switch-checked-bg-image);\n }\n }\n }\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: $form-check-inline-margin-end;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n\n &[disabled],\n &:disabled {\n + .btn {\n pointer-events: none;\n filter: none;\n opacity: $form-check-btn-check-disabled-opacity;\n }\n }\n}\n","// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.form-range {\n width: 100%;\n height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: 0;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $form-range-thumb-width;\n height: $form-range-thumb-height;\n margin-top: ($form-range-track-height - $form-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($form-range-thumb-bg);\n border: $form-range-thumb-border;\n @include border-radius($form-range-thumb-border-radius);\n @include box-shadow($form-range-thumb-box-shadow);\n @include transition($form-range-thumb-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($form-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $form-range-track-width;\n height: $form-range-track-height;\n color: transparent; // Why?\n cursor: $form-range-track-cursor;\n background-color: $form-range-track-bg;\n border-color: transparent;\n @include border-radius($form-range-track-border-radius);\n @include box-shadow($form-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $form-range-thumb-width;\n height: $form-range-thumb-height;\n @include gradient-bg($form-range-thumb-bg);\n border: $form-range-thumb-border;\n @include border-radius($form-range-thumb-border-radius);\n @include box-shadow($form-range-thumb-box-shadow);\n @include transition($form-range-thumb-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($form-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $form-range-track-width;\n height: $form-range-track-height;\n color: transparent;\n cursor: $form-range-track-cursor;\n background-color: $form-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($form-range-track-border-radius);\n @include box-shadow($form-range-track-box-shadow);\n }\n\n &:disabled {\n pointer-events: none;\n\n &::-webkit-slider-thumb {\n background-color: $form-range-thumb-disabled-bg;\n }\n\n &::-moz-range-thumb {\n background-color: $form-range-thumb-disabled-bg;\n }\n }\n}\n",".form-floating {\n position: relative;\n\n > .form-control,\n > .form-select {\n height: $form-floating-height;\n padding: $form-floating-padding-y $form-floating-padding-x;\n }\n\n > label {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%; // allow textareas\n padding: $form-floating-padding-y $form-floating-padding-x;\n pointer-events: none;\n border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model\n transform-origin: 0 0;\n @include transition($form-floating-transition);\n }\n\n // stylelint-disable no-duplicate-selectors\n > .form-control {\n &::placeholder {\n color: transparent;\n }\n\n &:focus,\n &:not(:placeholder-shown) {\n padding-top: $form-floating-input-padding-t;\n padding-bottom: $form-floating-input-padding-b;\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n &:-webkit-autofill {\n padding-top: $form-floating-input-padding-t;\n padding-bottom: $form-floating-input-padding-b;\n }\n }\n\n > .form-select {\n padding-top: $form-floating-input-padding-t;\n padding-bottom: $form-floating-input-padding-b;\n }\n\n > .form-control:focus,\n > .form-control:not(:placeholder-shown),\n > .form-select {\n ~ label {\n opacity: $form-floating-label-opacity;\n transform: $form-floating-label-transform;\n }\n }\n // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n > .form-control:-webkit-autofill {\n ~ label {\n opacity: $form-floating-label-opacity;\n transform: $form-floating-label-transform;\n }\n }\n // stylelint-enable no-duplicate-selectors\n}\n","//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-select {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n width: 1%;\n min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .form-select:focus {\n z-index: 3;\n }\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-group-addon-padding-y $input-group-addon-padding-x;\n @include font-size($input-font-size); // Match inputs\n font-weight: $input-group-addon-font-weight;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: $form-select-padding-x + $form-select-indicator-padding;\n}\n\n\n// Rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.input-group {\n &:not(.has-validation) {\n > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),\n > .dropdown-toggle:nth-last-child(n + 3) {\n @include border-end-radius(0);\n }\n }\n\n &.has-validation {\n > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),\n > .dropdown-toggle:nth-last-child(n + 4) {\n @include border-end-radius(0);\n }\n }\n\n $validation-messages: \"\";\n @each $state in map-keys($form-validation-states) {\n $validation-messages: $validation-messages + \":not(.\" + unquote($state) + \"-tooltip)\" + \":not(.\" + unquote($state) + \"-feedback)\";\n }\n\n > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {\n margin-left: -$input-border-width;\n @include border-start-radius(0);\n }\n}\n","// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n@mixin form-validation-state-selector($state) {\n @if ($state == \"valid\" or $state == \"invalid\") {\n .was-validated #{if(&, \"&\", \"\")}:#{$state},\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n } @else {\n #{if(&, \"&\", \"\")}.is-#{$state} {\n @content;\n }\n }\n}\n\n@mixin form-validation-state(\n $state,\n $color,\n $icon,\n $tooltip-color: color-contrast($color),\n $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),\n $focus-box-shadow: 0 0 0 $input-focus-width rgba($color, $input-btn-focus-color-opacity)\n) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n font-style: $form-feedback-font-style;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: $tooltip-color;\n background-color: $tooltip-bg-color;\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n @include form-validation-state-selector($state) {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n\n .form-control {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: escape-svg($icon);\n background-repeat: no-repeat;\n background-position: right $input-height-inner-quarter center;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: $focus-box-shadow;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n @include form-validation-state-selector($state) {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .form-select {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $form-select-feedback-icon-padding-end;\n background-image: escape-svg($form-select-indicator), escape-svg($icon);\n background-position: $form-select-bg-position, $form-select-feedback-icon-position;\n background-size: $form-select-bg-size, $form-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: $focus-box-shadow;\n }\n }\n }\n\n .form-check-input {\n @include form-validation-state-selector($state) {\n border-color: $color;\n\n &:checked {\n background-color: $color;\n }\n\n &:focus {\n box-shadow: $focus-box-shadow;\n }\n\n ~ .form-check-label {\n color: $color;\n }\n }\n }\n .form-check-inline .form-check-input {\n ~ .#{$state}-feedback {\n margin-left: .5em;\n }\n }\n}\n","//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n line-height: $btn-line-height;\n color: $body-color;\n text-align: center;\n text-decoration: if($link-decoration == none, null, none);\n white-space: $btn-white-space;\n vertical-align: middle;\n cursor: if($enable-button-pointers, pointer, null);\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);\n @include transition($btn-transition);\n\n &:hover {\n color: $body-color;\n text-decoration: if($link-hover-decoration == underline, none, null);\n }\n\n .btn-check:focus + &,\n &:focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n .btn-check:checked + &,\n .btn-check:active + &,\n &:active,\n &.active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n\n &:disabled,\n &.disabled,\n fieldset:disabled & {\n pointer-events: none;\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $btn-link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $btn-link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus {\n text-decoration: $link-hover-decoration;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant(\n $background,\n $border,\n $color: color-contrast($background),\n $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),\n $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),\n $hover-color: color-contrast($hover-background),\n $active-background: if($color == $color-contrast-light, shade-color($background,$btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),\n $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),\n $active-color: color-contrast($active-background),\n $disabled-background: $background,\n $disabled-border: $border,\n $disabled-color: color-contrast($disabled-background)\n) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n &:hover {\n color: $hover-color;\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n .btn-check:focus + &,\n &:focus {\n color: $hover-color;\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n @if $enable-shadows {\n @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);\n }\n }\n\n .btn-check:checked + &,\n .btn-check:active + &,\n &:active,\n &.active,\n .show > &.dropdown-toggle {\n color: $active-color;\n background-color: $active-background;\n // Remove CSS gradients if they're enabled\n background-image: if($enable-gradients, none, null);\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);\n }\n }\n }\n\n &:disabled,\n &.disabled {\n color: $disabled-color;\n background-color: $disabled-background;\n // Remove CSS gradients if they're enabled\n background-image: if($enable-gradients, none, null);\n border-color: $disabled-border;\n }\n}\n\n@mixin button-outline-variant(\n $color,\n $color-hover: color-contrast($color),\n $active-background: $color,\n $active-border: $color,\n $active-color: color-contrast($active-background)\n) {\n color: $color;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n .btn-check:focus + &,\n &:focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n .btn-check:checked + &,\n .btn-check:active + &,\n &:active,\n &.active,\n &.dropdown-toggle.show {\n color: $active-color;\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n @if $enable-shadows {\n @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));\n } @else {\n // Avoid using mixin so we can pass custom focus shadow properly\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n\n &:disabled,\n &.disabled {\n color: $color;\n background-color: transparent;\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropend,\n.dropdown,\n.dropstart {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y $dropdown-padding-x;\n margin: 0; // Override default margin of ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n\n &[data-bs-popper] {\n left: 0;\n margin-top: $dropdown-spacer;\n }\n}\n\n// scss-docs-start responsive-breakpoints\n// We deliberately hardcode the `bs-` prefix because we check\n// this custom property in JS to determine Popper's positioning\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-start {\n --bs-position: start;\n\n &[data-bs-popper] {\n right: auto #{\"/* rtl:ignore */\"};\n left: 0 #{\"/* rtl:ignore */\"};\n }\n }\n\n .dropdown-menu#{$infix}-end {\n --bs-position: end;\n\n &[data-bs-popper] {\n right: 0 #{\"/* rtl:ignore */\"};\n left: auto #{\"/* rtl:ignore */\"};\n }\n }\n }\n}\n// scss-docs-end responsive-breakpoints\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n\n &[data-bs-popper] {\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropend {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n\n &[data-bs-popper] {\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n }\n\n .dropdown-toggle {\n @include caret(end);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropstart {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n\n &[data-bs-popper] {\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n }\n\n .dropdown-toggle {\n @include caret(start);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n height: 0;\n margin: $dropdown-divider-margin-y 0;\n overflow: hidden;\n border-top: 1px solid $dropdown-divider-bg;\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n &:hover,\n &:focus {\n color: $dropdown-link-hover-color;\n text-decoration: if($link-hover-decoration == underline, none, null);\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n background-image: if($enable-gradients, none, null);\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-header-padding;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n\n// Dark dropdowns\n.dropdown-menu-dark {\n color: $dropdown-dark-color;\n background-color: $dropdown-dark-bg;\n border-color: $dropdown-dark-border-color;\n @include box-shadow($dropdown-dark-box-shadow);\n\n .dropdown-item {\n color: $dropdown-dark-link-color;\n\n &:hover,\n &:focus {\n color: $dropdown-dark-link-hover-color;\n @include gradient-bg($dropdown-dark-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-dark-link-active-color;\n @include gradient-bg($dropdown-dark-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-dark-link-disabled-color;\n }\n }\n\n .dropdown-divider {\n border-color: $dropdown-dark-divider-bg;\n }\n\n .dropdown-item-text {\n color: $dropdown-dark-link-color;\n }\n\n .dropdown-header {\n color: $dropdown-dark-header-color;\n }\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-end {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-start {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down();\n } @else if $direction == up {\n @include caret-up();\n } @else if $direction == end {\n @include caret-end();\n }\n }\n\n @if $direction == start {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-start();\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n }\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n > .btn-check:checked + .btn,\n > .btn-check:focus + .btn,\n > .btn:hover,\n > .btn:focus,\n > .btn:active,\n > .btn.active {\n z-index: 1;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-end-radius(0);\n }\n\n // The left radius should be 0 if the button is:\n // - the \"third or more\" child\n // - the second child and the previous element isn't `.btn-check` (making it the first child visually)\n // - part of a btn-group which isn't the first child\n > .btn:nth-child(n + 3),\n > :not(.btn-check) + .btn,\n > .btn-group:not(:first-child) > .btn {\n @include border-start-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropend &::after {\n margin-left: 0;\n }\n\n .dropstart &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn ~ .btn,\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n @include font-size($nav-link-font-size);\n font-weight: $nav-link-font-weight;\n color: $nav-link-color;\n text-decoration: if($link-decoration == none, null, none);\n @include transition($nav-link-transition);\n\n &:hover,\n &:focus {\n color: $nav-link-hover-color;\n text-decoration: if($link-hover-decoration == underline, none, null);\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-link {\n margin-bottom: -$nav-tabs-border-width;\n background: none;\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n &:hover,\n &:focus {\n border-color: $nav-tabs-link-hover-border-color;\n // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n isolation: isolate;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n background: none;\n border: 0;\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n @include gradient-bg($nav-pills-link-active-bg);\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n > .nav-link,\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n > .nav-link,\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding-top: $navbar-padding-y;\n padding-right: $navbar-padding-x; // default: null\n padding-bottom: $navbar-padding-y;\n padding-left: $navbar-padding-x; // default: null\n @include gradient-bg();\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n // The `flex-wrap` property is inherited to simplify the expanded navbars\n %container-flex-properties {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n }\n\n > .container,\n > .container-fluid {\n @extend %container-flex-properties;\n }\n\n @each $breakpoint, $container-max-width in $container-max-widths {\n > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n @extend %container-flex-properties;\n }\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-brand-margin-end;\n @include font-size($navbar-brand-font-size);\n text-decoration: if($link-decoration == none, null, none);\n white-space: nowrap;\n\n &:hover,\n &:focus {\n text-decoration: if($link-hover-decoration == underline, none, null);\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n @include transition($navbar-toggler-transition);\n\n &:hover {\n text-decoration: none;\n }\n\n &:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 $navbar-toggler-focus-width;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--#{$variable-prefix}scroll-height, 75vh);\n overflow-y: auto;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n // stylelint-disable-next-line scss/selector-no-union-class-name\n &#{$infix} {\n @include media-breakpoint-up($next) {\n flex-wrap: nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n .navbar-nav-scroll {\n overflow: visible;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n &:hover,\n &:focus {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n &:hover,\n &:focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-light-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-light-color;\n\n a,\n a:hover,\n a:focus {\n color: $navbar-light-active-color;\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n &:hover,\n &:focus {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n &:hover,\n &:focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: escape-svg($navbar-dark-toggler-icon-bg);\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a,\n a:hover,\n a:focus {\n color: $navbar-dark-active-color;\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n height: $card-height;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n\n &:first-child {\n border-top-width: 0;\n @include border-top-radius($card-inner-border-radius);\n }\n\n &:last-child {\n border-bottom-width: 0;\n @include border-bottom-radius($card-inner-border-radius);\n }\n }\n\n // Due to specificity of the above selector (`.card > .list-group`), we must\n // use a child selector here to prevent double borders.\n > .card-header + .list-group,\n > .list-group + .card-footer {\n border-top: 0;\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-y $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-title-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-title-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n &:hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x #{\"/* rtl:ignore */\"};\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-cap-padding-y $card-cap-padding-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n}\n\n.card-footer {\n padding: $card-cap-padding-y $card-cap-padding-x;\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-cap-padding-x / 2;\n margin-bottom: -$card-cap-padding-y;\n margin-left: -$card-cap-padding-x / 2;\n border-bottom: 0;\n\n @if $nav-tabs-link-active-bg != $card-bg {\n .nav-link.active {\n background-color: $card-bg;\n border-bottom-color: $card-bg;\n }\n }\n}\n\n.card-header-pills {\n margin-right: -$card-cap-padding-x / 2;\n margin-left: -$card-cap-padding-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n @include border-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n display: flex;\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-end-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-start-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-disallowed-list\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-disallowed-list\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n @include font-size($breadcrumb-font-size);\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding-x;\n\n &::before {\n float: left; // Suppress inline spacings and underlining of the separator\n padding-right: $breadcrumb-item-padding-x;\n color: $breadcrumb-divider-color;\n content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{\"/* rtl:\"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{\"*/\"};\n }\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n}\n\n.page-link {\n position: relative;\n display: block;\n color: $pagination-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n @include transition($pagination-transition);\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: if($link-hover-decoration == underline, none, null);\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 3;\n color: $pagination-focus-color;\n background-color: $pagination-focus-bg;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:not(:first-child) .page-link {\n margin-left: $pagination-margin-start;\n }\n\n &.active .page-link {\n z-index: 3;\n color: $pagination-active-color;\n @include gradient-bg($pagination-active-bg);\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n@include pagination-size($pagination-padding-y, $pagination-padding-x, null, $pagination-border-radius);\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n }\n\n .page-item {\n @if $pagination-margin-start == (-$pagination-border-width) {\n &:first-child {\n .page-link {\n @include border-start-radius($border-radius);\n }\n }\n\n &:last-child {\n .page-link {\n @include border-end-radius($border-radius);\n }\n }\n } @else {\n //Add border-radius to all pageLinks in case they have left margin\n .page-link {\n @include border-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n color: $badge-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include gradient-bg();\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $alert-dismissible-padding-r;\n\n // Adjust close link position\n .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: $stretched-link-z-index + 1;\n padding: $alert-padding-y * 1.25 $alert-padding-x;\n }\n}\n\n\n// scss-docs-start alert-modifiers\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $state, $value in $theme-colors {\n $alert-background: shift-color($value, $alert-bg-scale);\n $alert-border: shift-color($value, $alert-border-scale);\n $alert-color: shift-color($value, $alert-color-scale);\n @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {\n $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));\n }\n .alert-#{$state} {\n @include alert-variant($alert-background, $alert-border, $alert-color);\n }\n}\n// scss-docs-end alert-modifiers\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n .alert-link {\n color: shade-color($color, 20%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n 0% { background-position-x: $progress-height; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: $progress-bar-animation-timing progress-bar-stripes;\n\n @if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n @include border-radius($list-group-border-radius);\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n &:hover,\n &:focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n color: $list-group-color;\n text-decoration: if($link-decoration == none, null, none);\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius(inherit);\n }\n\n &:last-child {\n @include border-bottom-radius(inherit);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n\n & + & {\n border-top-width: 0;\n\n &.active {\n margin-top: -$list-group-border-width;\n border-top-width: $list-group-border-width;\n }\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n > .list-group-item {\n &:first-child {\n @include border-bottom-start-radius($list-group-border-radius);\n @include border-top-end-radius(0);\n }\n\n &:last-child {\n @include border-top-end-radius($list-group-border-radius);\n @include border-bottom-start-radius(0);\n }\n\n &.active {\n margin-top: 0;\n }\n\n + .list-group-item {\n border-top-width: $list-group-border-width;\n border-left-width: 0;\n\n &.active {\n margin-left: -$list-group-border-width;\n border-left-width: $list-group-border-width;\n }\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n @include border-radius(0);\n\n > .list-group-item {\n border-width: 0 0 $list-group-border-width;\n\n &:last-child {\n border-bottom-width: 0;\n }\n }\n}\n\n\n// scss-docs-start list-group-modifiers\n// List group contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $state, $value in $theme-colors {\n $list-group-background: shift-color($value, $list-group-item-bg-scale);\n $list-group-color: shift-color($value, $list-group-item-color-scale);\n @if (contrast-ratio($list-group-background, $list-group-color) < $min-contrast-ratio) {\n $list-group-color: mix($value, color-contrast($list-group-background), abs($alert-color-scale));\n }\n\n @include list-group-item-variant($state, $list-group-background, $list-group-color);\n}\n// scss-docs-end list-group-modifiers\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n &:hover,\n &:focus {\n color: $color;\n background-color: shade-color($background, 10%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n","// transparent background and border properties included for button version.\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n.btn-close {\n box-sizing: content-box;\n width: $btn-close-width;\n height: $btn-close-height;\n padding: $btn-close-padding-y $btn-close-padding-x;\n color: $btn-close-color;\n background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements\n border: 0; // for button elements\n @include border-radius();\n opacity: $btn-close-opacity;\n\n // Override <a>'s hover style\n &:hover {\n color: $btn-close-color;\n text-decoration: none;\n opacity: $btn-close-hover-opacity;\n }\n\n &:focus {\n outline: 0;\n box-shadow: $btn-close-focus-shadow;\n opacity: $btn-close-focus-opacity;\n }\n\n &:disabled,\n &.disabled {\n pointer-events: none;\n user-select: none;\n opacity: $btn-close-disabled-opacity;\n }\n}\n\n.btn-close-white {\n filter: $btn-close-white-filter;\n}\n",".toast {\n width: $toast-max-width;\n max-width: 100%;\n @include font-size($toast-font-size);\n color: $toast-color;\n pointer-events: auto;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n @include border-radius($toast-border-radius);\n\n &:not(.showing):not(.show) {\n opacity: 0;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-container {\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n\n > :not(:last-child) {\n margin-bottom: $toast-spacing;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n @include border-top-radius(subtract($toast-border-radius, $toast-border-width));\n\n .btn-close {\n margin-right: $toast-padding-x / -2;\n margin-left: $toast-padding-x;\n }\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n word-wrap: break-word;\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n\n // When trying to close, animate focus to scale\n .modal.modal-static & {\n transform: $modal-scale-transform;\n }\n}\n\n.modal-dialog-scrollable {\n height: subtract(100%, $modal-dialog-margin * 2);\n\n .modal-content {\n max-height: 100%;\n overflow: hidden;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: subtract(100%, $modal-dialog-margin * 2);\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-inner-border-radius);\n\n .btn-close {\n padding: ($modal-header-padding-y / 2) ($modal-header-padding-x / 2);\n margin: ($modal-header-padding-y / -2) ($modal-header-padding-x / -2) ($modal-header-padding-y / -2) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when there should be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n flex-shrink: 0;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding - $modal-footer-margin-between / 2;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-inner-border-radius);\n\n // Place margin between footer elements\n // This solution is far from ideal because of the universal selector usage,\n // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n > * {\n margin: $modal-footer-margin-between / 2;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n }\n\n .modal-dialog-centered {\n min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n $postfix: if($infix != \"\", $infix + \"-down\", \"\");\n\n @include media-breakpoint-down($breakpoint) {\n .modal-fullscreen#{$postfix} {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n\n .modal-content {\n height: 100%;\n border: 0;\n @include border-radius(0);\n }\n\n .modal-header {\n @include border-radius(0);\n }\n\n .modal-body {\n overflow-y: auto;\n }\n\n .modal-footer {\n @include border-radius(0);\n }\n }\n }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .tooltip-arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n bottom: 0;\n\n &::before {\n top: -1px;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-end {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: -1px;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n top: 0;\n\n &::before {\n bottom: -1px;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-start {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: -1px;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[data-popper-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[data-popper-placement^=\"right\"] {\n @extend .bs-tooltip-end;\n }\n &[data-popper-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[data-popper-placement^=\"left\"] {\n @extend .bs-tooltip-start;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0 #{\"/* rtl:ignore */\"};\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .popover-arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n > .popover-arrow {\n bottom: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-end {\n > .popover-arrow {\n left: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n > .popover-arrow {\n top: subtract(-$popover-arrow-height, $popover-border-width);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-start {\n > .popover-arrow {\n right: subtract(-$popover-arrow-height, $popover-border-width);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[data-popper-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[data-popper-placement^=\"right\"] {\n @extend .bs-popover-end;\n }\n &[data-popper-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[data-popper-placement^=\"left\"] {\n @extend .bs-popover-start;\n }\n}\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid shade-color($popover-header-bg, 10%);\n @include border-top-radius($popover-inner-border-radius);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n/* rtl:begin:ignore */\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n/* rtl:end:ignore */\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-start,\n .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-start,\n .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n @include transition(opacity 0s $carousel-transition-duration);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n padding: 0;\n color: $carousel-control-color;\n text-align: center;\n background: none;\n border: 0;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n &:hover,\n &:focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);\n}\n.carousel-control-next {\n right: 0;\n background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n/* rtl:options: {\n \"autoRename\": true,\n \"stringMap\":[ {\n \"name\" : \"prev-next\",\n \"search\" : \"prev\",\n \"replace\" : \"next\"\n } ]\n} */\n.carousel-control-prev-icon {\n background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n// Optional indicator pips/controls\n//\n// Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n// like a button) with data-bs-target for each slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-bottom: 1rem;\n margin-left: $carousel-control-width;\n list-style: none;\n\n [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n padding: 0;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n border: 0;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: $carousel-indicator-opacity;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: $carousel-indicator-active-opacity;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: $carousel-caption-spacer;\n left: (100% - $carousel-caption-width) / 2;\n padding-top: $carousel-caption-padding-y;\n padding-bottom: $carousel-caption-padding-y;\n color: $carousel-caption-color;\n text-align: center;\n}\n\n// Dark mode carousel\n\n.carousel-dark {\n .carousel-control-prev-icon,\n .carousel-control-next-icon {\n filter: $carousel-dark-control-icon-filter;\n }\n\n .carousel-indicators [data-bs-target] {\n background-color: $carousel-dark-indicator-active-bg;\n }\n\n .carousel-caption {\n color: $carousel-dark-caption-color;\n }\n}\n","// scss-docs-start clearfix\n@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n// scss-docs-end clearfix\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg) #{\"/* rtl:ignore */\"}; }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: $spinner-animation-speed linear infinite spinner-border;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n opacity: 0;\n animation: $spinner-animation-speed linear infinite spinner-grow;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n\n@if $enable-reduced-motion {\n @media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: $spinner-animation-speed * 2;\n }\n }\n}\n","@each $color, $value in $theme-colors {\n .link-#{$color} {\n color: $value;\n\n @if $link-shade-percentage != 0 {\n &:hover,\n &:focus {\n color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));\n }\n }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.ratio {\n position: relative;\n width: 100%;\n\n &::before {\n display: block;\n padding-top: var(--#{$variable-prefix}aspect-ratio);\n content: \"\";\n }\n\n > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n}\n\n@each $key, $ratio in $aspect-ratios {\n .ratio-#{$key} {\n --#{$variable-prefix}aspect-ratio: #{$ratio};\n }\n}\n","// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n// Responsive sticky top\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .sticky#{$infix}-top {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n }\n}\n","//\n// Visually hidden\n//\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n @include visually-hidden();\n}\n","// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n\n@mixin visually-hidden-focusable() {\n &:not(:focus):not(:focus-within) {\n @include visually-hidden();\n }\n}\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::#{$stretched-link-pseudo-element} {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $stretched-link-z-index;\n content: \"\";\n }\n}\n","//\n// Text truncation\n//\n\n.text-truncate {\n @include text-truncate();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n $values: map-get($utility, values);\n\n // If the values are a list or string, convert it into a map\n @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n $values: zip($values, $values);\n }\n\n @each $key, $value in $values {\n $properties: map-get($utility, property);\n\n // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n @if type-of($properties) == \"string\" {\n $properties: append((), $properties);\n }\n\n // Use custom class if present\n $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n $property-class: if($property-class == null, \"\", $property-class);\n\n // State params to generate pseudo-classes\n $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n // Don't prefix if value key is null (eg. with shadow class)\n $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n @if map-get($utility, rfs) {\n // Inside the media query\n @if $is-rfs-media-query {\n $val: rfs-value($value);\n\n // Do not render anything if fluid and non fluid values are the same\n $value: if($val == rfs-fluid-value($value), null, $val);\n }\n @else {\n $value: rfs-fluid-value($value);\n }\n }\n\n $is-rtl: map-get($utility, rtl);\n\n @if $value != null {\n @if $is-rtl == false {\n /* rtl:begin:remove */\n }\n .#{$property-class + $infix + $property-class-modifier} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n\n @each $pseudo in $state {\n .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n @each $property in $properties {\n #{$property}: $value if($enable-important-utilities, !important, null);\n }\n }\n }\n @if $is-rtl == false {\n /* rtl:end:remove */\n }\n }\n }\n}\n","// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n // Generate media query if needed\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix);\n }\n }\n }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n // Loop over each utility property\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Only proceed if responsive media queries are enabled or if it's the base media query\n @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n @include generate-utility($utility, $infix, true);\n }\n }\n }\n }\n}\n\n\n// Print utilities\n@media print {\n @each $key, $utility in $utilities {\n // The utility can be disabled with `false`, thus check if the utility is a map first\n // Then check if the utility needs print styles\n @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n @include generate-utility($utility, \"-print\");\n }\n }\n}\n"]} \ No newline at end of file
diff --git a/docs/img/doge420logo.png b/docs/img/doge420logo.png
new file mode 100644
index 0000000..c0dc94d
--- /dev/null
+++ b/docs/img/doge420logo.png
Binary files differ
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..fb4c3fa
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,85 @@
+<!doctype html>
+<html lang="ru">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+
+ <link rel="stylesheet" href="css/main.min.css">
+
+ <title>Doge420</title>
+</head>
+<body>
+<main>
+
+ <nav class="navbar navbar-dark bg-dark">
+ <a class="navbar-brand mx-auto" href="#">
+ <img src="./img/doge420logo.png" width="30" height="30" class="d-inline-block align-top" alt="Lord Doge smoking a blunt">
+ Doge420
+ </a>
+ </nav>
+ <section class="py-5 text-center container">
+ <div class="row py-lg-5">
+ <div class="col-lg-6 col-md-8 mx-auto">
+ <h1 class="display-1">Doge420</h1>
+ <p class="lead text-muted">My teacher said to my I'm a failure, that I'll never amount to anything. I scoffed at him. Shocked, my teacher asked what's so funny, my future is on the line. "Well...you see professor" I say as the teacher prepares to laugh at my answer, rebuttal at hand. "I watch Rick and Morty." The class is shocked, they merely watch pleb shows like the big bang theory to feign intelligence, not grasping the humor. "...how? I can't even understand it's sheer nuance and subtlety." "Well you see...WUBBA LUBBA DUB DUB!" One line student laughs in the back, I turn to see a who this fellow genius is. It's none other than Albert Einstein.</p>
+ <p>
+ <a href="#" class="btn btn-primary my-2">Do Nothing</a>
+ <a href="#" class="btn btn-secondary my-2">Do Nothing, in Grey</a>
+ </p>
+ </div>
+ </div>
+ </section>
+
+ <section class="bg-secondary text-light" style="padding:60px;">
+ <div class="container">
+ <div class="mb-3">
+ <h2 class='display-3'>Analyse Compound</h2><small>*Snorts Cocoa Cola*</small>
+ <p >Ok so people can’t have opinions, the people on this sub are the reason there are instructions on toothpaste. Everyone here are cancerous sheep who have been mind controlled to upvoting if they see a 69, 420, Instagram Fortnite and TikTok bad Minecraft good. I’m not saying I like any of these more than Minecraft but people are allowed to have opinions. So next time you call someone a normie realize who the real normie is🤡</p>
+ <div class='col-12'>
+ <form>
+ <label for="inputName" class="form-label">Compound Name</label>
+ <input type="text" class="form-control" id="inputName" aria-describedby="Compound Name">
+ <button type="button" class="btn btn-primary" onclick="get_smiles_from_element_text('inputName')">Get SMILES</button>
+ </form>
+ </div>
+ <div class='col-12'>
+ <form>
+ <label for="inputSMILES" class="form-label">Compound SMILES</label>
+ <input type="text" class="form-control" id="inputSMILES" aria-describedby="Compound SMILES">
+ <button type="button" class="btn btn-primary" onclick="analyse_me_senpai('inputSMILES')">Analyse</button>
+ </form></div>
+
+
+
+ </div></div></section>
+
+ <section style="padding:60px;">
+ <div class='container'>
+ <div class='row'><h2 class="display-3">Workbench</h2></div>
+ <div class='row'>
+ <div class='col-6'>
+ <canvas id="draw-canvas-2" class="w-100"></canvas>
+ </div>
+ <div class="col-6">
+ <table class="table table-striped">
+ <thead>
+ <tr>
+ <th scope="col">Property</th>
+ <th scope="col">Value</th>
+ </tr>
+ </thead>
+ <tbody id='analyse_table'>
+ <!--<tr><td scope="row">Exact M.W.</td><td id="exactmw">-</td></tr>
+ <tr><td scope="row">CrippenMR</td><td id='CrippenMR'>-</td></tr>
+ <tr><td scope="row">CrippenClogP</td><td id='CrippenClogP'>-</td></tr>-->
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div></section>
+
+</main>
+<script src="./js/main.min.js"></script>
+<script src="./js/RDKit_minimal.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/js/RDKit_minimal.js b/docs/js/RDKit_minimal.js
new file mode 100644
index 0000000..15771f9
--- /dev/null
+++ b/docs/js/RDKit_minimal.js
@@ -0,0 +1 @@
+var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={"i":127,"j":126,"f":125,"d":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet=="v"){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;var bytes=new Uint8Array([0,97,115,109,1,0,0,0].concat(typeSection,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{"e":{"f":func}});var wrappedFunc=instance.exports["f"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function addFunctionWasm(func,sig){var table=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var i=0;i<table.length;i++){var item=table.get(i);if(item){functionsInTableMap.set(item,i)}}}if(functionsInTableMap.has(func)){return functionsInTableMap.get(func)}var ret;if(freeTableIndexes.length){ret=freeTableIndexes.pop()}else{ret=table.length;try{table.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{table.set(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}functionsInTableMap.set(func,ret);return ret}function removeFunctionWasm(index){functionsInTableMap.delete(wasmTable.get(index));freeTableIndexes.push(index)}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":4549,"maximum":4549+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="RDKit_minimal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i<len;i++){if(adj[i]===adjusted){return ptr}}}return adjusted}function ___cxa_begin_catch(ptr){var info=___exception_infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exceptions--}if(info)info.rethrown=false;___exception_caught.push(ptr);___exception_addRef(___exception_deAdjust(ptr));return ptr}var ___exception_last=0;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___exception_decRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_ii"](info.destructor,ptr)}delete ___exception_infos[ptr];___cxa_free_exception(ptr)}}function ___cxa_end_catch(){_setThrew(0);var ptr=___exception_caught.pop();if(ptr){___exception_decRef(___exception_deAdjust(ptr));___exception_last=0}}function ___cxa_find_matching_catch_2(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc?Buffer.alloc(BUFSIZE):new Buffer(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name]},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){assert(address===0);if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(10)}if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){err("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){err("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){err("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){err("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");random_device=function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort("random_device")}}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");var stdout=FS.open("/dev/stdout","w");var stderr=FS.open("/dev/stderr","w")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)setErrNo(29);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i)}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return new Function("dynCall","rawFunction",body)(dynCall,rawFunction)}var dc=Module["dynCall_"+signature];var fp=makeDynCaller(dc);if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!=="void";var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired"}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n"}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError("Cannot call "+humanName+" due to unbound types",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join("")}_free(value);return str},"toWireType":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value==="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?", ":"")+"arg"+i;params.push("argType"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName("methodCaller_"+signatureName);var functionBody="return function "+functionName+"(handle, name, destructors, args) {\n";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=" var arg"+i+" = argType"+i+".readValueFromPointer(args"+(offset?"+"+offset:"")+");\n";offset+=types[i+1]["argPackAdvance"]}functionBody+=" var rv = handle[name]("+argsList+");\n";for(var i=0;i<argCount-1;++i){if(types[i+1]["deleteObject"]){functionBody+=" argType"+i+".deleteObject(arg"+i+");\n"}}if(!retType.isVoid){functionBody+=" return retType.toWireType(destructors, rv);\n"}functionBody+="};\n";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},"%w":function(date){return date.tm_wday},"%W":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_atexit":___cxa_atexit,"__cxa_begin_catch":___cxa_begin_catch,"__cxa_end_catch":___cxa_end_catch,"__cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"__cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"__cxa_find_matching_catch_4":___cxa_find_matching_catch_4,"__cxa_free_exception":___cxa_free_exception,"__cxa_rethrow":___cxa_rethrow,"__cxa_throw":___cxa_throw,"__cxa_uncaught_exceptions":___cxa_uncaught_exceptions,"__map_file":___map_file,"__resumeException":___resumeException,"__sys_fcntl64":___sys_fcntl64,"__sys_ioctl":___sys_ioctl,"__sys_munmap":___sys_munmap,"__sys_open":___sys_open,"_embind_register_bool":__embind_register_bool,"_embind_register_class":__embind_register_class,"_embind_register_class_function":__embind_register_class_function,"_embind_register_emval":__embind_register_emval,"_embind_register_float":__embind_register_float,"_embind_register_function":__embind_register_function,"_embind_register_integer":__embind_register_integer,"_embind_register_memory_view":__embind_register_memory_view,"_embind_register_std_string":__embind_register_std_string,"_embind_register_std_wstring":__embind_register_std_wstring,"_embind_register_void":__embind_register_void,"_emval_as":__emval_as,"_emval_call_method":__emval_call_method,"_emval_call_void_method":__emval_call_void_method,"_emval_decref":__emval_decref,"_emval_get_method_caller":__emval_get_method_caller,"_emval_get_property":__emval_get_property,"_emval_incref":__emval_incref,"_emval_new_cstring":__emval_new_cstring,"_emval_run_destructors":__emval_run_destructors,"_emval_set_property":__emval_set_property,"_emval_take_value":__emval_take_value,"abort":_abort,"clock":_clock,"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_longjmp":_emscripten_longjmp,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"environ_get":_environ_get,"environ_sizes_get":_environ_sizes_get,"fd_close":_fd_close,"fd_fdstat_get":_fd_fdstat_get,"fd_read":_fd_read,"fd_seek":_fd_seek,"fd_write":_fd_write,"getTempRet0":_getTempRet0,"invoke_di":invoke_di,"invoke_dii":invoke_dii,"invoke_diid":invoke_diid,"invoke_diii":invoke_diii,"invoke_diiii":invoke_diiii,"invoke_diiiii":invoke_diiiii,"invoke_fi":invoke_fi,"invoke_fif":invoke_fif,"invoke_fii":invoke_fii,"invoke_fiii":invoke_fiii,"invoke_fiiii":invoke_fiiii,"invoke_fiiiiiff":invoke_fiiiiiff,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iid":invoke_iid,"invoke_iiddi":invoke_iiddi,"invoke_iiddii":invoke_iiddii,"invoke_iiddiii":invoke_iiddiii,"invoke_iif":invoke_iif,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiiiiiiddiii":invoke_iiiiiiiiiddiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_iiiiiiiiiiii":invoke_iiiiiiiiiiii,"invoke_iiiiiiiiiiiii":invoke_iiiiiiiiiiiii,"invoke_iij":invoke_iij,"invoke_jiiii":invoke_jiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vid":invoke_vid,"invoke_vidi":invoke_vidi,"invoke_vidiiiiiii":invoke_vidiiiiiii,"invoke_vif":invoke_vif,"invoke_viffffff":invoke_viffffff,"invoke_viffi":invoke_viffi,"invoke_vifii":invoke_vifii,"invoke_vii":invoke_vii,"invoke_viid":invoke_viid,"invoke_viidddd":invoke_viidddd,"invoke_viidi":invoke_viidi,"invoke_viidii":invoke_viidii,"invoke_viidiiiiiii":invoke_viidiiiiiii,"invoke_viif":invoke_viif,"invoke_viifii":invoke_viifii,"invoke_viii":invoke_viii,"invoke_viiid":invoke_viiid,"invoke_viiidi":invoke_viiidi,"invoke_viiidiiiid":invoke_viiidiiiid,"invoke_viiiff":invoke_viiiff,"invoke_viiii":invoke_viiii,"invoke_viiiidd":invoke_viiiidd,"invoke_viiiiffffiii":invoke_viiiiffffiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiidi":invoke_viiiiidi,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiiiid":invoke_viiiiiid,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiiiiiiiii":invoke_viiiiiiiiiii,"invoke_viiiiiiiiiiiiiii":invoke_viiiiiiiiiiiiiii,"llvm_eh_typeid_for":_llvm_eh_typeid_for,"localtime":_localtime,"memory":wasmMemory,"pthread_mutexattr_destroy":_pthread_mutexattr_destroy,"pthread_mutexattr_init":_pthread_mutexattr_init,"pthread_mutexattr_settype":_pthread_mutexattr_settype,"round":_round,"setTempRet0":_setTempRet0,"strftime_l":_strftime_l,"table":wasmTable,"time":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["realloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var _testSetjmp=Module["_testSetjmp"]=function(){return(_testSetjmp=Module["_testSetjmp"]=Module["asm"]["testSetjmp"]).apply(null,arguments)};var _saveSetjmp=Module["_saveSetjmp"]=function(){return(_saveSetjmp=Module["_saveSetjmp"]=Module["asm"]["saveSetjmp"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["__getTypeName"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return(__get_tzname=Module["__get_tzname"]=Module["asm"]["_get_tzname"]).apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return(__get_daylight=Module["__get_daylight"]=Module["asm"]["_get_daylight"]).apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return(__get_timezone=Module["__get_timezone"]=Module["asm"]["_get_timezone"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=function(){return(__ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=Module["asm"]["_ZSt18uncaught_exceptionv"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["__cxa_can_catch"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["__cxa_is_pointer_type"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["dynCall_v"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["dynCall_vi"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["dynCall_vii"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["dynCall_viii"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["dynCall_viiii"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["dynCall_viiiii"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["dynCall_viiiiii"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["dynCall_viiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["dynCall_viiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiid=Module["dynCall_viiiiiid"]=function(){return(dynCall_viiiiiid=Module["dynCall_viiiiiid"]=Module["asm"]["dynCall_viiiiiid"]).apply(null,arguments)};var dynCall_viiiiidi=Module["dynCall_viiiiidi"]=function(){return(dynCall_viiiiidi=Module["dynCall_viiiiidi"]=Module["asm"]["dynCall_viiiiidi"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=function(){return(dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=Module["asm"]["dynCall_viiiiffffiii"]).apply(null,arguments)};var dynCall_viiiidd=Module["dynCall_viiiidd"]=function(){return(dynCall_viiiidd=Module["dynCall_viiiidd"]=Module["asm"]["dynCall_viiiidd"]).apply(null,arguments)};var dynCall_viiiff=Module["dynCall_viiiff"]=function(){return(dynCall_viiiff=Module["dynCall_viiiff"]=Module["asm"]["dynCall_viiiff"]).apply(null,arguments)};var dynCall_viiid=Module["dynCall_viiid"]=function(){return(dynCall_viiid=Module["dynCall_viiid"]=Module["asm"]["dynCall_viiid"]).apply(null,arguments)};var dynCall_viiidi=Module["dynCall_viiidi"]=function(){return(dynCall_viiidi=Module["dynCall_viiidi"]=Module["asm"]["dynCall_viiidi"]).apply(null,arguments)};var dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=function(){return(dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=Module["asm"]["dynCall_viiidiiiid"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["dynCall_viif"]).apply(null,arguments)};var dynCall_viifii=Module["dynCall_viifii"]=function(){return(dynCall_viifii=Module["dynCall_viifii"]=Module["asm"]["dynCall_viifii"]).apply(null,arguments)};var dynCall_viid=Module["dynCall_viid"]=function(){return(dynCall_viid=Module["dynCall_viid"]=Module["asm"]["dynCall_viid"]).apply(null,arguments)};var dynCall_viidi=Module["dynCall_viidi"]=function(){return(dynCall_viidi=Module["dynCall_viidi"]=Module["asm"]["dynCall_viidi"]).apply(null,arguments)};var dynCall_viidii=Module["dynCall_viidii"]=function(){return(dynCall_viidii=Module["dynCall_viidii"]=Module["asm"]["dynCall_viidii"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=function(){return(dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=Module["asm"]["dynCall_viidiiiiiii"]).apply(null,arguments)};var dynCall_viidddd=Module["dynCall_viidddd"]=function(){return(dynCall_viidddd=Module["dynCall_viidddd"]=Module["asm"]["dynCall_viidddd"]).apply(null,arguments)};var dynCall_vif=Module["dynCall_vif"]=function(){return(dynCall_vif=Module["dynCall_vif"]=Module["asm"]["dynCall_vif"]).apply(null,arguments)};var dynCall_vifii=Module["dynCall_vifii"]=function(){return(dynCall_vifii=Module["dynCall_vifii"]=Module["asm"]["dynCall_vifii"]).apply(null,arguments)};var dynCall_viffi=Module["dynCall_viffi"]=function(){return(dynCall_viffi=Module["dynCall_viffi"]=Module["asm"]["dynCall_viffi"]).apply(null,arguments)};var dynCall_viffffff=Module["dynCall_viffffff"]=function(){return(dynCall_viffffff=Module["dynCall_viffffff"]=Module["asm"]["dynCall_viffffff"]).apply(null,arguments)};var dynCall_vid=Module["dynCall_vid"]=function(){return(dynCall_vid=Module["dynCall_vid"]=Module["asm"]["dynCall_vid"]).apply(null,arguments)};var dynCall_vidi=Module["dynCall_vidi"]=function(){return(dynCall_vidi=Module["dynCall_vidi"]=Module["asm"]["dynCall_vidi"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=function(){return(dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=Module["asm"]["dynCall_vidiiiiiii"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["dynCall_i"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["dynCall_iii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["dynCall_iiiii"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["dynCall_iiiiii"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["dynCall_iiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["dynCall_iiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=function(){return(dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=function(){return(dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=Module["asm"]["dynCall_iiiiiiiiiddiii"]).apply(null,arguments)};var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=function(){return(dynCall_iiiiiid=Module["dynCall_iiiiiid"]=Module["asm"]["dynCall_iiiiiid"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["dynCall_iiiiid"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["dynCall_iij"]).apply(null,arguments)};var dynCall_iif=Module["dynCall_iif"]=function(){return(dynCall_iif=Module["dynCall_iif"]=Module["asm"]["dynCall_iif"]).apply(null,arguments)};var dynCall_iid=Module["dynCall_iid"]=function(){return(dynCall_iid=Module["dynCall_iid"]=Module["asm"]["dynCall_iid"]).apply(null,arguments)};var dynCall_iiddi=Module["dynCall_iiddi"]=function(){return(dynCall_iiddi=Module["dynCall_iiddi"]=Module["asm"]["dynCall_iiddi"]).apply(null,arguments)};var dynCall_iiddii=Module["dynCall_iiddii"]=function(){return(dynCall_iiddii=Module["dynCall_iiddii"]=Module["asm"]["dynCall_iiddii"]).apply(null,arguments)};var dynCall_iiddiii=Module["dynCall_iiddiii"]=function(){return(dynCall_iiddiii=Module["dynCall_iiddiii"]=Module["asm"]["dynCall_iiddiii"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["dynCall_jiiii"]).apply(null,arguments)};var dynCall_fi=Module["dynCall_fi"]=function(){return(dynCall_fi=Module["dynCall_fi"]=Module["asm"]["dynCall_fi"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["dynCall_fii"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["dynCall_fiii"]).apply(null,arguments)};var dynCall_fiiii=Module["dynCall_fiiii"]=function(){return(dynCall_fiiii=Module["dynCall_fiiii"]=Module["asm"]["dynCall_fiiii"]).apply(null,arguments)};var dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=function(){return(dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=Module["asm"]["dynCall_fiiiiiff"]).apply(null,arguments)};var dynCall_fif=Module["dynCall_fif"]=function(){return(dynCall_fif=Module["dynCall_fif"]=Module["asm"]["dynCall_fif"]).apply(null,arguments)};var dynCall_di=Module["dynCall_di"]=function(){return(dynCall_di=Module["dynCall_di"]=Module["asm"]["dynCall_di"]).apply(null,arguments)};var dynCall_dii=Module["dynCall_dii"]=function(){return(dynCall_dii=Module["dynCall_dii"]=Module["asm"]["dynCall_dii"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["dynCall_diii"]).apply(null,arguments)};var dynCall_diiii=Module["dynCall_diiii"]=function(){return(dynCall_diiii=Module["dynCall_diiii"]=Module["asm"]["dynCall_diiii"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["dynCall_diiiii"]).apply(null,arguments)};var dynCall_diid=Module["dynCall_diid"]=function(){return(dynCall_diid=Module["dynCall_diid"]=Module["asm"]["dynCall_diid"]).apply(null,arguments)};var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var dynCall_iiidi=Module["dynCall_iiidi"]=function(){return(dynCall_iiidi=Module["dynCall_iiidi"]=Module["asm"]["dynCall_iiidi"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["dynCall_viijii"]).apply(null,arguments)};var dynCall_viiddd=Module["dynCall_viiddd"]=function(){return(dynCall_viiddd=Module["dynCall_viiddd"]=Module["asm"]["dynCall_viiddd"]).apply(null,arguments)};var dynCall_viiiidi=Module["dynCall_viiiidi"]=function(){return(dynCall_viiiidi=Module["dynCall_viiiidi"]=Module["asm"]["dynCall_viiiidi"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["dynCall_iidiiii"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["dynCall_iiiiij"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["dynCall_iiiiijj"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["dynCall_iiiiiijj"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); \ No newline at end of file
diff --git a/docs/js/RDKit_minimal.min.js b/docs/js/RDKit_minimal.min.js
new file mode 100644
index 0000000..b66c683
--- /dev/null
+++ b/docs/js/RDKit_minimal.min.js
@@ -0,0 +1,2 @@
+var key,Module=void 0!==Module?Module:{},moduleOverrides={};for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath,arguments_=[],thisProgram="./this.program",quit_=function(e,i){throw i},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}ENVIRONMENT_IS_NODE?(scriptDirectory=ENVIRONMENT_IS_WORKER?require("path").dirname(scriptDirectory)+"/":__dirname+"/",read_=function(e,i){return nodeFS=nodeFS||require("fs"),e=(nodePath=nodePath||require("path")).normalize(e),nodeFS.readFileSync(e,i?null:"utf8")},readBinary=function(e){e=read_(e,!0);return assert((e=!e.buffer?new Uint8Array(e):e).buffer),e},1<process.argv.length&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),process.on("unhandledRejection",abort),quit_=function(e){process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?("undefined"!=typeof read&&(read_=function(e){return read(e)}),readBinary=function(e){return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(assert("object"==typeof(e=read(e,"binary"))),e)},"undefined"!=typeof scriptArgs?arguments_=scriptArgs:"undefined"!=typeof arguments&&(arguments_=arguments),"function"==typeof quit&&(quit_=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):"",read_=function(e){var i=new XMLHttpRequest;return i.open("GET",e,!1),i.send(null),i.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(e){var i=new XMLHttpRequest;return i.open("GET",e,!1),i.responseType="arraybuffer",i.send(null),new Uint8Array(i.response)}),readAsync=function(e,i,n){var t=new XMLHttpRequest;t.open("GET",e,!0),t.responseType="arraybuffer",t.onload=function(){200==t.status||0==t.status&&t.response?i(t.response):n()},t.onerror=n,t.send(null)},setWindowTitle=function(e){document.title=e});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var STACK_ALIGN=16;function dynamicAlloc(e){var i=HEAP32[DYNAMICTOP_PTR>>2];return HEAP32[DYNAMICTOP_PTR>>2]=i+e+15&-16,i}function getNativeTypeSize(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return 4;if("i"!==e[0])return 0;var i=Number(e.substr(1));return assert(i%8==0,"getNativeTypeSize invalid bits "+i+", type "+e),i/8}}function warnOnce(e){warnOnce.shown||(warnOnce.shown={}),warnOnce.shown[e]||(warnOnce.shown[e]=1,err(e))}function convertJsFunctionToWasm(e,i){if("function"==typeof WebAssembly.Function){for(var n={i:"i32",j:"i64",f:"f32",d:"f64"},t={parameters:[],results:"v"==i[0]?[]:[n[i[0]]]},r=1;r<i.length;++r)t.parameters.push(n[i[r]]);return new WebAssembly.Function(t,e)}var o=[1,0,1,96],a=i.slice(0,1),l=i.slice(1),u={i:127,j:126,f:125,d:124};o.push(l.length);for(r=0;r<l.length;++r)o.push(u[l[r]]);"v"==a?o.push(0):o=o.concat([1,u[a]]),o[1]=o.length-2;a=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),a=new WebAssembly.Module(a);return new WebAssembly.Instance(a,{e:{f:e}}).exports.f}var functionsInTableMap,freeTableIndexes=[];function addFunctionWasm(i,n){var t,r=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var e=0;e<r.length;e++){var o=r.get(e);o&&functionsInTableMap.set(o,e)}}if(functionsInTableMap.has(i))return functionsInTableMap.get(i);if(freeTableIndexes.length)t=freeTableIndexes.pop();else{t=r.length;try{r.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{r.set(t,i)}catch(e){if(!(e instanceof TypeError))throw e;n=convertJsFunctionToWasm(i,n);r.set(t,n)}return functionsInTableMap.set(i,t),t}function removeFunctionWasm(e){functionsInTableMap.delete(wasmTable.get(e)),freeTableIndexes.push(e)}var funcWrappers={};function dynCall(e,i,n){return n&&n.length?Module["dynCall_"+e].apply(null,[i].concat(n)):Module["dynCall_"+e].call(null,i)}var wasmBinary,noExitRuntime,wasmMemory,tempRet0=0,setTempRet0=function(e){tempRet0=e},getTempRet0=function(){return tempRet0};function setValue(e,i,n,t){switch(n="*"===(n=n||"i8").charAt(n.length-1)?"i32":n){case"i1":case"i8":HEAP8[e>>0]=i;break;case"i16":HEAP16[e>>1]=i;break;case"i32":HEAP32[e>>2]=i;break;case"i64":tempI64=[i>>>0,1<=+Math_abs(tempDouble=i)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=i;break;case"double":HEAPF64[e>>3]=i;break;default:abort("invalid type for setValue: "+n)}}Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),"object"!=typeof WebAssembly&&abort("no native wasm support detected");var wasmTable=new WebAssembly.Table({initial:4549,maximum:4549,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert(e,i){e||abort("Assertion failed: "+i)}function getCFunc(e){var i=Module["_"+e];return assert(i,"Cannot call unknown function "+e+", make sure it is exported"),i}function ccall(e,i,n,t,r){var o={string:function(e){var i,n=0;return null!=e&&0!==e&&(i=1+(e.length<<2),stringToUTF8(e,n=stackAlloc(i),i)),n},array:function(e){var i=stackAlloc(e.length);return writeArrayToMemory(e,i),i}};var e=getCFunc(e),a=[],l=0;if(t)for(var u=0;u<t.length;u++){var s=o[n[u]];s?(0===l&&(l=stackSave()),a[u]=s(t[u])):a[u]=t[u]}var d,e=e.apply(null,a);return d=e,e="string"===i?UTF8ToString(d):"boolean"===i?Boolean(d):d,0!==l&&stackRestore(l),e}var ALLOC_NONE=3,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,i,n){for(var t=i+n,r=i;e[r]&&!(t<=r);)++r;if(16<r-i&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(i,r));for(var o="";i<r;){var a,l,u=e[i++];128&u?(a=63&e[i++],192!=(224&u)?(l=63&e[i++],(u=224==(240&u)?(15&u)<<12|a<<6|l:(7&u)<<18|a<<12|l<<6|63&e[i++])<65536?o+=String.fromCharCode(u):(l=u-65536,o+=String.fromCharCode(55296|l>>10,56320|1023&l))):o+=String.fromCharCode((31&u)<<6|a)):o+=String.fromCharCode(u)}return o}function UTF8ToString(e,i){return e?UTF8ArrayToString(HEAPU8,e,i):""}function stringToUTF8Array(e,i,n,t){if(!(0<t))return 0;for(var r=n,o=n+t-1,a=0;a<e.length;++a){var l=e.charCodeAt(a);if((l=55296<=l&&l<=57343?65536+((1023&l)<<10)|1023&e.charCodeAt(++a):l)<=127){if(o<=n)break;i[n++]=l}else if(l<=2047){if(o<=n+1)break;i[n++]=192|l>>6,i[n++]=128|63&l}else if(l<=65535){if(o<=n+2)break;i[n++]=224|l>>12,i[n++]=128|l>>6&63,i[n++]=128|63&l}else{if(o<=n+3)break;i[n++]=240|l>>18,i[n++]=128|l>>12&63,i[n++]=128|l>>6&63,i[n++]=128|63&l}}return i[n]=0,n-r}function stringToUTF8(e,i,n){return stringToUTF8Array(e,HEAPU8,i,n)}function lengthBytesUTF8(e){for(var i=0,n=0;n<e.length;++n){var t=e.charCodeAt(n);(t=55296<=t&&t<=57343?65536+((1023&t)<<10)|1023&e.charCodeAt(++n):t)<=127?++i:i+=t<=2047?2:t<=65535?3:4}return i}var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function UTF16ToString(e,i){for(var n=e,t=n>>1,r=t+i/2;!(r<=t)&&HEAPU16[t];)++t;if(32<(n=t<<1)-e&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(e,n));for(var o=0,a="";;){var l=HEAP16[e+2*o>>1];if(0==l||o==i/2)return a;++o,a+=String.fromCharCode(l)}}function stringToUTF16(e,i,n){if((n=void 0===n?2147483647:n)<2)return 0;for(var t=i,r=(n-=2)<2*e.length?n/2:e.length,o=0;o<r;++o){var a=e.charCodeAt(o);HEAP16[i>>1]=a,i+=2}return HEAP16[i>>1]=0,i-t}function lengthBytesUTF16(e){return 2*e.length}function UTF32ToString(e,i){for(var n=0,t="";!(i/4<=n);){var r,o=HEAP32[e+4*n>>2];if(0==o)break;++n,65536<=o?(r=o-65536,t+=String.fromCharCode(55296|r>>10,56320|1023&r)):t+=String.fromCharCode(o)}return t}function stringToUTF32(e,i,n){if((n=void 0===n?2147483647:n)<4)return 0;for(var t=i,r=t+n-4,o=0;o<e.length;++o){var a=e.charCodeAt(o);if(55296<=a&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),HEAP32[i>>2]=a,r<(i+=4)+4)break}return HEAP32[i>>2]=0,i-t}function lengthBytesUTF32(e){for(var i=0,n=0;n<e.length;++n){var t=e.charCodeAt(n);55296<=t&&t<=57343&&++n,i+=4}return i}function allocateUTF8(e){var i=lengthBytesUTF8(e)+1,n=_malloc(i);return n&&stringToUTF8Array(e,HEAP8,n,i),n}function writeArrayToMemory(e,i){HEAP8.set(e,i)}function writeAsciiToMemory(e,i,n){for(var t=0;t<e.length;++t)HEAP8[i++>>0]=e.charCodeAt(t);n||(HEAP8[i>>0]=0)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,WASM_PAGE_SIZE=65536;function updateGlobalBufferAndViews(e){buffer=e,Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(e){for(;0<e.length;){var i,n=e.shift();"function"!=typeof n?"number"==typeof(i=n.func)?void 0===n.arg?Module.dynCall_v(i):Module.dynCall_vi(i,n.arg):i(void 0===n.arg?null:n.arg):n(Module)}}wasmMemory=Module.wasmMemory||new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE}),INITIAL_INITIAL_MEMORY=(buffer=wasmMemory?wasmMemory.buffer:buffer).byteLength,updateGlobalBufferAndViews(buffer),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,Module.noFSInit||FS.init.initialized||FS.init(),TTY.init(),callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=!1,callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var Math_abs=Math.abs,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){var i;runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled&&(i=dependenciesFulfilled,dependenciesFulfilled=null,i()))}function abort(e){throw Module.onAbort&&Module.onAbort(e),out(e+=""),err(e),ABORT=!0,EXITSTATUS=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function hasPrefix(e,i){return String.prototype.startsWith?e.startsWith(i):0===e.indexOf(i)}Module.preloadedImages={},Module.preloadedAudios={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(e){return hasPrefix(e,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(e){return hasPrefix(e,fileURIPrefix)}var tempDouble,tempI64,wasmBinaryFile="RDKit_minimal.wasm";function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(e){abort(e)}}function getBinaryPromise(){return wasmBinary||!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER||"function"!=typeof fetch||isFileURI(wasmBinaryFile)?new Promise(function(e,i){e(getBinary())}):fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return e.arrayBuffer()}).catch(function(){return getBinary()})}function createWasm(){var i={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function n(e,i){e=e.exports;Module.asm=e,removeRunDependency("wasm-instantiate")}function t(e){n(e.instance)}function r(e){return getBinaryPromise().then(function(e){return WebAssembly.instantiate(e,i)}).then(e,function(e){err("failed to asynchronously prepare wasm: "+e),abort(e)})}if(addRunDependency("wasm-instantiate"),Module.instantiateWasm)try{return Module.instantiateWasm(i,n)}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||"function"!=typeof fetch)return r(t);fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,i).then(t,function(e){return err("wasm streaming compile failed: "+e),err("falling back to ArrayBuffer instantiation"),r(t)})})}(),{}}function demangle(e){return e}function demangleAll(e){return e.replace(/\b_Z[\w\d_]+/g,function(e){var i=demangle(e);return e===i?e:i+" ["+e+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function ___cxa_allocate_exception(e){return _malloc(e)}function _atexit(e,i){}function ___cxa_atexit(e,i){return _atexit(e,i)}isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile)),__ATINIT__.push({func:function(){___wasm_call_ctors()}});var ___exception_infos={},___exception_caught=[];function ___exception_addRef(e){e&&___exception_infos[e].refcount++}function ___exception_deAdjust(e){if(!e||___exception_infos[e])return e;for(var i in ___exception_infos)for(var n=+i,t=___exception_infos[n].adjusted,r=t.length,o=0;o<r;o++)if(t[o]===e)return n;return e}function ___cxa_begin_catch(e){var i=___exception_infos[e];return i&&!i.caught&&(i.caught=!0,__ZSt18uncaught_exceptionv.uncaught_exceptions--),i&&(i.rethrown=!1),___exception_caught.push(e),___exception_addRef(___exception_deAdjust(e)),e}var ___exception_last=0;function ___cxa_free_exception(e){try{return _free(e)}catch(e){}}function ___exception_decRef(e){var i;e&&((i=___exception_infos[e]).refcount--,0!==i.refcount||i.rethrown||(i.destructor&&Module.dynCall_ii(i.destructor,e),delete ___exception_infos[e],___cxa_free_exception(e)))}function ___cxa_end_catch(){_setThrew(0);var e=___exception_caught.pop();e&&(___exception_decRef(___exception_deAdjust(e)),___exception_last=0)}function ___cxa_find_matching_catch_2(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_3(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_4(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r<n.length;r++)if(n[r]&&___cxa_can_catch(n[r],i,t))return t=HEAP32[t>>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_rethrow(){var e=___exception_deAdjust(e=___exception_caught.pop());throw ___exception_infos[e].rethrown||(___exception_caught.push(e),___exception_infos[e].rethrown=!0),___exception_last=e}function ___cxa_throw(e,i,n){throw ___exception_infos[e]={ptr:e,adjusted:[e],type:i,destructor:n,refcount:0,caught:!1,rethrown:!1},___exception_last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exceptions++:__ZSt18uncaught_exceptionv.uncaught_exceptions=1,e}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(e){return HEAP32[___errno_location()>>2]=e}function ___map_file(e,i){return setErrNo(63),-1}function ___resumeException(e){throw ___exception_last=___exception_last||e,e}var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,i){for(var n=0,t=e.length-1;0<=t;t--){var r=e[t];"."===r?e.splice(t,1):".."===r?(e.splice(t,1),n++):n&&(e.splice(t,1),n--)}if(i)for(;n;n--)e.unshift("..");return e},normalize:function(e){var i="/"===e.charAt(0),n="/"===e.substr(-1);return(e=!(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))&&!i?".":e)&&n&&(e+="/"),(i?"/":"")+e},dirname:function(e){var i=PATH.splitPath(e),e=i[0],i=i[1];return e||i?e+(i=i&&i.substr(0,i.length-1)):"."},basename:function(e){if("/"===e)return"/";var i=e.lastIndexOf("/");return-1===i?e:e.substr(i+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,i){return PATH.normalize(e+"/"+i)}},PATH_FS={resolve:function(){for(var e="",i=!1,n=arguments.length-1;-1<=n&&!i;n--){var t=0<=n?arguments[n]:FS.cwd();if("string"!=typeof t)throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,i="/"===t.charAt(0)}return(i?"/":"")+(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))||"."},relative:function(e,i){function n(e){for(var i=0;i<e.length&&""===e[i];i++);for(var n=e.length-1;0<=n&&""===e[n];n--);return n<i?[]:e.slice(i,n-i+1)}e=PATH_FS.resolve(e).substr(1),i=PATH_FS.resolve(i).substr(1);for(var t=n(e.split("/")),r=n(i.split("/")),o=Math.min(t.length,r.length),a=o,l=0;l<o;l++)if(t[l]!==r[l]){a=l;break}for(var u=[],l=a;l<t.length;l++)u.push("..");return(u=u.concat(r.slice(a))).join("/")}},TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,i){TTY.ttys[e]={input:[],output:[],ops:i},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var i=TTY.ttys[e.node.rdev];if(!i)throw new FS.ErrnoError(43);e.tty=i,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,i,n,t,r){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(60);for(var o,a=0,l=0;l<t;l++){try{o=e.tty.ops.get_char(e.tty)}catch(e){throw new FS.ErrnoError(29)}if(void 0===o&&0===a)throw new FS.ErrnoError(6);if(null==o)break;a++,i[n+l]=o}return a&&(e.node.timestamp=Date.now()),a},write:function(e,i,n,t,r){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(60);try{for(var o=0;o<t;o++)e.tty.ops.put_char(e.tty,i[n+o])}catch(e){throw new FS.ErrnoError(29)}return t&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var i=null;if(ENVIRONMENT_IS_NODE){var n=Buffer.alloc?Buffer.alloc(256):new Buffer(256),t=0;try{t=nodeFS.readSync(process.stdin.fd,n,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;t=0}i=0<t?n.slice(0,t).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(i=window.prompt("Input: "))&&(i+="\n"):"function"==typeof readline&&null!==(i=readline())&&(i+="\n");if(!i)return null;e.input=intArrayFromString(i,!0)}return e.input.shift()},put_char:function(e,i){null===i||10===i?(out(UTF8ArrayToString(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&0<e.output.length&&(out(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,i){null===i||10===i?(err(UTF8ArrayToString(e.output,0)),e.output=[]):0!=i&&e.output.push(i)},flush:function(e){e.output&&0<e.output.length&&(err(UTF8ArrayToString(e.output,0)),e.output=[])}}},MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,i,n,t){if(FS.isBlkdev(n)||FS.isFIFO(n))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});t=FS.createNode(e,i,n,t);return FS.isDir(t.mode)?(t.node_ops=MEMFS.ops_table.dir.node,t.stream_ops=MEMFS.ops_table.dir.stream,t.contents={}):FS.isFile(t.mode)?(t.node_ops=MEMFS.ops_table.file.node,t.stream_ops=MEMFS.ops_table.file.stream,t.usedBytes=0,t.contents=null):FS.isLink(t.mode)?(t.node_ops=MEMFS.ops_table.link.node,t.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(t.mode)&&(t.node_ops=MEMFS.ops_table.chrdev.node,t.stream_ops=MEMFS.ops_table.chrdev.stream),t.timestamp=Date.now(),e&&(e.contents[i]=t),t},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var i=[],n=0;n<e.usedBytes;++n)i.push(e.contents[n]);return i}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,i){var n=e.contents?e.contents.length:0;i<=n||(i=Math.max(i,n*(n<1048576?2:1.125)>>>0),0!=n&&(i=Math.max(i,256)),n=e.contents,e.contents=new Uint8Array(i),0<e.usedBytes&&e.contents.set(n.subarray(0,e.usedBytes),0))},resizeFileStorage:function(e,i){if(e.usedBytes!=i){if(0==i)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var n=e.contents;return e.contents=new Uint8Array(i),n&&e.contents.set(n.subarray(0,Math.min(i,e.usedBytes))),void(e.usedBytes=i)}if(e.contents||(e.contents=[]),e.contents.length>i)e.contents.length=i;else for(;e.contents.length<i;)e.contents.push(0);e.usedBytes=i}},node_ops:{getattr:function(e){var i={};return i.dev=FS.isChrdev(e.mode)?e.id:1,i.ino=e.id,i.mode=e.mode,i.nlink=1,i.uid=0,i.gid=0,i.rdev=e.rdev,FS.isDir(e.mode)?i.size=4096:FS.isFile(e.mode)?i.size=e.usedBytes:FS.isLink(e.mode)?i.size=e.link.length:i.size=0,i.atime=new Date(e.timestamp),i.mtime=new Date(e.timestamp),i.ctime=new Date(e.timestamp),i.blksize=4096,i.blocks=Math.ceil(i.size/i.blksize),i},setattr:function(e,i){void 0!==i.mode&&(e.mode=i.mode),void 0!==i.timestamp&&(e.timestamp=i.timestamp),void 0!==i.size&&MEMFS.resizeFileStorage(e,i.size)},lookup:function(e,i){throw FS.genericErrors[44]},mknod:function(e,i,n,t){return MEMFS.createNode(e,i,n,t)},rename:function(e,i,n){if(FS.isDir(e.mode)){var t;try{t=FS.lookupNode(i,n)}catch(e){}if(t)for(var r in t.contents)throw new FS.ErrnoError(55)}delete e.parent.contents[e.name],e.name=n,(i.contents[n]=e).parent=i},unlink:function(e,i){delete e.contents[i]},rmdir:function(e,i){for(var n in FS.lookupNode(e,i).contents)throw new FS.ErrnoError(55);delete e.contents[i]},readdir:function(e){var i,n=[".",".."];for(i in e.contents)e.contents.hasOwnProperty(i)&&n.push(i);return n},symlink:function(e,i,n){i=MEMFS.createNode(e,i,41471,0);return i.link=n,i},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(28);return e.link}},stream_ops:{read:function(e,i,n,t,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-r,t);if(8<a&&o.subarray)i.set(o.subarray(r,r+a),n);else for(var l=0;l<a;l++)i[n+l]=o[r+l];return a},write:function(e,i,n,t,r,o){if(!t)return 0;var a=e.node;if(a.timestamp=Date.now(),i.subarray&&(!a.contents||a.contents.subarray)){if(o)return a.contents=i.subarray(n,n+t),a.usedBytes=t;if(0===a.usedBytes&&0===r)return a.contents=i.slice(n,n+t),a.usedBytes=t;if(r+t<=a.usedBytes)return a.contents.set(i.subarray(n,n+t),r),t}if(MEMFS.expandFileStorage(a,r+t),a.contents.subarray&&i.subarray)a.contents.set(i.subarray(n,n+t),r);else for(var l=0;l<t;l++)a.contents[r+l]=i[n+l];return a.usedBytes=Math.max(a.usedBytes,r+t),t},llseek:function(e,i,n){if(1===n?i+=e.position:2===n&&FS.isFile(e.node.mode)&&(i+=e.node.usedBytes),i<0)throw new FS.ErrnoError(28);return i},allocate:function(e,i,n){MEMFS.expandFileStorage(e.node,i+n),e.node.usedBytes=Math.max(e.node.usedBytes,i+n)},mmap:function(e,i,n,t,r,o){if(assert(0===i),!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);var a,l,e=e.node.contents;if(2&o||e.buffer!==buffer){if((0<t||t+n<e.length)&&(e=e.subarray?e.subarray(t,t+n):Array.prototype.slice.call(e,t,t+n)),l=!0,!(a=_malloc(n)))throw new FS.ErrnoError(48);HEAP8.set(e,a)}else l=!1,a=e.byteOffset;return{ptr:a,allocated:l}},msync:function(e,i,n,t,r){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);if(2&r)return 0;MEMFS.stream_ops.write(e,i,0,t,n,!1);return 0}}},FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return setErrNo(e.errno)},lookupPath:function(e,i){if(i=i||{},!(e=PATH_FS.resolve(FS.cwd(),e)))return{path:"",node:null};var n,t={follow_mount:!0,recurse_count:0};for(n in t)void 0===i[n]&&(i[n]=t[n]);if(8<i.recurse_count)throw new FS.ErrnoError(32);for(var r=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),o=FS.root,a="/",l=0;l<r.length;l++){var u=l===r.length-1;if(u&&i.parent)break;if(o=FS.lookupNode(o,r[l]),a=PATH.join2(a,r[l]),FS.isMountpoint(o)&&(!u||u&&i.follow_mount)&&(o=o.mounted.root),!u||i.follow)for(var s=0;FS.isLink(o.mode);){var d=FS.readlink(a),a=PATH_FS.resolve(PATH.dirname(a),d),o=FS.lookupPath(a,{recurse_count:i.recurse_count}).node;if(40<s++)throw new FS.ErrnoError(32)}}return{path:a,node:o}},getPath:function(e){for(var i;;){if(FS.isRoot(e)){var n=e.mount.mountpoint;return i?"/"!==n[n.length-1]?n+"/"+i:n+i:n}i=i?e.name+"/"+i:e.name,e=e.parent}},hashName:function(e,i){for(var n=0,t=0;t<i.length;t++)n=(n<<5)-n+i.charCodeAt(t)|0;return(e+n>>>0)%FS.nameTable.length},hashAddNode:function(e){var i=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[i],FS.nameTable[i]=e},hashRemoveNode:function(e){var i=FS.hashName(e.parent.id,e.name);if(FS.nameTable[i]===e)FS.nameTable[i]=e.name_next;else for(var n=FS.nameTable[i];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode:function(e,i){var n=FS.mayLookup(e);if(n)throw new FS.ErrnoError(n,e);for(var n=FS.hashName(e.id,i),t=FS.nameTable[n];t;t=t.name_next){var r=t.name;if(t.parent.id===e.id&&r===i)return t}return FS.lookup(e,i)},createNode:function(e,i,n,t){t=new FS.FSNode(e,i,n,t);return FS.hashAddNode(t),t},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var i=FS.flagModes[e];if(void 0===i)throw new Error("Unknown file open mode: "+e);return i},flagsToPermissionString:function(e){var i=["r","w","rw"][3&e];return 512&e&&(i+="w"),i},nodePermissions:function(e,i){return FS.ignorePermissions||(-1===i.indexOf("r")||292&e.mode)&&(-1===i.indexOf("w")||146&e.mode)&&(-1===i.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var i=FS.nodePermissions(e,"x");return i||(e.node_ops.lookup?0:2)},mayCreate:function(e,i){try{FS.lookupNode(e,i);return 20}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,i,n){var t;try{t=FS.lookupNode(e,i)}catch(e){return e.errno}e=FS.nodePermissions(e,"wx");if(e)return e;if(n){if(!FS.isDir(t.mode))return 54;if(FS.isRoot(t)||FS.getPath(t)===FS.cwd())return 10}else if(FS.isDir(t.mode))return 31;return 0},mayOpen:function(e,i){return e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&("r"!==FS.flagsToPermissionString(i)||512&i)?31:FS.nodePermissions(e,FS.flagsToPermissionString(i)):44},MAX_OPEN_FDS:4096,nextfd:function(e,i){i=i||FS.MAX_OPEN_FDS;for(var n=e=e||0;n<=i;n++)if(!FS.streams[n])return n;throw new FS.ErrnoError(33)},getStream:function(e){return FS.streams[e]},createStream:function(e,i,n){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var t,r=new FS.FSStream;for(t in e)r[t]=e[t];e=r;n=FS.nextfd(i,n);return e.fd=n,FS.streams[n]=e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var i=FS.getDevice(e.node.rdev);e.stream_ops=i.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,i){return e<<8|i},registerDevice:function(e,i){FS.devices[e]={stream_ops:i}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var i=[],n=[e];n.length;){var t=n.pop();i.push(t),n.push.apply(n,t.mounts)}return i},syncfs:function(i,n){"function"==typeof i&&(n=i,i=!1),FS.syncFSRequests++,1<FS.syncFSRequests&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=FS.getMounts(FS.root.mount),r=0;function o(e){return FS.syncFSRequests--,n(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++r>=t.length&&o(null)}t.forEach(function(e){return e.type.syncfs?void e.type.syncfs(e,i,a):a(null)})},mount:function(e,i,n){var t="/"===n,r=!n;if(t&&FS.root)throw new FS.ErrnoError(10);if(!t&&!r){var o=FS.lookupPath(n,{follow_mount:!1});if(n=o.path,o=o.node,FS.isMountpoint(o))throw new FS.ErrnoError(10);if(!FS.isDir(o.mode))throw new FS.ErrnoError(54)}n={type:e,opts:i,mountpoint:n,mounts:[]},e=e.mount(n);return(e.mount=n).root=e,t?FS.root=e:o&&(o.mounted=n,o.mount&&o.mount.mounts.push(n)),e},unmount:function(e){var i=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(i.node))throw new FS.ErrnoError(28);var e=i.node,i=e.mounted,t=FS.getMounts(i);Object.keys(FS.nameTable).forEach(function(e){for(var i=FS.nameTable[e];i;){var n=i.name_next;-1!==t.indexOf(i.mount)&&FS.destroyNode(i),i=n}}),e.mounted=null;i=e.mount.mounts.indexOf(i);e.mount.mounts.splice(i,1)},lookup:function(e,i){return e.node_ops.lookup(e,i)},mknod:function(e,i,n){var t=FS.lookupPath(e,{parent:!0}).node,r=PATH.basename(e);if(!r||"."===r||".."===r)throw new FS.ErrnoError(28);e=FS.mayCreate(t,r);if(e)throw new FS.ErrnoError(e);if(!t.node_ops.mknod)throw new FS.ErrnoError(63);return t.node_ops.mknod(t,r,i,n)},create:function(e,i){return i=void 0!==i?i:438,i&=4095,FS.mknod(e,i|=32768,0)},mkdir:function(e,i){return i=void 0!==i?i:511,i&=1023,FS.mknod(e,i|=16384,0)},mkdirTree:function(e,i){for(var n=e.split("/"),t="",r=0;r<n.length;++r)if(n[r]){t+="/"+n[r];try{FS.mkdir(t,i)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,i,n){return void 0===n&&(n=i,i=438),FS.mknod(e,i|=8192,n)},symlink:function(e,i){if(!PATH_FS.resolve(e))throw new FS.ErrnoError(44);var n=FS.lookupPath(i,{parent:!0}).node;if(!n)throw new FS.ErrnoError(44);var t=PATH.basename(i),i=FS.mayCreate(n,t);if(i)throw new FS.ErrnoError(i);if(!n.node_ops.symlink)throw new FS.ErrnoError(63);return n.node_ops.symlink(n,t,e)},rename:function(i,n){var e,t,r=PATH.dirname(i),o=PATH.dirname(n),a=PATH.basename(i),l=PATH.basename(n);try{e=FS.lookupPath(i,{parent:!0}).node,t=FS.lookupPath(n,{parent:!0}).node}catch(e){throw new FS.ErrnoError(10)}if(!e||!t)throw new FS.ErrnoError(44);if(e.mount!==t.mount)throw new FS.ErrnoError(75);var u,s=FS.lookupNode(e,a),o=PATH_FS.relative(i,o);if("."!==o.charAt(0))throw new FS.ErrnoError(28);if("."!==(o=PATH_FS.relative(n,r)).charAt(0))throw new FS.ErrnoError(55);try{u=FS.lookupNode(t,l)}catch(e){}if(s!==u){o=FS.isDir(s.mode),a=FS.mayDelete(e,a,o);if(a)throw new FS.ErrnoError(a);if(a=u?FS.mayDelete(t,l,o):FS.mayCreate(t,l))throw new FS.ErrnoError(a);if(!e.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(s)||u&&FS.isMountpoint(u))throw new FS.ErrnoError(10);if(t!==e&&(a=FS.nodePermissions(e,"w")))throw new FS.ErrnoError(a);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(i,n)}catch(e){err("FS.trackingDelegate['willMovePath']('"+i+"', '"+n+"') threw an exception: "+e.message)}FS.hashRemoveNode(s);try{e.node_ops.rename(s,t,l)}catch(e){throw e}finally{FS.hashAddNode(s)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(i,n)}catch(e){err("FS.trackingDelegate['onMovePath']('"+i+"', '"+n+"') threw an exception: "+e.message)}}},rmdir:function(i){var e=FS.lookupPath(i,{parent:!0}).node,n=PATH.basename(i),t=FS.lookupNode(e,n),r=FS.mayDelete(e,n,!0);if(r)throw new FS.ErrnoError(r);if(!e.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(t))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(i)}catch(e){err("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+e.message)}e.node_ops.rmdir(e,n),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(i)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+e.message)}},readdir:function(e){e=FS.lookupPath(e,{follow:!0}).node;if(!e.node_ops.readdir)throw new FS.ErrnoError(54);return e.node_ops.readdir(e)},unlink:function(i){var e=FS.lookupPath(i,{parent:!0}).node,n=PATH.basename(i),t=FS.lookupNode(e,n),r=FS.mayDelete(e,n,!1);if(r)throw new FS.ErrnoError(r);if(!e.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(t))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(i)}catch(e){err("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+e.message)}e.node_ops.unlink(e,n),FS.destroyNode(t);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(i)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+e.message)}},readlink:function(e){e=FS.lookupPath(e).node;if(!e)throw new FS.ErrnoError(44);if(!e.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(e.parent),e.node_ops.readlink(e))},stat:function(e,i){i=FS.lookupPath(e,{follow:!i}).node;if(!i)throw new FS.ErrnoError(44);if(!i.node_ops.getattr)throw new FS.ErrnoError(63);return i.node_ops.getattr(i)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,i,n){if(!(e="string"==typeof e?FS.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);e.node_ops.setattr(e,{mode:4095&i|-4096&e.mode,timestamp:Date.now()})},lchmod:function(e,i){FS.chmod(e,i,!0)},fchmod:function(e,i){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);FS.chmod(e.node,i)},chown:function(e,i,n,t){if(!(e="string"==typeof e?FS.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);e.node_ops.setattr(e,{timestamp:Date.now()})},lchown:function(e,i,n){FS.chown(e,i,n,!0)},fchown:function(e,i,n){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);FS.chown(e.node,i,n)},truncate:function(e,i){if(i<0)throw new FS.ErrnoError(28);var n;if(!(n="string"==typeof e?FS.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(n.mode))throw new FS.ErrnoError(31);if(!FS.isFile(n.mode))throw new FS.ErrnoError(28);e=FS.nodePermissions(n,"w");if(e)throw new FS.ErrnoError(e);n.node_ops.setattr(n,{size:i,timestamp:Date.now()})},ftruncate:function(e,i){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);if(0==(2097155&e.flags))throw new FS.ErrnoError(28);FS.truncate(e.node,i)},utime:function(e,i,n){e=FS.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(i,n)})},open:function(i,e,n,t,r){if(""===i)throw new FS.ErrnoError(44);if(n=void 0===n?438:n,n=64&(e="string"==typeof e?FS.modeStringToFlags(e):e)?4095&n|32768:0,"object"==typeof i)o=i;else{i=PATH.normalize(i);try{var o=FS.lookupPath(i,{follow:!(131072&e)}).node}catch(e){}}var a=!1;if(64&e)if(o){if(128&e)throw new FS.ErrnoError(20)}else o=FS.mknod(i,n,0),a=!0;if(!o)throw new FS.ErrnoError(44);if(FS.isChrdev(o.mode)&&(e&=-513),65536&e&&!FS.isDir(o.mode))throw new FS.ErrnoError(54);if(!a){a=FS.mayOpen(o,e);if(a)throw new FS.ErrnoError(a)}512&e&&FS.truncate(o,0),e&=-131713;var l,r=FS.createStream({node:o,path:FS.getPath(o),flags:e,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1},t,r);r.stream_ops.open&&r.stream_ops.open(r),!Module.logReadFiles||1&e||(FS.readFiles||(FS.readFiles={}),i in FS.readFiles||(FS.readFiles[i]=1,err("FS.trackingDelegate error on read file: "+i)));try{FS.trackingDelegate.onOpenFile&&(l=0,1!=(2097155&e)&&(l|=FS.tracking.openFlags.READ),0!=(2097155&e)&&(l|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(i,l))}catch(e){err("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+e.message)}return r},close:function(e){if(FS.isClosed(e))throw new FS.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,i,n){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=n&&1!=n&&2!=n)throw new FS.ErrnoError(28);return e.position=e.stream_ops.llseek(e,i,n),e.ungotten=[],e.position},read:function(e,i,n,t,r){if(t<0||r<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(1==(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.read)throw new FS.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new FS.ErrnoError(70)}else r=e.position;r=e.stream_ops.read(e,i,n,t,r);return o||(e.position+=r),r},write:function(i,e,n,t,r,o){if(t<0||r<0)throw new FS.ErrnoError(28);if(FS.isClosed(i))throw new FS.ErrnoError(8);if(0==(2097155&i.flags))throw new FS.ErrnoError(8);if(FS.isDir(i.node.mode))throw new FS.ErrnoError(31);if(!i.stream_ops.write)throw new FS.ErrnoError(28);i.seekable&&1024&i.flags&&FS.llseek(i,0,2);var a=void 0!==r;if(a){if(!i.seekable)throw new FS.ErrnoError(70)}else r=i.position;o=i.stream_ops.write(i,e,n,t,r,o);a||(i.position+=o);try{i.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(i.path)}catch(e){err("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+e.message)}return o},allocate:function(e,i,n){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(i<0||n<=0)throw new FS.ErrnoError(28);if(0==(2097155&e.flags))throw new FS.ErrnoError(8);if(!FS.isFile(e.node.mode)&&!FS.isDir(e.node.mode))throw new FS.ErrnoError(43);if(!e.stream_ops.allocate)throw new FS.ErrnoError(138);e.stream_ops.allocate(e,i,n)},mmap:function(e,i,n,t,r,o){if(0!=(2&r)&&0==(2&o)&&2!=(2097155&e.flags))throw new FS.ErrnoError(2);if(1==(2097155&e.flags))throw new FS.ErrnoError(2);if(!e.stream_ops.mmap)throw new FS.ErrnoError(43);return e.stream_ops.mmap(e,i,n,t,r,o)},msync:function(e,i,n,t,r){return e&&e.stream_ops.msync?e.stream_ops.msync(e,i,n,t,r):0},munmap:function(e){return 0},ioctl:function(e,i,n){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(59);return e.stream_ops.ioctl(e,i,n)},readFile:function(e,i){if((i=i||{}).flags=i.flags||"r",i.encoding=i.encoding||"binary","utf8"!==i.encoding&&"binary"!==i.encoding)throw new Error('Invalid encoding type "'+i.encoding+'"');var n,t=FS.open(e,i.flags),r=FS.stat(e).size,e=new Uint8Array(r);return FS.read(t,e,0,r,0),"utf8"===i.encoding?n=UTF8ArrayToString(e,0):"binary"===i.encoding&&(n=e),FS.close(t),n},writeFile:function(e,i,n){(n=n||{}).flags=n.flags||"w";var t=FS.open(e,n.flags,n.mode);if("string"==typeof i){var r=new Uint8Array(lengthBytesUTF8(i)+1),e=stringToUTF8Array(i,r,0,r.length);FS.write(t,r,0,e,void 0,n.canOwn)}else{if(!ArrayBuffer.isView(i))throw new Error("Unsupported data type");FS.write(t,i,0,i.byteLength,void 0,n.canOwn)}FS.close(t)},cwd:function(){return FS.currentPath},chdir:function(e){var i=FS.lookupPath(e,{follow:!0});if(null===i.node)throw new FS.ErrnoError(44);if(!FS.isDir(i.node.mode))throw new FS.ErrnoError(54);e=FS.nodePermissions(i.node,"x");if(e)throw new FS.ErrnoError(e);FS.currentPath=i.path},createDefaultDirectories:function(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:function(){if(FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(e,i,n,t,r){return t}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues)var e=new Uint8Array(1),i=function(){return crypto.getRandomValues(e),e[0]};else if(ENVIRONMENT_IS_NODE)try{var n=require("crypto");i=function(){return n.randomBytes(1)[0]}}catch(e){}FS.createDevice("/dev","random",i=i||function(){abort("random_device")}),FS.createDevice("/dev","urandom",i),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc"),FS.mkdir("/proc/self"),FS.mkdir("/proc/self/fd"),FS.mount({mount:function(){var e=FS.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,i){var n=FS.getStream(+i);if(!n)throw new FS.ErrnoError(8);i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return i.parent=i}},e}},{},"/proc/self/fd")},createStandardStreams:function(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");FS.open("/dev/stdin","r"),FS.open("/dev/stdout","w"),FS.open("/dev/stderr","w")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e,i){this.node=i,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach(function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init:function(e,i,n){FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=i||Module.stdout,Module.stderr=n||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;var e=Module._fflush;e&&e(0);for(var i=0;i<FS.streams.length;i++){var n=FS.streams[i];n&&FS.close(n)}},getMode:function(e,i){var n=0;return e&&(n|=365),i&&(n|=146),n},joinPath:function(e,i){e=PATH.join.apply(null,e);return e=i&&"/"==e[0]?e.substr(1):e},absolutePath:function(e,i){return PATH_FS.resolve(i,e)},standardizePath:function(e){return PATH.normalize(e)},findObject:function(e,i){i=FS.analyzePath(e,i);return i.exists?i.object:(setErrNo(i.error),null)},analyzePath:function(e,i){try{e=(t=FS.lookupPath(e,{follow:!i})).path}catch(e){}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=FS.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=PATH.basename(e),t=FS.lookupPath(e,{follow:!i}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot="/"===t.path}catch(e){n.error=e.errno}return n},createFolder:function(e,i,n,t){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i),t=FS.getMode(n,t);return FS.mkdir(i,t)},createPath:function(e,i,n,t){e="string"==typeof e?e:FS.getPath(e);for(var r=i.split("/").reverse();r.length;){var o=r.pop();if(o){var a=PATH.join2(e,o);try{FS.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,i,n,t,r){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i),r=FS.getMode(t,r);return FS.create(i,r)},createDataFile:function(e,i,n,t,r,o){e=i?PATH.join2("string"==typeof e?e:FS.getPath(e),i):e,t=FS.getMode(t,r),r=FS.create(e,t);if(n){if("string"==typeof n){for(var a=new Array(n.length),l=0,u=n.length;l<u;++l)a[l]=n.charCodeAt(l);n=a}FS.chmod(r,146|t);e=FS.open(r,"w");FS.write(e,n,0,n.length,0,o),FS.close(e),FS.chmod(r,t)}return r},createDevice:function(e,i,u,a){var n=PATH.join2("string"==typeof e?e:FS.getPath(e),i),e=FS.getMode(!!u,!!a);FS.createDevice.major||(FS.createDevice.major=64);i=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(i,{open:function(e){e.seekable=!1},close:function(e){a&&a.buffer&&a.buffer.length&&a(10)},read:function(e,i,n,t,r){for(var o,a=0,l=0;l<t;l++){try{o=u()}catch(e){throw new FS.ErrnoError(29)}if(void 0===o&&0===a)throw new FS.ErrnoError(6);if(null==o)break;a++,i[n+l]=o}return a&&(e.node.timestamp=Date.now()),a},write:function(e,i,n,t,r){for(var o=0;o<t;o++)try{a(i[n+o])}catch(e){throw new FS.ErrnoError(29)}return t&&(e.node.timestamp=Date.now()),o}}),FS.mkdev(n,e,i)},createLink:function(e,i,n,t,r){i=PATH.join2("string"==typeof e?e:FS.getPath(e),i);return FS.symlink(n,i)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var i=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=intArrayFromString(read_(e.url),!0),e.usedBytes=e.contents.length}catch(e){i=!1}return i||setErrNo(29),i},createLazyFile:function(e,i,a,n,t){function r(){this.lengthKnown=!1,this.chunks=[]}if(r.prototype.get=function(e){if(!(e>this.length-1||e<0)){var i=e%this.chunkSize,e=e/this.chunkSize|0;return this.getter(e)[i]}},r.prototype.setDataGetter=function(e){this.getter=e},r.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t=Number(e.getResponseHeader("Content-length")),i=(n=e.getResponseHeader("Accept-Ranges"))&&"bytes"===n,n=(n=e.getResponseHeader("Content-Encoding"))&&"gzip"===n,r=1048576;i||(r=t);var o=this;o.setDataGetter(function(e){var i=e*r,n=(e+1)*r-1,n=Math.min(n,t-1);if(void 0===o.chunks[e]&&(o.chunks[e]=function(e,i){if(i<e)throw new Error("invalid range ("+e+", "+i+") or no bytes requested!");if(t-1<i)throw new Error("only "+t+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",a,!1),t!==r&&n.setRequestHeader("Range","bytes="+e+"-"+i),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(200<=n.status&&n.status<300||304===n.status))throw new Error("Couldn't load "+a+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)}(i,n)),void 0===o.chunks[e])throw new Error("doXHR failed!");return o.chunks[e]}),!n&&t||(r=t=1,t=this.getter(0).length,r=t,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=t,this._chunkSize=r,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new r;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});o={isDevice:!1,contents:o}}else o={isDevice:!1,url:a};var u=FS.createFile(e,i,o,n,t);o.contents?u.contents=o.contents:o.url&&(u.contents=null,u.url=o.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(u.stream_ops).forEach(function(e){var i=u.stream_ops[e];l[e]=function(){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(29);return i.apply(null,arguments)}}),l.read=function(e,i,n,t,r){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(29);var o=e.node.contents;if(r>=o.length)return 0;var a=Math.min(o.length-r,t);if(o.slice)for(var l=0;l<a;l++)i[n+l]=o[r+l];else for(l=0;l<a;l++)i[n+l]=o.get(r+l);return a},u.stream_ops=l,u},createPreloadedFile:function(r,o,e,a,l,u,s,d,c,_){Browser.init();var f=o?PATH_FS.resolve(PATH.join2(r,o)):r,p=getUniqueRunDependency("cp "+f);function i(i){function n(e){_&&_(),d||FS.createDataFile(r,o,e,a,l,c),u&&u(),removeRunDependency(p)}var t=!1;Module.preloadPlugins.forEach(function(e){t||e.canHandle(f)&&(e.handle(i,f,n,function(){s&&s(),removeRunDependency(p)}),t=!0)}),t||n(i)}addRunDependency(p),"string"==typeof e?Browser.asyncLoad(e,function(e){i(e)},s):i(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(a,l,u){l=l||function(){},u=u||function(){};var e=FS.indexedDB();try{var s=e.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return u(e)}s.onupgradeneeded=function(){out("creating db"),s.result.createObjectStore(FS.DB_STORE_NAME)},s.onsuccess=function(){var e=s.result.transaction([FS.DB_STORE_NAME],"readwrite"),i=e.objectStore(FS.DB_STORE_NAME),n=0,t=0,r=a.length;function o(){(0==t?l:u)()}a.forEach(function(e){e=i.put(FS.analyzePath(e).object.contents,e);e.onsuccess=function(){++n+t==r&&o()},e.onerror=function(){n+ ++t==r&&o()}}),e.onerror=u},s.onerror=u},loadFilesFromDB:function(l,u,s){u=u||function(){},s=s||function(){};var e=FS.indexedDB();try{var d=e.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return s(e)}d.onupgradeneeded=s,d.onsuccess=function(){var e=d.result;try{var i=e.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=i.objectStore(FS.DB_STORE_NAME),t=0,r=0,o=l.length;function a(){(0==r?u:s)()}l.forEach(function(e){var i=n.get(e);i.onsuccess=function(){FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),i.result,!0,!0,!0),++t+r==o&&a()},i.onerror=function(){t+ ++r==o&&a()}}),i.onerror=s},d.onerror=s}},SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,i){if("/"!==i[0]){var n;if(-100===e)n=FS.cwd();else{e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);n=e.path}i=PATH.join2(n,i)}return i},doStat:function(e,i,n){try{var t=e(i)}catch(e){if(e&&e.node&&PATH.normalize(i)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}return HEAP32[n>>2]=t.dev,HEAP32[n+4>>2]=0,HEAP32[n+8>>2]=t.ino,HEAP32[n+12>>2]=t.mode,HEAP32[n+16>>2]=t.nlink,HEAP32[n+20>>2]=t.uid,HEAP32[n+24>>2]=t.gid,HEAP32[n+28>>2]=t.rdev,HEAP32[n+32>>2]=0,tempI64=[t.size>>>0,(tempDouble=t.size,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+40>>2]=tempI64[0],HEAP32[n+44>>2]=tempI64[1],HEAP32[n+48>>2]=4096,HEAP32[n+52>>2]=t.blocks,HEAP32[n+56>>2]=t.atime.getTime()/1e3|0,HEAP32[n+60>>2]=0,HEAP32[n+64>>2]=t.mtime.getTime()/1e3|0,HEAP32[n+68>>2]=0,HEAP32[n+72>>2]=t.ctime.getTime()/1e3|0,HEAP32[n+76>>2]=0,tempI64=[t.ino>>>0,(tempDouble=t.ino,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+80>>2]=tempI64[0],HEAP32[n+84>>2]=tempI64[1],0},doMsync:function(e,i,n,t,r){e=HEAPU8.slice(e,e+n);FS.msync(i,e,r,n,t)},doMkdir:function(e,i){return"/"===(e=PATH.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),FS.mkdir(e,i,0),0},doMknod:function(e,i,n){switch(61440&i){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return FS.mknod(e,i,n),0},doReadlink:function(e,i,n){if(n<=0)return-28;var t=FS.readlink(e),r=Math.min(n,lengthBytesUTF8(t)),e=HEAP8[i+r];return stringToUTF8(t,i,n+1),HEAP8[i+r]=e,r},doAccess:function(e,i){if(-8&i)return-28;var n=FS.lookupPath(e,{follow:!0}).node;if(!n)return-44;e="";return 4&i&&(e+="r"),2&i&&(e+="w"),1&i&&(e+="x"),e&&FS.nodePermissions(n,e)?-2:0},doDup:function(e,i,n){var t=FS.getStream(n);return t&&FS.close(t),FS.open(e,i,0,n,n).fd},doReadv:function(e,i,n,t){for(var r=0,o=0;o<n;o++){var a=HEAP32[i+8*o>>2],l=HEAP32[i+(8*o+4)>>2],a=FS.read(e,HEAP8,a,l,t);if(a<0)return-1;if(r+=a,a<l)break}return r},doWritev:function(e,i,n,t){for(var r=0,o=0;o<n;o++){var a=HEAP32[i+8*o>>2],l=HEAP32[i+(8*o+4)>>2],l=FS.write(e,HEAP8,a,l,t);if(l<0)return-1;r+=l}return r},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);return e},get64:function(e,i){return e}};function ___sys_fcntl64(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 0:return(r=SYSCALLS.get())<0?-28:FS.open(t.path,t.flags,0,r).fd;case 1:case 2:return 0;case 3:return t.flags;case 4:var r=SYSCALLS.get();return t.flags|=r,0;case 12:r=SYSCALLS.get();return HEAP16[r+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return setErrNo(28),-1;default:return-28}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_ioctl(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 21509:case 21505:return t.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return t.tty?0:-59;case 21519:if(!t.tty)return-59;var r=SYSCALLS.get();return HEAP32[r>>2]=0;case 21520:return t.tty?-28:-59;case 21531:r=SYSCALLS.get();return FS.ioctl(t,i,r);case 21523:case 21524:return t.tty?0:-59;default:abort("bad ioctl syscall "+i)}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function syscallMunmap(e,i){if(-1==(0|e)||0===i)return-28;var n,t=SYSCALLS.mappings[e];return t&&i===t.len&&(n=FS.getStream(t.fd),2&t.prot&&SYSCALLS.doMsync(e,n,i,t.flags,t.offset),FS.munmap(n),SYSCALLS.mappings[e]=null,t.allocated&&_free(t.malloc)),0}function ___sys_munmap(e,i){try{return syscallMunmap(e,i)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_open(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStr(e),r=SYSCALLS.get();return FS.open(t,i,r).fd}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function embind_init_charCodes(){for(var e=new Array(256),i=0;i<256;++i)e[i]=String.fromCharCode(i);embind_charCodes=e}var embind_charCodes=void 0;function readLatin1String(e){for(var i="",n=e;HEAPU8[n];)i+=embind_charCodes[HEAPU8[n++]];return i}var awaitingDependencies={},registeredTypes={},typeDependencies={},char_0=48,char_9=57;function makeLegalFunctionName(e){if(void 0===e)return"_unknown";var i=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return char_0<=i&&i<=char_9?"_"+e:e}function createNamedFunction(e,i){return e=makeLegalFunctionName(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(i)}function extendError(e,i){var n=createNamedFunction(i,function(e){this.name=i,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),(n.prototype.constructor=n).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var BindingError=void 0;function throwBindingError(e){throw new BindingError(e)}var InternalError=void 0;function throwInternalError(e){throw new InternalError(e)}function whenDependentTypesAreResolved(t,i,r){function n(e){var i=r(e);i.length!==t.length&&throwInternalError("Mismatched type converter count");for(var n=0;n<t.length;++n)registerType(t[n],i[n])}t.forEach(function(e){typeDependencies[e]=i});var o=new Array(i.length),a=[],l=0;i.forEach(function(e,i){registeredTypes.hasOwnProperty(e)?o[i]=registeredTypes[e]:(a.push(e),awaitingDependencies.hasOwnProperty(e)||(awaitingDependencies[e]=[]),awaitingDependencies[e].push(function(){o[i]=registeredTypes[e],++l===a.length&&n(o)}))}),0===a.length&&n(o)}function registerType(e,i,n){if(n=n||{},!("argPackAdvance"in i))throw new TypeError("registerType registeredInstance requires argPackAdvance");var t=i.name;if(e||throwBindingError('type "'+t+'" must have a positive integer typeid pointer'),registeredTypes.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;throwBindingError("Cannot register type '"+t+"' twice")}registeredTypes[e]=i,delete typeDependencies[e],awaitingDependencies.hasOwnProperty(e)&&(i=awaitingDependencies[e],delete awaitingDependencies[e],i.forEach(function(e){e()}))}function __embind_register_bool(e,n,t,r,o){var a=getShiftFromSize(t);registerType(e,{name:n=readLatin1String(n),fromWireType:function(e){return!!e},toWireType:function(e,i){return i?r:o},argPackAdvance:8,readValueFromPointer:function(e){var i;if(1===t)i=HEAP8;else if(2===t)i=HEAP16;else{if(4!==t)throw new TypeError("Unknown boolean type size: "+n);i=HEAP32}return this.fromWireType(i[e>>a])},destructorFunction:null})}function ClassHandle_isAliasOf(e){if(!(this instanceof ClassHandle))return!1;if(!(e instanceof ClassHandle))return!1;for(var i=this.$$.ptrType.registeredClass,n=this.$$.ptr,t=e.$$.ptrType.registeredClass,r=e.$$.ptr;i.baseClass;)n=i.upcast(n),i=i.baseClass;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;return i===t&&n===r}function shallowCopyInternalPointer(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function throwInstanceAlreadyDeleted(e){throwBindingError(e.$$.ptrType.registeredClass.name+" instance already deleted")}var finalizationGroup=!1;function detachFinalizer(e){}function runDestructor(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function releaseClassHandle(e){--e.count.value,0===e.count.value&&runDestructor(e)}function attachFinalizer(e){return"undefined"==typeof FinalizationGroup?(attachFinalizer=function(e){return e},e):(finalizationGroup=new FinalizationGroup(function(e){for(var i=e.next();!i.done;i=e.next()){var n=i.value;n.ptr?releaseClassHandle(n):console.warn("object already deleted: "+n.ptr)}}),detachFinalizer=function(e){finalizationGroup.unregister(e.$$)},(attachFinalizer=function(e){return finalizationGroup.register(e,e.$$,e.$$),e})(e))}function ClassHandle_clone(){if(this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function ClassHandle_delete(){this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),detachFinalizer(this),releaseClassHandle(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=void 0,deletionQueue=[];function flushPendingDeletes(){for(;deletionQueue.length;){var e=deletionQueue.pop();e.$$.deleteScheduled=!1,e.delete()}}function ClassHandle_deleteLater(){return this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),deletionQueue.push(this),1===deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes),this.$$.deleteScheduled=!0,this}function init_ClassHandle(){ClassHandle.prototype.isAliasOf=ClassHandle_isAliasOf,ClassHandle.prototype.clone=ClassHandle_clone,ClassHandle.prototype.delete=ClassHandle_delete,ClassHandle.prototype.isDeleted=ClassHandle_isDeleted,ClassHandle.prototype.deleteLater=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(e,i,n){var t;void 0===e[i].overloadTable&&(t=e[i],e[i]=function(){return e[i].overloadTable.hasOwnProperty(arguments.length)||throwBindingError("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[i].overloadTable+")!"),e[i].overloadTable[arguments.length].apply(this,arguments)},e[i].overloadTable=[],e[i].overloadTable[t.argCount]=t)}function exposePublicSymbol(e,i,n){Module.hasOwnProperty(e)?((void 0===n||void 0!==Module[e].overloadTable&&void 0!==Module[e].overloadTable[n])&&throwBindingError("Cannot register public name '"+e+"' twice"),ensureOverloadTable(Module,e,e),Module.hasOwnProperty(n)&&throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),Module[e].overloadTable[n]=i):(Module[e]=i,void 0!==n&&(Module[e].numArguments=n))}function RegisteredClass(e,i,n,t,r,o,a,l){this.name=e,this.constructor=i,this.instancePrototype=n,this.rawDestructor=t,this.baseClass=r,this.getActualType=o,this.upcast=a,this.downcast=l,this.pureVirtualFunctions=[]}function upcastPointer(e,i,n){for(;i!==n;)i.upcast||throwBindingError("Expected null or instance of "+n.name+", got an instance of "+i.name),e=i.upcast(e),i=i.baseClass;return e}function constNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function genericPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);var n,t,r=i.$$.ptrType.registeredClass;if(t=upcastPointer(i.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(void 0===i.$$.smartPtr&&throwBindingError("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:i.$$.smartPtrType===this?t=i.$$.smartPtr:throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);break;case 1:t=i.$$.smartPtr;break;case 2:i.$$.smartPtrType===this?t=i.$$.smartPtr:(n=i.clone(),t=this.rawShare(t,__emval_register(function(){n.delete()})),null!==e&&e.push(this.rawDestructor,t));break;default:throwBindingError("Unsupporting sharing policy")}return t}function nonConstNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+i.$$.ptrType.name+" to parameter type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function simpleReadValueFromPointer(e){return this.fromWireType(HEAPU32[e>>2])}function RegisteredPointer_getPointee(e){return e=this.rawGetPointee?this.rawGetPointee(e):e}function RegisteredPointer_destructor(e){this.rawDestructor&&this.rawDestructor(e)}function RegisteredPointer_deleteObject(e){null!==e&&e.delete()}function downcastPointer(e,i,n){if(i===n)return e;if(void 0===n.baseClass)return null;i=downcastPointer(e,i,n.baseClass);return null===i?null:n.downcast(i)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var e,i=[];for(e in registeredInstances)registeredInstances.hasOwnProperty(e)&&i.push(registeredInstances[e]);return i}function setDelayFunction(e){delayFunction=e,deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes)}function init_embind(){Module.getInheritedInstanceCount=getInheritedInstanceCount,Module.getLiveInheritedInstances=getLiveInheritedInstances,Module.flushPendingDeletes=flushPendingDeletes,Module.setDelayFunction=setDelayFunction}var registeredInstances={};function getBasestPointer(e,i){for(void 0===i&&throwBindingError("ptr should not be undefined");e.baseClass;)i=e.upcast(i),e=e.baseClass;return i}function getInheritedInstance(e,i){return i=getBasestPointer(e,i),registeredInstances[i]}function makeClassHandle(e,i){return i.ptrType&&i.ptr||throwInternalError("makeClassHandle requires ptr and ptrType"),!!i.smartPtrType!=!!i.smartPtr&&throwInternalError("Both smartPtrType and smartPtr must be specified"),i.count={value:1},attachFinalizer(Object.create(e,{$$:{value:i}}))}function RegisteredPointer_fromWireType(e){var i=this.getPointee(e);if(!i)return this.destructor(e),null;var n=getInheritedInstance(this.registeredClass,i);if(void 0!==n){if(0===n.$$.count.value)return n.$$.ptr=i,n.$$.smartPtr=e,n.clone();var t=n.clone();return this.destructor(e),t}function r(){return this.isSmartPointer?makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:i,smartPtrType:this,smartPtr:e}):makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}n=this.registeredClass.getActualType(i),t=registeredPointers[n];if(!t)return r.call(this);n=this.isConst?t.constPointerType:t.pointerType,t=downcastPointer(i,this.registeredClass,n.registeredClass);return null===t?r.call(this):this.isSmartPointer?makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t,smartPtrType:this,smartPtr:e}):makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t})}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee,RegisteredPointer.prototype.destructor=RegisteredPointer_destructor,RegisteredPointer.prototype.argPackAdvance=8,RegisteredPointer.prototype.readValueFromPointer=simpleReadValueFromPointer,RegisteredPointer.prototype.deleteObject=RegisteredPointer_deleteObject,RegisteredPointer.prototype.fromWireType=RegisteredPointer_fromWireType}function RegisteredPointer(e,i,n,t,r,o,a,l,u,s,d){this.name=e,this.registeredClass=i,this.isReference=n,this.isConst=t,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=l,this.rawConstructor=u,this.rawShare=s,this.rawDestructor=d,r||void 0!==i.baseClass?this.toWireType=genericPointerToWireType:(this.toWireType=t?constNoSmartPtrRawPointerToWireType:nonConstNoSmartPtrRawPointerToWireType,this.destructorFunction=null)}function replacePublicSymbol(e,i,n){Module.hasOwnProperty(e)||throwInternalError("Replacing nonexistant public symbol"),void 0!==Module[e].overloadTable&&void 0!==n?Module[e].overloadTable[n]=i:(Module[e]=i,Module[e].argCount=n)}function embind__requireFunction(r,o){r=readLatin1String(r);var e=function(e){for(var i=[],n=1;n<r.length;++n)i.push("a"+n);var t="return function "+("dynCall_"+r+"_"+o)+"("+i.join(", ")+") {\n";return t+=" return dynCall(rawFunction"+(i.length?", ":"")+i.join(", ")+");\n",t+="};\n",new Function("dynCall","rawFunction",t)(e,o)}(Module["dynCall_"+r]);return"function"!=typeof e&&throwBindingError("unknown function pointer with signature "+r+": "+o),e}var UnboundTypeError=void 0;function getTypeName(e){var i=___getTypeName(e),e=readLatin1String(i);return _free(i),e}function throwUnboundTypeError(e,i){var n=[],t={};throw i.forEach(function e(i){t[i]||registeredTypes[i]||(typeDependencies[i]?typeDependencies[i].forEach(e):(n.push(i),t[i]=!0))}),new UnboundTypeError(e+": "+n.map(getTypeName).join([", "]))}function __embind_register_class(a,e,i,l,n,u,t,s,r,d,c,o,_){c=readLatin1String(c),u=embind__requireFunction(n,u),s=s&&embind__requireFunction(t,s),d=d&&embind__requireFunction(r,d),_=embind__requireFunction(o,_);var f=makeLegalFunctionName(c);exposePublicSymbol(f,function(){throwUnboundTypeError("Cannot construct "+c+" due to unbound types",[l])}),whenDependentTypesAreResolved([a,e,i],l?[l]:[],function(e){e=e[0];var i=l?(o=e.registeredClass).instancePrototype:ClassHandle.prototype,n=createNamedFunction(f,function(){if(Object.getPrototypeOf(this)!==t)throw new BindingError("Use 'new' to construct "+c);if(void 0===r.constructor_body)throw new BindingError(c+" has no accessible constructor");var e=r.constructor_body[arguments.length];if(void 0===e)throw new BindingError("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(r.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),t=Object.create(i,{constructor:{value:n}});n.prototype=t;var r=new RegisteredClass(c,n,t,_,o,u,s,d),e=new RegisteredPointer(c,r,!0,!1,!1),i=new RegisteredPointer(c+"*",r,!1,!1,!1),o=new RegisteredPointer(c+" const*",r,!1,!0,!1);return registeredPointers[a]={pointerType:i,constPointerType:o},replacePublicSymbol(f,n),[e,i,o]})}function new_(e,i){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=createNamedFunction(e.name||"unknownFunctionName",function(){});n.prototype=e.prototype;n=new n,i=e.apply(n,i);return i instanceof Object?i:n}function runDestructors(e){for(;e.length;){var i=e.pop();e.pop()(i)}}function craftInvokerFunction(e,i,n,t,r){var o=i.length;o<2&&throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==i[1]&&null!==n,l=!1,u=1;u<i.length;++u)if(null!==i[u]&&void 0===i[u].destructorFunction){l=!0;break}for(var n="void"!==i[0].name,s="",d="",u=0;u<o-2;++u)s+=(0!==u?", ":"")+"arg"+u,d+=(0!==u?", ":"")+"arg"+u+"Wired";var c="return function "+makeLegalFunctionName(e)+"("+s+") {\nif (arguments.length !== "+(o-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(o-2)+" args!');\n}\n";l&&(c+="var destructors = [];\n");var _=l?"destructors":"null",f=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],p=[throwBindingError,t,r,runDestructors,i[0],i[1]];a&&(c+="var thisWired = classParam.toWireType("+_+", this);\n");for(u=0;u<o-2;++u)c+="var arg"+u+"Wired = argType"+u+".toWireType("+_+", arg"+u+"); // "+i[u+2].name+"\n",f.push("argType"+u),p.push(i[u+2]);if(c+=(n?"var rv = ":"")+"invoker(fn"+(0<(d=a?"thisWired"+(0<d.length?", ":"")+d:d).length?", ":"")+d+");\n",l)c+="runDestructors(destructors);\n";else for(u=a?1:2;u<i.length;++u){var y=1===u?"thisWired":"arg"+(u-2)+"Wired";null!==i[u].destructorFunction&&(c+=y+"_dtor("+y+"); // "+i[u].name+"\n",f.push(y+"_dtor"),p.push(i[u].destructorFunction))}return n&&(c+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),f.push(c+="}\n"),new_(Function,f).apply(null,p)}function heap32VectorToArray(e,i){for(var n=[],t=0;t<e;t++)n.push(HEAP32[(i>>2)+t]);return n}function __embind_register_class_function(e,o,a,i,n,l,u,s){var d=heap32VectorToArray(a,i);o=readLatin1String(o),l=embind__requireFunction(n,l),whenDependentTypesAreResolved([],[e],function(i){var n=(i=i[0]).name+"."+o;function e(){throwUnboundTypeError("Cannot call "+n+" due to unbound types",d)}s&&i.registeredClass.pureVirtualFunctions.push(o);var t=i.registeredClass.instancePrototype,r=t[o];return void 0===r||void 0===r.overloadTable&&r.className!==i.name&&r.argCount===a-2?(e.argCount=a-2,e.className=i.name,t[o]=e):(ensureOverloadTable(t,o,n),t[o].overloadTable[a-2]=e),whenDependentTypesAreResolved([],d,function(e){e=craftInvokerFunction(n,e,i,l,u);return void 0===t[o].overloadTable?(e.argCount=a-2,t[o]=e):t[o].overloadTable[a-2]=e,[]}),[]})}var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function __emval_decref(e){4<e&&0==--emval_handle_array[e].refcount&&(emval_handle_array[e]=void 0,emval_free_list.push(e))}function count_emval_handles(){for(var e=0,i=5;i<emval_handle_array.length;++i)void 0!==emval_handle_array[i]&&++e;return e}function get_first_emval(){for(var e=5;e<emval_handle_array.length;++e)if(void 0!==emval_handle_array[e])return emval_handle_array[e];return null}function init_emval(){Module.count_emval_handles=count_emval_handles,Module.get_first_emval=get_first_emval}function __emval_register(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var i=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;return emval_handle_array[i]={refcount:1,value:e},i}}function __embind_register_emval(e,i){registerType(e,{name:i=readLatin1String(i),fromWireType:function(e){var i=emval_handle_array[e].value;return __emval_decref(e),i},toWireType:function(e,i){return __emval_register(i)},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(e){if(null===e)return"null";var i=typeof e;return"object"==i||"array"==i||"function"==i?e.toString():""+e}function floatReadValueFromPointer(e,i){switch(i){case 2:return function(e){return this.fromWireType(HEAPF32[e>>2])};case 3:return function(e){return this.fromWireType(HEAPF64[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function __embind_register_float(e,i,n){n=getShiftFromSize(n);registerType(e,{name:i=readLatin1String(i),fromWireType:function(e){return e},toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);return i},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(i,n),destructorFunction:null})}function __embind_register_function(i,n,e,t,r,o){var a=heap32VectorToArray(n,e);i=readLatin1String(i),r=embind__requireFunction(t,r),exposePublicSymbol(i,function(){throwUnboundTypeError("Cannot call "+i+" due to unbound types",a)},n-1),whenDependentTypesAreResolved([],a,function(e){e=[e[0],null].concat(e.slice(1));return replacePublicSymbol(i,craftInvokerFunction(i,e,null,r,o),n-1),[]})}function integerReadValueFromPointer(e,i,n){switch(i){case 0:return n?function(e){return HEAP8[e]}:function(e){return HEAPU8[e]};case 1:return n?function(e){return HEAP16[e>>1]}:function(e){return HEAPU16[e>>1]};case 2:return n?function(e){return HEAP32[e>>2]}:function(e){return HEAPU32[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,n,i,t,r){n=readLatin1String(n),-1===r&&(r=4294967295);var o,a=getShiftFromSize(i),l=function(e){return e};0===t&&(o=32-8*i,l=function(e){return e<<o>>>o});var u=-1!=n.indexOf("unsigned");registerType(e,{name:n,fromWireType:l,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);if(i<t||r<i)throw new TypeError('Passing a number "'+_embind_repr(i)+'" from JS side to C/C++ side to an argument of type "'+n+'", which is outside the valid range ['+t+", "+r+"]!");return u?i>>>0:0|i},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(n,a,0!==t),destructorFunction:null})}function __embind_register_memory_view(e,i,n){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][i];function r(e){var i=HEAPU32[e>>=2],e=HEAPU32[e+1];return new t(buffer,e,i)}registerType(e,{name:n=readLatin1String(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})}function __embind_register_std_string(e,i){var u="std::string"===(i=readLatin1String(i));registerType(e,{name:i,fromWireType:function(e){var i,n=HEAPU32[e>>2];if(u)for(var t=e+4,r=0;r<=n;++r){var o,a=e+4+r;0!=HEAPU8[a]&&r!=n||(o=UTF8ToString(t,a-t),void 0===i?i=o:(i+=String.fromCharCode(0),i+=o),t=a+1)}else{for(var l=new Array(n),r=0;r<n;++r)l[r]=String.fromCharCode(HEAPU8[e+4+r]);i=l.join("")}return _free(e),i},toWireType:function(e,i){var n="string"==typeof(i=i instanceof ArrayBuffer?new Uint8Array(i):i);n||i instanceof Uint8Array||i instanceof Uint8ClampedArray||i instanceof Int8Array||throwBindingError("Cannot pass non-string to std::string");var t=(u&&n?function(){return lengthBytesUTF8(i)}:function(){return i.length})(),r=_malloc(4+t+1);if(HEAPU32[r>>2]=t,u&&n)stringToUTF8(i,r+4,t+1);else if(n)for(var o=0;o<t;++o){var a=i.charCodeAt(o);255<a&&(_free(r),throwBindingError("String has UTF-16 code units that do not fit in 8 bits")),HEAPU8[r+4+o]=a}else for(o=0;o<t;++o)HEAPU8[r+4+o]=i[o];return null!==e&&e.push(_free,r),r},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_std_wstring(e,u,r){var s,o,d,a,c;r=readLatin1String(r),2===u?(s=UTF16ToString,o=stringToUTF16,a=lengthBytesUTF16,d=function(){return HEAPU16},c=1):4===u&&(s=UTF32ToString,o=stringToUTF32,a=lengthBytesUTF32,d=function(){return HEAPU32},c=2),registerType(e,{name:r,fromWireType:function(e){for(var i,n=HEAPU32[e>>2],t=d(),r=e+4,o=0;o<=n;++o){var a,l=e+4+o*u;0!=t[l>>c]&&o!=n||(a=s(r,l-r),void 0===i?i=a:(i+=String.fromCharCode(0),i+=a),r=l+u)}return _free(e),i},toWireType:function(e,i){"string"!=typeof i&&throwBindingError("Cannot pass non-string to C++ string type "+r);var n=a(i),t=_malloc(4+n+u);return HEAPU32[t>>2]=n>>c,o(i,t+4,n+u),null!==e&&e.push(_free,t),t},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_void(e,i){registerType(e,{isVoid:!0,name:i=readLatin1String(i),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,i){}})}function requireHandle(e){return e||throwBindingError("Cannot use deleted val. handle = "+e),emval_handle_array[e].value}function requireRegisteredType(e,i){var n=registeredTypes[e];return void 0===n&&throwBindingError(i+" has unknown type "+getTypeName(e)),n}function __emval_as(e,i,n){e=requireHandle(e),i=requireRegisteredType(i,"emval::as");var t=[],r=__emval_register(t);return HEAP32[n>>2]=r,i.toWireType(t,e)}function __emval_allocateDestructors(e){var i=[];return HEAP32[e>>2]=__emval_register(i),i}var emval_symbols={};function getStringOrSymbol(e){var i=emval_symbols[e];return void 0===i?readLatin1String(e):i}var emval_methodCallers=[];function __emval_call_method(e,i,n,t,r){return(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),__emval_allocateDestructors(t),r)}function __emval_call_void_method(e,i,n,t){(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),null,t)}function __emval_addMethodCaller(e){var i=emval_methodCallers.length;return emval_methodCallers.push(e),i}function __emval_lookupTypes(e,i){for(var n=new Array(e),t=0;t<e;++t)n[t]=requireRegisteredType(HEAP32[(i>>2)+t],"parameter "+t);return n}function __emval_get_method_caller(e,i){for(var n=__emval_lookupTypes(e,i),t=n[0],i=t.name+"_$"+n.slice(1).map(function(e){return e.name}).join("_")+"$",r=["retType"],o=[t],a="",l=0;l<e-1;++l)a+=(0!==l?", ":"")+"arg"+l,r.push("argType"+l),o.push(n[1+l]);for(var u="return function "+makeLegalFunctionName("methodCaller_"+i)+"(handle, name, destructors, args) {\n",s=0,l=0;l<e-1;++l)u+=" var arg"+l+" = argType"+l+".readValueFromPointer(args"+(s?"+"+s:"")+");\n",s+=n[l+1].argPackAdvance;u+=" var rv = handle[name]("+a+");\n";for(l=0;l<e-1;++l)n[l+1].deleteObject&&(u+=" argType"+l+".deleteObject(arg"+l+");\n");return t.isVoid||(u+=" return retType.toWireType(destructors, rv);\n"),r.push(u+="};\n"),__emval_addMethodCaller(new_(Function,r).apply(null,o))}function __emval_get_property(e,i){return __emval_register((e=requireHandle(e))[i=requireHandle(i)])}function __emval_incref(e){4<e&&(emval_handle_array[e].refcount+=1)}function __emval_new_cstring(e){return __emval_register(getStringOrSymbol(e))}function __emval_run_destructors(e){runDestructors(emval_handle_array[e].value),__emval_decref(e)}function __emval_set_property(e,i,n){e=requireHandle(e),i=requireHandle(i),n=requireHandle(n),e[i]=n}function __emval_take_value(e,i){return __emval_register((e=requireRegisteredType(e,"_emval_take_value")).readValueFromPointer(i))}function _abort(){abort()}function _clock(){return void 0===_clock.start&&(_clock.start=Date.now()),1e3*(Date.now()-_clock.start)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(e,i){throw _setThrew(e,i||1),"longjmp"}function _emscripten_longjmp(e,i){_longjmp(e,i)}function _emscripten_memcpy_big(e,i,n){HEAPU8.copyWithin(e,i,i+n)}function abortOnCannotGrowMemory(e){abort("OOM")}function _emscripten_resize_heap(e){abortOnCannotGrowMemory(e>>>=0)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:__getExecutableName()};for(i in ENV)e[i]=ENV[i];var i,n=[];for(i in e)n.push(i+"="+e[i]);getEnvStrings.strings=n}return getEnvStrings.strings}function _environ_get(t,r){var o=0;return getEnvStrings().forEach(function(e,i){var n=r+o;writeAsciiToMemory(e,HEAP32[t+4*i>>2]=n),o+=e.length+1}),0}function _environ_sizes_get(e,i){var n=getEnvStrings();HEAP32[e>>2]=n.length;var t=0;return n.forEach(function(e){t+=e.length+1}),HEAP32[i>>2]=t,0}function _fd_close(e){try{var i=SYSCALLS.getStreamFromFD(e);return FS.close(i),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_fdstat_get(e,i){try{var n=SYSCALLS.getStreamFromFD(e),t=n.tty?2:FS.isDir(n.mode)?3:FS.isLink(n.mode)?7:4;return HEAP8[i>>0]=t,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_read(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doReadv(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_seek(e,i,n,t,r){try{var o=SYSCALLS.getStreamFromFD(e),a=4294967296*n+(i>>>0),l=9007199254740992;return a<=-l||l<=a?-61:(FS.llseek(o,a,t),tempI64=[o.position>>>0,(tempDouble=o.position,1<=+Math_abs(tempDouble)?0<tempDouble?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r>>2]=tempI64[0],HEAP32[r+4>>2]=tempI64[1],o.getdents&&0==a&&0===t&&(o.getdents=null),0)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_write(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doWritev(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _getTempRet0(){return 0|getTempRet0()}function _llvm_eh_typeid_for(e){return e}var ___tm_current=493120,___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){var e,i,n,t;function r(e){e=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return e?e[1]:"GMT"}_tzset.called||(_tzset.called=!0,HEAP32[__get_timezone()>>2]=60*(new Date).getTimezoneOffset(),t=(new Date).getFullYear(),e=new Date(t,0,1),i=new Date(t,6,1),HEAP32[__get_daylight()>>2]=Number(e.getTimezoneOffset()!=i.getTimezoneOffset()),n=r(e),t=r(i),n=allocateUTF8(n),t=allocateUTF8(t),i.getTimezoneOffset()<e.getTimezoneOffset()?(HEAP32[__get_tzname()>>2]=n,HEAP32[__get_tzname()+4>>2]=t):(HEAP32[__get_tzname()>>2]=t,HEAP32[__get_tzname()+4>>2]=n))}function _localtime_r(e,i){_tzset();var n=new Date(1e3*HEAP32[e>>2]);HEAP32[i>>2]=n.getSeconds(),HEAP32[i+4>>2]=n.getMinutes(),HEAP32[i+8>>2]=n.getHours(),HEAP32[i+12>>2]=n.getDate(),HEAP32[i+16>>2]=n.getMonth(),HEAP32[i+20>>2]=n.getFullYear()-1900,HEAP32[i+24>>2]=n.getDay();var t=new Date(n.getFullYear(),0,1),e=(n.getTime()-t.getTime())/864e5|0;HEAP32[i+28>>2]=e,HEAP32[i+36>>2]=-60*n.getTimezoneOffset();e=new Date(n.getFullYear(),6,1).getTimezoneOffset(),t=t.getTimezoneOffset(),e=0|(e!=t&&n.getTimezoneOffset()==Math.min(t,e));HEAP32[i+32>>2]=e;e=HEAP32[__get_tzname()+(e?4:0)>>2];return HEAP32[i+40>>2]=e,i}function _localtime(e){return _localtime_r(e,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(e){return 0<=(e=+e)?+Math_floor(e+.5):+Math_ceil(e-.5)}function _setTempRet0(e){setTempRet0(0|e)}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}function __arraySum(e,i){for(var n=0,t=0;t<=i;n+=e[t++]);return n}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,i){for(var n=new Date(e.getTime());0<i;){var t=__isLeapYear(n.getFullYear()),r=n.getMonth(),t=(t?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[r];if(!(i>t-n.getDate()))return n.setDate(n.getDate()+i),n;i-=t-n.getDate()+1,n.setDate(1),r<11?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}function _strftime(e,i,n,t){var r=HEAP32[t+40>>2],o={tm_sec:HEAP32[t>>2],tm_min:HEAP32[t+4>>2],tm_hour:HEAP32[t+8>>2],tm_mday:HEAP32[t+12>>2],tm_mon:HEAP32[t+16>>2],tm_year:HEAP32[t+20>>2],tm_wday:HEAP32[t+24>>2],tm_yday:HEAP32[t+28>>2],tm_isdst:HEAP32[t+32>>2],tm_gmtoff:HEAP32[t+36>>2],tm_zone:r?UTF8ToString(r):""},a=UTF8ToString(n),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(y in l)a=a.replace(new RegExp(y,"g"),l[y]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],s=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,i,n){for(var t="number"==typeof e?e.toString():e||"";t.length<i;)t=n[0]+t;return t}function c(e,i){return d(e,i,"0")}function _(e,i){function n(e){return e<0?-1:0<e?1:0}var t;return t=0===(t=n(e.getFullYear()-i.getFullYear()))&&0===(t=n(e.getMonth()-i.getMonth()))?n(e.getDate()-i.getDate()):t}function f(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function p(e){var i=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday),n=new Date(i.getFullYear(),0,4),e=new Date(i.getFullYear()+1,0,4),n=f(n),e=f(e);return _(n,i)<=0?_(e,i)<=0?i.getFullYear()+1:i.getFullYear():i.getFullYear()-1}var y,m={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return s[e.tm_mon].substring(0,3)},"%B":function(e){return s[e.tm_mon]},"%C":function(e){return c((e.tm_year+1900)/100|0,2)},"%d":function(e){return c(e.tm_mday,2)},"%e":function(e){return d(e.tm_mday,2," ")},"%g":function(e){return p(e).toString().substring(2)},"%G":p,"%H":function(e){return c(e.tm_hour,2)},"%I":function(e){e=e.tm_hour;return 0==e?e=12:12<e&&(e-=12),c(e,2)},"%j":function(e){return c(e.tm_mday+__arraySum(__isLeapYear(e.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,e.tm_mon-1),3)},"%m":function(e){return c(e.tm_mon+1,2)},"%M":function(e){return c(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return 0<=e.tm_hour&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return c(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var i=new Date(e.tm_year+1900,0,1),n=0===i.getDay()?i:__addDays(i,7-i.getDay()),t=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(_(n,t)<0){e=__arraySum(__isLeapYear(t.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,t.getMonth()-1)-31,t=31-n.getDate()+e+t.getDate();return c(Math.ceil(t/7),2)}return 0===_(n,i)?"01":"00"},"%V":function(e){var i=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),t=f(i),i=f(n),n=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday);return _(n,t)<0?"53":_(i,n)<=0?"01":(t=t.getFullYear()<e.tm_year+1900?e.tm_yday+32-t.getDate():e.tm_yday+1-t.getDate(),c(Math.ceil(t/7),2))},"%w":function(e){return e.tm_wday},"%W":function(e){var i=new Date(e.tm_year,0,1),n=1===i.getDay()?i:__addDays(i,0===i.getDay()?1:7-i.getDay()+1),t=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(_(n,t)<0){e=__arraySum(__isLeapYear(t.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,t.getMonth()-1)-31,t=31-n.getDate()+e+t.getDate();return c(Math.ceil(t/7),2)}return 0===_(n,i)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var i=e.tm_gmtoff,e=0<=i;return i=(i=Math.abs(i)/60)/60*100+i%60,(e?"+":"-")+String("0000"+i).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(y in m)0<=a.indexOf(y)&&(a=a.replace(new RegExp(y,"g"),m[y](o)));n=intArrayFromString(a,!1);return n.length>i?0:(writeArrayToMemory(n,e),n.length-1)}function _strftime_l(e,i,n,t){return _strftime(e,i,n,t)}function _time(e){var i=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=i),i}var FSNode=function(e,i,n,t){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=i,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=t},readMode=365,writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(e){e?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(e){e?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}}),FS.FSNode=FSNode,FS.staticInit(),embind_init_charCodes(),BindingError=Module.BindingError=extendError(Error,"BindingError"),InternalError=Module.InternalError=extendError(Error,"InternalError"),init_ClassHandle(),init_RegisteredPointer(),init_embind(),UnboundTypeError=Module.UnboundTypeError=extendError(Error,"UnboundTypeError"),init_emval();var ASSERTIONS=!1;function intArrayFromString(e,i,n){n=0<n?n:lengthBytesUTF8(e)+1,n=new Array(n),e=stringToUTF8Array(e,n,0,n.length);return i&&(n.length=e),n}var calledRun,asmLibraryArg={__cxa_allocate_exception:___cxa_allocate_exception,__cxa_atexit:___cxa_atexit,__cxa_begin_catch:___cxa_begin_catch,__cxa_end_catch:___cxa_end_catch,__cxa_find_matching_catch_2:___cxa_find_matching_catch_2,__cxa_find_matching_catch_3:___cxa_find_matching_catch_3,__cxa_find_matching_catch_4:___cxa_find_matching_catch_4,__cxa_free_exception:___cxa_free_exception,__cxa_rethrow:___cxa_rethrow,__cxa_throw:___cxa_throw,__cxa_uncaught_exceptions:___cxa_uncaught_exceptions,__map_file:___map_file,__resumeException:___resumeException,__sys_fcntl64:___sys_fcntl64,__sys_ioctl:___sys_ioctl,__sys_munmap:___sys_munmap,__sys_open:___sys_open,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_function:__embind_register_class_function,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emval_as:__emval_as,_emval_call_method:__emval_call_method,_emval_call_void_method:__emval_call_void_method,_emval_decref:__emval_decref,_emval_get_method_caller:__emval_get_method_caller,_emval_get_property:__emval_get_property,_emval_incref:__emval_incref,_emval_new_cstring:__emval_new_cstring,_emval_run_destructors:__emval_run_destructors,_emval_set_property:__emval_set_property,_emval_take_value:__emval_take_value,abort:_abort,clock:_clock,emscripten_get_sbrk_ptr:_emscripten_get_sbrk_ptr,emscripten_longjmp:_emscripten_longjmp,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,getTempRet0:_getTempRet0,invoke_di:invoke_di,invoke_dii:invoke_dii,invoke_diid:invoke_diid,invoke_diii:invoke_diii,invoke_diiii:invoke_diiii,invoke_diiiii:invoke_diiiii,invoke_fi:invoke_fi,invoke_fif:invoke_fif,invoke_fii:invoke_fii,invoke_fiii:invoke_fiii,invoke_fiiii:invoke_fiiii,invoke_fiiiiiff:invoke_fiiiiiff,invoke_i:invoke_i,invoke_ii:invoke_ii,invoke_iid:invoke_iid,invoke_iiddi:invoke_iiddi,invoke_iiddii:invoke_iiddii,invoke_iiddiii:invoke_iiddiii,invoke_iif:invoke_iif,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_iiiiid:invoke_iiiiid,invoke_iiiiii:invoke_iiiiii,invoke_iiiiiid:invoke_iiiiiid,invoke_iiiiiii:invoke_iiiiiii,invoke_iiiiiiii:invoke_iiiiiiii,invoke_iiiiiiiii:invoke_iiiiiiiii,invoke_iiiiiiiiiddiii:invoke_iiiiiiiiiddiii,invoke_iiiiiiiiii:invoke_iiiiiiiiii,invoke_iiiiiiiiiii:invoke_iiiiiiiiiii,invoke_iiiiiiiiiiii:invoke_iiiiiiiiiiii,invoke_iiiiiiiiiiiii:invoke_iiiiiiiiiiiii,invoke_iij:invoke_iij,invoke_jiiii:invoke_jiiii,invoke_v:invoke_v,invoke_vi:invoke_vi,invoke_vid:invoke_vid,invoke_vidi:invoke_vidi,invoke_vidiiiiiii:invoke_vidiiiiiii,invoke_vif:invoke_vif,invoke_viffffff:invoke_viffffff,invoke_viffi:invoke_viffi,invoke_vifii:invoke_vifii,invoke_vii:invoke_vii,invoke_viid:invoke_viid,invoke_viidddd:invoke_viidddd,invoke_viidi:invoke_viidi,invoke_viidii:invoke_viidii,invoke_viidiiiiiii:invoke_viidiiiiiii,invoke_viif:invoke_viif,invoke_viifii:invoke_viifii,invoke_viii:invoke_viii,invoke_viiid:invoke_viiid,invoke_viiidi:invoke_viiidi,invoke_viiidiiiid:invoke_viiidiiiid,invoke_viiiff:invoke_viiiff,invoke_viiii:invoke_viiii,invoke_viiiidd:invoke_viiiidd,invoke_viiiiffffiii:invoke_viiiiffffiii,invoke_viiiii:invoke_viiiii,invoke_viiiiidi:invoke_viiiiidi,invoke_viiiiii:invoke_viiiiii,invoke_viiiiiid:invoke_viiiiiid,invoke_viiiiiii:invoke_viiiiiii,invoke_viiiiiiii:invoke_viiiiiiii,invoke_viiiiiiiii:invoke_viiiiiiiii,invoke_viiiiiiiiii:invoke_viiiiiiiiii,invoke_viiiiiiiiiii:invoke_viiiiiiiiiii,invoke_viiiiiiiiiiiiiii:invoke_viiiiiiiiiiiiiii,llvm_eh_typeid_for:_llvm_eh_typeid_for,localtime:_localtime,memory:wasmMemory,pthread_mutexattr_destroy:_pthread_mutexattr_destroy,pthread_mutexattr_init:_pthread_mutexattr_init,pthread_mutexattr_settype:_pthread_mutexattr_settype,round:_round,setTempRet0:_setTempRet0,strftime_l:_strftime_l,table:wasmTable,time:_time},asm=createWasm(),___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.__wasm_call_ctors).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},_realloc=Module._realloc=function(){return(_realloc=Module._realloc=Module.asm.realloc).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.__errno_location).apply(null,arguments)},_testSetjmp=Module._testSetjmp=function(){return(_testSetjmp=Module._testSetjmp=Module.asm.testSetjmp).apply(null,arguments)},_saveSetjmp=Module._saveSetjmp=function(){return(_saveSetjmp=Module._saveSetjmp=Module.asm.saveSetjmp).apply(null,arguments)},___getTypeName=Module.___getTypeName=function(){return(___getTypeName=Module.___getTypeName=Module.asm.__getTypeName).apply(null,arguments)},___embind_register_native_and_builtin_types=Module.___embind_register_native_and_builtin_types=function(){return(___embind_register_native_and_builtin_types=Module.___embind_register_native_and_builtin_types=Module.asm.__embind_register_native_and_builtin_types).apply(null,arguments)},__get_tzname=Module.__get_tzname=function(){return(__get_tzname=Module.__get_tzname=Module.asm._get_tzname).apply(null,arguments)},__get_daylight=Module.__get_daylight=function(){return(__get_daylight=Module.__get_daylight=Module.asm._get_daylight).apply(null,arguments)},__get_timezone=Module.__get_timezone=function(){return(__get_timezone=Module.__get_timezone=Module.asm._get_timezone).apply(null,arguments)},_setThrew=Module._setThrew=function(){return(_setThrew=Module._setThrew=Module.asm.setThrew).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},__ZSt18uncaught_exceptionv=Module.__ZSt18uncaught_exceptionv=function(){return(__ZSt18uncaught_exceptionv=Module.__ZSt18uncaught_exceptionv=Module.asm._ZSt18uncaught_exceptionv).apply(null,arguments)},___cxa_can_catch=Module.___cxa_can_catch=function(){return(___cxa_can_catch=Module.___cxa_can_catch=Module.asm.__cxa_can_catch).apply(null,arguments)},___cxa_is_pointer_type=Module.___cxa_is_pointer_type=function(){return(___cxa_is_pointer_type=Module.___cxa_is_pointer_type=Module.asm.__cxa_is_pointer_type).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.dynCall_v).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.dynCall_vi).apply(null,arguments)},dynCall_vii=Module.dynCall_vii=function(){return(dynCall_vii=Module.dynCall_vii=Module.asm.dynCall_vii).apply(null,arguments)},dynCall_viii=Module.dynCall_viii=function(){return(dynCall_viii=Module.dynCall_viii=Module.asm.dynCall_viii).apply(null,arguments)},dynCall_viiii=Module.dynCall_viiii=function(){return(dynCall_viiii=Module.dynCall_viiii=Module.asm.dynCall_viiii).apply(null,arguments)},dynCall_viiiii=Module.dynCall_viiiii=function(){return(dynCall_viiiii=Module.dynCall_viiiii=Module.asm.dynCall_viiiii).apply(null,arguments)},dynCall_viiiiii=Module.dynCall_viiiiii=function(){return(dynCall_viiiiii=Module.dynCall_viiiiii=Module.asm.dynCall_viiiiii).apply(null,arguments)},dynCall_viiiiiii=Module.dynCall_viiiiiii=function(){return(dynCall_viiiiiii=Module.dynCall_viiiiiii=Module.asm.dynCall_viiiiiii).apply(null,arguments)},dynCall_viiiiiiii=Module.dynCall_viiiiiiii=function(){return(dynCall_viiiiiiii=Module.dynCall_viiiiiiii=Module.asm.dynCall_viiiiiiii).apply(null,arguments)},dynCall_viiiiiiiii=Module.dynCall_viiiiiiiii=function(){return(dynCall_viiiiiiiii=Module.dynCall_viiiiiiiii=Module.asm.dynCall_viiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=function(){return(dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=Module.asm.dynCall_viiiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiiii=Module.dynCall_viiiiiiiiiii=function(){return(dynCall_viiiiiiiiiii=Module.dynCall_viiiiiiiiiii=Module.asm.dynCall_viiiiiiiiiii).apply(null,arguments)},dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=function(){return(dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=Module.asm.dynCall_viiiiiiiiiiiiiii).apply(null,arguments)},dynCall_viiiiiid=Module.dynCall_viiiiiid=function(){return(dynCall_viiiiiid=Module.dynCall_viiiiiid=Module.asm.dynCall_viiiiiid).apply(null,arguments)},dynCall_viiiiidi=Module.dynCall_viiiiidi=function(){return(dynCall_viiiiidi=Module.dynCall_viiiiidi=Module.asm.dynCall_viiiiidi).apply(null,arguments)},dynCall_viiiiffffiii=Module.dynCall_viiiiffffiii=function(){return(dynCall_viiiiffffiii=Module.dynCall_viiiiffffiii=Module.asm.dynCall_viiiiffffiii).apply(null,arguments)},dynCall_viiiidd=Module.dynCall_viiiidd=function(){return(dynCall_viiiidd=Module.dynCall_viiiidd=Module.asm.dynCall_viiiidd).apply(null,arguments)},dynCall_viiiff=Module.dynCall_viiiff=function(){return(dynCall_viiiff=Module.dynCall_viiiff=Module.asm.dynCall_viiiff).apply(null,arguments)},dynCall_viiid=Module.dynCall_viiid=function(){return(dynCall_viiid=Module.dynCall_viiid=Module.asm.dynCall_viiid).apply(null,arguments)},dynCall_viiidi=Module.dynCall_viiidi=function(){return(dynCall_viiidi=Module.dynCall_viiidi=Module.asm.dynCall_viiidi).apply(null,arguments)},dynCall_viiidiiiid=Module.dynCall_viiidiiiid=function(){return(dynCall_viiidiiiid=Module.dynCall_viiidiiiid=Module.asm.dynCall_viiidiiiid).apply(null,arguments)},dynCall_viif=Module.dynCall_viif=function(){return(dynCall_viif=Module.dynCall_viif=Module.asm.dynCall_viif).apply(null,arguments)},dynCall_viifii=Module.dynCall_viifii=function(){return(dynCall_viifii=Module.dynCall_viifii=Module.asm.dynCall_viifii).apply(null,arguments)},dynCall_viid=Module.dynCall_viid=function(){return(dynCall_viid=Module.dynCall_viid=Module.asm.dynCall_viid).apply(null,arguments)},dynCall_viidi=Module.dynCall_viidi=function(){return(dynCall_viidi=Module.dynCall_viidi=Module.asm.dynCall_viidi).apply(null,arguments)},dynCall_viidii=Module.dynCall_viidii=function(){return(dynCall_viidii=Module.dynCall_viidii=Module.asm.dynCall_viidii).apply(null,arguments)},dynCall_viidiiiiiii=Module.dynCall_viidiiiiiii=function(){return(dynCall_viidiiiiiii=Module.dynCall_viidiiiiiii=Module.asm.dynCall_viidiiiiiii).apply(null,arguments)},dynCall_viidddd=Module.dynCall_viidddd=function(){return(dynCall_viidddd=Module.dynCall_viidddd=Module.asm.dynCall_viidddd).apply(null,arguments)},dynCall_vif=Module.dynCall_vif=function(){return(dynCall_vif=Module.dynCall_vif=Module.asm.dynCall_vif).apply(null,arguments)},dynCall_vifii=Module.dynCall_vifii=function(){return(dynCall_vifii=Module.dynCall_vifii=Module.asm.dynCall_vifii).apply(null,arguments)},dynCall_viffi=Module.dynCall_viffi=function(){return(dynCall_viffi=Module.dynCall_viffi=Module.asm.dynCall_viffi).apply(null,arguments)},dynCall_viffffff=Module.dynCall_viffffff=function(){return(dynCall_viffffff=Module.dynCall_viffffff=Module.asm.dynCall_viffffff).apply(null,arguments)},dynCall_vid=Module.dynCall_vid=function(){return(dynCall_vid=Module.dynCall_vid=Module.asm.dynCall_vid).apply(null,arguments)},dynCall_vidi=Module.dynCall_vidi=function(){return(dynCall_vidi=Module.dynCall_vidi=Module.asm.dynCall_vidi).apply(null,arguments)},dynCall_vidiiiiiii=Module.dynCall_vidiiiiiii=function(){return(dynCall_vidiiiiiii=Module.dynCall_vidiiiiiii=Module.asm.dynCall_vidiiiiiii).apply(null,arguments)},dynCall_i=Module.dynCall_i=function(){return(dynCall_i=Module.dynCall_i=Module.asm.dynCall_i).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.dynCall_ii).apply(null,arguments)},dynCall_iii=Module.dynCall_iii=function(){return(dynCall_iii=Module.dynCall_iii=Module.asm.dynCall_iii).apply(null,arguments)},dynCall_iiii=Module.dynCall_iiii=function(){return(dynCall_iiii=Module.dynCall_iiii=Module.asm.dynCall_iiii).apply(null,arguments)},dynCall_iiiii=Module.dynCall_iiiii=function(){return(dynCall_iiiii=Module.dynCall_iiiii=Module.asm.dynCall_iiiii).apply(null,arguments)},dynCall_iiiiii=Module.dynCall_iiiiii=function(){return(dynCall_iiiiii=Module.dynCall_iiiiii=Module.asm.dynCall_iiiiii).apply(null,arguments)},dynCall_iiiiiii=Module.dynCall_iiiiiii=function(){return(dynCall_iiiiiii=Module.dynCall_iiiiiii=Module.asm.dynCall_iiiiiii).apply(null,arguments)},dynCall_iiiiiiii=Module.dynCall_iiiiiiii=function(){return(dynCall_iiiiiiii=Module.dynCall_iiiiiiii=Module.asm.dynCall_iiiiiiii).apply(null,arguments)},dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=function(){return(dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=Module.asm.dynCall_iiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiii=Module.dynCall_iiiiiiiiii=function(){return(dynCall_iiiiiiiiii=Module.dynCall_iiiiiiiiii=Module.asm.dynCall_iiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiii=Module.dynCall_iiiiiiiiiii=function(){return(dynCall_iiiiiiiiiii=Module.dynCall_iiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiddiii=Module.dynCall_iiiiiiiiiddiii=function(){return(dynCall_iiiiiiiiiddiii=Module.dynCall_iiiiiiiiiddiii=Module.asm.dynCall_iiiiiiiiiddiii).apply(null,arguments)},dynCall_iiiiiid=Module.dynCall_iiiiiid=function(){return(dynCall_iiiiiid=Module.dynCall_iiiiiid=Module.asm.dynCall_iiiiiid).apply(null,arguments)},dynCall_iiiiid=Module.dynCall_iiiiid=function(){return(dynCall_iiiiid=Module.dynCall_iiiiid=Module.asm.dynCall_iiiiid).apply(null,arguments)},dynCall_iij=Module.dynCall_iij=function(){return(dynCall_iij=Module.dynCall_iij=Module.asm.dynCall_iij).apply(null,arguments)},dynCall_iif=Module.dynCall_iif=function(){return(dynCall_iif=Module.dynCall_iif=Module.asm.dynCall_iif).apply(null,arguments)},dynCall_iid=Module.dynCall_iid=function(){return(dynCall_iid=Module.dynCall_iid=Module.asm.dynCall_iid).apply(null,arguments)},dynCall_iiddi=Module.dynCall_iiddi=function(){return(dynCall_iiddi=Module.dynCall_iiddi=Module.asm.dynCall_iiddi).apply(null,arguments)},dynCall_iiddii=Module.dynCall_iiddii=function(){return(dynCall_iiddii=Module.dynCall_iiddii=Module.asm.dynCall_iiddii).apply(null,arguments)},dynCall_iiddiii=Module.dynCall_iiddiii=function(){return(dynCall_iiddiii=Module.dynCall_iiddiii=Module.asm.dynCall_iiddiii).apply(null,arguments)},dynCall_jiiii=Module.dynCall_jiiii=function(){return(dynCall_jiiii=Module.dynCall_jiiii=Module.asm.dynCall_jiiii).apply(null,arguments)},dynCall_fi=Module.dynCall_fi=function(){return(dynCall_fi=Module.dynCall_fi=Module.asm.dynCall_fi).apply(null,arguments)},dynCall_fii=Module.dynCall_fii=function(){return(dynCall_fii=Module.dynCall_fii=Module.asm.dynCall_fii).apply(null,arguments)},dynCall_fiii=Module.dynCall_fiii=function(){return(dynCall_fiii=Module.dynCall_fiii=Module.asm.dynCall_fiii).apply(null,arguments)},dynCall_fiiii=Module.dynCall_fiiii=function(){return(dynCall_fiiii=Module.dynCall_fiiii=Module.asm.dynCall_fiiii).apply(null,arguments)},dynCall_fiiiiiff=Module.dynCall_fiiiiiff=function(){return(dynCall_fiiiiiff=Module.dynCall_fiiiiiff=Module.asm.dynCall_fiiiiiff).apply(null,arguments)},dynCall_fif=Module.dynCall_fif=function(){return(dynCall_fif=Module.dynCall_fif=Module.asm.dynCall_fif).apply(null,arguments)},dynCall_di=Module.dynCall_di=function(){return(dynCall_di=Module.dynCall_di=Module.asm.dynCall_di).apply(null,arguments)},dynCall_dii=Module.dynCall_dii=function(){return(dynCall_dii=Module.dynCall_dii=Module.asm.dynCall_dii).apply(null,arguments)},dynCall_diii=Module.dynCall_diii=function(){return(dynCall_diii=Module.dynCall_diii=Module.asm.dynCall_diii).apply(null,arguments)},dynCall_diiii=Module.dynCall_diiii=function(){return(dynCall_diiii=Module.dynCall_diiii=Module.asm.dynCall_diiii).apply(null,arguments)},dynCall_diiiii=Module.dynCall_diiiii=function(){return(dynCall_diiiii=Module.dynCall_diiiii=Module.asm.dynCall_diiiii).apply(null,arguments)},dynCall_diid=Module.dynCall_diid=function(){return(dynCall_diid=Module.dynCall_diid=Module.asm.dynCall_diid).apply(null,arguments)},__growWasmMemory=Module.__growWasmMemory=function(){return(__growWasmMemory=Module.__growWasmMemory=Module.asm.__growWasmMemory).apply(null,arguments)},dynCall_iiidi=Module.dynCall_iiidi=function(){return(dynCall_iiidi=Module.dynCall_iiidi=Module.asm.dynCall_iiidi).apply(null,arguments)},dynCall_viijii=Module.dynCall_viijii=function(){return(dynCall_viijii=Module.dynCall_viijii=Module.asm.dynCall_viijii).apply(null,arguments)},dynCall_viiddd=Module.dynCall_viiddd=function(){return(dynCall_viiddd=Module.dynCall_viiddd=Module.asm.dynCall_viiddd).apply(null,arguments)},dynCall_viiiidi=Module.dynCall_viiiidi=function(){return(dynCall_viiiidi=Module.dynCall_viiiidi=Module.asm.dynCall_viiiidi).apply(null,arguments)},dynCall_iiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiiiiiii).apply(null,arguments)},dynCall_iiiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiiii=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module.dynCall_iiiiiiiiiiiiiiiiii=Module.asm.dynCall_iiiiiiiiiiiiiiiiii).apply(null,arguments)},dynCall_jiji=Module.dynCall_jiji=function(){return(dynCall_jiji=Module.dynCall_jiji=Module.asm.dynCall_jiji).apply(null,arguments)},dynCall_iidiiii=Module.dynCall_iidiiii=function(){return(dynCall_iidiiii=Module.dynCall_iidiiii=Module.asm.dynCall_iidiiii).apply(null,arguments)},dynCall_iiiiij=Module.dynCall_iiiiij=function(){return(dynCall_iiiiij=Module.dynCall_iiiiij=Module.asm.dynCall_iiiiij).apply(null,arguments)},dynCall_iiiiijj=Module.dynCall_iiiiijj=function(){return(dynCall_iiiiijj=Module.dynCall_iiiiijj=Module.asm.dynCall_iiiiijj).apply(null,arguments)},dynCall_iiiiiijj=Module.dynCall_iiiiiijj=function(){return(dynCall_iiiiiijj=Module.dynCall_iiiiiijj=Module.asm.dynCall_iiiiiijj).apply(null,arguments)};function invoke_viiii(e,i,n,t,r){var o=stackSave();try{dynCall_viiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_ii(e,i){var n=stackSave();try{return dynCall_ii(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iii(e,i,n){var t=stackSave();try{return dynCall_iii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vi(e,i){var n=stackSave();try{dynCall_vi(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diii(e,i,n,t){var r=stackSave();try{return dynCall_diii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vii(e,i,n){var t=stackSave();try{dynCall_vii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_viiiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiii(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiiii(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viii(e,i,n,t){var r=stackSave();try{dynCall_viii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiii(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiiiiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_iiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiii(e,i,n,t){var r=stackSave();try{return dynCall_iiii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_dii(e,i,n){var t=stackSave();try{return dynCall_dii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiii(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viiiiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{return dynCall_iiiiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidi(e,i,n,t,r){var o=stackSave();try{dynCall_viidi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_v(e){var i=stackSave();try{dynCall_v(e)}catch(e){if(stackRestore(i),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iid(e,i,n){var t=stackSave();try{return dynCall_iid(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iif(e,i,n){var t=stackSave();try{return dynCall_iif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_i(e){var i=stackSave();try{return dynCall_i(e)}catch(e){if(stackRestore(i),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(e,i,n,t,r,o,a,l){var u=stackSave();try{return dynCall_iiiiiiii(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidddd(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viidddd(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viid(e,i,n,t){var r=stackSave();try{dynCall_viid(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_di(e,i){var n=stackSave();try{return dynCall_di(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vid(e,i,n){var t=stackSave();try{dynCall_vid(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(e,i,n,t,r,o,a,l,u){var s=stackSave();try{dynCall_viiiiiiii(e,i,n,t,r,o,a,l,u)}catch(e){if(stackRestore(s),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiidiiiid(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_viiidiiiid(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiidi(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiidi(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiidd(e,i,n,t,r,o,a){var l=stackSave();try{dynCall_viiiidd(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiidi(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiidi(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{dynCall_viidiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiid(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viiiiiid(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(e,i,n,t,r,o,a,l,u,s){var d=stackSave();try{dynCall_vidiiiiiii(e,i,n,t,r,o,a,l,u,s)}catch(e){if(stackRestore(d),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiid(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiiiiid(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiff(e,i,n,t,r,o){var a=stackSave();try{dynCall_viiiff(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiddii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddiii(e,i,n,t,r,o,a){var l=stackSave();try{return dynCall_iiddiii(e,i,n,t,r,o,a)}catch(e){if(stackRestore(l),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{dynCall_viiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fii(e,i,n){var t=stackSave();try{return dynCall_fii(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiddi(e,i,n,t,r){var o=stackSave();try{return dynCall_iiddi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viidii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viidii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiid(e,i,n,t,r){var o=stackSave();try{dynCall_viiid(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diid(e,i,n,t){var r=stackSave();try{return dynCall_diid(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(e,i,n,t,r,o,a,l,u){var s=stackSave();try{return dynCall_iiiiiiiii(e,i,n,t,r,o,a,l,u)}catch(e){if(stackRestore(s),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f,p,y){var m=stackSave();try{dynCall_viiiiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f,p,y)}catch(e){if(stackRestore(m),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f){var p=stackSave();try{return dynCall_iiiiiiiiiddiii(e,i,n,t,r,o,a,l,u,s,d,c,_,f)}catch(e){if(stackRestore(p),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vidi(e,i,n,t){var r=stackSave();try{dynCall_vidi(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diiii(e,i,n,t,r){var o=stackSave();try{return dynCall_diiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_diiiii(e,i,n,t,r,o){var a=stackSave();try{return dynCall_diiiii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viif(e,i,n,t){var r=stackSave();try{dynCall_viif(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_fiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fi(e,i){var n=stackSave();try{return dynCall_fi(e,i)}catch(e){if(stackRestore(n),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vif(e,i,n){var t=stackSave();try{dynCall_vif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viffi(e,i,n,t,r){var o=stackSave();try{dynCall_viffi(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{dynCall_viiiiffffiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viffffff(e,i,n,t,r,o,a,l){var u=stackSave();try{dynCall_viffffff(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fif(e,i,n){var t=stackSave();try{return dynCall_fif(e,i,n)}catch(e){if(stackRestore(t),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_vifii(e,i,n,t,r){var o=stackSave();try{dynCall_vifii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiiiiiff(e,i,n,t,r,o,a,l){var u=stackSave();try{return dynCall_fiiiiiff(e,i,n,t,r,o,a,l)}catch(e){if(stackRestore(u),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viifii(e,i,n,t,r,o){var a=stackSave();try{dynCall_viifii(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{dynCall_viiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiid(e,i,n,t,r,o){var a=stackSave();try{return dynCall_iiiiid(e,i,n,t,r,o)}catch(e){if(stackRestore(a),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d){var c=stackSave();try{return dynCall_iiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d)}catch(e){if(stackRestore(c),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_){var f=stackSave();try{return dynCall_iiiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c,_)}catch(e){if(stackRestore(f),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_fiii(e,i,n,t){var r=stackSave();try{return dynCall_fiii(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c){var _=stackSave();try{return dynCall_iiiiiiiiiiii(e,i,n,t,r,o,a,l,u,s,d,c)}catch(e){if(stackRestore(_),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_iij(e,i,n,t){var r=stackSave();try{return dynCall_iij(e,i,n,t)}catch(e){if(stackRestore(r),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function invoke_jiiii(e,i,n,t,r){var o=stackSave();try{return dynCall_jiiii(e,i,n,t,r)}catch(e){if(stackRestore(o),e!==e+0&&"longjmp"!==e)throw e;_setThrew(1,0)}}function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function i(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}0<runDependencies||(preRun(),0<runDependencies||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),i()},1)):i()))}if(dependenciesFulfilled=function e(){calledRun||run(),calledRun||(dependenciesFulfilled=e)},Module.run=run,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);0<Module.preInit.length;)Module.preInit.pop()();noExitRuntime=!0,run();
+//# sourceMappingURL=RDKit_minimal.min.js.map
diff --git a/docs/js/RDKit_minimal.min.js.map b/docs/js/RDKit_minimal.min.js.map
new file mode 100644
index 0000000..6697619
--- /dev/null
+++ b/docs/js/RDKit_minimal.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RDKit_minimal.min.js","sources":["RDKit_minimal.min.js"],"sourcesContent":["var Module=typeof Module!==\"undefined\"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return 4}else if(type[0]===\"i\"){var bits=Number(type.substr(1));assert(bits%8===0,\"getNativeTypeSize invalid bits \"+bits+\", type \"+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={\"i\":127,\"j\":126,\"f\":125,\"d\":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;var bytes=new Uint8Array([0,97,115,109,1,0,0,0].concat(typeSection,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{\"e\":{\"f\":func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function addFunctionWasm(func,sig){var table=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var i=0;i<table.length;i++){var item=table.get(i);if(item){functionsInTableMap.set(item,i)}}}if(functionsInTableMap.has(func)){return functionsInTableMap.get(func)}var ret;if(freeTableIndexes.length){ret=freeTableIndexes.pop()}else{ret=table.length;try{table.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}}try{table.set(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}functionsInTableMap.set(func,ret);return ret}function removeFunctionWasm(index){functionsInTableMap.delete(wasmTable.get(index));freeTableIndexes.push(index)}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module[\"dynCall_\"+sig].apply(null,[ptr].concat(args))}else{return Module[\"dynCall_\"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}function setValue(ptr,value,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":HEAP8[ptr>>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":4549,\"maximum\":4549+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str=\"\";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"RDKit_minimal.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i<len;i++){if(adj[i]===adjusted){return ptr}}}return adjusted}function ___cxa_begin_catch(ptr){var info=___exception_infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exceptions--}if(info)info.rethrown=false;___exception_caught.push(ptr);___exception_addRef(___exception_deAdjust(ptr));return ptr}var ___exception_last=0;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___exception_decRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_ii\"](info.destructor,ptr)}delete ___exception_infos[ptr];___cxa_free_exception(ptr)}}function ___cxa_end_catch(){_setThrew(0);var ptr=___exception_caught.pop();if(ptr){___exception_decRef(___exception_deAdjust(ptr));___exception_last=0}}function ___cxa_find_matching_catch_2(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&___cxa_can_catch(typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc?Buffer.alloc(BUFSIZE):new Buffer(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf(\"EOF\")!=-1)bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name]},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){assert(address===0);if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();return setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"rs\":1052672,\"r+\":2,\"w\":577,\"wx\":705,\"xw\":705,\"w+\":578,\"wx+\":706,\"xw+\":706,\"a\":1089,\"ax\":1217,\"xa\":1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf(\"r\")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf(\"w\")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf(\"x\")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev===\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(10)}if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}try{if(FS.trackingDelegate[\"willMovePath\"]){FS.trackingDelegate[\"willMovePath\"](old_path,new_path)}}catch(e){err(\"FS.trackingDelegate['willMovePath']('\"+old_path+\"', '\"+new_path+\"') threw an exception: \"+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate[\"onMovePath\"])FS.trackingDelegate[\"onMovePath\"](old_path,new_path)}catch(e){err(\"FS.trackingDelegate['onMovePath']('\"+old_path+\"', '\"+new_path+\"') threw an exception: \"+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate[\"willDeletePath\"]){FS.trackingDelegate[\"willDeletePath\"](path)}}catch(e){err(\"FS.trackingDelegate['willDeletePath']('\"+path+\"') threw an exception: \"+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate[\"onDeletePath\"])FS.trackingDelegate[\"onDeletePath\"](path)}catch(e){err(\"FS.trackingDelegate['onDeletePath']('\"+path+\"') threw an exception: \"+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate[\"willDeletePath\"]){FS.trackingDelegate[\"willDeletePath\"](path)}}catch(e){err(\"FS.trackingDelegate['willDeletePath']('\"+path+\"') threw an exception: \"+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate[\"onDeletePath\"])FS.trackingDelegate[\"onDeletePath\"](path)}catch(e){err(\"FS.trackingDelegate['onDeletePath']('\"+path+\"') threw an exception: \"+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags===\"string\"?FS.modeStringToFlags(flags):flags;mode=typeof mode===\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path===\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err(\"FS.trackingDelegate error on read file: \"+path)}}try{if(FS.trackingDelegate[\"onOpenFile\"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate[\"onOpenFile\"](path,trackingFlags)}}catch(e){err(\"FS.trackingDelegate['onOpenFile']('\"+path+\"', flags) threw an exception: \"+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate[\"onWriteToFile\"])FS.trackingDelegate[\"onWriteToFile\"](stream.path)}catch(e){err(\"FS.trackingDelegate['onWriteToFile']('\"+stream.path+\"') threw an exception: \"+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||\"r\";opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error('Invalid encoding type \"'+opts.encoding+'\"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||\"w\";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data===\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:function(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var random_device;if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");random_device=function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort(\"random_device\")}}FS.createDevice(\"/dev\",\"random\",random_device);FS.createDevice(\"/dev\",\"urandom\",random_device);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:function(){FS.mkdir(\"/proc\");FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:function(){var node=FS.createNode(\"/proc/self\",\"fd\",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:function(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",\"r\");var stdout=FS.open(\"/dev/stdout\",\"w\");var stderr=FS.open(\"/dev/stderr\",\"w\")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message=\"FS error\"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]==\"/\")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent===\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data===\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,\"w\");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!==\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}if(!success)setErrNo(29);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(\"cp \"+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module[\"preloadPlugins\"].forEach(function(plugin){if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out(\"creating db\");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],\"readwrite\");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd,path){if(path[0]!==\"/\"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort(\"bad ioctl syscall \"+op)}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn(\"object already deleted: \"+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&&registeredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push(\"a\"+i)}var name=\"dynCall_\"+signature+\"_\"+rawFunction;var body=\"return function \"+name+\"(\"+args.join(\", \")+\") {\\n\";body+=\" return dynCall(rawFunction\"+(args.length?\", \":\"\")+args.join(\", \")+\");\\n\";body+=\"};\\n\";return new Function(\"dynCall\",\"rawFunction\",body)(dynCall,rawFunction)}var dc=Module[\"dynCall_\"+signature];var fp=makeDynCaller(dc);if(typeof fp!==\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return __emval_register(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf(\"unsigned\")!=-1;registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value===\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value===\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],\"parameter \"+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i<argCount-1;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;params.push(\"argType\"+i);args.push(types[1+i])}var functionName=makeLegalFunctionName(\"methodCaller_\"+signatureName);var functionBody=\"return function \"+functionName+\"(handle, name, destructors, args) {\\n\";var offset=0;for(var i=0;i<argCount-1;++i){functionBody+=\" var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args\"+(offset?\"+\"+offset:\"\")+\");\\n\";offset+=types[i+1][\"argPackAdvance\"]}functionBody+=\" var rv = handle[name](\"+argsList+\");\\n\";for(var i=0;i<argCount-1;++i){if(types[i+1][\"deleteObject\"]){functionBody+=\" argType\"+i+\".deleteObject(arg\"+i+\");\\n\"}}if(!retType.isVoid){functionBody+=\" return retType.toWireType(destructors, rv);\\n\"}functionBody+=\"};\\n\";params.push(functionBody);var invokerFunction=new_(Function,params).apply(null,args);return __emval_addMethodCaller(invokerFunction)}function __emval_get_property(handle,key){handle=requireHandle(handle);key=requireHandle(key);return __emval_register(handle[key])}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw\"longjmp\"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",\"_\":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8(\"GMT\",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"__cxa_allocate_exception\":___cxa_allocate_exception,\"__cxa_atexit\":___cxa_atexit,\"__cxa_begin_catch\":___cxa_begin_catch,\"__cxa_end_catch\":___cxa_end_catch,\"__cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"__cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"__cxa_find_matching_catch_4\":___cxa_find_matching_catch_4,\"__cxa_free_exception\":___cxa_free_exception,\"__cxa_rethrow\":___cxa_rethrow,\"__cxa_throw\":___cxa_throw,\"__cxa_uncaught_exceptions\":___cxa_uncaught_exceptions,\"__map_file\":___map_file,\"__resumeException\":___resumeException,\"__sys_fcntl64\":___sys_fcntl64,\"__sys_ioctl\":___sys_ioctl,\"__sys_munmap\":___sys_munmap,\"__sys_open\":___sys_open,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_function\":__embind_register_class_function,\"_embind_register_emval\":__embind_register_emval,\"_embind_register_float\":__embind_register_float,\"_embind_register_function\":__embind_register_function,\"_embind_register_integer\":__embind_register_integer,\"_embind_register_memory_view\":__embind_register_memory_view,\"_embind_register_std_string\":__embind_register_std_string,\"_embind_register_std_wstring\":__embind_register_std_wstring,\"_embind_register_void\":__embind_register_void,\"_emval_as\":__emval_as,\"_emval_call_method\":__emval_call_method,\"_emval_call_void_method\":__emval_call_void_method,\"_emval_decref\":__emval_decref,\"_emval_get_method_caller\":__emval_get_method_caller,\"_emval_get_property\":__emval_get_property,\"_emval_incref\":__emval_incref,\"_emval_new_cstring\":__emval_new_cstring,\"_emval_run_destructors\":__emval_run_destructors,\"_emval_set_property\":__emval_set_property,\"_emval_take_value\":__emval_take_value,\"abort\":_abort,\"clock\":_clock,\"emscripten_get_sbrk_ptr\":_emscripten_get_sbrk_ptr,\"emscripten_longjmp\":_emscripten_longjmp,\"emscripten_memcpy_big\":_emscripten_memcpy_big,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"getTempRet0\":_getTempRet0,\"invoke_di\":invoke_di,\"invoke_dii\":invoke_dii,\"invoke_diid\":invoke_diid,\"invoke_diii\":invoke_diii,\"invoke_diiii\":invoke_diiii,\"invoke_diiiii\":invoke_diiiii,\"invoke_fi\":invoke_fi,\"invoke_fif\":invoke_fif,\"invoke_fii\":invoke_fii,\"invoke_fiii\":invoke_fiii,\"invoke_fiiii\":invoke_fiiii,\"invoke_fiiiiiff\":invoke_fiiiiiff,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iid\":invoke_iid,\"invoke_iiddi\":invoke_iiddi,\"invoke_iiddii\":invoke_iiddii,\"invoke_iiddiii\":invoke_iiddiii,\"invoke_iif\":invoke_iif,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiid\":invoke_iiiiid,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_iiiiiid\":invoke_iiiiiid,\"invoke_iiiiiii\":invoke_iiiiiii,\"invoke_iiiiiiii\":invoke_iiiiiiii,\"invoke_iiiiiiiii\":invoke_iiiiiiiii,\"invoke_iiiiiiiiiddiii\":invoke_iiiiiiiiiddiii,\"invoke_iiiiiiiiii\":invoke_iiiiiiiiii,\"invoke_iiiiiiiiiii\":invoke_iiiiiiiiiii,\"invoke_iiiiiiiiiiii\":invoke_iiiiiiiiiiii,\"invoke_iiiiiiiiiiiii\":invoke_iiiiiiiiiiiii,\"invoke_iij\":invoke_iij,\"invoke_jiiii\":invoke_jiiii,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vid\":invoke_vid,\"invoke_vidi\":invoke_vidi,\"invoke_vidiiiiiii\":invoke_vidiiiiiii,\"invoke_vif\":invoke_vif,\"invoke_viffffff\":invoke_viffffff,\"invoke_viffi\":invoke_viffi,\"invoke_vifii\":invoke_vifii,\"invoke_vii\":invoke_vii,\"invoke_viid\":invoke_viid,\"invoke_viidddd\":invoke_viidddd,\"invoke_viidi\":invoke_viidi,\"invoke_viidii\":invoke_viidii,\"invoke_viidiiiiiii\":invoke_viidiiiiiii,\"invoke_viif\":invoke_viif,\"invoke_viifii\":invoke_viifii,\"invoke_viii\":invoke_viii,\"invoke_viiid\":invoke_viiid,\"invoke_viiidi\":invoke_viiidi,\"invoke_viiidiiiid\":invoke_viiidiiiid,\"invoke_viiiff\":invoke_viiiff,\"invoke_viiii\":invoke_viiii,\"invoke_viiiidd\":invoke_viiiidd,\"invoke_viiiiffffiii\":invoke_viiiiffffiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viiiiidi\":invoke_viiiiidi,\"invoke_viiiiii\":invoke_viiiiii,\"invoke_viiiiiid\":invoke_viiiiiid,\"invoke_viiiiiii\":invoke_viiiiiii,\"invoke_viiiiiiii\":invoke_viiiiiiii,\"invoke_viiiiiiiii\":invoke_viiiiiiiii,\"invoke_viiiiiiiiii\":invoke_viiiiiiiiii,\"invoke_viiiiiiiiiii\":invoke_viiiiiiiiiii,\"invoke_viiiiiiiiiiiiiii\":invoke_viiiiiiiiiiiiiii,\"llvm_eh_typeid_for\":_llvm_eh_typeid_for,\"localtime\":_localtime,\"memory\":wasmMemory,\"pthread_mutexattr_destroy\":_pthread_mutexattr_destroy,\"pthread_mutexattr_init\":_pthread_mutexattr_init,\"pthread_mutexattr_settype\":_pthread_mutexattr_settype,\"round\":_round,\"setTempRet0\":_setTempRet0,\"strftime_l\":_strftime_l,\"table\":wasmTable,\"time\":_time};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"__wasm_call_ctors\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var _realloc=Module[\"_realloc\"]=function(){return(_realloc=Module[\"_realloc\"]=Module[\"asm\"][\"realloc\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _testSetjmp=Module[\"_testSetjmp\"]=function(){return(_testSetjmp=Module[\"_testSetjmp\"]=Module[\"asm\"][\"testSetjmp\"]).apply(null,arguments)};var _saveSetjmp=Module[\"_saveSetjmp\"]=function(){return(_saveSetjmp=Module[\"_saveSetjmp\"]=Module[\"asm\"][\"saveSetjmp\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"__getTypeName\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"__embind_register_native_and_builtin_types\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"_get_tzname\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"_get_daylight\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"_get_timezone\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"setThrew\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return(__ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=Module[\"asm\"][\"_ZSt18uncaught_exceptionv\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"__cxa_can_catch\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"__cxa_is_pointer_type\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"dynCall_v\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"dynCall_vi\"]).apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return(dynCall_vii=Module[\"dynCall_vii\"]=Module[\"asm\"][\"dynCall_vii\"]).apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return(dynCall_viii=Module[\"dynCall_viii\"]=Module[\"asm\"][\"dynCall_viii\"]).apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return(dynCall_viiii=Module[\"dynCall_viiii\"]=Module[\"asm\"][\"dynCall_viiii\"]).apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return(dynCall_viiiii=Module[\"dynCall_viiiii\"]=Module[\"asm\"][\"dynCall_viiiii\"]).apply(null,arguments)};var dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=function(){return(dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=Module[\"asm\"][\"dynCall_viiiiii\"]).apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return(dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=function(){return(dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=function(){return(dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=function(){return(dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=Module[\"asm\"][\"dynCall_viiiiiid\"]).apply(null,arguments)};var dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=function(){return(dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=Module[\"asm\"][\"dynCall_viiiiidi\"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=function(){return(dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=Module[\"asm\"][\"dynCall_viiiiffffiii\"]).apply(null,arguments)};var dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=function(){return(dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=Module[\"asm\"][\"dynCall_viiiidd\"]).apply(null,arguments)};var dynCall_viiiff=Module[\"dynCall_viiiff\"]=function(){return(dynCall_viiiff=Module[\"dynCall_viiiff\"]=Module[\"asm\"][\"dynCall_viiiff\"]).apply(null,arguments)};var dynCall_viiid=Module[\"dynCall_viiid\"]=function(){return(dynCall_viiid=Module[\"dynCall_viiid\"]=Module[\"asm\"][\"dynCall_viiid\"]).apply(null,arguments)};var dynCall_viiidi=Module[\"dynCall_viiidi\"]=function(){return(dynCall_viiidi=Module[\"dynCall_viiidi\"]=Module[\"asm\"][\"dynCall_viiidi\"]).apply(null,arguments)};var dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=function(){return(dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=Module[\"asm\"][\"dynCall_viiidiiiid\"]).apply(null,arguments)};var dynCall_viif=Module[\"dynCall_viif\"]=function(){return(dynCall_viif=Module[\"dynCall_viif\"]=Module[\"asm\"][\"dynCall_viif\"]).apply(null,arguments)};var dynCall_viifii=Module[\"dynCall_viifii\"]=function(){return(dynCall_viifii=Module[\"dynCall_viifii\"]=Module[\"asm\"][\"dynCall_viifii\"]).apply(null,arguments)};var dynCall_viid=Module[\"dynCall_viid\"]=function(){return(dynCall_viid=Module[\"dynCall_viid\"]=Module[\"asm\"][\"dynCall_viid\"]).apply(null,arguments)};var dynCall_viidi=Module[\"dynCall_viidi\"]=function(){return(dynCall_viidi=Module[\"dynCall_viidi\"]=Module[\"asm\"][\"dynCall_viidi\"]).apply(null,arguments)};var dynCall_viidii=Module[\"dynCall_viidii\"]=function(){return(dynCall_viidii=Module[\"dynCall_viidii\"]=Module[\"asm\"][\"dynCall_viidii\"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=function(){return(dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=Module[\"asm\"][\"dynCall_viidiiiiiii\"]).apply(null,arguments)};var dynCall_viidddd=Module[\"dynCall_viidddd\"]=function(){return(dynCall_viidddd=Module[\"dynCall_viidddd\"]=Module[\"asm\"][\"dynCall_viidddd\"]).apply(null,arguments)};var dynCall_vif=Module[\"dynCall_vif\"]=function(){return(dynCall_vif=Module[\"dynCall_vif\"]=Module[\"asm\"][\"dynCall_vif\"]).apply(null,arguments)};var dynCall_vifii=Module[\"dynCall_vifii\"]=function(){return(dynCall_vifii=Module[\"dynCall_vifii\"]=Module[\"asm\"][\"dynCall_vifii\"]).apply(null,arguments)};var dynCall_viffi=Module[\"dynCall_viffi\"]=function(){return(dynCall_viffi=Module[\"dynCall_viffi\"]=Module[\"asm\"][\"dynCall_viffi\"]).apply(null,arguments)};var dynCall_viffffff=Module[\"dynCall_viffffff\"]=function(){return(dynCall_viffffff=Module[\"dynCall_viffffff\"]=Module[\"asm\"][\"dynCall_viffffff\"]).apply(null,arguments)};var dynCall_vid=Module[\"dynCall_vid\"]=function(){return(dynCall_vid=Module[\"dynCall_vid\"]=Module[\"asm\"][\"dynCall_vid\"]).apply(null,arguments)};var dynCall_vidi=Module[\"dynCall_vidi\"]=function(){return(dynCall_vidi=Module[\"dynCall_vidi\"]=Module[\"asm\"][\"dynCall_vidi\"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=function(){return(dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=Module[\"asm\"][\"dynCall_vidiiiiiii\"]).apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return(dynCall_i=Module[\"dynCall_i\"]=Module[\"asm\"][\"dynCall_i\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"dynCall_ii\"]).apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return(dynCall_iii=Module[\"dynCall_iii\"]=Module[\"asm\"][\"dynCall_iii\"]).apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return(dynCall_iiii=Module[\"dynCall_iiii\"]=Module[\"asm\"][\"dynCall_iiii\"]).apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return(dynCall_iiiii=Module[\"dynCall_iiiii\"]=Module[\"asm\"][\"dynCall_iiiii\"]).apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return(dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=Module[\"asm\"][\"dynCall_iiiiii\"]).apply(null,arguments)};var dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=function(){return(dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=function(){return(dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=function(){return(dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=function(){return(dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiddiii\"]).apply(null,arguments)};var dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=function(){return(dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=Module[\"asm\"][\"dynCall_iiiiiid\"]).apply(null,arguments)};var dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=function(){return(dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=Module[\"asm\"][\"dynCall_iiiiid\"]).apply(null,arguments)};var dynCall_iij=Module[\"dynCall_iij\"]=function(){return(dynCall_iij=Module[\"dynCall_iij\"]=Module[\"asm\"][\"dynCall_iij\"]).apply(null,arguments)};var dynCall_iif=Module[\"dynCall_iif\"]=function(){return(dynCall_iif=Module[\"dynCall_iif\"]=Module[\"asm\"][\"dynCall_iif\"]).apply(null,arguments)};var dynCall_iid=Module[\"dynCall_iid\"]=function(){return(dynCall_iid=Module[\"dynCall_iid\"]=Module[\"asm\"][\"dynCall_iid\"]).apply(null,arguments)};var dynCall_iiddi=Module[\"dynCall_iiddi\"]=function(){return(dynCall_iiddi=Module[\"dynCall_iiddi\"]=Module[\"asm\"][\"dynCall_iiddi\"]).apply(null,arguments)};var dynCall_iiddii=Module[\"dynCall_iiddii\"]=function(){return(dynCall_iiddii=Module[\"dynCall_iiddii\"]=Module[\"asm\"][\"dynCall_iiddii\"]).apply(null,arguments)};var dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=function(){return(dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=Module[\"asm\"][\"dynCall_iiddiii\"]).apply(null,arguments)};var dynCall_jiiii=Module[\"dynCall_jiiii\"]=function(){return(dynCall_jiiii=Module[\"dynCall_jiiii\"]=Module[\"asm\"][\"dynCall_jiiii\"]).apply(null,arguments)};var dynCall_fi=Module[\"dynCall_fi\"]=function(){return(dynCall_fi=Module[\"dynCall_fi\"]=Module[\"asm\"][\"dynCall_fi\"]).apply(null,arguments)};var dynCall_fii=Module[\"dynCall_fii\"]=function(){return(dynCall_fii=Module[\"dynCall_fii\"]=Module[\"asm\"][\"dynCall_fii\"]).apply(null,arguments)};var dynCall_fiii=Module[\"dynCall_fiii\"]=function(){return(dynCall_fiii=Module[\"dynCall_fiii\"]=Module[\"asm\"][\"dynCall_fiii\"]).apply(null,arguments)};var dynCall_fiiii=Module[\"dynCall_fiiii\"]=function(){return(dynCall_fiiii=Module[\"dynCall_fiiii\"]=Module[\"asm\"][\"dynCall_fiiii\"]).apply(null,arguments)};var dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=function(){return(dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=Module[\"asm\"][\"dynCall_fiiiiiff\"]).apply(null,arguments)};var dynCall_fif=Module[\"dynCall_fif\"]=function(){return(dynCall_fif=Module[\"dynCall_fif\"]=Module[\"asm\"][\"dynCall_fif\"]).apply(null,arguments)};var dynCall_di=Module[\"dynCall_di\"]=function(){return(dynCall_di=Module[\"dynCall_di\"]=Module[\"asm\"][\"dynCall_di\"]).apply(null,arguments)};var dynCall_dii=Module[\"dynCall_dii\"]=function(){return(dynCall_dii=Module[\"dynCall_dii\"]=Module[\"asm\"][\"dynCall_dii\"]).apply(null,arguments)};var dynCall_diii=Module[\"dynCall_diii\"]=function(){return(dynCall_diii=Module[\"dynCall_diii\"]=Module[\"asm\"][\"dynCall_diii\"]).apply(null,arguments)};var dynCall_diiii=Module[\"dynCall_diiii\"]=function(){return(dynCall_diiii=Module[\"dynCall_diiii\"]=Module[\"asm\"][\"dynCall_diiii\"]).apply(null,arguments)};var dynCall_diiiii=Module[\"dynCall_diiiii\"]=function(){return(dynCall_diiiii=Module[\"dynCall_diiiii\"]=Module[\"asm\"][\"dynCall_diiiii\"]).apply(null,arguments)};var dynCall_diid=Module[\"dynCall_diid\"]=function(){return(dynCall_diid=Module[\"dynCall_diid\"]=Module[\"asm\"][\"dynCall_diid\"]).apply(null,arguments)};var __growWasmMemory=Module[\"__growWasmMemory\"]=function(){return(__growWasmMemory=Module[\"__growWasmMemory\"]=Module[\"asm\"][\"__growWasmMemory\"]).apply(null,arguments)};var dynCall_iiidi=Module[\"dynCall_iiidi\"]=function(){return(dynCall_iiidi=Module[\"dynCall_iiidi\"]=Module[\"asm\"][\"dynCall_iiidi\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"dynCall_viijii\"]).apply(null,arguments)};var dynCall_viiddd=Module[\"dynCall_viiddd\"]=function(){return(dynCall_viiddd=Module[\"dynCall_viiddd\"]=Module[\"asm\"][\"dynCall_viiddd\"]).apply(null,arguments)};var dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=function(){return(dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=Module[\"asm\"][\"dynCall_viiiidi\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"dynCall_jiji\"]).apply(null,arguments)};var dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=function(){return(dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=Module[\"asm\"][\"dynCall_iidiiii\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"dynCall_iiiiij\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiijj\"]).apply(null,arguments)};var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=function(){return(dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiiijj\"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}noExitRuntime=true;run();"],"names":["key","Module","moduleOverrides","hasOwnProperty","read_","readAsync","readBinary","setWindowTitle","nodeFS","nodePath","arguments_","thisProgram","quit_","status","toThrow","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","window","importScripts","process","versions","node","scriptDirectory","locateFile","path","require","dirname","__dirname","filename","binary","ret","assert","buffer","Uint8Array","length","replace","slice","module","ex","ExitStatus","abort","read","f","readbuffer","data","scriptArgs","arguments","quit","print","console","log","warn","error","printErr","self","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","onload","onerror","title","out","bind","err","STACK_ALIGN","dynamicAlloc","size","HEAP32","DYNAMICTOP_PTR","getNativeTypeSize","type","bits","Number","warnOnce","text","shown","convertJsFunctionToWasm","func","sig","WebAssembly","Function","typeNames","i","j","d","parameters","results","push","typeSection","sigRet","sigParam","typeCodes","concat","bytes","Instance","e","exports","functionsInTableMap","freeTableIndexes","addFunctionWasm","table","wasmTable","WeakMap","item","get","set","has","pop","grow","RangeError","TypeError","wrapped","removeFunctionWasm","index","delete","funcWrappers","dynCall","ptr","args","apply","call","wasmBinary","noExitRuntime","wasmMemory","tempRet0","setTempRet0","value","getTempRet0","setValue","noSafe","charAt","HEAP8","HEAP16","tempI64","Math_abs","tempDouble","Math_min","Math_floor","Math_ceil","HEAPF32","HEAPF64","Table","initial","maximum","element","ABORT","EXITSTATUS","condition","getCFunc","ident","ccall","returnType","argTypes","opts","toC","string","str","len","stringToUTF8","stackAlloc","array","arr","writeArrayToMemory","cArgs","stack","converter","stackSave","UTF8ToString","Boolean","stackRestore","ALLOC_NONE","UTF8Decoder","TextDecoder","undefined","UTF8ArrayToString","heap","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u1","ch","u0","u2","String","fromCharCode","HEAPU8","stringToUTF8Array","outIdx","maxBytesToWrite","startIdx","u","charCodeAt","outPtr","lengthBytesUTF8","UTF16Decoder","UTF16ToString","maxIdx","HEAPU16","codeUnit","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","allocateUTF8","_malloc","writeAsciiToMemory","dontAddNull","HEAPU32","WASM_PAGE_SIZE","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","STACK_BASE","DYNAMIC_BASE","INITIAL_INITIAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","arg","Memory","byteLength","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","runtimeInitialized","runtimeExited","preRun","addOnPreRun","initRuntime","FS","init","initialized","TTY","preMain","ignorePermissions","exitRuntime","postRun","addOnPostRun","cb","unshift","Math","abs","ceil","floor","min","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","id","addRunDependency","removeRunDependency","clearInterval","what","RuntimeError","hasPrefix","prefix","prototype","startsWith","dataURIPrefix","isDataURI","fileURIPrefix","isFileURI","wasmBinaryFile","getBinary","getBinaryPromise","fetch","Promise","resolve","reject","credentials","then","catch","createWasm","info","env","asmLibraryArg","wasi_snapshot_preview1","receiveInstance","instance","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","instantiate","reason","instantiateStreaming","instantiateAsync","demangle","demangleAll","x","y","jsStackTrace","Error","toString","stackTrace","js","___cxa_allocate_exception","_atexit","___cxa_atexit","a0","a1","___wasm_call_ctors","___exception_infos","___exception_caught","___exception_addRef","refcount","___exception_deAdjust","adjusted","adj","___cxa_begin_catch","caught","__ZSt18uncaught_exceptionv","uncaught_exceptions","rethrown","___exception_last","___cxa_free_exception","_free","___exception_decRef","destructor","___cxa_end_catch","_setThrew","___cxa_find_matching_catch_2","thrown","throwntype","typeArray","Array","___cxa_is_pointer_type","___cxa_can_catch","___cxa_find_matching_catch_3","___cxa_find_matching_catch_4","___cxa_rethrow","___cxa_throw","___cxa_uncaught_exceptions","setErrNo","___errno_location","___map_file","pathname","___resumeException","PATH","splitPath","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","result","root","dir","basename","lastSlash","extname","paths","join2","l","r","PATH_FS","resolvedPath","resolvedAbsolute","cwd","relative","from","to","trim","start","end","fromParts","toParts","samePartsLength","outputParts","ttys","shutdown","register","dev","ops","input","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","pos","get_char","bytesRead","timestamp","Date","now","write","put_char","default_tty_ops","Buffer","alloc","readSync","stdin","fd","prompt","readline","intArrayFromString","val","default_tty1_ops","MEMFS","ops_table","mount","createNode","parent","name","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","file","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsRegularArray","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","max","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","newname","oldpath","position","canOwn","whence","address","prot","flags","allocated","byteOffset","mmapFlags","mounts","devices","streams","nextInode","nameTable","currentPath","trackingDelegate","tracking","openFlags","READ","WRITE","filesystems","syncFSRequests","handleFSError","errno","lookupPath","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","rs","r+","w","wx","xw","w+","wx+","xw+","a","ax","xa","a+","ax+","xa+","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","object","this","isRead","isWrite","isAppend","newStream","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","syncfs","populate","completed","doCallback","done","errored","forEach","pseudo","mountRoot","unmount","Object","keys","next","create","mkdir","mkdirTree","dirs","mkdev","newpath","old_path","new_path","old_dir","old_dirname","new_dirname","old_name","message","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","trackingFlags","ungotten","readFiles","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","cmd","readFile","encoding","writeFile","actualNumBytes","ArrayBuffer","isView","chdir","createDefaultDirectories","createDefaultDevices","crypto","randomBuffer","random_device","getRandomValues","crypto_module","createDevice","createSpecialDirectories","createStandardStreams","ensureErrnoError","setErrno","constructor","code","staticInit","fflush","getMode","canRead","canWrite","joinPath","forceRelative","absolutePath","base","standardizePath","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createFolder","createPath","reverse","part","createFile","properties","createDataFile","createLink","target","forceLoadFile","obj","isDevice","isFolder","success","createLazyFile","LazyUint8Array","lengthKnown","chunks","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","cacheLength","datalength","getResponseHeader","hasByteServing","header","usesGzip","lazyArray","setRequestHeader","overrideMimeType","doXHR","_length","_chunkSize","defineProperties","fn","createPreloadedFile","dontCreateFile","preFinish","Browser","fullname","dep","processData","byteArray","finish","handled","plugin","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","db","getRequest","SYSCALLS","mappings","DEFAULT_POLLMASK","umask","calculateAt","dirfd","dirstream","doStat","getTime","doMsync","addr","doMkdir","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doDup","suggestFD","suggest","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","get64","low","high","___sys_fcntl64","___sys_ioctl","op","argp","syscallMunmap","malloc","___sys_munmap","___sys_open","getShiftFromSize","embind_init_charCodes","codes","embind_charCodes","readLatin1String","c","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","createNamedFunction","body","extendError","baseErrorType","errorName","errorClass","BindingError","throwBindingError","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","unregisteredTypes","registered","dt","rawType","registeredInstance","options","ignoreDuplicateRegistrations","__embind_register_bool","trueValue","falseValue","fromWireType","wt","toWireType","destructors","o","argPackAdvance","readValueFromPointer","pointer","destructorFunction","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","shallowCopyInternalPointer","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType","throwInstanceAlreadyDeleted","finalizationGroup","detachFinalizer","handle","runDestructor","rawDestructor","releaseClassHandle","attachFinalizer","FinalizationGroup","iter","unregister","ClassHandle_clone","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","delayFunction","deletionQueue","flushPendingDeletes","ClassHandle_deleteLater","init_ClassHandle","registeredPointers","ensureOverloadTable","proto","methodName","humanName","prevFunc","overloadTable","argCount","exposePublicSymbol","numArguments","RegisteredClass","instancePrototype","getActualType","downcast","pureVirtualFunctions","upcastPointer","ptrClass","desiredClass","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","isSmartPointer","rawConstructor","isConst","clonedHandle","sharingPolicy","rawShare","__emval_register","nonConstNoSmartPtrRawPointerToWireType","simpleReadValueFromPointer","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","downcastPointer","rv","getInheritedInstanceCount","registeredInstances","getLiveInheritedInstances","k","setDelayFunction","init_embind","getBasestPointer","class_","getInheritedInstance","makeClassHandle","record","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","pointeeType","actualType","registeredPointerRecord","toType","constPointerType","pointerType","dp","init_RegisteredPointer","RegisteredPointer","replacePublicSymbol","embind__requireFunction","signature","rawFunction","fp","makeDynCaller","UnboundTypeError","getTypeName","___getTypeName","throwUnboundTypeError","types","unboundTypes","seen","visit","map","__embind_register_class","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","new_","argumentList","dummy","runDestructors","del","craftInvokerFunction","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","heap32VectorToArray","firstElement","__embind_register_class_function","rawClassType","rawArgTypesAddr","invokerSignature","rawInvoker","context","isPureVirtual","rawArgTypes","unboundTypesHandler","method","className","memberFunction","emval_free_list","emval_handle_array","__emval_decref","count_emval_handles","get_first_emval","init_emval","__embind_register_emval","v","t","floatReadValueFromPointer","__embind_register_float","__embind_register_function","invokerArgsArray","integerReadValueFromPointer","signed","__embind_register_integer","primitiveType","minRange","maxRange","bitshift","isUnsignedType","__embind_register_memory_view","dataTypeIndex","TA","decodeMemoryView","__embind_register_std_string","stdStringIsUTF8","decodeStartPtr","stringSegment","currentBytePtr","valueIsOfTypeString","Uint8ClampedArray","charCode","__embind_register_std_wstring","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","__embind_register_void","isVoid","requireHandle","requireRegisteredType","impl","__emval_as","destructorsRef","rd","__emval_allocateDestructors","emval_symbols","getStringOrSymbol","symbol","emval_methodCallers","__emval_call_method","caller","__emval_call_void_method","__emval_addMethodCaller","__emval_lookupTypes","__emval_get_method_caller","retType","signatureName","params","functionBody","__emval_get_property","__emval_incref","__emval_new_cstring","__emval_run_destructors","__emval_set_property","__emval_take_value","argv","_abort","_clock","_emscripten_get_sbrk_ptr","_longjmp","_emscripten_longjmp","_emscripten_memcpy_big","dest","num","copyWithin","abortOnCannotGrowMemory","requestedSize","_emscripten_resize_heap","ENV","__getExecutableName","getEnvStrings","strings","USER","LOGNAME","PWD","HOME","LANG","navigator","languages","_","_environ_get","__environ","environ_buf","bufSize","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","_fd_seek","offset_low","offset_high","newOffset","DOUBLE_LIMIT","_fd_write","_getTempRet0","_llvm_eh_typeid_for","___tm_current","___tm_timezone","_tzset","winter","summer","winterNamePtr","summerNamePtr","extractZone","date","match","toTimeString","called","__get_timezone","getTimezoneOffset","currentYear","getFullYear","__get_daylight","winterName","summerName","__get_tzname","_localtime_r","time","tmPtr","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","yday","summerOffset","winterOffset","dst","zonePtr","_localtime","_pthread_mutexattr_destroy","_pthread_mutexattr_init","_pthread_mutexattr_settype","_round","_setTempRet0","$i","__isLeapYear","year","__arraySum","sum","__MONTH_DAYS_LEAP","__MONTH_DAYS_REGULAR","__addDays","days","newDate","leap","currentMonth","daysInCurrentMonth","setDate","setMonth","setFullYear","_strftime","s","maxsize","format","tm","tm_zone","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","tm_isdst","tm_gmtoff","pattern","EXPANSION_RULES_1","%c","%D","%F","%h","%r","%R","%T","%x","%X","%Ec","%EC","%Ex","%EX","%Ey","%EY","%Od","%Oe","%OH","%OI","%Om","%OM","%OS","%Ou","%OU","%OV","%Ow","%OW","%Oy","rule","RegExp","WEEKDAYS","MONTHS","leadingSomething","digits","character","leadingNulls","compareByDay","date1","date2","sgn","compare","getFirstWeekStartDate","janFourth","getWeekBasedYear","thisDate","janFourthThisYear","janFourthNextYear","firstWeekStartThisYear","firstWeekStartNextYear","EXPANSION_RULES_2","%a","substring","%A","%b","%B","%C","%d","%e","%g","%G","%H","%I","twelveHour","%j","%m","%M","%n","%p","%S","%t","%u","%U","janFirst","firstSunday","endDate","februaryFirstUntilEndMonth","%V","daysDifference","%w","%W","firstMonday","%y","%Y","%z","off","ahead","%Z","%%","_strftime_l","_time","readMode","writeMode","ASSERTIONS","stringy","u8array","numBytesWritten","calledRun","__cxa_allocate_exception","__cxa_atexit","__cxa_begin_catch","__cxa_end_catch","__cxa_find_matching_catch_2","__cxa_find_matching_catch_3","__cxa_find_matching_catch_4","__cxa_free_exception","__cxa_rethrow","__cxa_throw","__cxa_uncaught_exceptions","__map_file","__resumeException","__sys_fcntl64","__sys_ioctl","__sys_munmap","__sys_open","_embind_register_bool","_embind_register_class","_embind_register_class_function","_embind_register_emval","_embind_register_float","_embind_register_function","_embind_register_integer","_embind_register_memory_view","_embind_register_std_string","_embind_register_std_wstring","_embind_register_void","_emval_as","_emval_call_method","_emval_call_void_method","_emval_decref","_emval_get_method_caller","_emval_get_property","_emval_incref","_emval_new_cstring","_emval_run_destructors","_emval_set_property","_emval_take_value","clock","emscripten_get_sbrk_ptr","emscripten_longjmp","emscripten_memcpy_big","emscripten_resize_heap","environ_get","environ_sizes_get","fd_close","fd_fdstat_get","fd_read","fd_seek","fd_write","invoke_di","invoke_dii","invoke_diid","invoke_diii","invoke_diiii","invoke_diiiii","invoke_fi","invoke_fif","invoke_fii","invoke_fiii","invoke_fiiii","invoke_fiiiiiff","invoke_i","invoke_ii","invoke_iid","invoke_iiddi","invoke_iiddii","invoke_iiddiii","invoke_iif","invoke_iii","invoke_iiii","invoke_iiiii","invoke_iiiiid","invoke_iiiiii","invoke_iiiiiid","invoke_iiiiiii","invoke_iiiiiiii","invoke_iiiiiiiii","invoke_iiiiiiiiiddiii","invoke_iiiiiiiiii","invoke_iiiiiiiiiii","invoke_iiiiiiiiiiii","invoke_iiiiiiiiiiiii","invoke_iij","invoke_jiiii","invoke_v","invoke_vi","invoke_vid","invoke_vidi","invoke_vidiiiiiii","invoke_vif","invoke_viffffff","invoke_viffi","invoke_vifii","invoke_vii","invoke_viid","invoke_viidddd","invoke_viidi","invoke_viidii","invoke_viidiiiiiii","invoke_viif","invoke_viifii","invoke_viii","invoke_viiid","invoke_viiidi","invoke_viiidiiiid","invoke_viiiff","invoke_viiii","invoke_viiiidd","invoke_viiiiffffiii","invoke_viiiii","invoke_viiiiidi","invoke_viiiiii","invoke_viiiiiid","invoke_viiiiiii","invoke_viiiiiiii","invoke_viiiiiiiii","invoke_viiiiiiiiii","invoke_viiiiiiiiiii","invoke_viiiiiiiiiiiiiii","llvm_eh_typeid_for","localtime","memory","pthread_mutexattr_destroy","pthread_mutexattr_init","pthread_mutexattr_settype","round","strftime_l","asm","_realloc","_testSetjmp","_saveSetjmp","___embind_register_native_and_builtin_types","dynCall_v","dynCall_vi","dynCall_vii","dynCall_viii","dynCall_viiii","dynCall_viiiii","dynCall_viiiiii","dynCall_viiiiiii","dynCall_viiiiiiii","dynCall_viiiiiiiii","dynCall_viiiiiiiiii","dynCall_viiiiiiiiiii","dynCall_viiiiiiiiiiiiiii","dynCall_viiiiiid","dynCall_viiiiidi","dynCall_viiiiffffiii","dynCall_viiiidd","dynCall_viiiff","dynCall_viiid","dynCall_viiidi","dynCall_viiidiiiid","dynCall_viif","dynCall_viifii","dynCall_viid","dynCall_viidi","dynCall_viidii","dynCall_viidiiiiiii","dynCall_viidddd","dynCall_vif","dynCall_vifii","dynCall_viffi","dynCall_viffffff","dynCall_vid","dynCall_vidi","dynCall_vidiiiiiii","dynCall_i","dynCall_ii","dynCall_iii","dynCall_iiii","dynCall_iiiii","dynCall_iiiiii","dynCall_iiiiiii","dynCall_iiiiiiii","dynCall_iiiiiiiii","dynCall_iiiiiiiiii","dynCall_iiiiiiiiiii","dynCall_iiiiiiiiiiii","dynCall_iiiiiiiiiiiii","dynCall_iiiiiiiiiddiii","dynCall_iiiiiid","dynCall_iiiiid","dynCall_iij","dynCall_iif","dynCall_iid","dynCall_iiddi","dynCall_iiddii","dynCall_iiddiii","dynCall_jiiii","dynCall_fi","dynCall_fii","dynCall_fiii","dynCall_fiiii","dynCall_fiiiiiff","dynCall_fif","dynCall_di","dynCall_dii","dynCall_diii","dynCall_diiii","dynCall_diiiii","dynCall_diid","__growWasmMemory","dynCall_iiidi","dynCall_viijii","dynCall_viiddd","dynCall_viiiidi","dynCall_iiiiiiiiiiiiiiiii","dynCall_iiiiiiiiiiiiiiiiii","dynCall_jiji","dynCall_iidiiii","dynCall_iiiiij","dynCall_iiiiijj","dynCall_iiiiiijj","a2","a3","a4","sp","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","run","doRun","setTimeout","runCaller"],"mappings":"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"} \ No newline at end of file
diff --git a/docs/js/RDKit_minimal.wasm b/docs/js/RDKit_minimal.wasm
new file mode 100644
index 0000000..8a5a73b
--- /dev/null
+++ b/docs/js/RDKit_minimal.wasm
Binary files differ
diff --git a/docs/js/main.js b/docs/js/main.js
new file mode 100644
index 0000000..3ed03b5
--- /dev/null
+++ b/docs/js/main.js
@@ -0,0 +1,8910 @@
+// import Popper
+/**!
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
+ * @version 1.16.1
+ * @license
+ * Copyright (c) 2016 Federico Zivolo and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global.Popper = factory());
+}(this, (function () { 'use strict';
+
+var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';
+
+var timeoutDuration = function () {
+ var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
+ for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
+ if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
+ return 1;
+ }
+ }
+ return 0;
+}();
+
+function microtaskDebounce(fn) {
+ var called = false;
+ return function () {
+ if (called) {
+ return;
+ }
+ called = true;
+ window.Promise.resolve().then(function () {
+ called = false;
+ fn();
+ });
+ };
+}
+
+function taskDebounce(fn) {
+ var scheduled = false;
+ return function () {
+ if (!scheduled) {
+ scheduled = true;
+ setTimeout(function () {
+ scheduled = false;
+ fn();
+ }, timeoutDuration);
+ }
+ };
+}
+
+var supportsMicroTasks = isBrowser && window.Promise;
+
+/**
+* Create a debounced version of a method, that's asynchronously deferred
+* but called in the minimum time possible.
+*
+* @method
+* @memberof Popper.Utils
+* @argument {Function} fn
+* @returns {Function}
+*/
+var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
+
+/**
+ * Check if the given variable is a function
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Any} functionToCheck - variable to check
+ * @returns {Boolean} answer to: is a function?
+ */
+function isFunction(functionToCheck) {
+ var getType = {};
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+}
+
+/**
+ * Get CSS computed property of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Eement} element
+ * @argument {String} property
+ */
+function getStyleComputedProperty(element, property) {
+ if (element.nodeType !== 1) {
+ return [];
+ }
+ // NOTE: 1 DOM access here
+ var window = element.ownerDocument.defaultView;
+ var css = window.getComputedStyle(element, null);
+ return property ? css[property] : css;
+}
+
+/**
+ * Returns the parentNode or the host of the element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} parent
+ */
+function getParentNode(element) {
+ if (element.nodeName === 'HTML') {
+ return element;
+ }
+ return element.parentNode || element.host;
+}
+
+/**
+ * Returns the scrolling parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} scroll parent
+ */
+function getScrollParent(element) {
+ // Return body, `getScroll` will take care to get the correct `scrollTop` from it
+ if (!element) {
+ return document.body;
+ }
+
+ switch (element.nodeName) {
+ case 'HTML':
+ case 'BODY':
+ return element.ownerDocument.body;
+ case '#document':
+ return element.body;
+ }
+
+ // Firefox want us to check `-x` and `-y` variations as well
+
+ var _getStyleComputedProp = getStyleComputedProperty(element),
+ overflow = _getStyleComputedProp.overflow,
+ overflowX = _getStyleComputedProp.overflowX,
+ overflowY = _getStyleComputedProp.overflowY;
+
+ if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
+ return element;
+ }
+
+ return getScrollParent(getParentNode(element));
+}
+
+/**
+ * Returns the reference node of the reference object, or the reference object itself.
+ * @method
+ * @memberof Popper.Utils
+ * @param {Element|Object} reference - the reference element (the popper will be relative to this)
+ * @returns {Element} parent
+ */
+function getReferenceNode(reference) {
+ return reference && reference.referenceNode ? reference.referenceNode : reference;
+}
+
+var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
+var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
+
+/**
+ * Determines if the browser is Internet Explorer
+ * @method
+ * @memberof Popper.Utils
+ * @param {Number} version to check
+ * @returns {Boolean} isIE
+ */
+function isIE(version) {
+ if (version === 11) {
+ return isIE11;
+ }
+ if (version === 10) {
+ return isIE10;
+ }
+ return isIE11 || isIE10;
+}
+
+/**
+ * Returns the offset parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} offset parent
+ */
+function getOffsetParent(element) {
+ if (!element) {
+ return document.documentElement;
+ }
+
+ var noOffsetParent = isIE(10) ? document.body : null;
+
+ // NOTE: 1 DOM access here
+ var offsetParent = element.offsetParent || null;
+ // Skip hidden elements which don't have an offsetParent
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
+ offsetParent = (element = element.nextElementSibling).offsetParent;
+ }
+
+ var nodeName = offsetParent && offsetParent.nodeName;
+
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
+ return element ? element.ownerDocument.documentElement : document.documentElement;
+ }
+
+ // .offsetParent will return the closest TH, TD or TABLE in case
+ // no offsetParent is present, I hate this job...
+ if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
+ return getOffsetParent(offsetParent);
+ }
+
+ return offsetParent;
+}
+
+function isOffsetContainer(element) {
+ var nodeName = element.nodeName;
+
+ if (nodeName === 'BODY') {
+ return false;
+ }
+ return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
+}
+
+/**
+ * Finds the root node (document, shadowDOM root) of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} node
+ * @returns {Element} root node
+ */
+function getRoot(node) {
+ if (node.parentNode !== null) {
+ return getRoot(node.parentNode);
+ }
+
+ return node;
+}
+
+/**
+ * Finds the offset parent common to the two provided nodes
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element1
+ * @argument {Element} element2
+ * @returns {Element} common offset parent
+ */
+function findCommonOffsetParent(element1, element2) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
+ return document.documentElement;
+ }
+
+ // Here we make sure to give as "start" the element that comes first in the DOM
+ var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
+ var start = order ? element1 : element2;
+ var end = order ? element2 : element1;
+
+ // Get common ancestor container
+ var range = document.createRange();
+ range.setStart(start, 0);
+ range.setEnd(end, 0);
+ var commonAncestorContainer = range.commonAncestorContainer;
+
+ // Both nodes are inside #document
+
+ if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
+ if (isOffsetContainer(commonAncestorContainer)) {
+ return commonAncestorContainer;
+ }
+
+ return getOffsetParent(commonAncestorContainer);
+ }
+
+ // one of the nodes is inside shadowDOM, find which one
+ var element1root = getRoot(element1);
+ if (element1root.host) {
+ return findCommonOffsetParent(element1root.host, element2);
+ } else {
+ return findCommonOffsetParent(element1, getRoot(element2).host);
+ }
+}
+
+/**
+ * Gets the scroll value of the given element in the given side (top and left)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {String} side `top` or `left`
+ * @returns {number} amount of scrolled pixels
+ */
+function getScroll(element) {
+ var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
+
+ var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
+ var nodeName = element.nodeName;
+
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ var html = element.ownerDocument.documentElement;
+ var scrollingElement = element.ownerDocument.scrollingElement || html;
+ return scrollingElement[upperSide];
+ }
+
+ return element[upperSide];
+}
+
+/*
+ * Sum or subtract the element scroll values (left and top) from a given rect object
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} rect - Rect object you want to change
+ * @param {HTMLElement} element - The element from the function reads the scroll values
+ * @param {Boolean} subtract - set to true if you want to subtract the scroll values
+ * @return {Object} rect - The modifier rect object
+ */
+function includeScroll(rect, element) {
+ var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ var modifier = subtract ? -1 : 1;
+ rect.top += scrollTop * modifier;
+ rect.bottom += scrollTop * modifier;
+ rect.left += scrollLeft * modifier;
+ rect.right += scrollLeft * modifier;
+ return rect;
+}
+
+/*
+ * Helper to detect borders of a given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {CSSStyleDeclaration} styles
+ * Result of `getStyleComputedProperty` on the given element
+ * @param {String} axis - `x` or `y`
+ * @return {number} borders - The borders size of the given axis
+ */
+
+function getBordersSize(styles, axis) {
+ var sideA = axis === 'x' ? 'Left' : 'Top';
+ var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
+
+ return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
+}
+
+function getSize(axis, body, html, computedStyle) {
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
+}
+
+function getWindowSizes(document) {
+ var body = document.body;
+ var html = document.documentElement;
+ var computedStyle = isIE(10) && getComputedStyle(html);
+
+ return {
+ height: getSize('Height', body, html, computedStyle),
+ width: getSize('Width', body, html, computedStyle)
+ };
+}
+
+var classCallCheck = function (instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+};
+
+var createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+}();
+
+
+
+
+
+var defineProperty = function (obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+};
+
+var _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+};
+
+/**
+ * Given element offsets, generate an output similar to getBoundingClientRect
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} offsets
+ * @returns {Object} ClientRect like output
+ */
+function getClientRect(offsets) {
+ return _extends({}, offsets, {
+ right: offsets.left + offsets.width,
+ bottom: offsets.top + offsets.height
+ });
+}
+
+/**
+ * Get bounding client rect of given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} element
+ * @return {Object} client rect
+ */
+function getBoundingClientRect(element) {
+ var rect = {};
+
+ // IE10 10 FIX: Please, don't ask, the element isn't
+ // considered in DOM in some circumstances...
+ // This isn't reproducible in IE10 compatibility mode of IE11
+ try {
+ if (isIE(10)) {
+ rect = element.getBoundingClientRect();
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ rect.top += scrollTop;
+ rect.left += scrollLeft;
+ rect.bottom += scrollTop;
+ rect.right += scrollLeft;
+ } else {
+ rect = element.getBoundingClientRect();
+ }
+ } catch (e) {}
+
+ var result = {
+ left: rect.left,
+ top: rect.top,
+ width: rect.right - rect.left,
+ height: rect.bottom - rect.top
+ };
+
+ // subtract scrollbar size from sizes
+ var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
+ var width = sizes.width || element.clientWidth || result.width;
+ var height = sizes.height || element.clientHeight || result.height;
+
+ var horizScrollbar = element.offsetWidth - width;
+ var vertScrollbar = element.offsetHeight - height;
+
+ // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
+ // we make this check conditional for performance reasons
+ if (horizScrollbar || vertScrollbar) {
+ var styles = getStyleComputedProperty(element);
+ horizScrollbar -= getBordersSize(styles, 'x');
+ vertScrollbar -= getBordersSize(styles, 'y');
+
+ result.width -= horizScrollbar;
+ result.height -= vertScrollbar;
+ }
+
+ return getClientRect(result);
+}
+
+function getOffsetRectRelativeToArbitraryNode(children, parent) {
+ var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var isIE10 = isIE(10);
+ var isHTML = parent.nodeName === 'HTML';
+ var childrenRect = getBoundingClientRect(children);
+ var parentRect = getBoundingClientRect(parent);
+ var scrollParent = getScrollParent(children);
+
+ var styles = getStyleComputedProperty(parent);
+ var borderTopWidth = parseFloat(styles.borderTopWidth);
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth);
+
+ // In cases where the parent is fixed, we must ignore negative scroll in offset calc
+ if (fixedPosition && isHTML) {
+ parentRect.top = Math.max(parentRect.top, 0);
+ parentRect.left = Math.max(parentRect.left, 0);
+ }
+ var offsets = getClientRect({
+ top: childrenRect.top - parentRect.top - borderTopWidth,
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
+ width: childrenRect.width,
+ height: childrenRect.height
+ });
+ offsets.marginTop = 0;
+ offsets.marginLeft = 0;
+
+ // Subtract margins of documentElement in case it's being used as parent
+ // we do this only on HTML because it's the only element that behaves
+ // differently when margins are applied to it. The margins are included in
+ // the box of the documentElement, in the other cases not.
+ if (!isIE10 && isHTML) {
+ var marginTop = parseFloat(styles.marginTop);
+ var marginLeft = parseFloat(styles.marginLeft);
+
+ offsets.top -= borderTopWidth - marginTop;
+ offsets.bottom -= borderTopWidth - marginTop;
+ offsets.left -= borderLeftWidth - marginLeft;
+ offsets.right -= borderLeftWidth - marginLeft;
+
+ // Attach marginTop and marginLeft because in some circumstances we may need them
+ offsets.marginTop = marginTop;
+ offsets.marginLeft = marginLeft;
+ }
+
+ if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
+ offsets = includeScroll(offsets, parent);
+ }
+
+ return offsets;
+}
+
+function getViewportOffsetRectRelativeToArtbitraryNode(element) {
+ var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ var html = element.ownerDocument.documentElement;
+ var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
+ var width = Math.max(html.clientWidth, window.innerWidth || 0);
+ var height = Math.max(html.clientHeight, window.innerHeight || 0);
+
+ var scrollTop = !excludeScroll ? getScroll(html) : 0;
+ var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
+
+ var offset = {
+ top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
+ left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
+ width: width,
+ height: height
+ };
+
+ return getClientRect(offset);
+}
+
+/**
+ * Check if the given element is fixed or is inside a fixed parent
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {Element} customContainer
+ * @returns {Boolean} answer to "isFixed?"
+ */
+function isFixed(element) {
+ var nodeName = element.nodeName;
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ return false;
+ }
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
+ return true;
+ }
+ var parentNode = getParentNode(element);
+ if (!parentNode) {
+ return false;
+ }
+ return isFixed(parentNode);
+}
+
+/**
+ * Finds the first parent of an element that has a transformed property defined
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} first transformed parent or documentElement
+ */
+
+function getFixedPositionOffsetParent(element) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element || !element.parentElement || isIE()) {
+ return document.documentElement;
+ }
+ var el = element.parentElement;
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
+ el = el.parentElement;
+ }
+ return el || document.documentElement;
+}
+
+/**
+ * Computed the boundaries limits and return them
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} popper
+ * @param {HTMLElement} reference
+ * @param {number} padding
+ * @param {HTMLElement} boundariesElement - Element used to define the boundaries
+ * @param {Boolean} fixedPosition - Is in fixed position mode
+ * @returns {Object} Coordinates of the boundaries
+ */
+function getBoundaries(popper, reference, padding, boundariesElement) {
+ var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
+
+ // NOTE: 1 DOM access here
+
+ var boundaries = { top: 0, left: 0 };
+ var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
+
+ // Handle viewport case
+ if (boundariesElement === 'viewport') {
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
+ } else {
+ // Handle other cases based on DOM element used as boundaries
+ var boundariesNode = void 0;
+ if (boundariesElement === 'scrollParent') {
+ boundariesNode = getScrollParent(getParentNode(reference));
+ if (boundariesNode.nodeName === 'BODY') {
+ boundariesNode = popper.ownerDocument.documentElement;
+ }
+ } else if (boundariesElement === 'window') {
+ boundariesNode = popper.ownerDocument.documentElement;
+ } else {
+ boundariesNode = boundariesElement;
+ }
+
+ var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
+
+ // In case of HTML, we need a different computation
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
+ var _getWindowSizes = getWindowSizes(popper.ownerDocument),
+ height = _getWindowSizes.height,
+ width = _getWindowSizes.width;
+
+ boundaries.top += offsets.top - offsets.marginTop;
+ boundaries.bottom = height + offsets.top;
+ boundaries.left += offsets.left - offsets.marginLeft;
+ boundaries.right = width + offsets.left;
+ } else {
+ // for all the other DOM elements, this one is good
+ boundaries = offsets;
+ }
+ }
+
+ // Add paddings
+ padding = padding || 0;
+ var isPaddingNumber = typeof padding === 'number';
+ boundaries.left += isPaddingNumber ? padding : padding.left || 0;
+ boundaries.top += isPaddingNumber ? padding : padding.top || 0;
+ boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
+ boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
+
+ return boundaries;
+}
+
+function getArea(_ref) {
+ var width = _ref.width,
+ height = _ref.height;
+
+ return width * height;
+}
+
+/**
+ * Utility used to transform the `auto` placement to the placement with more
+ * available space.
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
+ var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
+
+ if (placement.indexOf('auto') === -1) {
+ return placement;
+ }
+
+ var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
+
+ var rects = {
+ top: {
+ width: boundaries.width,
+ height: refRect.top - boundaries.top
+ },
+ right: {
+ width: boundaries.right - refRect.right,
+ height: boundaries.height
+ },
+ bottom: {
+ width: boundaries.width,
+ height: boundaries.bottom - refRect.bottom
+ },
+ left: {
+ width: refRect.left - boundaries.left,
+ height: boundaries.height
+ }
+ };
+
+ var sortedAreas = Object.keys(rects).map(function (key) {
+ return _extends({
+ key: key
+ }, rects[key], {
+ area: getArea(rects[key])
+ });
+ }).sort(function (a, b) {
+ return b.area - a.area;
+ });
+
+ var filteredAreas = sortedAreas.filter(function (_ref2) {
+ var width = _ref2.width,
+ height = _ref2.height;
+ return width >= popper.clientWidth && height >= popper.clientHeight;
+ });
+
+ var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
+
+ var variation = placement.split('-')[1];
+
+ return computedPlacement + (variation ? '-' + variation : '');
+}
+
+/**
+ * Get offsets to the reference element
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} state
+ * @param {Element} popper - the popper element
+ * @param {Element} reference - the reference element (the popper will be relative to this)
+ * @param {Element} fixedPosition - is in fixed position mode
+ * @returns {Object} An object containing the offsets which will be applied to the popper
+ */
+function getReferenceOffsets(state, popper, reference) {
+ var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
+
+ var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));
+ return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
+}
+
+/**
+ * Get the outer sizes of the given element (offset size + margins)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Object} object containing width and height properties
+ */
+function getOuterSizes(element) {
+ var window = element.ownerDocument.defaultView;
+ var styles = window.getComputedStyle(element);
+ var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
+ var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
+ var result = {
+ width: element.offsetWidth + y,
+ height: element.offsetHeight + x
+ };
+ return result;
+}
+
+/**
+ * Get the opposite placement of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement
+ * @returns {String} flipped placement
+ */
+function getOppositePlacement(placement) {
+ var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
+ return hash[matched];
+ });
+}
+
+/**
+ * Get offsets to the popper
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} position - CSS position the Popper will get applied
+ * @param {HTMLElement} popper - the popper element
+ * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
+ * @param {String} placement - one of the valid placement options
+ * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
+ */
+function getPopperOffsets(popper, referenceOffsets, placement) {
+ placement = placement.split('-')[0];
+
+ // Get popper node sizes
+ var popperRect = getOuterSizes(popper);
+
+ // Add position, width and height to our offsets object
+ var popperOffsets = {
+ width: popperRect.width,
+ height: popperRect.height
+ };
+
+ // depending by the popper placement we have to compute its offsets slightly differently
+ var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
+ var mainSide = isHoriz ? 'top' : 'left';
+ var secondarySide = isHoriz ? 'left' : 'top';
+ var measurement = isHoriz ? 'height' : 'width';
+ var secondaryMeasurement = !isHoriz ? 'height' : 'width';
+
+ popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
+ if (placement === secondarySide) {
+ popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
+ } else {
+ popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
+ }
+
+ return popperOffsets;
+}
+
+/**
+ * Mimics the `find` method of Array
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+function find(arr, check) {
+ // use native find if supported
+ if (Array.prototype.find) {
+ return arr.find(check);
+ }
+
+ // use `filter` to obtain the same behavior of `find`
+ return arr.filter(check)[0];
+}
+
+/**
+ * Return the index of the matching object
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+function findIndex(arr, prop, value) {
+ // use native findIndex if supported
+ if (Array.prototype.findIndex) {
+ return arr.findIndex(function (cur) {
+ return cur[prop] === value;
+ });
+ }
+
+ // use `find` + `indexOf` if `findIndex` isn't supported
+ var match = find(arr, function (obj) {
+ return obj[prop] === value;
+ });
+ return arr.indexOf(match);
+}
+
+/**
+ * Loop trough the list of modifiers and run them in order,
+ * each of them will then edit the data object.
+ * @method
+ * @memberof Popper.Utils
+ * @param {dataObject} data
+ * @param {Array} modifiers
+ * @param {String} ends - Optional modifier name used as stopper
+ * @returns {dataObject}
+ */
+function runModifiers(modifiers, data, ends) {
+ var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
+
+ modifiersToRun.forEach(function (modifier) {
+ if (modifier['function']) {
+ // eslint-disable-line dot-notation
+ console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
+ }
+ var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
+ if (modifier.enabled && isFunction(fn)) {
+ // Add properties to offsets to make them a complete clientRect object
+ // we do this before each modifier to make sure the previous one doesn't
+ // mess with these values
+ data.offsets.popper = getClientRect(data.offsets.popper);
+ data.offsets.reference = getClientRect(data.offsets.reference);
+
+ data = fn(data, modifier);
+ }
+ });
+
+ return data;
+}
+
+/**
+ * Updates the position of the popper, computing the new offsets and applying
+ * the new style.<br />
+ * Prefer `scheduleUpdate` over `update` because of performance reasons.
+ * @method
+ * @memberof Popper
+ */
+function update() {
+ // if popper is destroyed, don't perform any further update
+ if (this.state.isDestroyed) {
+ return;
+ }
+
+ var data = {
+ instance: this,
+ styles: {},
+ arrowStyles: {},
+ attributes: {},
+ flipped: false,
+ offsets: {}
+ };
+
+ // compute reference element offsets
+ data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
+
+ // store the computed placement inside `originalPlacement`
+ data.originalPlacement = data.placement;
+
+ data.positionFixed = this.options.positionFixed;
+
+ // compute the popper offsets
+ data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
+
+ data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
+
+ // run the modifiers
+ data = runModifiers(this.modifiers, data);
+
+ // the first `update` will call `onCreate` callback
+ // the other ones will call `onUpdate` callback
+ if (!this.state.isCreated) {
+ this.state.isCreated = true;
+ this.options.onCreate(data);
+ } else {
+ this.options.onUpdate(data);
+ }
+}
+
+/**
+ * Helper used to know if the given modifier is enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @returns {Boolean}
+ */
+function isModifierEnabled(modifiers, modifierName) {
+ return modifiers.some(function (_ref) {
+ var name = _ref.name,
+ enabled = _ref.enabled;
+ return enabled && name === modifierName;
+ });
+}
+
+/**
+ * Get the prefixed supported property name
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} property (camelCase)
+ * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
+ */
+function getSupportedPropertyName(property) {
+ var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
+ var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
+
+ for (var i = 0; i < prefixes.length; i++) {
+ var prefix = prefixes[i];
+ var toCheck = prefix ? '' + prefix + upperProp : property;
+ if (typeof document.body.style[toCheck] !== 'undefined') {
+ return toCheck;
+ }
+ }
+ return null;
+}
+
+/**
+ * Destroys the popper.
+ * @method
+ * @memberof Popper
+ */
+function destroy() {
+ this.state.isDestroyed = true;
+
+ // touch DOM only if `applyStyle` modifier is enabled
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
+ this.popper.removeAttribute('x-placement');
+ this.popper.style.position = '';
+ this.popper.style.top = '';
+ this.popper.style.left = '';
+ this.popper.style.right = '';
+ this.popper.style.bottom = '';
+ this.popper.style.willChange = '';
+ this.popper.style[getSupportedPropertyName('transform')] = '';
+ }
+
+ this.disableEventListeners();
+
+ // remove the popper if user explicitly asked for the deletion on destroy
+ // do not use `remove` because IE11 doesn't support it
+ if (this.options.removeOnDestroy) {
+ this.popper.parentNode.removeChild(this.popper);
+ }
+ return this;
+}
+
+/**
+ * Get the window associated with the element
+ * @argument {Element} element
+ * @returns {Window}
+ */
+function getWindow(element) {
+ var ownerDocument = element.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView : window;
+}
+
+function attachToScrollParents(scrollParent, event, callback, scrollParents) {
+ var isBody = scrollParent.nodeName === 'BODY';
+ var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
+ target.addEventListener(event, callback, { passive: true });
+
+ if (!isBody) {
+ attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
+ }
+ scrollParents.push(target);
+}
+
+/**
+ * Setup needed event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+function setupEventListeners(reference, options, state, updateBound) {
+ // Resize event listener on window
+ state.updateBound = updateBound;
+ getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
+
+ // Scroll event listener on scroll parents
+ var scrollElement = getScrollParent(reference);
+ attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
+ state.scrollElement = scrollElement;
+ state.eventsEnabled = true;
+
+ return state;
+}
+
+/**
+ * It will add resize/scroll events and start recalculating
+ * position of the popper element when they are triggered.
+ * @method
+ * @memberof Popper
+ */
+function enableEventListeners() {
+ if (!this.state.eventsEnabled) {
+ this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
+ }
+}
+
+/**
+ * Remove event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+function removeEventListeners(reference, state) {
+ // Remove resize event listener on window
+ getWindow(reference).removeEventListener('resize', state.updateBound);
+
+ // Remove scroll event listener on scroll parents
+ state.scrollParents.forEach(function (target) {
+ target.removeEventListener('scroll', state.updateBound);
+ });
+
+ // Reset state
+ state.updateBound = null;
+ state.scrollParents = [];
+ state.scrollElement = null;
+ state.eventsEnabled = false;
+ return state;
+}
+
+/**
+ * It will remove resize/scroll events and won't recalculate popper position
+ * when they are triggered. It also won't trigger `onUpdate` callback anymore,
+ * unless you call `update` method manually.
+ * @method
+ * @memberof Popper
+ */
+function disableEventListeners() {
+ if (this.state.eventsEnabled) {
+ cancelAnimationFrame(this.scheduleUpdate);
+ this.state = removeEventListeners(this.reference, this.state);
+ }
+}
+
+/**
+ * Tells if a given input is a number
+ * @method
+ * @memberof Popper.Utils
+ * @param {*} input to check
+ * @return {Boolean}
+ */
+function isNumeric(n) {
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
+}
+
+/**
+ * Set the style to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the style to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+function setStyles(element, styles) {
+ Object.keys(styles).forEach(function (prop) {
+ var unit = '';
+ // add unit if the value is numeric and is one of the following
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
+ unit = 'px';
+ }
+ element.style[prop] = styles[prop] + unit;
+ });
+}
+
+/**
+ * Set the attributes to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the attributes to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+function setAttributes(element, attributes) {
+ Object.keys(attributes).forEach(function (prop) {
+ var value = attributes[prop];
+ if (value !== false) {
+ element.setAttribute(prop, attributes[prop]);
+ } else {
+ element.removeAttribute(prop);
+ }
+ });
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} data.styles - List of style properties - values to apply to popper element
+ * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The same data object
+ */
+function applyStyle(data) {
+ // any property present in `data.styles` will be applied to the popper,
+ // in this way we can make the 3rd party modifiers add custom styles to it
+ // Be aware, modifiers could override the properties defined in the previous
+ // lines of this modifier!
+ setStyles(data.instance.popper, data.styles);
+
+ // any property present in `data.attributes` will be applied to the popper,
+ // they will be set as HTML attributes of the element
+ setAttributes(data.instance.popper, data.attributes);
+
+ // if arrowElement is defined and arrowStyles has some properties
+ if (data.arrowElement && Object.keys(data.arrowStyles).length) {
+ setStyles(data.arrowElement, data.arrowStyles);
+ }
+
+ return data;
+}
+
+/**
+ * Set the x-placement attribute before everything else because it could be used
+ * to add margins to the popper margins needs to be calculated to get the
+ * correct popper offsets.
+ * @method
+ * @memberof Popper.modifiers
+ * @param {HTMLElement} reference - The reference element used to position the popper
+ * @param {HTMLElement} popper - The HTML element used as popper
+ * @param {Object} options - Popper.js options
+ */
+function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
+ // compute reference element offsets
+ var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
+
+ popper.setAttribute('x-placement', placement);
+
+ // Apply `position` to popper before anything else because
+ // without the position applied we can't guarantee correct computations
+ setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
+
+ return options;
+}
+
+/**
+ * @function
+ * @memberof Popper.Utils
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Boolean} shouldRound - If the offsets should be rounded at all
+ * @returns {Object} The popper's position offsets rounded
+ *
+ * The tale of pixel-perfect positioning. It's still not 100% perfect, but as
+ * good as it can be within reason.
+ * Discussion here: https://github.com/FezVrasta/popper.js/pull/715
+ *
+ * Low DPI screens cause a popper to be blurry if not using full pixels (Safari
+ * as well on High DPI screens).
+ *
+ * Firefox prefers no rounding for positioning and does not have blurriness on
+ * high DPI screens.
+ *
+ * Only horizontal placement and left/right values need to be considered.
+ */
+function getRoundedOffsets(data, shouldRound) {
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+ var round = Math.round,
+ floor = Math.floor;
+
+ var noRound = function noRound(v) {
+ return v;
+ };
+
+ var referenceWidth = round(reference.width);
+ var popperWidth = round(popper.width);
+
+ var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
+ var isVariation = data.placement.indexOf('-') !== -1;
+ var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
+ var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
+
+ var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
+ var verticalToInteger = !shouldRound ? noRound : round;
+
+ return {
+ left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
+ top: verticalToInteger(popper.top),
+ bottom: verticalToInteger(popper.bottom),
+ right: horizontalToInteger(popper.right)
+ };
+}
+
+var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function computeStyle(data, options) {
+ var x = options.x,
+ y = options.y;
+ var popper = data.offsets.popper;
+
+ // Remove this legacy support in Popper.js v2
+
+ var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'applyStyle';
+ }).gpuAcceleration;
+ if (legacyGpuAccelerationOption !== undefined) {
+ console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+ }
+ var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
+
+ var offsetParent = getOffsetParent(data.instance.popper);
+ var offsetParentRect = getBoundingClientRect(offsetParent);
+
+ // Styles
+ var styles = {
+ position: popper.position
+ };
+
+ var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
+
+ var sideA = x === 'bottom' ? 'top' : 'bottom';
+ var sideB = y === 'right' ? 'left' : 'right';
+
+ // if gpuAcceleration is set to `true` and transform is supported,
+ // we use `translate3d` to apply the position to the popper we
+ // automatically use the supported prefixed version if needed
+ var prefixedProperty = getSupportedPropertyName('transform');
+
+ // now, let's make a step back and look at this code closely (wtf?)
+ // If the content of the popper grows once it's been positioned, it
+ // may happen that the popper gets misplaced because of the new content
+ // overflowing its reference element
+ // To avoid this problem, we provide two options (x and y), which allow
+ // the consumer to define the offset origin.
+ // If we position a popper on top of a reference element, we can set
+ // `x` to `top` to make the popper grow towards its top instead of
+ // its bottom.
+ var left = void 0,
+ top = void 0;
+ if (sideA === 'bottom') {
+ // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
+ // and not the bottom of the html element
+ if (offsetParent.nodeName === 'HTML') {
+ top = -offsetParent.clientHeight + offsets.bottom;
+ } else {
+ top = -offsetParentRect.height + offsets.bottom;
+ }
+ } else {
+ top = offsets.top;
+ }
+ if (sideB === 'right') {
+ if (offsetParent.nodeName === 'HTML') {
+ left = -offsetParent.clientWidth + offsets.right;
+ } else {
+ left = -offsetParentRect.width + offsets.right;
+ }
+ } else {
+ left = offsets.left;
+ }
+ if (gpuAcceleration && prefixedProperty) {
+ styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
+ styles[sideA] = 0;
+ styles[sideB] = 0;
+ styles.willChange = 'transform';
+ } else {
+ // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
+ var invertTop = sideA === 'bottom' ? -1 : 1;
+ var invertLeft = sideB === 'right' ? -1 : 1;
+ styles[sideA] = top * invertTop;
+ styles[sideB] = left * invertLeft;
+ styles.willChange = sideA + ', ' + sideB;
+ }
+
+ // Attributes
+ var attributes = {
+ 'x-placement': data.placement
+ };
+
+ // Update `data` attributes, styles and arrowStyles
+ data.attributes = _extends({}, attributes, data.attributes);
+ data.styles = _extends({}, styles, data.styles);
+ data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
+
+ return data;
+}
+
+/**
+ * Helper used to know if the given modifier depends from another one.<br />
+ * It checks if the needed modifier is listed and enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @param {Array} modifiers - list of modifiers
+ * @param {String} requestingName - name of requesting modifier
+ * @param {String} requestedName - name of requested modifier
+ * @returns {Boolean}
+ */
+function isModifierRequired(modifiers, requestingName, requestedName) {
+ var requesting = find(modifiers, function (_ref) {
+ var name = _ref.name;
+ return name === requestingName;
+ });
+
+ var isRequired = !!requesting && modifiers.some(function (modifier) {
+ return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
+ });
+
+ if (!isRequired) {
+ var _requesting = '`' + requestingName + '`';
+ var requested = '`' + requestedName + '`';
+ console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
+ }
+ return isRequired;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function arrow(data, options) {
+ var _data$offsets$arrow;
+
+ // arrow depends on keepTogether in order to work
+ if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
+ return data;
+ }
+
+ var arrowElement = options.element;
+
+ // if arrowElement is a string, suppose it's a CSS selector
+ if (typeof arrowElement === 'string') {
+ arrowElement = data.instance.popper.querySelector(arrowElement);
+
+ // if arrowElement is not found, don't run the modifier
+ if (!arrowElement) {
+ return data;
+ }
+ } else {
+ // if the arrowElement isn't a query selector we must check that the
+ // provided DOM node is child of its popper node
+ if (!data.instance.popper.contains(arrowElement)) {
+ console.warn('WARNING: `arrow.element` must be child of its popper element!');
+ return data;
+ }
+ }
+
+ var placement = data.placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isVertical = ['left', 'right'].indexOf(placement) !== -1;
+
+ var len = isVertical ? 'height' : 'width';
+ var sideCapitalized = isVertical ? 'Top' : 'Left';
+ var side = sideCapitalized.toLowerCase();
+ var altSide = isVertical ? 'left' : 'top';
+ var opSide = isVertical ? 'bottom' : 'right';
+ var arrowElementSize = getOuterSizes(arrowElement)[len];
+
+ //
+ // extends keepTogether behavior making sure the popper and its
+ // reference have enough pixels in conjunction
+ //
+
+ // top/left side
+ if (reference[opSide] - arrowElementSize < popper[side]) {
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
+ }
+ // bottom/right side
+ if (reference[side] + arrowElementSize > popper[opSide]) {
+ data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
+ }
+ data.offsets.popper = getClientRect(data.offsets.popper);
+
+ // compute center of the popper
+ var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
+
+ // Compute the sideValue using the updated popper offsets
+ // take popper margin in account because we don't have this info available
+ var css = getStyleComputedProperty(data.instance.popper);
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
+ var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
+
+ // prevent arrowElement from being placed not contiguously to its popper
+ sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
+
+ data.arrowElement = arrowElement;
+ data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
+
+ return data;
+}
+
+/**
+ * Get the opposite placement variation of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement variation
+ * @returns {String} flipped placement variation
+ */
+function getOppositeVariation(variation) {
+ if (variation === 'end') {
+ return 'start';
+ } else if (variation === 'start') {
+ return 'end';
+ }
+ return variation;
+}
+
+/**
+ * List of accepted placements to use as values of the `placement` option.<br />
+ * Valid placements are:
+ * - `auto`
+ * - `top`
+ * - `right`
+ * - `bottom`
+ * - `left`
+ *
+ * Each placement can have a variation from this list:
+ * - `-start`
+ * - `-end`
+ *
+ * Variations are interpreted easily if you think of them as the left to right
+ * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
+ * is right.<br />
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom.
+ *
+ * Some valid examples are:
+ * - `top-end` (on top of reference, right aligned)
+ * - `right-start` (on right of reference, top aligned)
+ * - `bottom` (on bottom, centered)
+ * - `auto-end` (on the side with more space available, alignment depends by placement)
+ *
+ * @static
+ * @type {Array}
+ * @enum {String}
+ * @readonly
+ * @method placements
+ * @memberof Popper
+ */
+var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
+
+// Get rid of `auto` `auto-start` and `auto-end`
+var validPlacements = placements.slice(3);
+
+/**
+ * Given an initial placement, returns all the subsequent placements
+ * clockwise (or counter-clockwise).
+ *
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement - A valid placement (it accepts variations)
+ * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
+ * @returns {Array} placements including their variations
+ */
+function clockwise(placement) {
+ var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ var index = validPlacements.indexOf(placement);
+ var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
+ return counter ? arr.reverse() : arr;
+}
+
+var BEHAVIORS = {
+ FLIP: 'flip',
+ CLOCKWISE: 'clockwise',
+ COUNTERCLOCKWISE: 'counterclockwise'
+};
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function flip(data, options) {
+ // if `inner` modifier is enabled, we can't use the `flip` modifier
+ if (isModifierEnabled(data.instance.modifiers, 'inner')) {
+ return data;
+ }
+
+ if (data.flipped && data.placement === data.originalPlacement) {
+ // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
+ return data;
+ }
+
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
+
+ var placement = data.placement.split('-')[0];
+ var placementOpposite = getOppositePlacement(placement);
+ var variation = data.placement.split('-')[1] || '';
+
+ var flipOrder = [];
+
+ switch (options.behavior) {
+ case BEHAVIORS.FLIP:
+ flipOrder = [placement, placementOpposite];
+ break;
+ case BEHAVIORS.CLOCKWISE:
+ flipOrder = clockwise(placement);
+ break;
+ case BEHAVIORS.COUNTERCLOCKWISE:
+ flipOrder = clockwise(placement, true);
+ break;
+ default:
+ flipOrder = options.behavior;
+ }
+
+ flipOrder.forEach(function (step, index) {
+ if (placement !== step || flipOrder.length === index + 1) {
+ return data;
+ }
+
+ placement = data.placement.split('-')[0];
+ placementOpposite = getOppositePlacement(placement);
+
+ var popperOffsets = data.offsets.popper;
+ var refOffsets = data.offsets.reference;
+
+ // using floor because the reference offsets may contain decimals we are not going to consider here
+ var floor = Math.floor;
+ var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
+
+ var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
+ var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
+ var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
+ var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
+
+ var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
+
+ // flip the variation if required
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+
+ // flips variation if reference element overflows boundaries
+ var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
+
+ // flips variation if popper content overflows boundaries
+ var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
+
+ var flippedVariation = flippedVariationByRef || flippedVariationByContent;
+
+ if (overlapsRef || overflowsBoundaries || flippedVariation) {
+ // this boolean to detect any flip loop
+ data.flipped = true;
+
+ if (overlapsRef || overflowsBoundaries) {
+ placement = flipOrder[index + 1];
+ }
+
+ if (flippedVariation) {
+ variation = getOppositeVariation(variation);
+ }
+
+ data.placement = placement + (variation ? '-' + variation : '');
+
+ // this object contains `position`, we want to preserve it along with
+ // any additional property we may add in the future
+ data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
+
+ data = runModifiers(data.instance.modifiers, data, 'flip');
+ }
+ });
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function keepTogether(data) {
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var placement = data.placement.split('-')[0];
+ var floor = Math.floor;
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+ var side = isVertical ? 'right' : 'bottom';
+ var opSide = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
+
+ if (popper[side] < floor(reference[opSide])) {
+ data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
+ }
+ if (popper[opSide] > floor(reference[side])) {
+ data.offsets.popper[opSide] = floor(reference[side]);
+ }
+
+ return data;
+}
+
+/**
+ * Converts a string containing value + unit into a px value number
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} str - Value + unit string
+ * @argument {String} measurement - `height` or `width`
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @returns {Number|String}
+ * Value in pixels, or original string if no values were extracted
+ */
+function toValue(str, measurement, popperOffsets, referenceOffsets) {
+ // separate value from unit
+ var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
+ var value = +split[1];
+ var unit = split[2];
+
+ // If it's not a number it's an operator, I guess
+ if (!value) {
+ return str;
+ }
+
+ if (unit.indexOf('%') === 0) {
+ var element = void 0;
+ switch (unit) {
+ case '%p':
+ element = popperOffsets;
+ break;
+ case '%':
+ case '%r':
+ default:
+ element = referenceOffsets;
+ }
+
+ var rect = getClientRect(element);
+ return rect[measurement] / 100 * value;
+ } else if (unit === 'vh' || unit === 'vw') {
+ // if is a vh or vw, we calculate the size based on the viewport
+ var size = void 0;
+ if (unit === 'vh') {
+ size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+ } else {
+ size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ }
+ return size / 100 * value;
+ } else {
+ // if is an explicit pixel unit, we get rid of the unit and keep the value
+ // if is an implicit unit, it's px, and we return just the value
+ return value;
+ }
+}
+
+/**
+ * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} offset
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @argument {String} basePlacement
+ * @returns {Array} a two cells array with x and y offsets in numbers
+ */
+function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
+ var offsets = [0, 0];
+
+ // Use height if placement is left or right and index is 0 otherwise use width
+ // in this way the first offset will use an axis and the second one
+ // will use the other one
+ var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
+
+ // Split the offset string to obtain a list of values and operands
+ // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
+ var fragments = offset.split(/(\+|\-)/).map(function (frag) {
+ return frag.trim();
+ });
+
+ // Detect if the offset string contains a pair of values or a single one
+ // they could be separated by comma or space
+ var divider = fragments.indexOf(find(fragments, function (frag) {
+ return frag.search(/,|\s/) !== -1;
+ }));
+
+ if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
+ console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
+ }
+
+ // If divider is found, we divide the list of values and operands to divide
+ // them by ofset X and Y.
+ var splitRegex = /\s*,\s*|\s+/;
+ var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
+
+ // Convert the values with units to absolute pixels to allow our computations
+ ops = ops.map(function (op, index) {
+ // Most of the units rely on the orientation of the popper
+ var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
+ var mergeWithPrevious = false;
+ return op
+ // This aggregates any `+` or `-` sign that aren't considered operators
+ // e.g.: 10 + +5 => [10, +, +5]
+ .reduce(function (a, b) {
+ if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
+ a[a.length - 1] = b;
+ mergeWithPrevious = true;
+ return a;
+ } else if (mergeWithPrevious) {
+ a[a.length - 1] += b;
+ mergeWithPrevious = false;
+ return a;
+ } else {
+ return a.concat(b);
+ }
+ }, [])
+ // Here we convert the string values into number values (in px)
+ .map(function (str) {
+ return toValue(str, measurement, popperOffsets, referenceOffsets);
+ });
+ });
+
+ // Loop trough the offsets arrays and execute the operations
+ ops.forEach(function (op, index) {
+ op.forEach(function (frag, index2) {
+ if (isNumeric(frag)) {
+ offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
+ }
+ });
+ });
+ return offsets;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @argument {Number|String} options.offset=0
+ * The offset value as described in the modifier description
+ * @returns {Object} The data object, properly modified
+ */
+function offset(data, _ref) {
+ var offset = _ref.offset;
+ var placement = data.placement,
+ _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var basePlacement = placement.split('-')[0];
+
+ var offsets = void 0;
+ if (isNumeric(+offset)) {
+ offsets = [+offset, 0];
+ } else {
+ offsets = parseOffset(offset, popper, reference, basePlacement);
+ }
+
+ if (basePlacement === 'left') {
+ popper.top += offsets[0];
+ popper.left -= offsets[1];
+ } else if (basePlacement === 'right') {
+ popper.top += offsets[0];
+ popper.left += offsets[1];
+ } else if (basePlacement === 'top') {
+ popper.left += offsets[0];
+ popper.top -= offsets[1];
+ } else if (basePlacement === 'bottom') {
+ popper.left += offsets[0];
+ popper.top += offsets[1];
+ }
+
+ data.popper = popper;
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function preventOverflow(data, options) {
+ var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
+
+ // If offsetParent is the reference element, we really want to
+ // go one step up and use the next offsetParent as reference to
+ // avoid to make this modifier completely useless and look like broken
+ if (data.instance.reference === boundariesElement) {
+ boundariesElement = getOffsetParent(boundariesElement);
+ }
+
+ // NOTE: DOM access here
+ // resets the popper's position so that the document size can be calculated excluding
+ // the size of the popper element itself
+ var transformProp = getSupportedPropertyName('transform');
+ var popperStyles = data.instance.popper.style; // assignment to help minification
+ var top = popperStyles.top,
+ left = popperStyles.left,
+ transform = popperStyles[transformProp];
+
+ popperStyles.top = '';
+ popperStyles.left = '';
+ popperStyles[transformProp] = '';
+
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
+
+ // NOTE: DOM access here
+ // restores the original style properties after the offsets have been computed
+ popperStyles.top = top;
+ popperStyles.left = left;
+ popperStyles[transformProp] = transform;
+
+ options.boundaries = boundaries;
+
+ var order = options.priority;
+ var popper = data.offsets.popper;
+
+ var check = {
+ primary: function primary(placement) {
+ var value = popper[placement];
+ if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
+ value = Math.max(popper[placement], boundaries[placement]);
+ }
+ return defineProperty({}, placement, value);
+ },
+ secondary: function secondary(placement) {
+ var mainSide = placement === 'right' ? 'left' : 'top';
+ var value = popper[mainSide];
+ if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
+ value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
+ }
+ return defineProperty({}, mainSide, value);
+ }
+ };
+
+ order.forEach(function (placement) {
+ var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
+ popper = _extends({}, popper, check[side](placement));
+ });
+
+ data.offsets.popper = popper;
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function shift(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var shiftvariation = placement.split('-')[1];
+
+ // if shift shiftvariation is specified, run the modifier
+ if (shiftvariation) {
+ var _data$offsets = data.offsets,
+ reference = _data$offsets.reference,
+ popper = _data$offsets.popper;
+
+ var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
+ var side = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
+
+ var shiftOffsets = {
+ start: defineProperty({}, side, reference[side]),
+ end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
+ };
+
+ data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
+ }
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function hide(data) {
+ if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
+ return data;
+ }
+
+ var refRect = data.offsets.reference;
+ var bound = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'preventOverflow';
+ }).boundaries;
+
+ if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === true) {
+ return data;
+ }
+
+ data.hide = true;
+ data.attributes['x-out-of-boundaries'] = '';
+ } else {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === false) {
+ return data;
+ }
+
+ data.hide = false;
+ data.attributes['x-out-of-boundaries'] = false;
+ }
+
+ return data;
+}
+
+/**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+function inner(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
+
+ var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
+
+ popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
+
+ data.placement = getOppositePlacement(placement);
+ data.offsets.popper = getClientRect(popper);
+
+ return data;
+}
+
+/**
+ * Modifier function, each modifier can have a function of this type assigned
+ * to its `fn` property.<br />
+ * These functions will be called on each update, this means that you must
+ * make sure they are performant enough to avoid performance bottlenecks.
+ *
+ * @function ModifierFn
+ * @argument {dataObject} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {dataObject} The data object, properly modified
+ */
+
+/**
+ * Modifiers are plugins used to alter the behavior of your poppers.<br />
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
+ * needed by the library.
+ *
+ * Usually you don't want to override the `order`, `fn` and `onLoad` props.
+ * All the other properties are configurations that could be tweaked.
+ * @namespace modifiers
+ */
+var modifiers = {
+ /**
+ * Modifier used to shift the popper on the start or end of its reference
+ * element.<br />
+ * It will read the variation of the `placement` property.<br />
+ * It can be one either `-end` or `-start`.
+ * @memberof modifiers
+ * @inner
+ */
+ shift: {
+ /** @prop {number} order=100 - Index used to define the order of execution */
+ order: 100,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: shift
+ },
+
+ /**
+ * The `offset` modifier can shift your popper on both its axis.
+ *
+ * It accepts the following units:
+ * - `px` or unit-less, interpreted as pixels
+ * - `%` or `%r`, percentage relative to the length of the reference element
+ * - `%p`, percentage relative to the length of the popper element
+ * - `vw`, CSS viewport width unit
+ * - `vh`, CSS viewport height unit
+ *
+ * For length is intended the main axis relative to the placement of the popper.<br />
+ * This means that if the placement is `top` or `bottom`, the length will be the
+ * `width`. In case of `left` or `right`, it will be the `height`.
+ *
+ * You can provide a single value (as `Number` or `String`), or a pair of values
+ * as `String` divided by a comma or one (or more) white spaces.<br />
+ * The latter is a deprecated method because it leads to confusion and will be
+ * removed in v2.<br />
+ * Additionally, it accepts additions and subtractions between different units.
+ * Note that multiplications and divisions aren't supported.
+ *
+ * Valid examples are:
+ * ```
+ * 10
+ * '10%'
+ * '10, 10'
+ * '10%, 10'
+ * '10 + 10%'
+ * '10 - 5vh + 3%'
+ * '-10px + 5vh, 5px - 6%'
+ * ```
+ * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
+ * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
+ * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ offset: {
+ /** @prop {number} order=200 - Index used to define the order of execution */
+ order: 200,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: offset,
+ /** @prop {Number|String} offset=0
+ * The offset value as described in the modifier description
+ */
+ offset: 0
+ },
+
+ /**
+ * Modifier used to prevent the popper from being positioned outside the boundary.
+ *
+ * A scenario exists where the reference itself is not within the boundaries.<br />
+ * We can say it has "escaped the boundaries" — or just "escaped".<br />
+ * In this case we need to decide whether the popper should either:
+ *
+ * - detach from the reference and remain "trapped" in the boundaries, or
+ * - if it should ignore the boundary and "escape with its reference"
+ *
+ * When `escapeWithReference` is set to`true` and reference is completely
+ * outside its boundaries, the popper will overflow (or completely leave)
+ * the boundaries in order to remain attached to the edge of the reference.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ preventOverflow: {
+ /** @prop {number} order=300 - Index used to define the order of execution */
+ order: 300,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: preventOverflow,
+ /**
+ * @prop {Array} [priority=['left','right','top','bottom']]
+ * Popper will try to prevent overflow following these priorities by default,
+ * then, it could overflow on the left and on top of the `boundariesElement`
+ */
+ priority: ['left', 'right', 'top', 'bottom'],
+ /**
+ * @prop {number} padding=5
+ * Amount of pixel used to define a minimum distance between the boundaries
+ * and the popper. This makes sure the popper always has a little padding
+ * between the edges of its container
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='scrollParent'
+ * Boundaries used by the modifier. Can be `scrollParent`, `window`,
+ * `viewport` or any DOM element.
+ */
+ boundariesElement: 'scrollParent'
+ },
+
+ /**
+ * Modifier used to make sure the reference and its popper stay near each other
+ * without leaving any gap between the two. Especially useful when the arrow is
+ * enabled and you want to ensure that it points to its reference element.
+ * It cares only about the first axis. You can still have poppers with margin
+ * between the popper and its reference element.
+ * @memberof modifiers
+ * @inner
+ */
+ keepTogether: {
+ /** @prop {number} order=400 - Index used to define the order of execution */
+ order: 400,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: keepTogether
+ },
+
+ /**
+ * This modifier is used to move the `arrowElement` of the popper to make
+ * sure it is positioned between the reference element and its popper element.
+ * It will read the outer size of the `arrowElement` node to detect how many
+ * pixels of conjunction are needed.
+ *
+ * It has no effect if no `arrowElement` is provided.
+ * @memberof modifiers
+ * @inner
+ */
+ arrow: {
+ /** @prop {number} order=500 - Index used to define the order of execution */
+ order: 500,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: arrow,
+ /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
+ element: '[x-arrow]'
+ },
+
+ /**
+ * Modifier used to flip the popper's placement when it starts to overlap its
+ * reference element.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ *
+ * **NOTE:** this modifier will interrupt the current update cycle and will
+ * restart it if it detects the need to flip the placement.
+ * @memberof modifiers
+ * @inner
+ */
+ flip: {
+ /** @prop {number} order=600 - Index used to define the order of execution */
+ order: 600,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: flip,
+ /**
+ * @prop {String|Array} behavior='flip'
+ * The behavior used to change the popper's placement. It can be one of
+ * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
+ * placements (with optional variations)
+ */
+ behavior: 'flip',
+ /**
+ * @prop {number} padding=5
+ * The popper will flip if it hits the edges of the `boundariesElement`
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='viewport'
+ * The element which will define the boundaries of the popper position.
+ * The popper will never be placed outside of the defined boundaries
+ * (except if `keepTogether` is enabled)
+ */
+ boundariesElement: 'viewport',
+ /**
+ * @prop {Boolean} flipVariations=false
+ * The popper will switch placement variation between `-start` and `-end` when
+ * the reference element overlaps its boundaries.
+ *
+ * The original placement should have a set variation.
+ */
+ flipVariations: false,
+ /**
+ * @prop {Boolean} flipVariationsByContent=false
+ * The popper will switch placement variation between `-start` and `-end` when
+ * the popper element overlaps its reference boundaries.
+ *
+ * The original placement should have a set variation.
+ */
+ flipVariationsByContent: false
+ },
+
+ /**
+ * Modifier used to make the popper flow toward the inner of the reference element.
+ * By default, when this modifier is disabled, the popper will be placed outside
+ * the reference element.
+ * @memberof modifiers
+ * @inner
+ */
+ inner: {
+ /** @prop {number} order=700 - Index used to define the order of execution */
+ order: 700,
+ /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
+ enabled: false,
+ /** @prop {ModifierFn} */
+ fn: inner
+ },
+
+ /**
+ * Modifier used to hide the popper when its reference element is outside of the
+ * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
+ * be used to hide with a CSS selector the popper when its reference is
+ * out of boundaries.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ * @memberof modifiers
+ * @inner
+ */
+ hide: {
+ /** @prop {number} order=800 - Index used to define the order of execution */
+ order: 800,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: hide
+ },
+
+ /**
+ * Computes the style that will be applied to the popper element to gets
+ * properly positioned.
+ *
+ * Note that this modifier will not touch the DOM, it just prepares the styles
+ * so that `applyStyle` modifier can apply it. This separation is useful
+ * in case you need to replace `applyStyle` with a custom implementation.
+ *
+ * This modifier has `850` as `order` value to maintain backward compatibility
+ * with previous versions of Popper.js. Expect the modifiers ordering method
+ * to change in future major versions of the library.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ computeStyle: {
+ /** @prop {number} order=850 - Index used to define the order of execution */
+ order: 850,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: computeStyle,
+ /**
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3D transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties
+ */
+ gpuAcceleration: true,
+ /**
+ * @prop {string} [x='bottom']
+ * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
+ * Change this if your popper should grow in a direction different from `bottom`
+ */
+ x: 'bottom',
+ /**
+ * @prop {string} [x='left']
+ * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
+ * Change this if your popper should grow in a direction different from `right`
+ */
+ y: 'right'
+ },
+
+ /**
+ * Applies the computed styles to the popper element.
+ *
+ * All the DOM manipulations are limited to this modifier. This is useful in case
+ * you want to integrate Popper.js inside a framework or view library and you
+ * want to delegate all the DOM manipulations to it.
+ *
+ * Note that if you disable this modifier, you must make sure the popper element
+ * has its position set to `absolute` before Popper.js can do its work!
+ *
+ * Just disable this modifier and define your own to achieve the desired effect.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ applyStyle: {
+ /** @prop {number} order=900 - Index used to define the order of execution */
+ order: 900,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: applyStyle,
+ /** @prop {Function} */
+ onLoad: applyStyleOnLoad,
+ /**
+ * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3D transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties
+ */
+ gpuAcceleration: undefined
+ }
+};
+
+/**
+ * The `dataObject` is an object containing all the information used by Popper.js.
+ * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
+ * @name dataObject
+ * @property {Object} data.instance The Popper.js instance
+ * @property {String} data.placement Placement applied to popper
+ * @property {String} data.originalPlacement Placement originally defined on init
+ * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
+ * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
+ * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
+ * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.boundaries Offsets of the popper boundaries
+ * @property {Object} data.offsets The measurements of popper, reference and arrow elements
+ * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
+ */
+
+/**
+ * Default options provided to Popper.js constructor.<br />
+ * These can be overridden using the `options` argument of Popper.js.<br />
+ * To override an option, simply pass an object with the same
+ * structure of the `options` object, as the 3rd argument. For example:
+ * ```
+ * new Popper(ref, pop, {
+ * modifiers: {
+ * preventOverflow: { enabled: false }
+ * }
+ * })
+ * ```
+ * @type {Object}
+ * @static
+ * @memberof Popper
+ */
+var Defaults = {
+ /**
+ * Popper's placement.
+ * @prop {Popper.placements} placement='bottom'
+ */
+ placement: 'bottom',
+
+ /**
+ * Set this to true if you want popper to position it self in 'fixed' mode
+ * @prop {Boolean} positionFixed=false
+ */
+ positionFixed: false,
+
+ /**
+ * Whether events (resize, scroll) are initially enabled.
+ * @prop {Boolean} eventsEnabled=true
+ */
+ eventsEnabled: true,
+
+ /**
+ * Set to true if you want to automatically remove the popper when
+ * you call the `destroy` method.
+ * @prop {Boolean} removeOnDestroy=false
+ */
+ removeOnDestroy: false,
+
+ /**
+ * Callback called when the popper is created.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onCreate}
+ */
+ onCreate: function onCreate() {},
+
+ /**
+ * Callback called when the popper is updated. This callback is not called
+ * on the initialization/creation of the popper, but only on subsequent
+ * updates.<br />
+ * By default, it is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onUpdate}
+ */
+ onUpdate: function onUpdate() {},
+
+ /**
+ * List of modifiers used to modify the offsets before they are applied to the popper.
+ * They provide most of the functionalities of Popper.js.
+ * @prop {modifiers}
+ */
+ modifiers: modifiers
+};
+
+/**
+ * @callback onCreate
+ * @param {dataObject} data
+ */
+
+/**
+ * @callback onUpdate
+ * @param {dataObject} data
+ */
+
+// Utils
+// Methods
+var Popper = function () {
+ /**
+ * Creates a new Popper.js instance.
+ * @class Popper
+ * @param {Element|referenceObject} reference - The reference element used to position the popper
+ * @param {Element} popper - The HTML / XML element used as the popper
+ * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
+ * @return {Object} instance - The generated Popper.js instance
+ */
+ function Popper(reference, popper) {
+ var _this = this;
+
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+ classCallCheck(this, Popper);
+
+ this.scheduleUpdate = function () {
+ return requestAnimationFrame(_this.update);
+ };
+
+ // make update() debounced, so that it only runs at most once-per-tick
+ this.update = debounce(this.update.bind(this));
+
+ // with {} we create a new object with the options inside it
+ this.options = _extends({}, Popper.Defaults, options);
+
+ // init state
+ this.state = {
+ isDestroyed: false,
+ isCreated: false,
+ scrollParents: []
+ };
+
+ // get reference and popper elements (allow jQuery wrappers)
+ this.reference = reference && reference.jquery ? reference[0] : reference;
+ this.popper = popper && popper.jquery ? popper[0] : popper;
+
+ // Deep merge modifiers options
+ this.options.modifiers = {};
+ Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
+ _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
+ });
+
+ // Refactoring modifiers' list (Object => Array)
+ this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
+ return _extends({
+ name: name
+ }, _this.options.modifiers[name]);
+ })
+ // sort the modifiers by order
+ .sort(function (a, b) {
+ return a.order - b.order;
+ });
+
+ // modifiers have the ability to execute arbitrary code when Popper.js get inited
+ // such code is executed in the same order of its modifier
+ // they could add new properties to their options configuration
+ // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
+ this.modifiers.forEach(function (modifierOptions) {
+ if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
+ modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
+ }
+ });
+
+ // fire the first update to position the popper in the right place
+ this.update();
+
+ var eventsEnabled = this.options.eventsEnabled;
+ if (eventsEnabled) {
+ // setup event listeners, they will take care of update the position in specific situations
+ this.enableEventListeners();
+ }
+
+ this.state.eventsEnabled = eventsEnabled;
+ }
+
+ // We can't use class properties because they don't get listed in the
+ // class prototype and break stuff like Sinon stubs
+
+
+ createClass(Popper, [{
+ key: 'update',
+ value: function update$$1() {
+ return update.call(this);
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy$$1() {
+ return destroy.call(this);
+ }
+ }, {
+ key: 'enableEventListeners',
+ value: function enableEventListeners$$1() {
+ return enableEventListeners.call(this);
+ }
+ }, {
+ key: 'disableEventListeners',
+ value: function disableEventListeners$$1() {
+ return disableEventListeners.call(this);
+ }
+
+ /**
+ * Schedules an update. It will run on the next UI update available.
+ * @method scheduleUpdate
+ * @memberof Popper
+ */
+
+
+ /**
+ * Collection of utilities useful when writing custom modifiers.
+ * Starting from version 1.7, this method is available only if you
+ * include `popper-utils.js` before `popper.js`.
+ *
+ * **DEPRECATION**: This way to access PopperUtils is deprecated
+ * and will be removed in v2! Use the PopperUtils module directly instead.
+ * Due to the high instability of the methods contained in Utils, we can't
+ * guarantee them to follow semver. Use them at your own risk!
+ * @static
+ * @private
+ * @type {Object}
+ * @deprecated since version 1.8
+ * @member Utils
+ * @memberof Popper
+ */
+
+ }]);
+ return Popper;
+}();
+
+/**
+ * The `referenceObject` is an object that provides an interface compatible with Popper.js
+ * and lets you use it as replacement of a real DOM node.<br />
+ * You can use this method to position a popper relatively to a set of coordinates
+ * in case you don't have a DOM node to use as reference.
+ *
+ * ```
+ * new Popper(referenceObject, popperNode);
+ * ```
+ *
+ * NB: This feature isn't supported in Internet Explorer 10.
+ * @name referenceObject
+ * @property {Function} data.getBoundingClientRect
+ * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
+ * @property {number} data.clientWidth
+ * An ES6 getter that will return the width of the virtual reference element.
+ * @property {number} data.clientHeight
+ * An ES6 getter that will return the height of the virtual reference element.
+ */
+
+
+Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
+Popper.placements = placements;
+Popper.Defaults = Defaults;
+
+return Popper;
+
+})));
+//# sourceMappingURL=popper.js.map
+
+// import required js-files Bootstrap 5
+/*!
+ * Bootstrap alert.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler, global.Base));
+}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'alert';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
+ var EVENT_CLOSE = "close" + EVENT_KEY;
+ var EVENT_CLOSED = "closed" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_ALERT = 'alert';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Alert = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Alert, _BaseComponent);
+
+ function Alert() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Alert.prototype;
+
+ // Public
+ _proto.close = function close(element) {
+ var rootElement = element ? this._getRootElement(element) : this._element;
+
+ var customEvent = this._triggerCloseEvent(rootElement);
+
+ if (customEvent === null || customEvent.defaultPrevented) {
+ return;
+ }
+
+ this._removeElement(rootElement);
+ } // Private
+ ;
+
+ _proto._getRootElement = function _getRootElement(element) {
+ return getElementFromSelector(element) || element.closest("." + CLASS_NAME_ALERT);
+ };
+
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+ return EventHandler__default['default'].trigger(element, EVENT_CLOSE);
+ };
+
+ _proto._removeElement = function _removeElement(element) {
+ var _this = this;
+
+ element.classList.remove(CLASS_NAME_SHOW);
+
+ if (!element.classList.contains(CLASS_NAME_FADE)) {
+ this._destroyElement(element);
+
+ return;
+ }
+
+ var transitionDuration = getTransitionDurationFromElement(element);
+ EventHandler__default['default'].one(element, 'transitionend', function () {
+ return _this._destroyElement(element);
+ });
+ emulateTransitionEnd(element, transitionDuration);
+ };
+
+ _proto._destroyElement = function _destroyElement(element) {
+ if (element.parentNode) {
+ element.parentNode.removeChild(element);
+ }
+
+ EventHandler__default['default'].trigger(element, EVENT_CLOSED);
+ } // Static
+ ;
+
+ Alert.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ if (!data) {
+ data = new Alert(this);
+ }
+
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ };
+
+ Alert.handleDismiss = function handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ alertInstance.close(this);
+ };
+ };
+
+ _createClass(Alert, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Alert;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Alert to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Alert);
+
+ return Alert;
+
+})));
+//# sourceMappingURL=alert.js.map
+/*!
+ * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));
+}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'button';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var CLASS_NAME_ACTIVE = 'active';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Button = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Button, _BaseComponent);
+
+ function Button() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Button.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
+ this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
+ } // Static
+ ;
+
+ Button.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ if (!data) {
+ data = new Button(this);
+ }
+
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Button, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Button;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ var button = event.target.closest(SELECTOR_DATA_TOGGLE);
+ var data = Data__default['default'].getData(button, DATA_KEY);
+
+ if (!data) {
+ data = new Button(button);
+ }
+
+ data.toggle();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Button to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Button);
+
+ return Button;
+
+})));
+//# sourceMappingURL=button.js.map
+/*!
+ * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'carousel';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ARROW_LEFT_KEY = 'ArrowLeft';
+ var ARROW_RIGHT_KEY = 'ArrowRight';
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+ var SWIPE_THRESHOLD = 40;
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true,
+ touch: true
+ };
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean',
+ touch: 'boolean'
+ };
+ var DIRECTION_NEXT = 'next';
+ var DIRECTION_PREV = 'prev';
+ var DIRECTION_LEFT = 'left';
+ var DIRECTION_RIGHT = 'right';
+ var EVENT_SLIDE = "slide" + EVENT_KEY;
+ var EVENT_SLID = "slid" + EVENT_KEY;
+ var EVENT_KEYDOWN = "keydown" + EVENT_KEY;
+ var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY;
+ var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY;
+ var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY;
+ var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY;
+ var EVENT_TOUCHEND = "touchend" + EVENT_KEY;
+ var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY;
+ var EVENT_POINTERUP = "pointerup" + EVENT_KEY;
+ var EVENT_DRAG_START = "dragstart" + EVENT_KEY;
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_CAROUSEL = 'carousel';
+ var CLASS_NAME_ACTIVE = 'active';
+ var CLASS_NAME_SLIDE = 'slide';
+ var CLASS_NAME_END = 'carousel-item-end';
+ var CLASS_NAME_START = 'carousel-item-start';
+ var CLASS_NAME_NEXT = 'carousel-item-next';
+ var CLASS_NAME_PREV = 'carousel-item-prev';
+ var CLASS_NAME_POINTER_EVENT = 'pointer-event';
+ var SELECTOR_ACTIVE = '.active';
+ var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';
+ var SELECTOR_ITEM = '.carousel-item';
+ var SELECTOR_ITEM_IMG = '.carousel-item img';
+ var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
+ var SELECTOR_INDICATORS = '.carousel-indicators';
+ var SELECTOR_INDICATOR = '[data-bs-target]';
+ var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+ var POINTER_TYPE_TOUCH = 'touch';
+ var POINTER_TYPE_PEN = 'pen';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Carousel = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Carousel, _BaseComponent);
+
+ function Carousel(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._items = null;
+ _this._interval = null;
+ _this._activeElement = null;
+ _this._isPaused = false;
+ _this._isSliding = false;
+ _this.touchTimeout = null;
+ _this.touchStartX = 0;
+ _this.touchDeltaX = 0;
+ _this._config = _this._getConfig(config);
+ _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
+ _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ _this._pointerEvent = Boolean(window.PointerEvent);
+
+ _this._addEventListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Carousel.prototype;
+
+ // Public
+ _proto.next = function next() {
+ if (!this._isSliding) {
+ this._slide(DIRECTION_NEXT);
+ }
+ };
+
+ _proto.nextWhenVisible = function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && isVisible(this._element)) {
+ this.next();
+ }
+ };
+
+ _proto.prev = function prev() {
+ if (!this._isSliding) {
+ this._slide(DIRECTION_PREV);
+ }
+ };
+
+ _proto.pause = function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {
+ triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
+
+ clearInterval(this._interval);
+ this._interval = null;
+ };
+
+ _proto.cycle = function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
+
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config && this._config.interval && !this._isPaused) {
+ this._updateInterval();
+
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ };
+
+ _proto.to = function to(index) {
+ var _this2 = this;
+
+ this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ var activeIndex = this._getItemIndex(this._activeElement);
+
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
+ return _this2.to(index);
+ });
+ return;
+ }
+
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
+
+ var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;
+
+ this._slide(direction, this._items[index]);
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
+ this._items = null;
+ this._config = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._handleSwipe = function _handleSwipe() {
+ var absDeltax = Math.abs(this.touchDeltaX);
+
+ if (absDeltax <= SWIPE_THRESHOLD) {
+ return;
+ }
+
+ var direction = absDeltax / this.touchDeltaX;
+ this.touchDeltaX = 0; // swipe left
+
+ if (direction > 0) {
+ if (isRTL) {
+ this.next();
+ } else {
+ this.prev();
+ }
+ } // swipe right
+
+
+ if (direction < 0) {
+ if (isRTL) {
+ this.prev();
+ } else {
+ this.next();
+ }
+ }
+ };
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this3 = this;
+
+ if (this._config.keyboard) {
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
+ return _this3._keydown(event);
+ });
+ }
+
+ if (this._config.pause === 'hover') {
+ EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
+ return _this3.pause(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
+ return _this3.cycle(event);
+ });
+ }
+
+ if (this._config.touch && this._touchSupported) {
+ this._addTouchEventListeners();
+ }
+ };
+
+ _proto._addTouchEventListeners = function _addTouchEventListeners() {
+ var _this4 = this;
+
+ var start = function start(event) {
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
+ _this4.touchStartX = event.clientX;
+ } else if (!_this4._pointerEvent) {
+ _this4.touchStartX = event.touches[0].clientX;
+ }
+ };
+
+ var move = function move(event) {
+ // ensure swiping with one touch and not pinching
+ if (event.touches && event.touches.length > 1) {
+ _this4.touchDeltaX = 0;
+ } else {
+ _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
+ }
+ };
+
+ var end = function end(event) {
+ if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
+ _this4.touchDeltaX = event.clientX - _this4.touchStartX;
+ }
+
+ _this4._handleSwipe();
+
+ if (_this4._config.pause === 'hover') {
+ // If it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ _this4.pause();
+
+ if (_this4.touchTimeout) {
+ clearTimeout(_this4.touchTimeout);
+ }
+
+ _this4.touchTimeout = setTimeout(function (event) {
+ return _this4.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
+ }
+ };
+
+ SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {
+ EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {
+ return e.preventDefault();
+ });
+ });
+
+ if (this._pointerEvent) {
+ EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {
+ return start(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {
+ return end(event);
+ });
+
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {
+ return start(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {
+ return move(event);
+ });
+ EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {
+ return end(event);
+ });
+ }
+ };
+
+ _proto._keydown = function _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ if (event.key === ARROW_LEFT_KEY) {
+ event.preventDefault();
+
+ if (isRTL) {
+ this.next();
+ } else {
+ this.prev();
+ }
+ } else if (event.key === ARROW_RIGHT_KEY) {
+ event.preventDefault();
+
+ if (isRTL) {
+ this.prev();
+ } else {
+ this.next();
+ }
+ }
+ };
+
+ _proto._getItemIndex = function _getItemIndex(element) {
+ this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];
+ return this._items.indexOf(element);
+ };
+
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === DIRECTION_NEXT;
+ var isPrevDirection = direction === DIRECTION_PREV;
+
+ var activeIndex = this._getItemIndex(activeElement);
+
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
+
+ var delta = direction === DIRECTION_PREV ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ };
+
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
+
+ var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));
+
+ return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ };
+
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE);
+ activeIndicator.removeAttribute('aria-current');
+ var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);
+
+ for (var i = 0; i < indicators.length; i++) {
+ if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {
+ indicators[i].classList.add(CLASS_NAME_ACTIVE);
+ indicators[i].setAttribute('aria-current', 'true');
+ break;
+ }
+ }
+ }
+ };
+
+ _proto._updateInterval = function _updateInterval() {
+ var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ if (!element) {
+ return;
+ }
+
+ var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
+
+ if (elementInterval) {
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
+ this._config.interval = elementInterval;
+ } else {
+ this._config.interval = this._config.defaultInterval || this._config.interval;
+ }
+ };
+
+ _proto._slide = function _slide(direction, element) {
+ var _this5 = this;
+
+ var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
+
+ var activeElementIndex = this._getItemIndex(activeElement);
+
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+ var nextElementIndex = this._getItemIndex(nextElement);
+
+ var isCycling = Boolean(this._interval);
+ var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;
+ var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
+ var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;
+
+ if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
+
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+ if (slideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (!activeElement || !nextElement) {
+ // Some weirdness is happening, so we bail
+ return;
+ }
+
+ this._isSliding = true;
+
+ if (isCycling) {
+ this.pause();
+ }
+
+ this._setActiveIndicatorElement(nextElement);
+
+ this._activeElement = nextElement;
+
+ if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
+ nextElement.classList.add(orderClassName);
+ reflow(nextElement);
+ activeElement.classList.add(directionalClassName);
+ nextElement.classList.add(directionalClassName);
+ var transitionDuration = getTransitionDurationFromElement(activeElement);
+ EventHandler__default['default'].one(activeElement, 'transitionend', function () {
+ nextElement.classList.remove(directionalClassName, orderClassName);
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
+ _this5._isSliding = false;
+ setTimeout(function () {
+ EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }, 0);
+ });
+ emulateTransitionEnd(activeElement, transitionDuration);
+ } else {
+ activeElement.classList.remove(CLASS_NAME_ACTIVE);
+ nextElement.classList.add(CLASS_NAME_ACTIVE);
+ this._isSliding = false;
+ EventHandler__default['default'].trigger(this._element, EVENT_SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }
+
+ if (isCycling) {
+ this.cycle();
+ }
+ } // Static
+ ;
+
+ Carousel.carouselInterface = function carouselInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));
+
+ if (typeof config === 'object') {
+ _config = _extends({}, _config, config);
+ }
+
+ var action = typeof config === 'string' ? config : _config.slide;
+
+ if (!data) {
+ data = new Carousel(element, _config);
+ }
+
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new TypeError("No method named \"" + action + "\"");
+ }
+
+ data[action]();
+ } else if (_config.interval && _config.ride) {
+ data.pause();
+ data.cycle();
+ }
+ };
+
+ Carousel.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Carousel.carouselInterface(this, config);
+ });
+ };
+
+ Carousel.dataApiClickHandler = function dataApiClickHandler(event) {
+ var target = getElementFromSelector(this);
+
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
+
+ var slideIndex = this.getAttribute('data-bs-slide-to');
+
+ if (slideIndex) {
+ config.interval = false;
+ }
+
+ Carousel.carouselInterface(target, config);
+
+ if (slideIndex) {
+ Data__default['default'].getData(target, DATA_KEY).to(slideIndex);
+ }
+
+ event.preventDefault();
+ };
+
+ _createClass(Carousel, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Carousel;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
+ var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);
+
+ for (var i = 0, len = carousels.length; i < len; i++) {
+ Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
+ }
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Carousel to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Carousel);
+
+ return Carousel;
+
+})));
+//# sourceMappingURL=carousel.js.map
+/*!
+ * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getSelectorFromElement = function getSelectorFromElement(element) {
+ var selector = getSelector(element);
+
+ if (selector) {
+ return document.querySelector(selector) ? selector : null;
+ }
+
+ return null;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'collapse';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+ };
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_COLLAPSE = 'collapse';
+ var CLASS_NAME_COLLAPSING = 'collapsing';
+ var CLASS_NAME_COLLAPSED = 'collapsed';
+ var WIDTH = 'width';
+ var HEIGHT = 'height';
+ var SELECTOR_ACTIVES = '.show, .collapsing';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Collapse = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Collapse, _BaseComponent);
+
+ function Collapse(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._isTransitioning = false;
+ _this._config = _this._getConfig(config);
+ _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
+ var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
+
+ for (var i = 0, len = toggleList.length; i < len; i++) {
+ var elem = toggleList[i];
+ var selector = getSelectorFromElement(elem);
+ var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {
+ return foundElem === element;
+ });
+
+ if (selector !== null && filterElement.length) {
+ _this._selector = selector;
+
+ _this._triggerArray.push(elem);
+ }
+ }
+
+ _this._parent = _this._config.parent ? _this._getParent() : null;
+
+ if (!_this._config.parent) {
+ _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
+ }
+
+ if (_this._config.toggle) {
+ _this.toggle();
+ }
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Collapse.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.classList.contains(CLASS_NAME_SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ };
+
+ _proto.show = function show() {
+ var _this2 = this;
+
+ if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var actives;
+ var activesData;
+
+ if (this._parent) {
+ actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
+ if (typeof _this2._config.parent === 'string') {
+ return elem.getAttribute('data-bs-parent') === _this2._config.parent;
+ }
+
+ return elem.classList.contains(CLASS_NAME_COLLAPSE);
+ });
+
+ if (actives.length === 0) {
+ actives = null;
+ }
+ }
+
+ var container = SelectorEngine__default['default'].findOne(this._selector);
+
+ if (actives) {
+ var tempActiveData = actives.find(function (elem) {
+ return container !== elem;
+ });
+ activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
+
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
+ }
+
+ var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ if (actives) {
+ actives.forEach(function (elemActive) {
+ if (container !== elemActive) {
+ Collapse.collapseInterface(elemActive, 'hide');
+ }
+
+ if (!activesData) {
+ Data__default['default'].setData(elemActive, DATA_KEY, null);
+ }
+ });
+ }
+
+ var dimension = this._getDimension();
+
+ this._element.classList.remove(CLASS_NAME_COLLAPSE);
+
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+
+ this._element.style[dimension] = 0;
+
+ if (this._triggerArray.length) {
+ this._triggerArray.forEach(function (element) {
+ element.classList.remove(CLASS_NAME_COLLAPSED);
+ element.setAttribute('aria-expanded', true);
+ });
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this2._element.classList.remove(CLASS_NAME_COLLAPSING);
+
+ _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+
+ _this2._element.style[dimension] = '';
+
+ _this2.setTransitioning(false);
+
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
+ };
+
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = "scroll" + capitalizedDimension;
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ this._element.style[dimension] = this._element[scrollSize] + "px";
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ var dimension = this._getDimension();
+
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+ reflow(this._element);
+
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
+
+ var triggerArrayLength = this._triggerArray.length;
+
+ if (triggerArrayLength > 0) {
+ for (var i = 0; i < triggerArrayLength; i++) {
+ var trigger = this._triggerArray[i];
+ var elem = getElementFromSelector(trigger);
+
+ if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
+ trigger.classList.add(CLASS_NAME_COLLAPSED);
+ trigger.setAttribute('aria-expanded', false);
+ }
+ }
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this3.setTransitioning(false);
+
+ _this3._element.classList.remove(CLASS_NAME_COLLAPSING);
+
+ _this3._element.classList.add(CLASS_NAME_COLLAPSE);
+
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
+ };
+
+ this._element.style[dimension] = '';
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ };
+
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ this._config = null;
+ this._parent = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ config.toggle = Boolean(config.toggle); // Coerce string values
+
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getDimension = function _getDimension() {
+ return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
+ };
+
+ _proto._getParent = function _getParent() {
+ var _this4 = this;
+
+ var parent = this._config.parent;
+
+ if (isElement(parent)) {
+ // it's a jQuery object
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
+ parent = parent[0];
+ }
+ } else {
+ parent = SelectorEngine__default['default'].findOne(parent);
+ }
+
+ var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
+ SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
+ var selected = getElementFromSelector(element);
+
+ _this4._addAriaAndCollapsedClass(selected, [element]);
+ });
+ return parent;
+ };
+
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (!element || !triggerArray.length) {
+ return;
+ }
+
+ var isOpen = element.classList.contains(CLASS_NAME_SHOW);
+ triggerArray.forEach(function (elem) {
+ if (isOpen) {
+ elem.classList.remove(CLASS_NAME_COLLAPSED);
+ } else {
+ elem.classList.add(CLASS_NAME_COLLAPSED);
+ }
+
+ elem.setAttribute('aria-expanded', isOpen);
+ });
+ } // Static
+ ;
+
+ Collapse.collapseInterface = function collapseInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});
+
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+
+ if (!data) {
+ data = new Collapse(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ };
+
+ Collapse.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Collapse.collapseInterface(this, config);
+ });
+ };
+
+ _createClass(Collapse, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Collapse;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ var triggerData = Manipulator__default['default'].getDataAttributes(this);
+ var selector = getSelectorFromElement(this);
+ var selectorElements = SelectorEngine__default['default'].find(selector);
+ selectorElements.forEach(function (element) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+ var config;
+
+ if (data) {
+ // update parent attribute
+ if (data._parent === null && typeof triggerData.parent === 'string') {
+ data._config.parent = triggerData.parent;
+ data._parent = data._getParent();
+ }
+
+ config = 'toggle';
+ } else {
+ config = triggerData;
+ }
+
+ Collapse.collapseInterface(element, config);
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Collapse to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Collapse);
+
+ return Collapse;
+
+})));
+//# sourceMappingURL=collapse.js.map
+/*!
+ * Bootstrap dropdown.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var noop = function noop() {
+ return function () {};
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'dropdown';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ESCAPE_KEY = 'Escape';
+ var SPACE_KEY = 'Space';
+ var TAB_KEY = 'Tab';
+ var ARROW_UP_KEY = 'ArrowUp';
+ var ARROW_DOWN_KEY = 'ArrowDown';
+ var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_CLICK = "click" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
+ var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DISABLED = 'disabled';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_DROPUP = 'dropup';
+ var CLASS_NAME_DROPEND = 'dropend';
+ var CLASS_NAME_DROPSTART = 'dropstart';
+ var CLASS_NAME_NAVBAR = 'navbar';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
+ var SELECTOR_FORM_CHILD = '.dropdown form';
+ var SELECTOR_MENU = '.dropdown-menu';
+ var SELECTOR_NAVBAR_NAV = '.navbar-nav';
+ var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
+ var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
+ var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
+ var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
+ var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
+ var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
+ var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
+ var Default = {
+ offset: [0, 2],
+ flip: true,
+ boundary: 'clippingParents',
+ reference: 'toggle',
+ display: 'dynamic',
+ popperConfig: null
+ };
+ var DefaultType = {
+ offset: '(array|string|function)',
+ flip: 'boolean',
+ boundary: '(string|element)',
+ reference: '(string|element|object)',
+ display: 'string',
+ popperConfig: '(null|object|function)'
+ };
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Dropdown = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Dropdown, _BaseComponent);
+
+ function Dropdown(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._popper = null;
+ _this._config = _this._getConfig(config);
+ _this._menu = _this._getMenuElement();
+ _this._inNavbar = _this._detectNavbar();
+
+ _this._addEventListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Dropdown.prototype;
+
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var isActive = this._element.classList.contains(CLASS_NAME_SHOW);
+
+ Dropdown.clearMenus();
+
+ if (isActive) {
+ return;
+ }
+
+ this.show();
+ };
+
+ _proto.show = function show() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var parent = Dropdown.getParentFromElement(this._element);
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ } // Totally disable Popper for Dropdowns in Navbar
+
+
+ if (this._inNavbar) {
+ Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');
+ } else {
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
+ }
+
+ var referenceElement = this._element;
+
+ if (this._config.reference === 'parent') {
+ referenceElement = parent;
+ } else if (isElement(this._config.reference)) {
+ referenceElement = this._config.reference; // Check if it's jQuery element
+
+ if (typeof this._config.reference.jquery !== 'undefined') {
+ referenceElement = this._config.reference[0];
+ }
+ } else if (typeof this._config.reference === 'object') {
+ referenceElement = this._config.reference;
+ }
+
+ var popperConfig = this._getPopperConfig();
+
+ var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {
+ return modifier.name === 'applyStyles' && modifier.enabled === false;
+ });
+ this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);
+
+ if (isDisplayStatic) {
+ Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');
+ }
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
+ var _ref;
+
+ (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
+ return EventHandler__default['default'].on(elem, 'mouseover', null, noop());
+ });
+ }
+
+ this._element.focus();
+
+ this._element.setAttribute('aria-expanded', true);
+
+ this._menu.classList.toggle(CLASS_NAME_SHOW);
+
+ this._element.classList.toggle(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);
+ };
+
+ _proto.hide = function hide() {
+ if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (this._popper) {
+ this._popper.destroy();
+ }
+
+ this._menu.classList.toggle(CLASS_NAME_SHOW);
+
+ this._element.classList.toggle(CLASS_NAME_SHOW);
+
+ Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');
+ EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._element, EVENT_KEY);
+ this._menu = null;
+
+ if (this._popper) {
+ this._popper.destroy();
+
+ this._popper = null;
+ }
+ };
+
+ _proto.update = function update() {
+ this._inNavbar = this._detectNavbar();
+
+ if (this._popper) {
+ this._popper.update();
+ }
+ } // Private
+ ;
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this2 = this;
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ _this2.toggle();
+ });
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config);
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
+ if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
+ // Popper virtual elements require a getBoundingClientRect method
+ throw new TypeError(NAME.toUpperCase() + ": Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.");
+ }
+
+ return config;
+ };
+
+ _proto._getMenuElement = function _getMenuElement() {
+ return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];
+ };
+
+ _proto._getPlacement = function _getPlacement() {
+ var parentDropdown = this._element.parentNode;
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
+ }
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ } // We need to trim the value because custom properties can also include spaces
+
+
+ var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
+
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
+ return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
+ }
+
+ return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
+ };
+
+ _proto._detectNavbar = function _detectNavbar() {
+ return this._element.closest("." + CLASS_NAME_NAVBAR) !== null;
+ };
+
+ _proto._getOffset = function _getOffset() {
+ var _this3 = this;
+
+ var offset = this._config.offset;
+
+ if (typeof offset === 'string') {
+ return offset.split(',').map(function (val) {
+ return Number.parseInt(val, 10);
+ });
+ }
+
+ if (typeof offset === 'function') {
+ return function (popperData) {
+ return offset(popperData, _this3._element);
+ };
+ }
+
+ return offset;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig() {
+ var defaultBsPopperConfig = {
+ placement: this._getPlacement(),
+ modifiers: [{
+ name: 'preventOverflow',
+ options: {
+ altBoundary: this._config.flip,
+ boundary: this._config.boundary
+ }
+ }, {
+ name: 'offset',
+ options: {
+ offset: this._getOffset()
+ }
+ }]
+ }; // Disable Popper if we have a static display
+
+ if (this._config.display === 'static') {
+ defaultBsPopperConfig.modifiers = [{
+ name: 'applyStyles',
+ enabled: false
+ }];
+ }
+
+ return _extends({}, defaultBsPopperConfig, typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);
+ } // Static
+ ;
+
+ Dropdown.dropdownInterface = function dropdownInterface(element, config) {
+ var data = Data__default['default'].getData(element, DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ };
+
+ Dropdown.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ Dropdown.dropdownInterface(this, config);
+ });
+ };
+
+ Dropdown.clearMenus = function clearMenus(event) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
+ return;
+ }
+
+ var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
+
+ for (var i = 0, len = toggles.length; i < len; i++) {
+ var context = Data__default['default'].getData(toggles[i], DATA_KEY);
+ var relatedTarget = {
+ relatedTarget: toggles[i]
+ };
+
+ if (event && event.type === 'click') {
+ relatedTarget.clickEvent = event;
+ }
+
+ if (!context) {
+ continue;
+ }
+
+ var dropdownMenu = context._menu;
+
+ if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {
+ continue;
+ }
+
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
+ continue;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(toggles[i], EVENT_HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ continue;
+ } // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref2;
+
+ (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {
+ return EventHandler__default['default'].off(elem, 'mouseover', null, noop());
+ });
+ }
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+
+ if (context._popper) {
+ context._popper.destroy();
+ }
+
+ dropdownMenu.classList.remove(CLASS_NAME_SHOW);
+ toggles[i].classList.remove(CLASS_NAME_SHOW);
+ Manipulator__default['default'].removeDataAttribute(dropdownMenu, 'popper');
+ EventHandler__default['default'].trigger(toggles[i], EVENT_HIDDEN, relatedTarget);
+ }
+ };
+
+ Dropdown.getParentFromElement = function getParentFromElement(element) {
+ return getElementFromSelector(element) || element.parentNode;
+ };
+
+ Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {
+ // If not input/textarea:
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
+ // If input/textarea:
+ // - If space key => not a dropdown command
+ // - If key is other than escape
+ // - If key is not up or down => not a dropdown command
+ // - If trigger inside the menu => not a dropdown command
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var parent = Dropdown.getParentFromElement(this);
+ var isActive = this.classList.contains(CLASS_NAME_SHOW);
+
+ if (event.key === ESCAPE_KEY) {
+ var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
+ button.focus();
+ Dropdown.clearMenus();
+ return;
+ }
+
+ if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {
+ var _button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];
+
+ _button.click();
+
+ return;
+ }
+
+ if (!isActive || event.key === SPACE_KEY) {
+ Dropdown.clearMenus();
+ return;
+ }
+
+ var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);
+
+ if (!items.length) {
+ return;
+ }
+
+ var index = items.indexOf(event.target); // Up
+
+ if (event.key === ARROW_UP_KEY && index > 0) {
+ index--;
+ } // Down
+
+
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
+ index++;
+ } // index is -1 if the first keydown is an ArrowUp
+
+
+ index = index === -1 ? 0 : index;
+ items[index].focus();
+ };
+
+ _createClass(Dropdown, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Dropdown;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);
+ EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);
+ EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ Dropdown.dropdownInterface(this, 'toggle');
+ });
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
+ return e.stopPropagation();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Dropdown to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Dropdown);
+
+ return Dropdown;
+
+})));
+//# sourceMappingURL=dropdown.js.map
+/*!
+ * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var isVisible = function isVisible(element) {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ var elementStyle = getComputedStyle(element);
+ var parentNodeStyle = getComputedStyle(element.parentNode);
+ return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
+ }
+
+ return false;
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'modal';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var ESCAPE_KEY = 'Escape';
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true
+ };
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean'
+ };
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
+ var EVENT_RESIZE = "resize" + EVENT_KEY;
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
+ var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
+ var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
+ var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
+ var CLASS_NAME_BACKDROP = 'modal-backdrop';
+ var CLASS_NAME_OPEN = 'modal-open';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_STATIC = 'modal-static';
+ var SELECTOR_DIALOG = '.modal-dialog';
+ var SELECTOR_MODAL_BODY = '.modal-body';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
+ var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
+ var SELECTOR_STICKY_CONTENT = '.sticky-top';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Modal = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Modal, _BaseComponent);
+
+ function Modal(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
+ _this._backdrop = null;
+ _this._isShown = false;
+ _this._isBodyOverflowing = false;
+ _this._ignoreBackdropClick = false;
+ _this._isTransitioning = false;
+ _this._scrollbarWidth = 0;
+ return _this;
+ } // Getters
+
+
+ var _proto = Modal.prototype;
+
+ // Public
+ _proto.toggle = function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ };
+
+ _proto.show = function show(relatedTarget) {
+ var _this2 = this;
+
+ if (this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
+ this._isTransitioning = true;
+ }
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
+ relatedTarget: relatedTarget
+ });
+
+ if (this._isShown || showEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = true;
+
+ this._checkScrollbar();
+
+ this._setScrollbar();
+
+ this._adjustDialog();
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
+ return _this2.hide(event);
+ });
+ EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
+ EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
+ if (event.target === _this2._element) {
+ _this2._ignoreBackdropClick = true;
+ }
+ });
+ });
+
+ this._showBackdrop(function () {
+ return _this2._showElement(relatedTarget);
+ });
+ };
+
+ _proto.hide = function hide(event) {
+ var _this3 = this;
+
+ if (event) {
+ event.preventDefault();
+ }
+
+ if (!this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = false;
+
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
+
+ if (transition) {
+ this._isTransitioning = true;
+ }
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN);
+
+ this._element.classList.remove(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
+ EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
+
+ if (transition) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', function (event) {
+ return _this3._hideModal(event);
+ });
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ this._hideModal();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ [window, this._element, this._dialog].forEach(function (htmlElement) {
+ return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
+ });
+
+ _BaseComponent.prototype.dispose.call(this);
+ /**
+ * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
+ * Do not move `document` in `htmlElements` array
+ * It will remove `EVENT_CLICK_DATA_API` event that should remain
+ */
+
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN);
+ this._config = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._isTransitioning = null;
+ this._scrollbarWidth = null;
+ };
+
+ _proto.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, config);
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._showElement = function _showElement(relatedTarget) {
+ var _this4 = this;
+
+ var transition = this._element.classList.contains(CLASS_NAME_FADE);
+
+ var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
+
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // Don't move modal's DOM position
+ document.body.appendChild(this._element);
+ }
+
+ this._element.style.display = 'block';
+
+ this._element.removeAttribute('aria-hidden');
+
+ this._element.setAttribute('aria-modal', true);
+
+ this._element.setAttribute('role', 'dialog');
+
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
+ modalBody.scrollTop = 0;
+ }
+
+ if (transition) {
+ reflow(this._element);
+ }
+
+ this._element.classList.add(CLASS_NAME_SHOW);
+
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
+
+ var transitionComplete = function transitionComplete() {
+ if (_this4._config.focus) {
+ _this4._element.focus();
+ }
+
+ _this4._isTransitioning = false;
+ EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
+ relatedTarget: relatedTarget
+ });
+ };
+
+ if (transition) {
+ var transitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete);
+ emulateTransitionEnd(this._dialog, transitionDuration);
+ } else {
+ transitionComplete();
+ }
+ };
+
+ _proto._enforceFocus = function _enforceFocus() {
+ var _this5 = this;
+
+ EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
+
+ EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
+ if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
+ _this5._element.focus();
+ }
+ });
+ };
+
+ _proto._setEscapeEvent = function _setEscapeEvent() {
+ var _this6 = this;
+
+ if (this._isShown) {
+ EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
+ if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
+ event.preventDefault();
+
+ _this6.hide();
+ } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
+ _this6._triggerBackdropTransition();
+ }
+ });
+ } else {
+ EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);
+ }
+ };
+
+ _proto._setResizeEvent = function _setResizeEvent() {
+ var _this7 = this;
+
+ if (this._isShown) {
+ EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
+ return _this7._adjustDialog();
+ });
+ } else {
+ EventHandler__default['default'].off(window, EVENT_RESIZE);
+ }
+ };
+
+ _proto._hideModal = function _hideModal() {
+ var _this8 = this;
+
+ this._element.style.display = 'none';
+
+ this._element.setAttribute('aria-hidden', true);
+
+ this._element.removeAttribute('aria-modal');
+
+ this._element.removeAttribute('role');
+
+ this._isTransitioning = false;
+
+ this._showBackdrop(function () {
+ document.body.classList.remove(CLASS_NAME_OPEN);
+
+ _this8._resetAdjustments();
+
+ _this8._resetScrollbar();
+
+ EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
+ });
+ };
+
+ _proto._removeBackdrop = function _removeBackdrop() {
+ this._backdrop.parentNode.removeChild(this._backdrop);
+
+ this._backdrop = null;
+ };
+
+ _proto._showBackdrop = function _showBackdrop(callback) {
+ var _this9 = this;
+
+ var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
+
+ if (this._isShown && this._config.backdrop) {
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = CLASS_NAME_BACKDROP;
+
+ if (animate) {
+ this._backdrop.classList.add(animate);
+ }
+
+ document.body.appendChild(this._backdrop);
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
+ if (_this9._ignoreBackdropClick) {
+ _this9._ignoreBackdropClick = false;
+ return;
+ }
+
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (_this9._config.backdrop === 'static') {
+ _this9._triggerBackdropTransition();
+ } else {
+ _this9.hide();
+ }
+ });
+
+ if (animate) {
+ reflow(this._backdrop);
+ }
+
+ this._backdrop.classList.add(CLASS_NAME_SHOW);
+
+ if (!animate) {
+ callback();
+ return;
+ }
+
+ var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+ EventHandler__default['default'].one(this._backdrop, 'transitionend', callback);
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
+ } else if (!this._isShown && this._backdrop) {
+ this._backdrop.classList.remove(CLASS_NAME_SHOW);
+
+ var callbackRemove = function callbackRemove() {
+ _this9._removeBackdrop();
+
+ callback();
+ };
+
+ if (this._element.classList.contains(CLASS_NAME_FADE)) {
+ var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+
+ EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove);
+ emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
+ } else {
+ callbackRemove();
+ }
+ } else {
+ callback();
+ }
+ };
+
+ _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
+ var _this10 = this;
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = 'hidden';
+ }
+
+ this._element.classList.add(CLASS_NAME_STATIC);
+
+ var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler__default['default'].off(this._element, 'transitionend');
+ EventHandler__default['default'].one(this._element, 'transitionend', function () {
+ _this10._element.classList.remove(CLASS_NAME_STATIC);
+
+ if (!isModalOverflowing) {
+ EventHandler__default['default'].one(_this10._element, 'transitionend', function () {
+ _this10._element.style.overflowY = '';
+ });
+ emulateTransitionEnd(_this10._element, modalTransitionDuration);
+ }
+ });
+ emulateTransitionEnd(this._element, modalTransitionDuration);
+
+ this._element.focus();
+ } // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // ----------------------------------------------------------------------
+ ;
+
+ _proto._adjustDialog = function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
+ }
+
+ if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
+ }
+ };
+
+ _proto._resetAdjustments = function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ };
+
+ _proto._checkScrollbar = function _checkScrollbar() {
+ var rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ };
+
+ _proto._setScrollbar = function _setScrollbar() {
+ var _this11 = this;
+
+ if (this._isBodyOverflowing) {
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {
+ return calculatedValue + _this11._scrollbarWidth;
+ });
+
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {
+ return calculatedValue - _this11._scrollbarWidth;
+ });
+
+ this._setElementAttributes('body', 'paddingRight', function (calculatedValue) {
+ return calculatedValue + _this11._scrollbarWidth;
+ });
+ }
+
+ document.body.classList.add(CLASS_NAME_OPEN);
+ };
+
+ _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) {
+ SelectorEngine__default['default'].find(selector).forEach(function (element) {
+ var actualValue = element.style[styleProp];
+ var calculatedValue = window.getComputedStyle(element)[styleProp];
+ Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);
+ element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
+ });
+ };
+
+ _proto._resetScrollbar = function _resetScrollbar() {
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
+
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
+
+ this._resetElementAttributes('body', 'paddingRight');
+ };
+
+ _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) {
+ SelectorEngine__default['default'].find(selector).forEach(function (element) {
+ var value = Manipulator__default['default'].getDataAttribute(element, styleProp);
+
+ if (typeof value === 'undefined' && element === document.body) {
+ element.style[styleProp] = '';
+ } else {
+ Manipulator__default['default'].removeDataAttribute(element, styleProp);
+ element.style[styleProp] = value;
+ }
+ });
+ };
+
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ } // Static
+ ;
+
+ Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});
+
+ if (!data) {
+ data = new Modal(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config](relatedTarget);
+ }
+ });
+ };
+
+ _createClass(Modal, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Modal;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ var _this12 = this;
+
+ var target = getElementFromSelector(this);
+
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
+ }
+
+ EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {
+ if (showEvent.defaultPrevented) {
+ // only register focus restorer if modal will actually get shown
+ return;
+ }
+
+ EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
+ if (isVisible(_this12)) {
+ _this12.focus();
+ }
+ });
+ });
+ var data = Data__default['default'].getData(target, DATA_KEY);
+
+ if (!data) {
+ var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
+
+ data = new Modal(target, config);
+ }
+
+ data.toggle(this);
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Modal to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Modal);
+
+ return Modal;
+
+})));
+//# sourceMappingURL=modal.js.map
+/*!
+ * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
+}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'popover';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+ var Default = _extends({}, Tooltip__default['default'].Default, {
+ placement: 'right',
+ offset: [0, 8],
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
+ });
+
+ var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
+ content: '(string|element|function)'
+ });
+
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var SELECTOR_TITLE = '.popover-header';
+ var SELECTOR_CONTENT = '.popover-body';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Popover = /*#__PURE__*/function (_Tooltip) {
+ _inheritsLoose(Popover, _Tooltip);
+
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
+
+ var _proto = Popover.prototype;
+
+ // Overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
+
+ _proto.setContent = function setContent() {
+ var tip = this.getTipElement(); // we use append for html objects to maintain js events
+
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
+
+ var content = this._getContent();
+
+ if (typeof content === 'function') {
+ content = content.call(this._element);
+ }
+
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
+ } // Private
+ ;
+
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
+ };
+
+ _proto._getContent = function _getContent() {
+ return this._element.getAttribute('data-bs-content') || this.config.content;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var tip = this.getTipElement();
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ tabClass.map(function (token) {
+ return token.trim();
+ }).forEach(function (tClass) {
+ return tip.classList.remove(tClass);
+ });
+ }
+ } // Static
+ ;
+
+ Popover.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ Data__default['default'].setData(this, DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Popover, null, [{
+ key: "Default",
+ get: // Getters
+ function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ }(Tooltip__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Popover to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Popover);
+
+ return Popover;
+
+})));
+//# sourceMappingURL=popover.js.map
+/*!
+ * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MAX_UID = 1000000;
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+ var getUID = function getUID(prefix) {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ };
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getSelectorFromElement = function getSelectorFromElement(element) {
+ var selector = getSelector(element);
+
+ if (selector) {
+ return document.querySelector(selector) ? selector : null;
+ }
+
+ return null;
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'scrollspy';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+ var EVENT_ACTIVATE = "activate" + EVENT_KEY;
+ var EVENT_SCROLL = "scroll" + EVENT_KEY;
+ var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
+ var CLASS_NAME_ACTIVE = 'active';
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
+ var SELECTOR_NAV_LINKS = '.nav-link';
+ var SELECTOR_NAV_ITEMS = '.nav-item';
+ var SELECTOR_LIST_ITEMS = '.list-group-item';
+ var SELECTOR_DROPDOWN = '.dropdown';
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
+ var METHOD_OFFSET = 'offset';
+ var METHOD_POSITION = 'position';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(ScrollSpy, _BaseComponent);
+
+ function ScrollSpy(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._scrollElement = element.tagName === 'BODY' ? window : element;
+ _this._config = _this._getConfig(config);
+ _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
+ _this._offsets = [];
+ _this._targets = [];
+ _this._activeTarget = null;
+ _this._scrollHeight = 0;
+ EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {
+ return _this._process();
+ });
+
+ _this.refresh();
+
+ _this._process();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = ScrollSpy.prototype;
+
+ // Public
+ _proto.refresh = function refresh() {
+ var _this2 = this;
+
+ var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ var targets = SelectorEngine__default['default'].find(this._selector);
+ targets.map(function (element) {
+ var targetSelector = getSelectorFromElement(element);
+ var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
+
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
+
+ if (targetBCR.width || targetBCR.height) {
+ return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
+ }
+ }
+
+ return null;
+ }).filter(function (item) {
+ return item;
+ }).sort(function (a, b) {
+ return a[0] - b[0];
+ }).forEach(function (item) {
+ _this2._offsets.push(item[0]);
+
+ _this2._targets.push(item[1]);
+ });
+ };
+
+ _proto.dispose = function dispose() {
+ _BaseComponent.prototype.dispose.call(this);
+
+ EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.target !== 'string' && isElement(config.target)) {
+ var id = config.target.id;
+
+ if (!id) {
+ id = getUID(NAME);
+ config.target.id = id;
+ }
+
+ config.target = "#" + id;
+ }
+
+ typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getScrollTop = function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ };
+
+ _proto._getScrollHeight = function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ };
+
+ _proto._getOffsetHeight = function _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ };
+
+ _proto._process = function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
+
+ var scrollHeight = this._getScrollHeight();
+
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
+
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
+
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
+
+ return;
+ }
+
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
+
+ this._clear();
+
+ return;
+ }
+
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
+ }
+ };
+
+ _proto._activate = function _activate(target) {
+ this._activeTarget = target;
+
+ this._clear();
+
+ var queries = this._selector.split(',').map(function (selector) {
+ return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
+ });
+
+ var link = SelectorEngine__default['default'].findOne(queries.join(','));
+
+ if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
+ SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
+ link.classList.add(CLASS_NAME_ACTIVE);
+ } else {
+ // Set triggered link as active
+ link.classList.add(CLASS_NAME_ACTIVE);
+ SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {
+ // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + ", " + SELECTOR_LIST_ITEMS).forEach(function (item) {
+ return item.classList.add(CLASS_NAME_ACTIVE);
+ }); // Handle special case when .nav-link is inside .nav-item
+
+ SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {
+ SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {
+ return item.classList.add(CLASS_NAME_ACTIVE);
+ });
+ });
+ });
+ }
+
+ EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
+ relatedTarget: target
+ });
+ };
+
+ _proto._clear = function _clear() {
+ SelectorEngine__default['default'].find(this._selector).filter(function (node) {
+ return node.classList.contains(CLASS_NAME_ACTIVE);
+ }).forEach(function (node) {
+ return node.classList.remove(CLASS_NAME_ACTIVE);
+ });
+ } // Static
+ ;
+
+ ScrollSpy.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(ScrollSpy, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return ScrollSpy;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {
+ SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {
+ return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .ScrollSpy to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, ScrollSpy);
+
+ return ScrollSpy;
+
+})));
+//# sourceMappingURL=scrollspy.js.map
+/*!
+ * Bootstrap tab.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine, global.Base));
+}(this, (function (Data, EventHandler, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var getSelector = function getSelector(element) {
+ var selector = element.getAttribute('data-bs-target');
+
+ if (!selector || selector === '#') {
+ var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
+ // `document.querySelector` will rightfully complain it is invalid.
+ // See https://github.com/twbs/bootstrap/issues/32273
+
+ if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
+ return null;
+ } // Just in case some CMS puts out a full URL with the anchor appended
+
+
+ if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
+ hrefAttr = '#' + hrefAttr.split('#')[1];
+ }
+
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
+ }
+
+ return selector;
+ };
+
+ var getElementFromSelector = function getElementFromSelector(element) {
+ var selector = getSelector(element);
+ return selector ? document.querySelector(selector) : null;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tab';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
+ var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
+ var CLASS_NAME_ACTIVE = 'active';
+ var CLASS_NAME_DISABLED = 'disabled';
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_SHOW = 'show';
+ var SELECTOR_DROPDOWN = '.dropdown';
+ var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
+ var SELECTOR_ACTIVE = '.active';
+ var SELECTOR_ACTIVE_UL = ':scope > li > .active';
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
+ var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
+ var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tab = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tab, _BaseComponent);
+
+ function Tab() {
+ return _BaseComponent.apply(this, arguments) || this;
+ }
+
+ var _proto = Tab.prototype;
+
+ // Public
+ _proto.show = function show() {
+ var _this = this;
+
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || this._element.classList.contains(CLASS_NAME_DISABLED)) {
+ return;
+ }
+
+ var previous;
+ var target = getElementFromSelector(this._element);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
+
+ if (listElement) {
+ var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
+ previous = SelectorEngine__default['default'].find(itemSelector, listElement);
+ previous = previous[previous.length - 1];
+ }
+
+ var hideEvent = previous ? EventHandler__default['default'].trigger(previous, EVENT_HIDE, {
+ relatedTarget: this._element
+ }) : null;
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
+ relatedTarget: previous
+ });
+
+ if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
+ return;
+ }
+
+ this._activate(this._element, listElement);
+
+ var complete = function complete() {
+ EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {
+ relatedTarget: _this._element
+ });
+ EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN, {
+ relatedTarget: previous
+ });
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
+ } // Private
+ ;
+
+ _proto._activate = function _activate(element, container, callback) {
+ var _this2 = this;
+
+ var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);
+ var active = activeElements[0];
+ var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);
+
+ var complete = function complete() {
+ return _this2._transitionComplete(element, active, callback);
+ };
+
+ if (active && isTransitioning) {
+ var transitionDuration = getTransitionDurationFromElement(active);
+ active.classList.remove(CLASS_NAME_SHOW);
+ EventHandler__default['default'].one(active, 'transitionend', complete);
+ emulateTransitionEnd(active, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+ if (active) {
+ active.classList.remove(CLASS_NAME_ACTIVE);
+ var dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
+
+ if (dropdownChild) {
+ dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
+ }
+
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
+ }
+
+ element.classList.add(CLASS_NAME_ACTIVE);
+
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
+
+ reflow(element);
+
+ if (element.classList.contains(CLASS_NAME_FADE)) {
+ element.classList.add(CLASS_NAME_SHOW);
+ }
+
+ if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN);
+
+ if (dropdownElement) {
+ SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {
+ return dropdown.classList.add(CLASS_NAME_ACTIVE);
+ });
+ }
+
+ element.setAttribute('aria-expanded', true);
+ }
+
+ if (callback) {
+ callback();
+ }
+ } // Static
+ ;
+
+ Tab.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Tab, null, [{
+ key: "DATA_KEY",
+ get: // Getters
+ function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Tab;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
+ data.show();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Tab to jQuery only if jQuery is present
+ */
+
+ defineJQueryPlugin(NAME, Tab);
+
+ return Tab;
+
+})));
+//# sourceMappingURL=tab.js.map
+/*!
+ * Bootstrap toast.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator, global.Base));
+}(this, (function (Data, EventHandler, Manipulator, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var reflow = function reflow(element) {
+ return element.offsetHeight;
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'toast';
+ var DATA_KEY = 'bs.toast';
+ var EVENT_KEY = "." + DATA_KEY;
+ var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
+ var EVENT_HIDE = "hide" + EVENT_KEY;
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
+ var EVENT_SHOW = "show" + EVENT_KEY;
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_HIDE = 'hide';
+ var CLASS_NAME_SHOW = 'show';
+ var CLASS_NAME_SHOWING = 'showing';
+ var DefaultType = {
+ animation: 'boolean',
+ autohide: 'boolean',
+ delay: 'number'
+ };
+ var Default = {
+ animation: true,
+ autohide: true,
+ delay: 5000
+ };
+ var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Toast = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Toast, _BaseComponent);
+
+ function Toast(element, config) {
+ var _this;
+
+ _this = _BaseComponent.call(this, element) || this;
+ _this._config = _this._getConfig(config);
+ _this._timeout = null;
+
+ _this._setListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Toast.prototype;
+
+ // Public
+ _proto.show = function show() {
+ var _this2 = this;
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+
+ this._clearTimeout();
+
+ if (this._config.animation) {
+ this._element.classList.add(CLASS_NAME_FADE);
+ }
+
+ var complete = function complete() {
+ _this2._element.classList.remove(CLASS_NAME_SHOWING);
+
+ _this2._element.classList.add(CLASS_NAME_SHOW);
+
+ EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
+
+ if (_this2._config.autohide) {
+ _this2._timeout = setTimeout(function () {
+ _this2.hide();
+ }, _this2._config.delay);
+ }
+ };
+
+ this._element.classList.remove(CLASS_NAME_HIDE);
+
+ reflow(this._element);
+
+ this._element.classList.add(CLASS_NAME_SHOWING);
+
+ if (this._config.animation) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
+ return;
+ }
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ var complete = function complete() {
+ _this3._element.classList.add(CLASS_NAME_HIDE);
+
+ EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
+ };
+
+ this._element.classList.remove(CLASS_NAME_SHOW);
+
+ if (this._config.animation) {
+ var transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler__default['default'].one(this._element, 'transitionend', complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ this._clearTimeout();
+
+ if (this._element.classList.contains(CLASS_NAME_SHOW)) {
+ this._element.classList.remove(CLASS_NAME_SHOW);
+ }
+
+ EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
+
+ _BaseComponent.prototype.dispose.call(this);
+
+ this._config = null;
+ } // Private
+ ;
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this._element), typeof config === 'object' && config ? config : {});
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this4 = this;
+
+ EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
+ return _this4.hide();
+ });
+ };
+
+ _proto._clearTimeout = function _clearTimeout() {
+ clearTimeout(this._timeout);
+ this._timeout = null;
+ } // Static
+ ;
+
+ Toast.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new Toast(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config](this);
+ }
+ });
+ };
+
+ _createClass(Toast, null, [{
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }]);
+
+ return Toast;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Toast to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Toast);
+
+ return Toast;
+
+})));
+//# sourceMappingURL=toast.js.map
+/*!
+ * Bootstrap tooltip.js v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
+ typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
+}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ function _interopNamespace(e) {
+ if (e && e.__esModule) return e;
+ var n = Object.create(null);
+ if (e) {
+ Object.keys(e).forEach(function (k) {
+ if (k !== 'default') {
+ var d = Object.getOwnPropertyDescriptor(e, k);
+ Object.defineProperty(n, k, d.get ? d : {
+ enumerable: true,
+ get: function () {
+ return e[k];
+ }
+ });
+ }
+ });
+ }
+ n['default'] = e;
+ return Object.freeze(n);
+ }
+
+ var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
+ var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
+ var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
+ var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
+ var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
+ var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+
+ _setPrototypeOf(subClass, superClass);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var MAX_UID = 1000000;
+ var MILLISECONDS_MULTIPLIER = 1000;
+ var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ var toType = function toType(obj) {
+ if (obj === null || obj === undefined) {
+ return "" + obj;
+ }
+
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+ var getUID = function getUID(prefix) {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ };
+
+ var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ var floatTransitionDuration = Number.parseFloat(transitionDuration);
+ var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+
+ var triggerTransitionEnd = function triggerTransitionEnd(element) {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+
+ var isElement = function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ };
+
+ var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
+ var called = false;
+ var durationPadding = 5;
+ var emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(function () {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+ };
+
+ var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
+ Object.keys(configTypes).forEach(function (property) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ });
+ };
+
+ var findShadowRoot = function findShadowRoot(element) {
+ if (!document.documentElement.attachShadow) {
+ return null;
+ } // Can find the shadow root otherwise it'll return the document
+
+
+ if (typeof element.getRootNode === 'function') {
+ var root = element.getRootNode();
+ return root instanceof ShadowRoot ? root : null;
+ }
+
+ if (element instanceof ShadowRoot) {
+ return element;
+ } // when we don't find a shadow root
+
+
+ if (!element.parentNode) {
+ return null;
+ }
+
+ return findShadowRoot(element.parentNode);
+ };
+
+ var noop = function noop() {
+ return function () {};
+ };
+
+ var getjQuery = function getjQuery() {
+ var _window = window,
+ jQuery = _window.jQuery;
+
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
+ return jQuery;
+ }
+
+ return null;
+ };
+
+ var onDOMContentLoaded = function onDOMContentLoaded(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ };
+
+ var isRTL = document.documentElement.dir === 'rtl';
+
+ var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {
+ onDOMContentLoaded(function () {
+ var $ = getjQuery();
+ /* istanbul ignore if */
+
+ if ($) {
+ var JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+
+ $.fn[name].noConflict = function () {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v5.0.0-beta2): util/sanitizer.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
+ /**
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
+ /**
+ * A pattern that matches safe data URLs. Only matches image, video and audio types.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
+
+ var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
+ var attrName = attr.nodeName.toLowerCase();
+
+ if (allowedAttributeList.includes(attrName)) {
+ if (uriAttrs.has(attrName)) {
+ return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
+ }
+
+ return true;
+ }
+
+ var regExp = allowedAttributeList.filter(function (attrRegex) {
+ return attrRegex instanceof RegExp;
+ }); // Check if a regular expression validates the attribute.
+
+ for (var i = 0, len = regExp.length; i < len; i++) {
+ if (regExp[i].test(attrName)) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ var DefaultAllowlist = {
+ // Global attributes allowed on any supplied element below.
+ '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
+ a: ['target', 'href', 'title', 'rel'],
+ area: [],
+ b: [],
+ br: [],
+ col: [],
+ code: [],
+ div: [],
+ em: [],
+ hr: [],
+ h1: [],
+ h2: [],
+ h3: [],
+ h4: [],
+ h5: [],
+ h6: [],
+ i: [],
+ img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
+ li: [],
+ ol: [],
+ p: [],
+ pre: [],
+ s: [],
+ small: [],
+ span: [],
+ sub: [],
+ sup: [],
+ strong: [],
+ u: [],
+ ul: []
+ };
+ function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {
+ var _ref;
+
+ if (!unsafeHtml.length) {
+ return unsafeHtml;
+ }
+
+ if (sanitizeFn && typeof sanitizeFn === 'function') {
+ return sanitizeFn(unsafeHtml);
+ }
+
+ var domParser = new window.DOMParser();
+ var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
+ var allowlistKeys = Object.keys(allowList);
+
+ var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));
+
+ var _loop = function _loop(i, len) {
+ var _ref2;
+
+ var el = elements[i];
+ var elName = el.nodeName.toLowerCase();
+
+ if (!allowlistKeys.includes(elName)) {
+ el.parentNode.removeChild(el);
+ return "continue";
+ }
+
+ var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);
+
+ var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
+ attributeList.forEach(function (attr) {
+ if (!allowedAttribute(attr, allowedAttributes)) {
+ el.removeAttribute(attr.nodeName);
+ }
+ });
+ };
+
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var _ret = _loop(i);
+
+ if (_ret === "continue") continue;
+ }
+
+ return createdDocument.body.innerHTML;
+ }
+
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NAME = 'tooltip';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = "." + DATA_KEY;
+ var CLASS_PREFIX = 'bs-tooltip';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: '(array|string|function)',
+ container: '(string|element|boolean)',
+ fallbackPlacements: 'array',
+ boundary: '(string|element)',
+ customClass: '(string|function)',
+ sanitize: 'boolean',
+ sanitizeFn: '(null|function)',
+ allowList: 'object',
+ popperConfig: '(null|object|function)'
+ };
+ var AttachmentMap = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: isRTL ? 'left' : 'right',
+ BOTTOM: 'bottom',
+ LEFT: isRTL ? 'right' : 'left'
+ };
+ var Default = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: [0, 0],
+ container: false,
+ fallbackPlacements: ['top', 'right', 'bottom', 'left'],
+ boundary: 'clippingParents',
+ customClass: '',
+ sanitize: true,
+ sanitizeFn: null,
+ allowList: DefaultAllowlist,
+ popperConfig: null
+ };
+ var Event$1 = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var CLASS_NAME_FADE = 'fade';
+ var CLASS_NAME_MODAL = 'modal';
+ var CLASS_NAME_SHOW = 'show';
+ var HOVER_STATE_SHOW = 'show';
+ var HOVER_STATE_OUT = 'out';
+ var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
+ var TRIGGER_HOVER = 'hover';
+ var TRIGGER_FOCUS = 'focus';
+ var TRIGGER_CLICK = 'click';
+ var TRIGGER_MANUAL = 'manual';
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ var Tooltip = /*#__PURE__*/function (_BaseComponent) {
+ _inheritsLoose(Tooltip, _BaseComponent);
+
+ function Tooltip(element, config) {
+ var _this;
+
+ if (typeof Popper__namespace === 'undefined') {
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
+ }
+
+ _this = _BaseComponent.call(this, element) || this; // private
+
+ _this._isEnabled = true;
+ _this._timeout = 0;
+ _this._hoverState = '';
+ _this._activeTrigger = {};
+ _this._popper = null; // Protected
+
+ _this.config = _this._getConfig(config);
+ _this.tip = null;
+
+ _this._setListeners();
+
+ return _this;
+ } // Getters
+
+
+ var _proto = Tooltip.prototype;
+
+ // Public
+ _proto.enable = function enable() {
+ this._isEnabled = true;
+ };
+
+ _proto.disable = function disable() {
+ this._isEnabled = false;
+ };
+
+ _proto.toggleEnabled = function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ };
+
+ _proto.toggle = function toggle(event) {
+ if (!this._isEnabled) {
+ return;
+ }
+
+ if (event) {
+ var context = this._initializeOnDelegatedTarget(event);
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
+ } else {
+ if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {
+ this._leave(null, this);
+
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
+ EventHandler__default['default'].off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+
+ if (this.tip && this.tip.parentNode) {
+ this.tip.parentNode.removeChild(this.tip);
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+
+ if (this._popper) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ this.config = null;
+ this.tip = null;
+
+ _BaseComponent.prototype.dispose.call(this);
+ };
+
+ _proto.show = function show() {
+ var _this2 = this;
+
+ if (this._element.style.display === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
+
+ if (!(this.isWithContent() && this._isEnabled)) {
+ return;
+ }
+
+ var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);
+ var shadowRoot = findShadowRoot(this._element);
+ var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
+
+ if (showEvent.defaultPrevented || !isInTheDom) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+ var tipId = getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+
+ this._element.setAttribute('aria-describedby', tipId);
+
+ this.setContent();
+
+ if (this.config.animation) {
+ tip.classList.add(CLASS_NAME_FADE);
+ }
+
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
+
+ var attachment = this._getAttachment(placement);
+
+ this._addAttachmentClass(attachment);
+
+ var container = this._getContainer();
+
+ Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);
+
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
+ container.appendChild(tip);
+ }
+
+ EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
+ this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));
+ tip.classList.add(CLASS_NAME_SHOW);
+ var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
+
+ if (customClass) {
+ var _tip$classList;
+
+ (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref;
+
+ (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
+ EventHandler__default['default'].on(element, 'mouseover', noop());
+ });
+ }
+
+ var complete = function complete() {
+ var prevHoverState = _this2._hoverState;
+ _this2._hoverState = null;
+ EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);
+
+ if (prevHoverState === HOVER_STATE_OUT) {
+ _this2._leave(null, _this2);
+ }
+ };
+
+ if (this.tip.classList.contains(CLASS_NAME_FADE)) {
+ var transitionDuration = getTransitionDurationFromElement(this.tip);
+ EventHandler__default['default'].one(this.tip, 'transitionend', complete);
+ emulateTransitionEnd(this.tip, transitionDuration);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.hide = function hide() {
+ var _this3 = this;
+
+ if (!this._popper) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+
+ var complete = function complete() {
+ if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ _this3._cleanTipClass();
+
+ _this3._element.removeAttribute('aria-describedby');
+
+ EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);
+
+ if (_this3._popper) {
+ _this3._popper.destroy();
+
+ _this3._popper = null;
+ }
+ };
+
+ var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ tip.classList.remove(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+ if ('ontouchstart' in document.documentElement) {
+ var _ref2;
+
+ (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
+ return EventHandler__default['default'].off(element, 'mouseover', noop);
+ });
+ }
+
+ this._activeTrigger[TRIGGER_CLICK] = false;
+ this._activeTrigger[TRIGGER_FOCUS] = false;
+ this._activeTrigger[TRIGGER_HOVER] = false;
+
+ if (this.tip.classList.contains(CLASS_NAME_FADE)) {
+ var transitionDuration = getTransitionDurationFromElement(tip);
+ EventHandler__default['default'].one(tip, 'transitionend', complete);
+ emulateTransitionEnd(tip, transitionDuration);
+ } else {
+ complete();
+ }
+
+ this._hoverState = '';
+ };
+
+ _proto.update = function update() {
+ if (this._popper !== null) {
+ this._popper.update();
+ }
+ } // Protected
+ ;
+
+ _proto.isWithContent = function isWithContent() {
+ return Boolean(this.getTitle());
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ if (this.tip) {
+ return this.tip;
+ }
+
+ var element = document.createElement('div');
+ element.innerHTML = this.config.template;
+ this.tip = element.children[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var tip = this.getTipElement();
+ this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
+ };
+
+ _proto.setElementContent = function setElementContent(element, content) {
+ if (element === null) {
+ return;
+ }
+
+ if (typeof content === 'object' && isElement(content)) {
+ if (content.jquery) {
+ content = content[0];
+ } // content is a DOM node or a jQuery
+
+
+ if (this.config.html) {
+ if (content.parentNode !== element) {
+ element.innerHTML = '';
+ element.appendChild(content);
+ }
+ } else {
+ element.textContent = content.textContent;
+ }
+
+ return;
+ }
+
+ if (this.config.html) {
+ if (this.config.sanitize) {
+ content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
+ }
+
+ element.innerHTML = content;
+ } else {
+ element.textContent = content;
+ }
+ };
+
+ _proto.getTitle = function getTitle() {
+ var title = this._element.getAttribute('data-bs-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
+ }
+
+ return title;
+ };
+
+ _proto.updateAttachment = function updateAttachment(attachment) {
+ if (attachment === 'right') {
+ return 'end';
+ }
+
+ if (attachment === 'left') {
+ return 'start';
+ }
+
+ return attachment;
+ } // Private
+ ;
+
+ _proto._initializeOnDelegatedTarget = function _initializeOnDelegatedTarget(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || Data__default['default'].getData(event.delegateTarget, dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
+ Data__default['default'].setData(event.delegateTarget, dataKey, context);
+ }
+
+ return context;
+ };
+
+ _proto._getOffset = function _getOffset() {
+ var _this4 = this;
+
+ var offset = this.config.offset;
+
+ if (typeof offset === 'string') {
+ return offset.split(',').map(function (val) {
+ return Number.parseInt(val, 10);
+ });
+ }
+
+ if (typeof offset === 'function') {
+ return function (popperData) {
+ return offset(popperData, _this4._element);
+ };
+ }
+
+ return offset;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig(attachment) {
+ var _this5 = this;
+
+ var defaultBsPopperConfig = {
+ placement: attachment,
+ modifiers: [{
+ name: 'flip',
+ options: {
+ altBoundary: true,
+ fallbackPlacements: this.config.fallbackPlacements
+ }
+ }, {
+ name: 'offset',
+ options: {
+ offset: this._getOffset()
+ }
+ }, {
+ name: 'preventOverflow',
+ options: {
+ boundary: this.config.boundary
+ }
+ }, {
+ name: 'arrow',
+ options: {
+ element: "." + this.constructor.NAME + "-arrow"
+ }
+ }, {
+ name: 'onChange',
+ enabled: true,
+ phase: 'afterWrite',
+ fn: function fn(data) {
+ return _this5._handlePopperPlacementChange(data);
+ }
+ }],
+ onFirstUpdate: function onFirstUpdate(data) {
+ if (data.options.placement !== data.placement) {
+ _this5._handlePopperPlacementChange(data);
+ }
+ }
+ };
+ return _extends({}, defaultBsPopperConfig, typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig);
+ };
+
+ _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
+ };
+
+ _proto._getContainer = function _getContainer() {
+ if (this.config.container === false) {
+ return document.body;
+ }
+
+ if (isElement(this.config.container)) {
+ return this.config.container;
+ }
+
+ return SelectorEngine__default['default'].findOne(this.config.container);
+ };
+
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this6 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ EventHandler__default['default'].on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) {
+ return _this6.toggle(event);
+ });
+ } else if (trigger !== TRIGGER_MANUAL) {
+ var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN;
+ var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT;
+ EventHandler__default['default'].on(_this6._element, eventIn, _this6.config.selector, function (event) {
+ return _this6._enter(event);
+ });
+ EventHandler__default['default'].on(_this6._element, eventOut, _this6.config.selector, function (event) {
+ return _this6._leave(event);
+ });
+ }
+ });
+
+ this._hideModalHandler = function () {
+ if (_this6._element) {
+ _this6.hide();
+ }
+ };
+
+ EventHandler__default['default'].on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+
+ if (this.config.selector) {
+ this.config = _extends({}, this.config, {
+ trigger: 'manual',
+ selector: ''
+ });
+ } else {
+ this._fixTitle();
+ }
+ };
+
+ _proto._fixTitle = function _fixTitle() {
+ var title = this._element.getAttribute('title');
+
+ var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');
+
+ if (title || originalTitleType !== 'string') {
+ this._element.setAttribute('data-bs-original-title', title || '');
+
+ if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {
+ this._element.setAttribute('aria-label', title);
+ }
+
+ this._element.setAttribute('title', '');
+ }
+ };
+
+ _proto._enter = function _enter(event, context) {
+ context = this._initializeOnDelegatedTarget(event, context);
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
+ }
+
+ if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {
+ context._hoverState = HOVER_STATE_SHOW;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HOVER_STATE_SHOW;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HOVER_STATE_SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
+
+ _proto._leave = function _leave(event, context) {
+ context = this._initializeOnDelegatedTarget(event, context);
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HOVER_STATE_OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HOVER_STATE_OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);
+ Object.keys(dataAttributes).forEach(function (dataAttr) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
+ delete dataAttributes[dataAttr];
+ }
+ });
+
+ if (config && typeof config.container === 'object' && config.container.jquery) {
+ config.container = config.container[0];
+ }
+
+ config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
+ typeCheckConfig(NAME, config, this.constructor.DefaultType);
+
+ if (config.sanitize) {
+ config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
+ }
+
+ return config;
+ };
+
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
+
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var tip = this.getTipElement();
+ var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ tabClass.map(function (token) {
+ return token.trim();
+ }).forEach(function (tClass) {
+ return tip.classList.remove(tClass);
+ });
+ }
+ };
+
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
+ var state = popperData.state;
+
+ if (!state) {
+ return;
+ }
+
+ this.tip = state.elements.popper;
+
+ this._cleanTipClass();
+
+ this._addAttachmentClass(this._getAttachment(state.placement));
+ } // Static
+ ;
+
+ Tooltip.jQueryInterface = function jQueryInterface(config) {
+ return this.each(function () {
+ var data = Data__default['default'].getData(this, DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Tooltip, null, [{
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event$1;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Tooltip;
+ }(BaseComponent__default['default']);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .Tooltip to jQuery only if jQuery is present
+ */
+
+
+ defineJQueryPlugin(NAME, Tooltip);
+
+ return Tooltip;
+
+})));
+//# sourceMappingURL=tooltip.js.map
+
+function bruh_moment(){
+ alert('this is a bruh moment')
+}
+
+function get_smiles_from_element_text(el_id){
+ var inputVal = document.getElementById(el_id).value;
+ let url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`;
+ console.log(url)
+ fetch(url)
+ .then(res => res.json())
+ .then((out) => {
+ console.log('Aye, got that dub from PubChem');
+ //console.log(out["PropertyTable"]["Properties"][0]["CanonicalSMILES"])
+ document.getElementById("inputSMILES").value = out["PropertyTable"]["Properties"][0]["CanonicalSMILES"]
+ })
+ .catch(err => {
+ bruh_moment()
+ throw err });
+}
+
+
+function draw_me_like_one_of_your_french_girls(mol){
+
+ mol.condense_abbreviations();
+ var canvas = document.getElementById("draw-canvas-2");
+ mol.draw_to_canvas(canvas, -1, -1);
+}
+
+
+function calculate_and_disperse(mol){
+ try {
+ var descrs = JSON.parse(mol.get_descriptors());
+ } catch(err) {
+ alert("oo wee, failed to calculate descriptors senpai")
+ }
+ //document.getElementById('exactmw').textContent = descrs["exactmw"];
+ //document.getElementById('CrippenMR').textContent = descrs["CrippenMR"];
+ //document.getElementById('CrippenClogP').textContent = descrs["CrippenClogP"];
+ let tableRef = document.getElementById("analyse_table");
+ const keys = Object.keys(descrs);
+ for (let i = 0; i < keys.length; i++) {
+ const key = keys[i];
+ console.log(key, descrs[key]);
+ var newRow = tableRef.insertRow(-1);
+ var newCell_label = newRow.insertCell(0);
+ var newCell_value = newRow.insertCell(-1);
+ var newText_label = document.createTextNode(key);
+ var newText_value = document.createTextNode(descrs[key]);
+ newCell_label.appendChild(newText_label);
+ newCell_value.appendChild(newText_value);
+ }
+
+
+
+}
+
+function analyse_me_senpai(smile_pwiz) {
+ var smiles = document.getElementById(smile_pwiz).value;
+ var mol = Module.get_mol(smiles);
+ draw_me_like_one_of_your_french_girls(mol);
+ calculate_and_disperse(mol);
+} \ No newline at end of file
diff --git a/docs/js/main.min.js b/docs/js/main.min.js
new file mode 100644
index 0000000..5a96393
--- /dev/null
+++ b/docs/js/main.min.js
@@ -0,0 +1,2 @@
+function bruh_moment(){alert("this is a bruh moment")}function get_smiles_from_element_text(t){t=`https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${document.getElementById(t).value}/property/CanonicalSMILES/JSON`;console.log(t),fetch(t).then(t=>t.json()).then(t=>{console.log("Aye, got that dub from PubChem"),document.getElementById("inputSMILES").value=t.PropertyTable.Properties[0].CanonicalSMILES}).catch(t=>{throw bruh_moment(),t})}function draw_me_like_one_of_your_french_girls(t){t.condense_abbreviations();var e=document.getElementById("draw-canvas-2");t.draw_to_canvas(e,-1,-1)}function calculate_and_disperse(t){try{var e=JSON.parse(t.get_descriptors())}catch(t){alert("oo wee, failed to calculate descriptors senpai")}let n=document.getElementById("analyse_table");var i=Object.keys(e);for(let t=0;t<i.length;t++){var o=i[t];console.log(o,e[o]);var r=n.insertRow(-1),a=r.insertCell(0),s=r.insertCell(-1),r=document.createTextNode(o),o=document.createTextNode(e[o]);a.appendChild(r),s.appendChild(o)}}function analyse_me_senpai(t){t=document.getElementById(t).value,t=Module.get_mol(t);draw_me_like_one_of_your_french_girls(t),calculate_and_disperse(t)}!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Popper=e()}(this,function(){"use strict";var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(n&&0<=navigator.userAgent.indexOf(t[e]))return 1;return 0}();var o=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},i))}};function r(t){return t&&"[object Function]"==={}.toString.call(t)}function f(t,e){if(1!==t.nodeType)return[];t=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?t[e]:t}function u(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=f(t),n=e.overflow,i=e.overflowX,e=e.overflowY;return/(auto|scroll|overlay)/.test(n+e+i)?t:c(u(t))}function d(t){return t&&t.referenceNode?t.referenceNode:t}var e=n&&!(!window.MSInputMethodContext||!document.documentMode),a=n&&/MSIE 10/.test(navigator.userAgent);function p(t){return 11===t?e:10!==t&&e||a}function g(t){if(!t)return document.documentElement;for(var e=p(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===f(n,"position")?g(n):n:(t?t.ownerDocument:document).documentElement}function s(t){return null!==t.parentNode?s(t.parentNode):t}function h(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,n=document.createRange();n.setStart(i,0),n.setEnd(o,0);n=n.commonAncestorContainer;if(t!==n&&e!==n||i.contains(o))return"BODY"===(o=(i=n).nodeName)||"HTML"!==o&&g(i.firstElementChild)!==i?g(n):n;n=s(t);return n.host?h(n.host,e):h(t,s(e).host)}function m(t,e){var n="top"===(1<arguments.length&&void 0!==e?e:"top")?"scrollTop":"scrollLeft",e=t.nodeName;if("BODY"!==e&&"HTML"!==e)return t[n];e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}function l(t,e){var n="x"===e?"Left":"Top",e="Left"==n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+e+"Width"])}function _(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],p(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function v(t){var e=t.body,n=t.documentElement,t=p(10)&&getComputedStyle(n);return{height:_("Height",e,n,t),width:_("Width",e,n,t)}}var b=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t=function(t,e,n){return e&&y(t.prototype,e),n&&y(t,n),t};function y(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function w(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t};function T(t){return E({},t,{right:t.left+t.width,bottom:t.top+t.height})}function j(t){var e={};try{p(10)?(e=t.getBoundingClientRect(),n=m(t,"top"),i=m(t,"left"),e.top+=n,e.left+=i,e.bottom+=n,e.right+=i):e=t.getBoundingClientRect()}catch(t){}var n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?v(t.ownerDocument):{},e=i.width||t.clientWidth||n.width,i=i.height||t.clientHeight||n.height,e=t.offsetWidth-e,i=t.offsetHeight-i;return(e||i)&&(e-=l(t=f(t),"x"),i-=l(t,"y"),n.width-=e,n.height-=i),T(n)}function O(t,e,n){var i=2<arguments.length&&void 0!==n&&n,o=p(10),r="HTML"===e.nodeName,a=j(t),s=j(e),l=c(t),u=f(e),n=parseFloat(u.borderTopWidth),t=parseFloat(u.borderLeftWidth);i&&r&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));a=T({top:a.top-s.top-n,left:a.left-s.left-t,width:a.width,height:a.height});return a.marginTop=0,a.marginLeft=0,!o&&r&&(r=parseFloat(u.marginTop),u=parseFloat(u.marginLeft),a.top-=n-r,a.bottom-=n-r,a.left-=t-u,a.right-=t-u,a.marginTop=r,a.marginLeft=u),a=(o&&!i?e.contains(l):e===l&&"BODY"!==l.nodeName)?function(t,e,n){var i=2<arguments.length&&void 0!==n&&n,n=m(e,"top"),e=m(e,"left"),i=i?-1:1;return t.top+=n*i,t.bottom+=n*i,t.left+=e*i,t.right+=e*i,t}(a,e):a}function L(t){if(!t||!t.parentElement||p())return document.documentElement;for(var e=t.parentElement;e&&"none"===f(e,"transform");)e=e.parentElement;return e||document.documentElement}function C(t,e,n,i,o){var r=4<arguments.length&&void 0!==o&&o,a={top:0,left:0},s=r?L(t):h(t,d(e));"viewport"===i?a=function(t,e){var n=1<arguments.length&&void 0!==e&&e,i=t.ownerDocument.documentElement,o=O(t,i),r=Math.max(i.clientWidth,window.innerWidth||0),e=Math.max(i.clientHeight,window.innerHeight||0),t=n?0:m(i),i=n?0:m(i,"left");return T({top:t-o.top+o.marginTop,left:i-o.left+o.marginLeft,width:r,height:e})}(s,r):(o=void 0,"scrollParent"===i?"BODY"===(o=c(u(e))).nodeName&&(o=t.ownerDocument.documentElement):o="window"===i?t.ownerDocument.documentElement:i,l=O(o,s,r),"HTML"!==o.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===f(e,"position"))return!0;e=u(e);return!!e&&t(e)}(s)?a=l:(t=(s=v(t.ownerDocument)).height,s=s.width,a.top+=l.top-l.marginTop,a.bottom=t+l.top,a.left+=l.left-l.marginLeft,a.right=s+l.left));var l="number"==typeof(n=n||0);return a.left+=l?n:n.left||0,a.top+=l?n:n.top||0,a.right-=l?n:n.right||0,a.bottom-=l?n:n.bottom||0,a}function D(t,e,n,i,o,r){r=5<arguments.length&&void 0!==r?r:0;if(-1===t.indexOf("auto"))return t;var o=C(n,i,r,o),a={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},e=Object.keys(a).map(function(t){return E({key:t},a[t],{area:(t=a[t]).width*t.height})}).sort(function(t,e){return e.area-t.area}),o=e.filter(function(t){var e=t.width,t=t.height;return e>=n.clientWidth&&t>=n.clientHeight}),e=(0<o.length?o:e)[0].key,t=t.split("-")[1];return e+(t?"-"+t:"")}function A(t,e,n,i){i=3<arguments.length&&void 0!==i?i:null;return O(n,i?L(e):h(e,d(n)),i)}function k(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),e=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+e,height:t.offsetHeight+n}}function S(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function N(t,e,n){n=n.split("-")[0];var i=k(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),a=r?"top":"left",s=r?"left":"top",t=r?"height":"width",r=r?"width":"height";return o[a]=e[a]+e[t]/2-i[t]/2,o[s]=n===s?e[s]-i[r]:e[S(s)],o}function x(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function P(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=x(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&r(e)&&(n.offsets.popper=T(n.offsets.popper),n.offsets.reference=T(n.offsets.reference),n=e(n,t))}),n}function I(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function M(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],o=o?""+o+n:t;if(void 0!==document.body.style[o])return o}return null}function q(t){t=t.ownerDocument;return t?t.defaultView:window}function B(t,e,n,i){n.updateBound=i,q(t).addEventListener("resize",n.updateBound,{passive:!0});t=c(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,e=r?e.ownerDocument.defaultView:e;e.addEventListener(n,i,{passive:!0}),r||t(c(e.parentNode),n,i,o),o.push(e)}(t,"scroll",n.updateBound,n.scrollParents),n.scrollElement=t,n.eventsEnabled=!0,n}function H(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,q(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function F(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function W(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&F(i[t])&&(e="px"),n.style[t]=i[t]+e})}var R=n&&/Firefox/i.test(navigator.userAgent);function Q(t,e,n){var i=x(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});return o||(t="`"+e+"`",console.warn("`"+n+"`"+" modifier is required by "+t+" modifier in order to work, be sure to include it before "+t+"!")),o}var U=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],z=U.slice(3);function Y(t,e){e=1<arguments.length&&void 0!==e&&e,t=z.indexOf(t),t=z.slice(t+1).concat(z.slice(0,t));return e?t.reverse():t}var K="flip",V="clockwise",X="counterclockwise";function G(t,o,r,e){var a=[0,0],s=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),e=n.indexOf(x(n,function(t){return-1!==t.search(/,|\s/)}));n[e]&&-1===n[e].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");t=/\s*,\s*|\s+/;return(-1!==e?[n.slice(0,e).concat([n[e].split(t)[0]]),[n[e].split(t)[1]].concat(n.slice(e+1))]:[n]).map(function(t,e){var n=(1===e?!s:s)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=+(r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/))[1],r=r[2];if(!o)return t;if(0!==r.indexOf("%"))return"vh"!==r&&"vw"!==r?o:("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;var a=void 0;switch(r){case"%p":a=n;break;case"%":case"%r":default:a=i}return T(a)[e]/100*o}(t,n,o,r)})}).forEach(function(n,i){n.forEach(function(t,e){F(t)&&(a[i]+=t*("-"===n[e-1]?-1:1))})}),a}var $={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e,n,i=t.placement,o=i.split("-")[0],r=i.split("-")[1];return r&&(e=(n=t.offsets).reference,i=n.popper,o=(n=-1!==["bottom","top"].indexOf(o))?"width":"height",o={start:w({},n=n?"left":"top",e[n]),end:w({},n,e[n]+e[o]-i[o])},t.offsets.popper=E({},i,o[r])),t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=(r=t.offsets).popper,e=r.reference,r=i.split("-")[0],i=void 0,i=F(+n)?[+n,0]:G(n,o,e,r);return"left"===r?(o.top+=i[0],o.left-=i[1]):"right"===r?(o.top+=i[0],o.left+=i[1]):"top"===r?(o.left+=i[0],o.top-=i[1]):"bottom"===r&&(o.left+=i[0],o.top+=i[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||g(t.instance.popper);t.instance.reference===e&&(e=g(e));var n=M("transform"),o=t.instance.popper.style,r=o.top,a=o.left,s=o[n];o.top="",o.left="",o[n]="";var l=C(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);o.top=r,o.left=a,o[n]=s,i.boundaries=l;var s=i.priority,u=t.offsets.popper,c={primary:function(t){var e=u[t];return u[t]<l[t]&&!i.escapeWithReference&&(e=Math.max(u[t],l[t])),w({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=u[e];return u[t]>l[t]&&!i.escapeWithReference&&(n=Math.min(u[e],l[t]-("right"===t?u.width:u.height))),w({},e,n)}};return s.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=E({},u,c[e](t))}),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=(r=t.offsets).popper,n=r.reference,i=t.placement.split("-")[0],o=Math.floor,r=(a=-1!==["top","bottom"].indexOf(i))?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return e[r]<o(n[i])&&(t.offsets.popper[i]=o(n[i])-e[a]),e[i]>o(n[r])&&(t.offsets.popper[i]=o(n[r])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!Q(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],o=(c=t.offsets).popper,r=c.reference,a=-1!==["left","right"].indexOf(i),s=a?"height":"width",l=a?"Top":"Left",u=l.toLowerCase(),e=a?"left":"top",c=a?"bottom":"right",i=k(n)[s];return r[c]-i<o[u]&&(t.offsets.popper[u]-=o[u]-(r[c]-i)),r[u]+i>o[c]&&(t.offsets.popper[u]+=r[u]+i-o[c]),t.offsets.popper=T(t.offsets.popper),a=r[u]+r[s]/2-i/2,c=f(t.instance.popper),r=parseFloat(c["margin"+l]),l=parseFloat(c["border"+l+"Width"]),l=a-t.offsets.popper[u]-r-l,l=Math.max(Math.min(o[s]-i,l),0),t.arrowElement=n,t.offsets.arrow=(w(n={},u,Math.round(l)),w(n,e,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(I(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var f=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),d=u.placement.split("-")[0],p=S(d),h=u.placement.split("-")[1]||"",m=[];switch(c.behavior){case K:m=[d,p];break;case V:m=Y(d);break;case X:m=Y(d,!0);break;default:m=c.behavior}return m.forEach(function(t,e){if(d!==t||m.length===e+1)return u;d=u.placement.split("-")[0],p=S(d);var n=u.offsets.popper,i=u.offsets.reference,o=Math.floor,r="left"===d&&o(n.right)>o(i.left)||"right"===d&&o(n.left)<o(i.right)||"top"===d&&o(n.bottom)>o(i.top)||"bottom"===d&&o(n.top)<o(i.bottom),a=o(n.left)<o(f.left),s=o(n.right)>o(f.right),l=o(n.top)<o(f.top),t=o(n.bottom)>o(f.bottom),i="left"===d&&a||"right"===d&&s||"top"===d&&l||"bottom"===d&&t,n=-1!==["top","bottom"].indexOf(d),o=!!c.flipVariations&&(n&&"start"===h&&a||n&&"end"===h&&s||!n&&"start"===h&&l||!n&&"end"===h&&t),l=!!c.flipVariationsByContent&&(n&&"start"===h&&s||n&&"end"===h&&a||!n&&"start"===h&&t||!n&&"end"===h&&l),l=o||l;(r||i||l)&&(u.flipped=!0,(r||i)&&(d=m[e+1]),l&&(h="end"===(l=h)?"start":"start"===l?"end":l),u.placement=d+(h?"-"+h:""),u.offsets.popper=E({},u.offsets.popper,N(u.instance.popper,u.offsets.reference,u.placement)),u=P(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=(a=t.offsets).popper,o=a.reference,r=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[r?"left":"top"]=o[n]-(a?i[r?"width":"height"]:0),t.placement=S(e),t.offsets.popper=T(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Q(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=x(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper;void 0!==(h=x(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration)&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var r,a,s,l,u=void 0!==h?h:e.gpuAcceleration,c=g(t.instance.popper),f=j(c),d={position:o.position},p=(r=t,p=window.devicePixelRatio<2||!R,m=(l=r.offsets).popper,a=l.reference,s=Math.round,h=Math.floor,e=function(t){return t},o=s(a.width),l=s(m.width),a=-1!==["left","right"].indexOf(r.placement),r=-1!==r.placement.indexOf("-"),h=p?a||r||o%2==l%2?s:h:e,e=p?s:e,{left:h(o%2==1&&l%2==1&&!r&&p?m.left-1:m.left),top:e(m.top),bottom:e(m.bottom),right:h(m.right)}),e="bottom"===n?"top":"bottom",h="right"===i?"left":"right",m=M("transform"),n=void 0,i=void 0,i="bottom"==e?"HTML"===c.nodeName?-c.clientHeight+p.bottom:-f.height+p.bottom:p.top,n="right"==h?"HTML"===c.nodeName?-c.clientWidth+p.right:-f.width+p.right:p.left;return u&&m?(d[m]="translate3d("+n+"px, "+i+"px, 0)",d[e]=0,d[h]=0,d.willChange="transform"):(m="right"==h?-1:1,d[e]=i*("bottom"==e?-1:1),d[h]=n*m,d.willChange=e+", "+h),h={"x-placement":t.placement},t.attributes=E({},h,t.attributes),t.styles=E({},d,t.styles),t.arrowStyles=E({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return W(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&W(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){return o=A(o,e,t,n.positionFixed),t=D(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding),e.setAttribute("x-placement",t),W(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},t=(t(J,[{key:"update",value:function(){return function(){var t;this.state.isDestroyed||((t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}}).offsets.reference=A(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=D(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=N(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=P(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t)))}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,I(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[M("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=B(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return H.call(this)}}]),J);function J(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};b(this,J),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=o(this.update.bind(this)),this.options=E({},J.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(E({},J.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=E({},J.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return E({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&r(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();e=this.options.eventsEnabled;e&&this.enableEventListeners(),this.state.eventsEnabled=e}return t.Utils=("undefined"!=typeof window?window:global).PopperUtils,t.placements=U,t.Defaults=$,t}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Alert=e(t.Data,t.EventHandler,t.Base)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),a=i(e);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(e,t){var n=!1,t=t+5;e.addEventListener(o,function t(){n=!0,e.removeEventListener(o,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(o))},t)}var o="transitionend";document.documentElement.dir;var c,f,d,p="bs.alert",e="."+p,n=function(t){function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),l(e.prototype.constructor=e,i);var e,i,o=n.prototype;return o.close=function(t){var e=t?this._getRootElement(t):this._element,t=this._triggerCloseEvent(e);null===t||t.defaultPrevented||this._removeElement(e)},o._getRootElement=function(t){return function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(t)||t.closest(".alert")},o._triggerCloseEvent=function(t){return a.default.trigger(t,"close.bs.alert")},o._removeElement=function(t){var e,n=this;t.classList.remove("show"),t.classList.contains("fade")?(e=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(t),a.default.one(t,"transitionend",function(){return n._destroyElement(t)}),u(t,e)):this._destroyElement(t)},o._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),a.default.trigger(t,"closed.bs.alert")},n.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,p))||new n(this);"close"===e&&t[e](this)})},n.handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},e=n,i=[{key:"DATA_KEY",get:function(){return p}}],(o=null)&&s(e.prototype,o),i&&s(e,i),n}(i(n).default);return a.default.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',n.handleDismiss(new n)),c="alert",f=n,d=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[c],n.fn[c]=f.jQueryInterface,n.fn[c].Constructor=f,n.fn[c].noConflict=function(){return n.fn[c]=e,f.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",d):d(),n}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Button=e(t.Data,t.EventHandler,t.Base)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),e=i(e);function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}document.documentElement.dir;var o,l,u,c="bs.button",f='[data-bs-toggle="button"]',d=function(t){var e,n,i;function o(){return t.apply(this,arguments)||this}return n=t,(i=o).prototype=Object.create(n.prototype),s(i.prototype.constructor=i,n),o.prototype.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},o.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,c))||new o(this);"toggle"===e&&t[e]()})},e=o,i=[{key:"DATA_KEY",get:function(){return c}}],(n=null)&&a(e.prototype,n),i&&a(e,i),o}(i(n).default);return e.default.on(document,"click.bs.button.data-api",f,function(t){t.preventDefault();t=t.target.closest(f);(r.default.getData(t,c)||new d(t)).toggle()}),o="button",l=d,u=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[o],n.fn[o]=l.jQueryInterface,n.fn[o].Constructor=l,n.fn[o].noConflict=function(){return n.fn[o]=e,l.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",u):u(),d}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Carousel=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),d=r(e),s=r(n),p=r(i);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(){return(u=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){t.dispatchEvent(new Event(v))}function f(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}var m,g,_,v="transitionend",b="rtl"===document.documentElement.dir,y="carousel",w="bs.carousel",E="."+w,i=".data-api",T={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},j={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},O="next",L="prev",C="slid"+E,D="active",A=".active.carousel-item",k=function(n){function r(t,e){t=n.call(this,t)||this;return t._items=null,t._interval=null,t._activeElement=null,t._isPaused=!1,t._isSliding=!1,t.touchTimeout=null,t.touchStartX=0,t.touchDeltaX=0,t._config=t._getConfig(e),t._indicatorsElement=p.default.findOne(".carousel-indicators",t._element),t._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,t._pointerEvent=Boolean(window.PointerEvent),t._addEventListeners(),t}e=n,(t=r).prototype=Object.create(e.prototype),c(t.prototype.constructor=t,e);var t,e,i=r.prototype;return i.next=function(){this._isSliding||this._slide(O)},i.nextWhenVisible=function(){!document.hidden&&function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}(this._element)&&this.next()},i.prev=function(){this._isSliding||this._slide(L)},i.pause=function(t){t||(this._isPaused=!0),p.default.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(h(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},i.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},i.to=function(t){var e=this;this._activeElement=p.default.findOne(A,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)d.default.one(this._element,C,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();this._slide(n<t?O:L,this._items[t])}},i.dispose=function(){n.prototype.dispose.call(this),d.default.off(this._element,E),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},i._getConfig=function(t){return t=u({},T,t),f(y,t,j),t},i._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);t<=40||(t=t/this.touchDeltaX,(this.touchDeltaX=0)<t&&(b?this.next():this.prev()),t<0&&(b?this.prev():this.next()))},i._addEventListeners=function(){var e=this;this._config.keyboard&&d.default.on(this._element,"keydown.bs.carousel",function(t){return e._keydown(t)}),"hover"===this._config.pause&&(d.default.on(this._element,"mouseenter.bs.carousel",function(t){return e.pause(t)}),d.default.on(this._element,"mouseleave.bs.carousel",function(t){return e.cycle(t)})),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},i._addTouchEventListeners=function(){function t(t){!n._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?n._pointerEvent||(n.touchStartX=t.touches[0].clientX):n.touchStartX=t.clientX}function e(t){!n._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(n.touchDeltaX=t.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))}var n=this;p.default.find(".carousel-item img",this._element).forEach(function(t){d.default.on(t,"dragstart.bs.carousel",function(t){return t.preventDefault()})}),this._pointerEvent?(d.default.on(this._element,"pointerdown.bs.carousel",t),d.default.on(this._element,"pointerup.bs.carousel",e),this._element.classList.add("pointer-event")):(d.default.on(this._element,"touchstart.bs.carousel",t),d.default.on(this._element,"touchmove.bs.carousel",function(t){(t=t).touches&&1<t.touches.length?n.touchDeltaX=0:n.touchDeltaX=t.touches[0].clientX-n.touchStartX}),d.default.on(this._element,"touchend.bs.carousel",e))},i._keydown=function(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),b?this.next():this.prev()):"ArrowRight"===t.key&&(t.preventDefault(),b?this.prev():this.next()))},i._getItemIndex=function(t){return this._items=t&&t.parentNode?p.default.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},i._getItemByDirection=function(t,e){var n=t===O,i=t===L,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;t=(o+(t===L?-1:1))%this._items.length;return-1==t?this._items[this._items.length-1]:this._items[t]},i._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(p.default.findOne(A,this._element));return d.default.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},i._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=p.default.findOne(".active",this._indicatorsElement);e.classList.remove(D),e.removeAttribute("aria-current");for(var n=p.default.find("[data-bs-target]",this._indicatorsElement),i=0;i<n.length;i++)if(Number.parseInt(n[i].getAttribute("data-bs-slide-to"),10)===this._getItemIndex(t)){n[i].classList.add(D),n[i].setAttribute("aria-current","true");break}}},i._updateInterval=function(){var t=this._activeElement||p.default.findOne(A,this._element);t&&((t=Number.parseInt(t.getAttribute("data-bs-interval"),10))?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval)},i._slide=function(t,e){var n,i,o=this,r=p.default.findOne(A,this._element),a=this._getItemIndex(r),s=e||r&&this._getItemByDirection(t,r),l=this._getItemIndex(s),e=Boolean(this._interval),u=t===O?"carousel-item-start":"carousel-item-end",c=t===O?"carousel-item-next":"carousel-item-prev",f=t===O?"left":"right";s&&s.classList.contains(D)?this._isSliding=!1:this._triggerSlideEvent(s,f).defaultPrevented||r&&s&&(this._isSliding=!0,e&&this.pause(),this._setActiveIndicatorElement(s),this._activeElement=s,this._element.classList.contains("slide")?(s.classList.add(c),s.offsetHeight,r.classList.add(u),s.classList.add(u),t=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(r),d.default.one(r,"transitionend",function(){s.classList.remove(u,c),s.classList.add(D),r.classList.remove(D,c,u),o._isSliding=!1,setTimeout(function(){d.default.trigger(o._element,C,{relatedTarget:s,direction:f,from:a,to:l})},0)}),t=t,i=!1,t+=5,(n=r).addEventListener(v,function t(){i=!0,n.removeEventListener(v,t)}),setTimeout(function(){i||h(n)},t)):(r.classList.remove(D),s.classList.add(D),this._isSliding=!1,d.default.trigger(this._element,C,{relatedTarget:s,direction:f,from:a,to:l})),e&&this.cycle())},r.carouselInterface=function(t,e){var n=a.default.getData(t,w),i=u({},T,s.default.getDataAttributes(t));"object"==typeof e&&(i=u({},i,e));var o="string"==typeof e?e:i.slide,n=n||new r(t,i);if("number"==typeof e)n.to(e);else if("string"==typeof o){if(void 0===n[o])throw new TypeError('No method named "'+o+'"');n[o]()}else i.interval&&i.ride&&(n.pause(),n.cycle())},r.jQueryInterface=function(t){return this.each(function(){r.carouselInterface(this,t)})},r.dataApiClickHandler=function(t){var e,n,i=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this);i&&i.classList.contains("carousel")&&(e=u({},s.default.getDataAttributes(i),s.default.getDataAttributes(this)),(n=this.getAttribute("data-bs-slide-to"))&&(e.interval=!1),r.carouselInterface(i,e),n&&a.default.getData(i,w).to(n),t.preventDefault())},t=r,e=[{key:"Default",get:function(){return T}},{key:"DATA_KEY",get:function(){return w}}],(i=null)&&l(t.prototype,i),e&&l(t,e),r}(r(o).default);return d.default.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",k.dataApiClickHandler),d.default.on(window,"load.bs.carousel.data-api",function(){for(var t=p.default.find('[data-bs-ride="carousel"]'),e=0,n=t.length;e<n;e++)k.carouselInterface(t[e],a.default.getData(t[e],w))}),m=y,g=k,_=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[m],n.fn[m]=g.jQueryInterface,n.fn[m].Constructor=g,n.fn[m].noConflict=function(){return n.fn[m]=e,g.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",_):_(),k}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Collapse=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=r(t),l=r(e),c=r(n),f=r(i);function d(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(){return(p=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function a(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}function m(t){return(t=a(t))&&document.querySelector(t)?t:null}function g(t){return(t=a(t))?document.querySelector(t):null}function _(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function v(t){return(t[0]||t).nodeType}function b(e,t){var n=!1,t=t+5;e.addEventListener(u,function t(){n=!0,e.removeEventListener(u,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(u))},t)}var u="transitionend";document.documentElement.dir;var y,w,E,T="collapse",j="bs.collapse",i="."+j,O={toggle:!0,parent:""},L={toggle:"boolean",parent:"(string|element)"},C="show",D="collapse",A="collapsing",k="collapsed",S='[data-bs-toggle="collapse"]',N=function(u){function a(e,t){var n=u.call(this,e)||this;n._isTransitioning=!1,n._config=n._getConfig(t),n._triggerArray=f.default.find(S+'[href="#'+e.id+'"],'+S+'[data-bs-target="#'+e.id+'"]');for(var i=f.default.find(S),o=0,r=i.length;o<r;o++){var a=i[o],s=m(a),l=f.default.find(s).filter(function(t){return t===e});null!==s&&l.length&&(n._selector=s,n._triggerArray.push(a))}return n._parent=n._config.parent?n._getParent():null,n._config.parent||n._addAriaAndCollapsedClass(n._element,n._triggerArray),n._config.toggle&&n.toggle(),n}e=u,(t=a).prototype=Object.create(e.prototype),h(t.prototype.constructor=t,e);var t,e,n=a.prototype;return n.toggle=function(){this._element.classList.contains(C)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(C)){this._parent&&0===(n=f.default.find(".show, .collapsing",this._parent).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-bs-parent")===e._config.parent:t.classList.contains(D)})).length&&(n=null);var t,n,i=f.default.findOne(this._selector);if(n){var o,r=n.find(function(t){return i!==t});if((o=r?s.default.getData(r,j):null)&&o._isTransitioning)return}l.default.trigger(this._element,"show.bs.collapse").defaultPrevented||(n&&n.forEach(function(t){i!==t&&a.collapseInterface(t,"hide"),o||s.default.setData(t,j,null)}),t=this._getDimension(),this._element.classList.remove(D),this._element.classList.add(A),this._element.style[t]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(k),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0),r="scroll"+(t[0].toUpperCase()+t.slice(1)),n=_(this._element),l.default.one(this._element,"transitionend",function(){e._element.classList.remove(A),e._element.classList.add(D,C),e._element.style[t]="",e.setTransitioning(!1),l.default.trigger(e._element,"shown.bs.collapse")}),b(this._element,n),this._element.style[t]=this._element[r]+"px")}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(C)&&!l.default.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",this._element.offsetHeight,this._element.classList.add(A),this._element.classList.remove(D,C);var n=this._triggerArray.length;if(0<n)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=g(o);r&&!r.classList.contains(C)&&(o.classList.add(k),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";e=_(this._element);l.default.one(this._element,"transitionend",function(){t.setTransitioning(!1),t._element.classList.remove(A),t._element.classList.add(D),l.default.trigger(t._element,"hidden.bs.collapse")}),b(this._element,e)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){u.prototype.dispose.call(this),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){var o,r,a;return(t=p({},O,t)).toggle=Boolean(t.toggle),o=T,r=t,a=L,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&v(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var n=this,t=this._config.parent;return v(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=f.default.findOne(t),f.default.find(S+'[data-bs-parent="'+t+'"]',t).forEach(function(t){var e=g(t);n._addAriaAndCollapsedClass(e,[t])}),t},n._addAriaAndCollapsedClass=function(t,e){var n;t&&e.length&&(n=t.classList.contains(C),e.forEach(function(t){n?t.classList.remove(k):t.classList.add(k),t.setAttribute("aria-expanded",n)}))},a.collapseInterface=function(t,e){var n=s.default.getData(t,j),i=p({},O,c.default.getDataAttributes(t),"object"==typeof e&&e?e:{});if(!n&&i.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(i.toggle=!1),n=n||new a(t,i),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},a.jQueryInterface=function(t){return this.each(function(){a.collapseInterface(this,t)})},t=a,e=[{key:"Default",get:function(){return O}},{key:"DATA_KEY",get:function(){return j}}],(n=null)&&d(t.prototype,n),e&&d(t,e),a}(r(o).default);return l.default.on(document,"click.bs.collapse.data-api",S,function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();var n=c.default.getDataAttributes(this),t=m(this);f.default.find(t).forEach(function(t){var e=s.default.getData(t,j),e=e?(null===e._parent&&"string"==typeof n.parent&&(e._config.parent=n.parent,e._parent=e._getParent()),"toggle"):n;N.collapseInterface(t,e)})}),y=T,w=N,E=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[y],n.fn[y]=w.jQueryInterface,n.fn[y].Constructor=w,n.fn[y].noConflict=function(){return n.fn[y]=e,w.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",E):E(),N}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core"),require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["@popperjs/core","./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Dropdown=e(t.Popper,t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(a,t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function s(n){if(n&&n.__esModule)return n;var i=Object.create(null);return n&&Object.keys(n).forEach(function(t){var e;"default"!==t&&(e=Object.getOwnPropertyDescriptor(n,t),Object.defineProperty(i,t,e.get?e:{enumerable:!0,get:function(){return n[t]}}))}),i.default=n,Object.freeze(i)}var l=s(a),u=r(t),c=r(e),f=r(n),d=r(i),t=r(o);function p(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(){return(h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function m(t,e){return(m=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function g(t){return(t[0]||t).nodeType}function _(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}function v(){return function(){}}var b,y,w,e="rtl"===document.documentElement.dir,E="dropdown",T="bs.dropdown",j="."+T,n=".data-api",O="Escape",L="ArrowUp",C="ArrowDown",D=new RegExp(L+"|"+C+"|"+O),A="hide"+j,k="hidden"+j,i="click"+j+n,o="keydown"+j+n,S="disabled",N="show",x='[data-bs-toggle="dropdown"]',P=".dropdown-menu",I=e?"top-end":"top-start",M=e?"top-start":"top-end",q=e?"bottom-end":"bottom-start",B=e?"bottom-start":"bottom-end",H=e?"left-start":"right-start",F=e?"right-start":"left-start",W={offset:[0,2],flip:!0,boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null},R={offset:"(array|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)"},Q=function(n){function r(t,e){t=n.call(this,t)||this;return t._popper=null,t._config=t._getConfig(e),t._menu=t._getMenuElement(),t._inNavbar=t._detectNavbar(),t._addEventListeners(),t}e=n,(t=r).prototype=Object.create(e.prototype),m(t.prototype.constructor=t,e);var t,e,i=r.prototype;return i.toggle=function(){var t;this._element.disabled||this._element.classList.contains(S)||(t=this._element.classList.contains(N),r.clearMenus(),t||this.show())},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(S)||this._menu.classList.contains(N))){var t=r.getParentFromElement(this._element),e={relatedTarget:this._element};if(!c.default.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._inNavbar)f.default.setDataAttribute(this._menu,"popper","none");else{if(void 0===l)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var n=this._element;"parent"===this._config.reference?n=t:g(this._config.reference)?(n=this._config.reference,void 0!==this._config.reference.jquery&&(n=this._config.reference[0])):"object"==typeof this._config.reference&&(n=this._config.reference);var i=this._getPopperConfig(),o=i.modifiers.find(function(t){return"applyStyles"===t.name&&!1===t.enabled});this._popper=a.createPopper(n,this._menu,i),o&&f.default.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&(t=[]).concat.apply(t,document.body.children).forEach(function(t){return c.default.on(t,"mouseover",null,v())}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle(N),this._element.classList.toggle(N),c.default.trigger(this._element,"shown.bs.dropdown",e)}}},i.hide=function(){var t;this._element.disabled||this._element.classList.contains(S)||!this._menu.classList.contains(N)||(t={relatedTarget:this._element},c.default.trigger(this._element,A,t).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle(N),this._element.classList.toggle(N),f.default.removeDataAttribute(this._menu,"popper"),c.default.trigger(this._element,k,t)))},i.dispose=function(){n.prototype.dispose.call(this),c.default.off(this._element,j),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()},i._addEventListeners=function(){var e=this;c.default.on(this._element,"click.bs.dropdown",function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},i._getConfig=function(t){var o,r,a;if(t=h({},this.constructor.Default,f.default.getDataAttributes(this._element),t),o=E,r=t,a=this.constructor.DefaultType,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&g(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),"object"==typeof t.reference&&!g(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(E.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t},i._getMenuElement=function(){return d.default.next(this._element,P)[0]},i._getPlacement=function(){var t=this._element.parentNode;if(t.classList.contains("dropend"))return H;if(t.classList.contains("dropstart"))return F;var e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?M:I:e?B:q},i._detectNavbar=function(){return null!==this._element.closest(".navbar")},i._getOffset=function(){var e=this,n=this._config.offset;return"string"==typeof n?n.split(",").map(function(t){return Number.parseInt(t,10)}):"function"==typeof n?function(t){return n(t,e._element)}:n},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{altBoundary:this._config.flip,boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),h({},t,"function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig)},r.dropdownInterface=function(t,e){var n=(n=u.default.getData(t,T))||new r(t,"object"==typeof e?e:null);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}},r.jQueryInterface=function(t){return this.each(function(){r.dropdownInterface(this,t)})},r.clearMenus=function(t){if(!t||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var e=d.default.find(x),n=0,i=e.length;n<i;n++){var o,r,a=u.default.getData(e[n],T),s={relatedTarget:e[n]};t&&"click"===t.type&&(s.clickEvent=t),a&&(o=a._menu,e[n].classList.contains(N)&&(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&o.contains(t.target)||c.default.trigger(e[n],A,s).defaultPrevented||("ontouchstart"in document.documentElement&&(r=[]).concat.apply(r,document.body.children).forEach(function(t){return c.default.off(t,"mouseover",null,v())}),e[n].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),o.classList.remove(N),e[n].classList.remove(N),f.default.removeDataAttribute(o,"popper"),c.default.trigger(e[n],k,s))))}},r.getParentFromElement=function(t){return function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(t)||t.parentNode},r.dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!("Space"===t.key||t.key!==O&&(t.key!==C&&t.key!==L||t.target.closest(P))):D.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(S))){var e=r.getParentFromElement(this),n=this.classList.contains(N);if(t.key===O)return(this.matches(x)?this:d.default.prev(this,x)[0]).focus(),void r.clearMenus();n||t.key!==L&&t.key!==C?n&&"Space"!==t.key?(n=d.default.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(_)).length&&(e=n.indexOf(t.target),t.key===L&&0<e&&e--,t.key===C&&e<n.length-1&&e++,n[e=-1===e?0:e].focus()):r.clearMenus():(this.matches(x)?this:d.default.prev(this,x)[0]).click()}},t=r,e=[{key:"Default",get:function(){return W}},{key:"DefaultType",get:function(){return R}},{key:"DATA_KEY",get:function(){return T}}],(i=null)&&p(t.prototype,i),e&&p(t,e),r}(t.default);return c.default.on(document,o,x,Q.dataApiKeydownHandler),c.default.on(document,o,P,Q.dataApiKeydownHandler),c.default.on(document,i,Q.clearMenus),c.default.on(document,"keyup.bs.dropdown.data-api",Q.clearMenus),c.default.on(document,i,x,function(t){t.preventDefault(),t.stopPropagation(),Q.dropdownInterface(this,"toggle")}),c.default.on(document,i,".dropdown form",function(t){return t.stopPropagation()}),b=E,y=Q,w=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[b],n.fn[b]=y.jQueryInterface,n.fn[b].Constructor=y,n.fn[b].noConflict=function(){return n.fn[b]=e,y.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",w):w(),Q}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Modal=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),s=r(e),l=r(n),u=r(i);function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function h(e,t){var n=!1,t=t+5;e.addEventListener(y,function t(){n=!0,e.removeEventListener(y,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(y))},t)}function m(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}function g(t){return t.offsetHeight}var _,v,b,y="transitionend",w="rtl"===document.documentElement.dir,E="bs.modal",T="."+E,j={backdrop:!0,keyboard:!0,focus:!0},O={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},L="hidden"+T,C="show"+T,D="focusin"+T,A="resize"+T,k="click.dismiss"+T,S="keydown.dismiss"+T,N="mousedown.dismiss"+T,x="modal-open",P="fade",I="show",M="modal-static",q=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",B=".sticky-top",H=function(i){function o(t,e){var n=i.call(this,t)||this;return n._config=n._getConfig(e),n._dialog=u.default.findOne(".modal-dialog",t),n._backdrop=null,n._isShown=!1,n._isBodyOverflowing=!1,n._ignoreBackdropClick=!1,n._isTransitioning=!1,n._scrollbarWidth=0,n}e=i,(t=o).prototype=Object.create(e.prototype),d(t.prototype.constructor=t,e);var t,e,n=o.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e,n=this;this._isShown||this._isTransitioning||(this._element.classList.contains(P)&&(this._isTransitioning=!0),e=s.default.trigger(this._element,C,{relatedTarget:t}),this._isShown||e.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),s.default.on(this._element,k,'[data-bs-dismiss="modal"]',function(t){return n.hide(t)}),s.default.on(this._dialog,N,function(){s.default.one(n._element,"mouseup.dismiss.bs.modal",function(t){t.target===n._element&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)})))},n.hide=function(t){var e=this;t&&t.preventDefault(),this._isShown&&!this._isTransitioning&&(s.default.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,(t=this._element.classList.contains(P))&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),s.default.off(document,D),this._element.classList.remove(I),s.default.off(this._element,k),s.default.off(this._dialog,N),t?(t=p(this._element),s.default.one(this._element,"transitionend",function(t){return e._hideModal(t)}),h(this._element,t)):this._hideModal()))},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return s.default.off(t,T)}),i.prototype.dispose.call(this),s.default.off(document,D),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=f({},j,t),m("modal",t,O),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(P),i=u.default.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),n&&g(this._element),this._element.classList.add(I),this._config.focus&&this._enforceFocus();i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,s.default.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};n?(n=p(this._dialog),s.default.one(this._dialog,"transitionend",i),h(this._dialog,n)):i()},n._enforceFocus=function(){var e=this;s.default.off(document,D),s.default.on(document,D,function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()})},n._setEscapeEvent=function(){var e=this;this._isShown?s.default.on(this._element,S,function(t){e._config.keyboard&&"Escape"===t.key?(t.preventDefault(),e.hide()):e._config.keyboard||"Escape"!==t.key||e._triggerBackdropTransition()}):s.default.off(this._element,S)},n._setResizeEvent=function(){var t=this;this._isShown?s.default.on(window,A,function(){return t._adjustDialog()}):s.default.off(window,A)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(x),t._resetAdjustments(),t._resetScrollbar(),s.default.trigger(t._element,L)})},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e,n=this,i=this._element.classList.contains(P)?P:"";this._isShown&&this._config.backdrop?(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),document.body.appendChild(this._backdrop),s.default.on(this._element,k,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._triggerBackdropTransition():n.hide())}),i&&g(this._backdrop),this._backdrop.classList.add(I),i?(e=p(this._backdrop),s.default.one(this._backdrop,"transitionend",t),h(this._backdrop,e)):t()):!this._isShown&&this._backdrop?(this._backdrop.classList.remove(I),i=function(){n._removeBackdrop(),t()},this._element.classList.contains(P)?(e=p(this._backdrop),s.default.one(this._backdrop,"transitionend",i),h(this._backdrop,e)):i()):t()},n._triggerBackdropTransition=function(){var t,e,n=this;s.default.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented||((t=this._element.scrollHeight>document.documentElement.clientHeight)||(this._element.style.overflowY="hidden"),this._element.classList.add(M),e=p(this._dialog),s.default.off(this._element,"transitionend"),s.default.one(this._element,"transitionend",function(){n._element.classList.remove(M),t||(s.default.one(n._element,"transitionend",function(){n._element.style.overflowY=""}),h(n._element,e))}),h(this._element,e),this._element.focus())},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!w||this._isBodyOverflowing&&!t&&w)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!w||!this._isBodyOverflowing&&t&&w)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var e=this;this._isBodyOverflowing&&(this._setElementAttributes(q,"paddingRight",function(t){return t+e._scrollbarWidth}),this._setElementAttributes(B,"marginRight",function(t){return t-e._scrollbarWidth}),this._setElementAttributes("body","paddingRight",function(t){return t+e._scrollbarWidth})),document.body.classList.add(x)},n._setElementAttributes=function(t,i,o){u.default.find(t).forEach(function(t){var e=t.style[i],n=window.getComputedStyle(t)[i];l.default.setDataAttribute(t,i,e),t.style[i]=o(Number.parseFloat(n))+"px"})},n._resetScrollbar=function(){this._resetElementAttributes(q,"paddingRight"),this._resetElementAttributes(B,"marginRight"),this._resetElementAttributes("body","paddingRight")},n._resetElementAttributes=function(t,n){u.default.find(t).forEach(function(t){var e=l.default.getDataAttribute(t,n);void 0===e&&t===document.body?t.style[n]="":(l.default.removeDataAttribute(t,n),t.style[n]=e)})},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o.jQueryInterface=function(n,i){return this.each(function(){var t=a.default.getData(this,E),e=f({},j,l.default.getDataAttributes(this),"object"==typeof n&&n?n:{}),t=t||new o(this,e);if("string"==typeof n){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}})},t=o,e=[{key:"Default",get:function(){return j}},{key:"DATA_KEY",get:function(){return E}}],(n=null)&&c(t.prototype,n),e&&c(t,e),o}(r(o).default);return s.default.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',function(t){var e=this,n=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),s.default.one(n,C,function(t){t.defaultPrevented||s.default.one(n,L,function(){!function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),t=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==t.display&&"hidden"!==e.visibility}return!1}(e)||e.focus()})});var i=a.default.getData(n,E);i||(t=f({},l.default.getDataAttributes(n),l.default.getDataAttributes(this)),i=new H(n,t)),i.toggle(this)}),_="modal",v=H,b=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[_],n.fn[_]=v.jQueryInterface,n.fn[_].Constructor=v,n.fn[_].noConflict=function(){return n.fn[_]=e,v.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",b):b(),H}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/selector-engine.js"),require("./tooltip.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/selector-engine","./tooltip"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Popover=e(t.Data,t.SelectorEngine,t.Tooltip)}(this,function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=i(t),a=i(e),n=i(n);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(){return(o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}document.documentElement.dir;var u,c,f,d="popover",p="bs.popover",h="."+p,m="bs-popover",g=new RegExp("(^|\\s)"+m+"\\S+","g"),_=o({},n.default.Default,{placement:"right",offset:[0,8],trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),v=o({},n.default.DefaultType,{content:"(string|element|function)"}),b={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h},n=function(t){function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),l(e.prototype.constructor=e,n);var e,n,o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.setContent=function(){var t=this.getTipElement();this.setElementContent(a.default.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(a.default.findOne(".popover-body",t),e),t.classList.remove("fade","show")},o._addAttachmentClass=function(t){this.getTipElement().classList.add(m+"-"+this.updateAttachment(t))},o._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},o._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(g);null!==t&&0<t.length&&t.map(function(t){return t.trim()}).forEach(function(t){return e.classList.remove(t)})},i.jQueryInterface=function(n){return this.each(function(){var t=r.default.getData(this,p),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),r.default.setData(this,p,t)),"string"==typeof n)){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},e=i,n=[{key:"Default",get:function(){return _}},{key:"NAME",get:function(){return d}},{key:"DATA_KEY",get:function(){return p}},{key:"Event",get:function(){return b}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return v}}],(o=null)&&s(e.prototype,o),n&&s(e,n),i}(n.default);return u=d,c=n,f=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[u],n.fn[u]=c.jQueryInterface,n.fn[u].Constructor=c,n.fn[u].noConflict=function(){return n.fn[u]=e,c.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",f):f(),n}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).ScrollSpy=e(t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(t,e,n,i,o){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=r(t),s=r(e),l=r(n),u=r(i);function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(t){return(t[0]||t).nodeType}document.documentElement.dir;var h,m,g,_="scrollspy",v="bs.scrollspy",b="."+v,y={offset:10,method:"auto",target:""},w={offset:"number",method:"string",target:"(string|element)"},E="dropdown-item",T="active",j=".nav-link",O=".list-group-item",L="position",C=function(i){function n(t,e){var n=i.call(this,t)||this;return n._scrollElement="BODY"===t.tagName?window:t,n._config=n._getConfig(e),n._selector=n._config.target+" "+j+", "+n._config.target+" "+O+", "+n._config.target+" ."+E,n._offsets=[],n._targets=[],n._activeTarget=null,n._scrollHeight=0,s.default.on(n._scrollElement,"scroll.bs.scrollspy",function(){return n._process()}),n.refresh(),n._process(),n}e=i,(t=n).prototype=Object.create(e.prototype),d(t.prototype.constructor=t,e);var t,e,o=n.prototype;return o.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?"offset":L,i="auto"===this._config.method?t:this._config.method,o=i===L?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),u.default.find(this._selector).map(function(t){var e=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t&&document.querySelector(t)?t:null}(t),n=e?u.default.findOne(e):null;if(n){t=n.getBoundingClientRect();if(t.width||t.height)return[l.default[i](n).top+o,e]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},o.dispose=function(){i.prototype.dispose.call(this),s.default.off(this._scrollElement,b),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},o._getConfig=function(t){var e,o,r,a;return"string"!=typeof(t=f({},y,"object"==typeof t&&t?t:{})).target&&p(t.target)&&((e=t.target.id)||(e=function(t){for(;t+=Math.floor(1e6*Math.random()),document.getElementById(t););return t}(_),t.target.id=e),t.target="#"+e),o=_,r=t,a=w,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&p(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t},o._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},o._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},o._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},o._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){n=this._targets[this._targets.length-1];this._activeTarget!==n&&this._activate(n)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var i=this._offsets.length;i--;)this._activeTarget!==this._targets[i]&&t>=this._offsets[i]&&(void 0===this._offsets[i+1]||t<this._offsets[i+1])&&this._activate(this._targets[i])}},o._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-bs-target="'+e+'"],'+t+'[href="'+e+'"]'}),t=u.default.findOne(t.join(","));t.classList.contains(E)?(u.default.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(T),t.classList.add(T)):(t.classList.add(T),u.default.parents(t,".nav, .list-group").forEach(function(t){u.default.prev(t,j+", "+O).forEach(function(t){return t.classList.add(T)}),u.default.prev(t,".nav-item").forEach(function(t){u.default.children(t,j).forEach(function(t){return t.classList.add(T)})})})),s.default.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})},o._clear=function(){u.default.find(this._selector).filter(function(t){return t.classList.contains(T)}).forEach(function(t){return t.classList.remove(T)})},n.jQueryInterface=function(e){return this.each(function(){var t=(t=a.default.getData(this,v))||new n(this,"object"==typeof e&&e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},t=n,e=[{key:"Default",get:function(){return y}},{key:"DATA_KEY",get:function(){return v}}],(o=null)&&c(t.prototype,o),e&&c(t,e),n}(r(o).default);return s.default.on(window,"load.bs.scrollspy.data-api",function(){u.default.find('[data-bs-spy="scroll"]').forEach(function(t){return new C(t,l.default.getDataAttributes(t))})}),h=_,m=C,g=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[h],n.fn[h]=m.jQueryInterface,n.fn[h].Constructor=m,n.fn[h].noConflict=function(){return n.fn[h]=e,m.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",g):g(),C}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tab=e(t.Data,t.EventHandler,t.SelectorEngine,t.Base)}(this,function(t,e,n,i){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(t),a=o(e),s=o(n);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(e,t){var n=!1,t=t+5;e.addEventListener(f,function t(){n=!0,e.removeEventListener(f,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(f))},t)}var f="transitionend";document.documentElement.dir;var d,p,h,m="bs.tab",n="."+m,g="active",_=".active",v=":scope > li > .active",b=function(t){function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),u(e.prototype.constructor=e,i);var e,i,o=n.prototype;return o.show=function(){var t,e,n,i,o=this;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(g)||this._element.classList.contains("disabled")||(t=function(t){t=function(t){var e=t.getAttribute("data-bs-target");if(!e||"#"===e){t=t.getAttribute("href");if(!t||!t.includes("#")&&!t.startsWith("."))return null;e=(t=t.includes("#")&&!t.startsWith("#")?"#"+t.split("#")[1]:t)&&"#"!==t?t.trim():null}return e}(t);return t?document.querySelector(t):null}(this._element),(i=this._element.closest(".nav, .list-group"))&&(n="UL"===i.nodeName||"OL"===i.nodeName?v:_,e=(e=s.default.find(n,i))[e.length-1]),n=e?a.default.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null,a.default.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==n&&n.defaultPrevented||(this._activate(this._element,i),i=function(){a.default.trigger(e,"hidden.bs.tab",{relatedTarget:o._element}),a.default.trigger(o._element,"shown.bs.tab",{relatedTarget:e})},t?this._activate(t,t.parentNode,i):i()))},o._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?s.default.children(e,_):s.default.find(v,e))[0],r=n&&o&&o.classList.contains("fade"),e=function(){return i._transitionComplete(t,o,n)};o&&r?(r=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,t=Number.parseFloat(n),e=Number.parseFloat(i);return t||e?(n=n.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(n)+Number.parseFloat(i))):0}(o),o.classList.remove("show"),a.default.one(o,"transitionend",e),c(o,r)):e()},o._transitionComplete=function(t,e,n){var i;e&&(e.classList.remove(g),(i=s.default.findOne(":scope > .dropdown-menu .active",e.parentNode))&&i.classList.remove(g),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)),t.classList.add(g),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),t.offsetHeight,t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&s.default.find(".dropdown-toggle").forEach(function(t){return t.classList.add(g)}),t.setAttribute("aria-expanded",!0)),n&&n()},n.jQueryInterface=function(e){return this.each(function(){var t=r.default.getData(this,m)||new n(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},e=n,i=[{key:"DATA_KEY",get:function(){return m}}],(o=null)&&l(e.prototype,o),i&&l(e,i),n}(o(i).default);return a.default.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',function(t){t.preventDefault(),(r.default.getData(this,m)||new b(this)).show()}),d="tab",p=b,h=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[d],n.fn[d]=p.jQueryInterface,n.fn[d].Constructor=p,n.fn[d].noConflict=function(){return n.fn[d]=e,p.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",h):h(),b}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["./dom/data","./dom/event-handler","./dom/manipulator","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Toast=e(t.Data,t.EventHandler,t.Manipulator,t.Base)}(this,function(t,e,n,i){"use strict";function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=o(t),a=o(e),s=o(n);function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(){return(u=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function d(e,t){var n=!1,t=t+5;e.addEventListener(h,function t(){n=!0,e.removeEventListener(h,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(h))},t)}function p(r,a,s){Object.keys(s).forEach(function(t){var e,n,i=s[t],o=a[t],e=o&&((n=o)[0]||n).nodeType?"element":null==(e=o)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(e))throw new TypeError(r.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+i+'".')})}var h="transitionend";document.documentElement.dir;var m,g,_,v="bs.toast",n="."+v,b="click.dismiss"+n,y="show",w="showing",E={animation:"boolean",autohide:"boolean",delay:"number"},T={animation:!0,autohide:!0,delay:5e3},i=function(n){function i(t,e){t=n.call(this,t)||this;return t._config=t._getConfig(e),t._timeout=null,t._setListeners(),t}e=n,(t=i).prototype=Object.create(e.prototype),c(t.prototype.constructor=t,e);var t,e,o=i.prototype;return o.show=function(){var t,e,n=this;a.default.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),t=function(){n._element.classList.remove(w),n._element.classList.add(y),a.default.trigger(n._element,"shown.bs.toast"),n._config.autohide&&(n._timeout=setTimeout(function(){n.hide()},n._config.delay))},this._element.classList.remove("hide"),this._element.offsetHeight,this._element.classList.add(w),this._config.animation?(e=f(this._element),a.default.one(this._element,"transitionend",t),d(this._element,e)):t())},o.hide=function(){var t,e,n=this;this._element.classList.contains(y)&&(a.default.trigger(this._element,"hide.bs.toast").defaultPrevented||(t=function(){n._element.classList.add("hide"),a.default.trigger(n._element,"hidden.bs.toast")},this._element.classList.remove(y),this._config.animation?(e=f(this._element),a.default.one(this._element,"transitionend",t),d(this._element,e)):t()))},o.dispose=function(){this._clearTimeout(),this._element.classList.contains(y)&&this._element.classList.remove(y),a.default.off(this._element,b),n.prototype.dispose.call(this),this._config=null},o._getConfig=function(t){return t=u({},T,s.default.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},o._setListeners=function(){var t=this;a.default.on(this._element,b,'[data-bs-dismiss="toast"]',function(){return t.hide()})},o._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},i.jQueryInterface=function(e){return this.each(function(){var t=(t=r.default.getData(this,v))||new i(this,"object"==typeof e&&e);if("string"==typeof e){if(void 0===t[e])throw new TypeError('No method named "'+e+'"');t[e](this)}})},t=i,e=[{key:"DefaultType",get:function(){return E}},{key:"Default",get:function(){return T}},{key:"DATA_KEY",get:function(){return v}}],(o=null)&&l(t.prototype,o),e&&l(t,e),i}(o(i).default);return m="toast",g=i,_=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[m],n.fn[m]=g.jQueryInterface,n.fn[m].Constructor=g,n.fn[m].noConflict=function(){return n.fn[m]=e,g.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",_):_(),i}),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core"),require("./dom/data.js"),require("./dom/event-handler.js"),require("./dom/manipulator.js"),require("./dom/selector-engine.js"),require("./base-component.js")):"function"==typeof define&&define.amd?define(["@popperjs/core","./dom/data","./dom/event-handler","./dom/manipulator","./dom/selector-engine","./base-component"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).Tooltip=e(t.Popper,t.Data,t.EventHandler,t.Manipulator,t.SelectorEngine,t.Base)}(this,function(r,t,e,n,i,o){"use strict";function a(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function s(n){if(n&&n.__esModule)return n;var i=Object.create(null);return n&&Object.keys(n).forEach(function(t){var e;"default"!==t&&(e=Object.getOwnPropertyDescriptor(n,t),Object.defineProperty(i,t,e.get?e:{enumerable:!0,get:function(){return n[t]}}))}),i.default=n,Object.freeze(i)}var l=s(r),u=a(t),c=a(e),f=a(n),d=a(i),n=a(o);function p(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(){return(h=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,i=arguments[e];for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}function m(t,e){return(m=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function g(t){if(!t)return 0;var e=(i=window.getComputedStyle(t)).transitionDuration,n=i.transitionDelay,t=Number.parseFloat(e),i=Number.parseFloat(n);return t||i?(e=e.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(n))):0}function _(t){return(t[0]||t).nodeType}function v(e,t){var n=!1,t=t+5;e.addEventListener(w,function t(){n=!0,e.removeEventListener(w,t)}),setTimeout(function(){n||e.dispatchEvent(new Event(w))},t)}function b(t){return document.documentElement.attachShadow?"function"!=typeof t.getRootNode?t instanceof ShadowRoot?t:t.parentNode?b(t.parentNode):null:(t=t.getRootNode())instanceof ShadowRoot?t:null:null}function y(){return function(){}}var w="transitionend",i="rtl"===document.documentElement.dir,E=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),T=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,j=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,o={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function O(t,r,e){if(!t.length)return t;if(e&&"function"==typeof e)return e(t);for(var e=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(r),s=(t=[]).concat.apply(t,e.body.querySelectorAll("*")),n=function(t,e){var n=s[t],i=n.nodeName.toLowerCase();if(!a.includes(i))return n.parentNode.removeChild(n),"continue";var t=(t=[]).concat.apply(t,n.attributes),o=[].concat(r["*"]||[],r[i]||[]);t.forEach(function(t){!function(t,e){var n=t.nodeName.toLowerCase();if(e.includes(n))return!E.has(n)||Boolean(T.test(t.nodeValue)||j.test(t.nodeValue));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(i[o].test(n))return!0;return!1}(t,o)&&n.removeAttribute(t.nodeName)})},i=0,o=s.length;i<o;i++)n(i);return e.body.innerHTML}var L,C,D,A="tooltip",k="bs.tooltip",S="."+k,N="bs-tooltip",x=new RegExp("(^|\\s)"+N+"\\S+","g"),P=new Set(["sanitize","allowList","sanitizeFn"]),I={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},M={AUTO:"auto",TOP:"top",RIGHT:i?"left":"right",BOTTOM:"bottom",LEFT:i?"right":"left"},q={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:o,popperConfig:null},B={HIDE:"hide"+S,HIDDEN:"hidden"+S,SHOW:"show"+S,SHOWN:"shown"+S,INSERTED:"inserted"+S,CLICK:"click"+S,FOCUSIN:"focusin"+S,FOCUSOUT:"focusout"+S,MOUSEENTER:"mouseenter"+S,MOUSELEAVE:"mouseleave"+S},H="fade",F="show",W="show",R="hover",Q="focus",n=function(n){function i(t,e){if(void 0===l)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(t=n.call(this,t)||this)._isEnabled=!0,t._timeout=0,t._hoverState="",t._activeTrigger={},t._popper=null,t.config=t._getConfig(e),t.tip=null,t._setListeners(),t}e=n,(t=i).prototype=Object.create(e.prototype),m(t.prototype.constructor=t,e);var t,e,o=i.prototype;return o.enable=function(){this._isEnabled=!0},o.disable=function(){this._isEnabled=!1},o.toggleEnabled=function(){this._isEnabled=!this._isEnabled},o.toggle=function(t){this._isEnabled&&(t?((t=this._initializeOnDelegatedTarget(t))._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)):this.getTipElement().classList.contains(F)?this._leave(null,this):this._enter(null,this))},o.dispose=function(){clearTimeout(this._timeout),c.default.off(this._element,this.constructor.EVENT_KEY),c.default.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,n.prototype.dispose.call(this)},o.show=function(){var t,e,n,i,o=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");this.isWithContent()&&this._isEnabled&&(n=c.default.trigger(this._element,this.constructor.Event.SHOW),t=(null===(e=b(this._element))?this._element.ownerDocument.documentElement:e).contains(this._element),!n.defaultPrevented&&t&&(e=this.getTipElement(),n=function(t){for(;t+=Math.floor(1e6*Math.random()),document.getElementById(t););return t}(this.constructor.NAME),e.setAttribute("id",n),this._element.setAttribute("aria-describedby",n),this.setContent(),this.config.animation&&e.classList.add(H),t="function"==typeof this.config.placement?this.config.placement.call(this,e,this._element):this.config.placement,n=this._getAttachment(t),this._addAttachmentClass(n),t=this._getContainer(),u.default.setData(e,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||t.appendChild(e),c.default.trigger(this._element,this.constructor.Event.INSERTED),this._popper=r.createPopper(this._element,e,this._getPopperConfig(n)),e.classList.add(F),(n="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass)&&(e=e.classList).add.apply(e,n.split(" ")),"ontouchstart"in document.documentElement&&(i=[]).concat.apply(i,document.body.children).forEach(function(t){c.default.on(t,"mouseover",y())}),n=function(){var t=o._hoverState;o._hoverState=null,c.default.trigger(o._element,o.constructor.Event.SHOWN),"out"===t&&o._leave(null,o)},this.tip.classList.contains(H)?(i=g(this.tip),c.default.one(this.tip,"transitionend",n),v(this.tip,i)):n()))},o.hide=function(){var t,e,n,i=this;this._popper&&(t=this.getTipElement(),e=function(){i._hoverState!==W&&t.parentNode&&t.parentNode.removeChild(t),i._cleanTipClass(),i._element.removeAttribute("aria-describedby"),c.default.trigger(i._element,i.constructor.Event.HIDDEN),i._popper&&(i._popper.destroy(),i._popper=null)},c.default.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented||(t.classList.remove(F),"ontouchstart"in document.documentElement&&(n=[]).concat.apply(n,document.body.children).forEach(function(t){return c.default.off(t,"mouseover",y)}),this._activeTrigger.click=!1,this._activeTrigger[Q]=!1,this._activeTrigger[R]=!1,this.tip.classList.contains(H)?(n=g(t),c.default.one(t,"transitionend",e),v(t,n)):e(),this._hoverState=""))},o.update=function(){null!==this._popper&&this._popper.update()},o.isWithContent=function(){return Boolean(this.getTitle())},o.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},o.setContent=function(){var t=this.getTipElement();this.setElementContent(d.default.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove(H,F)},o.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&_(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=O(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},o.getTitle=function(){return this._element.getAttribute("data-bs-original-title")||("function"==typeof this.config.title?this.config.title.call(this._element):this.config.title)},o.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},o._initializeOnDelegatedTarget=function(t,e){var n=this.constructor.DATA_KEY;return(e=e||u.default.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),u.default.setData(t.delegateTarget,n,e)),e},o._getOffset=function(){var e=this,n=this.config.offset;return"string"==typeof n?n.split(",").map(function(t){return Number.parseInt(t,10)}):"function"==typeof n?function(t){return n(t,e._element)}:n},o._getPopperConfig=function(t){var e=this,t={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}};return h({},t,"function"==typeof this.config.popperConfig?this.config.popperConfig(t):this.config.popperConfig)},o._addAttachmentClass=function(t){this.getTipElement().classList.add(N+"-"+this.updateAttachment(t))},o._getContainer=function(){return!1===this.config.container?document.body:_(this.config.container)?this.config.container:d.default.findOne(this.config.container)},o._getAttachment=function(t){return M[t.toUpperCase()]},o._setListeners=function(){var n=this;this.config.trigger.split(" ").forEach(function(t){var e;"click"===t?c.default.on(n._element,n.constructor.Event.CLICK,n.config.selector,function(t){return n.toggle(t)}):"manual"!==t&&(e=t===R?n.constructor.Event.MOUSEENTER:n.constructor.Event.FOCUSIN,t=t===R?n.constructor.Event.MOUSELEAVE:n.constructor.Event.FOCUSOUT,c.default.on(n._element,e,n.config.selector,function(t){return n._enter(t)}),c.default.on(n._element,t,n.config.selector,function(t){return n._leave(t)}))}),this._hideModalHandler=function(){n._element&&n.hide()},c.default.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},o._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");!t&&"string"==e||(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},o._enter=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?Q:R]=!0),e.getTipElement().classList.contains(F)||e._hoverState===W?e._hoverState=W:(clearTimeout(e._timeout),e._hoverState=W,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===W&&e.show()},e.config.delay.show):e.show())},o._leave=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?Q:R]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())},o._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},o._getConfig=function(t){var o,r,a,e=f.default.getDataAttributes(this._element);return Object.keys(e).forEach(function(t){P.has(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=h({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),o=A,r=t,a=this.constructor.DefaultType,Object.keys(a).forEach(function(t){var e,n=a[t],i=r[t],e=i&&_(i)?"element":null==(e=i)?""+e:{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(e))throw new TypeError(o.toUpperCase()+': Option "'+t+'" provided type "'+e+'" but expected type "'+n+'".')}),t.sanitize&&(t.template=O(t.template,t.allowList,t.sanitizeFn)),t},o._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},o._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(x);null!==t&&0<t.length&&t.map(function(t){return t.trim()}).forEach(function(t){return e.classList.remove(t)})},o._handlePopperPlacementChange=function(t){t=t.state;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))},i.jQueryInterface=function(n){return this.each(function(){var t=u.default.getData(this,k),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t=t||new i(this,e),"string"==typeof n)){if(void 0===t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},t=i,e=[{key:"Default",get:function(){return q}},{key:"NAME",get:function(){return A}},{key:"DATA_KEY",get:function(){return k}},{key:"Event",get:function(){return B}},{key:"EVENT_KEY",get:function(){return S}},{key:"DefaultType",get:function(){return I}}],(o=null)&&p(t.prototype,o),e&&p(t,e),i}(n.default);return L=A,C=n,D=function(){var t,e,n=(t=window.jQuery)&&!document.body.hasAttribute("data-bs-no-jquery")?t:null;n&&(e=n.fn[L],n.fn[L]=C.jQueryInterface,n.fn[L].Constructor=C,n.fn[L].noConflict=function(){return n.fn[L]=e,C.jQueryInterface})},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",D):D(),n});
+//# sourceMappingURL=main.min.js.map
diff --git a/docs/js/main.min.js.map b/docs/js/main.min.js.map
new file mode 100644
index 0000000..a450126
--- /dev/null
+++ b/docs/js/main.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.min.js","sources":["main.min.js"],"sourcesContent":["// import Popper\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n\n// import required js-files Bootstrap 5\n/*!\n * Bootstrap alert.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler, global.Base));\n}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'alert';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var SELECTOR_DISMISS = '[data-bs-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\" + EVENT_KEY;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Alert, _BaseComponent);\n\n function Alert() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = element ? this._getRootElement(element) : this._element;\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return;\n }\n\n this._removeElement(rootElement);\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(\".\" + CLASS_NAME_ALERT);\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n return EventHandler__default['default'].trigger(element, EVENT_CLOSE);\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n element.classList.remove(CLASS_NAME_SHOW);\n\n if (!element.classList.contains(CLASS_NAME_FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = getTransitionDurationFromElement(element);\n EventHandler__default['default'].one(element, 'transitionend', function () {\n return _this._destroyElement(element);\n });\n emulateTransitionEnd(element, transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n EventHandler__default['default'].trigger(element, EVENT_CLOSED);\n } // Static\n ;\n\n Alert.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert.handleDismiss = function handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Alert;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Alert to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Alert);\n\n return Alert;\n\n})));\n//# sourceMappingURL=alert.js.map\n/*!\n * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base));\n}(this, (function (Data, EventHandler, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'button';\n var DATA_KEY = 'bs.button';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var CLASS_NAME_ACTIVE = 'active';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]';\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Button, _BaseComponent);\n\n function Button() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\n } // Static\n ;\n\n Button.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n if (!data) {\n data = new Button(this);\n }\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Button;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n var button = event.target.closest(SELECTOR_DATA_TOGGLE);\n var data = Data__default['default'].getData(button, DATA_KEY);\n\n if (!data) {\n data = new Button(button);\n }\n\n data.toggle();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Button to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Button);\n\n return Button;\n\n})));\n//# sourceMappingURL=button.js.map\n/*!\n * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'carousel';\n var DATA_KEY = 'bs.carousel';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ARROW_LEFT_KEY = 'ArrowLeft';\n var ARROW_RIGHT_KEY = 'ArrowRight';\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY;\n var EVENT_SLID = \"slid\" + EVENT_KEY;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_END = 'carousel-item-end';\n var CLASS_NAME_START = 'carousel-item-start';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_INDICATOR = '[data-bs-target]';\n var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n var POINTER_TYPE_TOUCH = 'touch';\n var POINTER_TYPE_PEN = 'pen';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Carousel, _BaseComponent);\n\n function Carousel(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._items = null;\n _this._interval = null;\n _this._activeElement = null;\n _this._isPaused = false;\n _this._isSliding = false;\n _this.touchTimeout = null;\n _this.touchStartX = 0;\n _this.touchDeltaX = 0;\n _this._config = _this._getConfig(config);\n _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);\n _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n _this._pointerEvent = Boolean(window.PointerEvent);\n\n _this._addEventListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n };\n\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this2 = this;\n\n this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n EventHandler__default['default'].one(this._element, EVENT_SLID, function () {\n return _this2.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._element, EVENT_KEY);\n this._items = null;\n this._config = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n if (isRTL) {\n this.next();\n } else {\n this.prev();\n }\n } // swipe right\n\n\n if (direction < 0) {\n if (isRTL) {\n this.prev();\n } else {\n this.next();\n }\n }\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this3 = this;\n\n if (this._config.keyboard) {\n EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {\n return _this3._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {\n return _this3.pause(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {\n return _this3.cycle(event);\n });\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners();\n }\n };\n\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this4 = this;\n\n var start = function start(event) {\n if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this4.touchStartX = event.clientX;\n } else if (!_this4._pointerEvent) {\n _this4.touchStartX = event.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n _this4.touchDeltaX = 0;\n } else {\n _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;\n }\n };\n\n var end = function end(event) {\n if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n _this4.touchDeltaX = event.clientX - _this4.touchStartX;\n }\n\n _this4._handleSwipe();\n\n if (_this4._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this4.pause();\n\n if (_this4.touchTimeout) {\n clearTimeout(_this4.touchTimeout);\n }\n\n _this4.touchTimeout = setTimeout(function (event) {\n return _this4.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);\n }\n };\n\n SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) {\n EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n });\n\n if (this._pointerEvent) {\n EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault();\n\n if (isRTL) {\n this.next();\n } else {\n this.prev();\n }\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault();\n\n if (isRTL) {\n this.prev();\n } else {\n this.next();\n }\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element));\n\n return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\n activeIndicator.removeAttribute('aria-current');\n var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement);\n\n for (var i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE);\n indicators[i].setAttribute('aria-current', 'true');\n break;\n }\n }\n }\n };\n\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n if (!element) {\n return;\n }\n\n var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this5 = this;\n\n var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END;\n var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT;\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.defaultPrevented) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n var transitionDuration = getTransitionDurationFromElement(activeElement);\n EventHandler__default['default'].one(activeElement, 'transitionend', function () {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE);\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\n _this5._isSliding = false;\n setTimeout(function () {\n EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n }, 0);\n });\n emulateTransitionEnd(activeElement, transitionDuration);\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE);\n nextElement.classList.add(CLASS_NAME_ACTIVE);\n this._isSliding = false;\n EventHandler__default['default'].trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n }\n\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel.carouselInterface = function carouselInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element));\n\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(element, _config);\n }\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n };\n\n Carousel.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config);\n });\n };\n\n Carousel.dataApiClickHandler = function dataApiClickHandler(event) {\n var target = getElementFromSelector(this);\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));\n\n var slideIndex = this.getAttribute('data-bs-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel.carouselInterface(target, config);\n\n if (slideIndex) {\n Data__default['default'].getData(target, DATA_KEY).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Carousel;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\n EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {\n var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE);\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Carousel);\n\n return Carousel;\n\n})));\n//# sourceMappingURL=carousel.js.map\n/*!\n * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'collapse';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var Default = {\n toggle: true,\n parent: ''\n };\n var DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var WIDTH = 'width';\n var HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Collapse, _BaseComponent);\n\n function Collapse(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._isTransitioning = false;\n _this._config = _this._getConfig(config);\n _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + \"[href=\\\"#\" + element.id + \"\\\"],\" + (SELECTOR_DATA_TOGGLE + \"[data-bs-target=\\\"#\" + element.id + \"\\\"]\"));\n var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = getSelectorFromElement(elem);\n var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length) {\n _this._selector = selector;\n\n _this._triggerArray.push(elem);\n }\n }\n\n _this._parent = _this._config.parent ? _this._getParent() : null;\n\n if (!_this._config.parent) {\n _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);\n }\n\n if (_this._config.toggle) {\n _this.toggle();\n }\n\n return _this;\n } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this2 = this;\n\n if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {\n if (typeof _this2._config.parent === 'string') {\n return elem.getAttribute('data-bs-parent') === _this2._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n var container = SelectorEngine__default['default'].findOne(this._selector);\n\n if (actives) {\n var tempActiveData = actives.find(function (elem) {\n return container !== elem;\n });\n activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n if (actives) {\n actives.forEach(function (elemActive) {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide');\n }\n\n if (!activesData) {\n Data__default['default'].setData(elemActive, DATA_KEY, null);\n }\n });\n }\n\n var dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(function (element) {\n element.classList.remove(CLASS_NAME_COLLAPSED);\n element.setAttribute('aria-expanded', true);\n });\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n _this2._element.style[dimension] = '';\n\n _this2.setTransitioning(false);\n\n EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var elem = getElementFromSelector(trigger);\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED);\n trigger.setAttribute('aria-expanded', false);\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this3.setTransitioning(false);\n\n _this3._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n _this3._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n this._config = null;\n this._parent = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this4 = this;\n\n var parent = this._config.parent;\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0];\n }\n } else {\n parent = SelectorEngine__default['default'].findOne(parent);\n }\n\n var selector = SELECTOR_DATA_TOGGLE + \"[data-bs-parent=\\\"\" + parent + \"\\\"]\";\n SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {\n var selected = getElementFromSelector(element);\n\n _this4._addAriaAndCollapsedClass(selected, [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n if (!element || !triggerArray.length) {\n return;\n }\n\n var isOpen = element.classList.contains(CLASS_NAME_SHOW);\n triggerArray.forEach(function (elem) {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED);\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED);\n }\n\n elem.setAttribute('aria-expanded', isOpen);\n });\n } // Static\n ;\n\n Collapse.collapseInterface = function collapseInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {});\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(element, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n };\n\n Collapse.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config);\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Collapse;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var triggerData = Manipulator__default['default'].getDataAttributes(this);\n var selector = getSelectorFromElement(this);\n var selectorElements = SelectorEngine__default['default'].find(selector);\n selectorElements.forEach(function (element) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n var config;\n\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent;\n data._parent = data._getParent();\n }\n\n config = 'toggle';\n } else {\n config = triggerData;\n }\n\n Collapse.collapseInterface(element, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Collapse to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Collapse);\n\n return Collapse;\n\n})));\n//# sourceMappingURL=collapse.js.map\n/*!\n * Bootstrap dropdown.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var noop = function noop() {\n return function () {};\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'dropdown';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ESCAPE_KEY = 'Escape';\n var SPACE_KEY = 'Space';\n var TAB_KEY = 'Tab';\n var ARROW_UP_KEY = 'ArrowUp';\n var ARROW_DOWN_KEY = 'ArrowDown';\n var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + \"|\" + ARROW_DOWN_KEY + \"|\" + ESCAPE_KEY);\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK = \"click\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPEND = 'dropend';\n var CLASS_NAME_DROPSTART = 'dropstart';\n var CLASS_NAME_NAVBAR = 'navbar';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';\n var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';\n var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';\n var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';\n var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';\n var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';\n var Default = {\n offset: [0, 2],\n flip: true,\n boundary: 'clippingParents',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType = {\n offset: '(array|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element|object)',\n display: 'string',\n popperConfig: '(null|object|function)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Dropdown, _BaseComponent);\n\n function Dropdown(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._popper = null;\n _this._config = _this._getConfig(config);\n _this._menu = _this._getMenuElement();\n _this._inNavbar = _this._detectNavbar();\n\n _this._addEventListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var isActive = this._element.classList.contains(CLASS_NAME_SHOW);\n\n Dropdown.clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show();\n };\n\n _proto.show = function show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this._element);\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget);\n\n if (showEvent.defaultPrevented) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (this._inNavbar) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none');\n } else {\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n\n var popperConfig = this._getPopperConfig();\n\n var isDisplayStatic = popperConfig.modifiers.find(function (modifier) {\n return modifier.name === 'applyStyles' && modifier.enabled === false;\n });\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n\n if (isDisplayStatic) {\n Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static');\n }\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\n var _ref;\n\n (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {\n return EventHandler__default['default'].on(elem, 'mouseover', null, noop());\n });\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n this._menu.classList.toggle(CLASS_NAME_SHOW);\n\n this._element.classList.toggle(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget);\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._menu.classList.toggle(CLASS_NAME_SHOW);\n\n this._element.classList.toggle(CLASS_NAME_SHOW);\n\n Manipulator__default['default'].removeDataAttribute(this._menu, 'popper');\n EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget);\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._element, EVENT_KEY);\n this._menu = null;\n\n if (this._popper) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper) {\n this._popper.update();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this2.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config);\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(NAME.toUpperCase() + \": Option \\\"reference\\\" provided type \\\"object\\\" without a required \\\"getBoundingClientRect\\\" method.\");\n }\n\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0];\n };\n\n _proto._getPlacement = function _getPlacement() {\n var parentDropdown = this._element.parentNode;\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n } // We need to trim the value because custom properties can also include spaces\n\n\n var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return this._element.closest(\".\" + CLASS_NAME_NAVBAR) !== null;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this3 = this;\n\n var offset = this._config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this3._element);\n };\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n altBoundary: this._config.flip,\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n\n return _extends({}, defaultBsPopperConfig, typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig);\n } // Static\n ;\n\n Dropdown.dropdownInterface = function dropdownInterface(element, config) {\n var data = Data__default['default'].getData(element, DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(element, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n };\n\n Dropdown.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config);\n });\n };\n\n Dropdown.clearMenus = function clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {\n return;\n }\n\n var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var context = Data__default['default'].getData(toggles[i], DATA_KEY);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {\n continue;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(toggles[i], EVENT_HIDE, relatedTarget);\n\n if (hideEvent.defaultPrevented) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref2;\n\n (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) {\n return EventHandler__default['default'].off(elem, 'mouseover', null, noop());\n });\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n\n if (context._popper) {\n context._popper.destroy();\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW);\n toggles[i].classList.remove(CLASS_NAME_SHOW);\n Manipulator__default['default'].removeDataAttribute(dropdownMenu, 'popper');\n EventHandler__default['default'].trigger(toggles[i], EVENT_HIDDEN, relatedTarget);\n }\n };\n\n Dropdown.getParentFromElement = function getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode;\n };\n\n Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var parent = Dropdown.getParentFromElement(this);\n var isActive = this.classList.contains(CLASS_NAME_SHOW);\n\n if (event.key === ESCAPE_KEY) {\n var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];\n button.focus();\n Dropdown.clearMenus();\n return;\n }\n\n if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) {\n var _button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0];\n\n _button.click();\n\n return;\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus();\n return;\n }\n\n var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible);\n\n if (!items.length) {\n return;\n }\n\n var index = items.indexOf(event.target); // Up\n\n if (event.key === ARROW_UP_KEY && index > 0) {\n index--;\n } // Down\n\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {\n index++;\n } // index is -1 if the first keydown is an ArrowUp\n\n\n index = index === -1 ? 0 : index;\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Dropdown;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n Dropdown.dropdownInterface(this, 'toggle');\n });\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {\n return e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Dropdown to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Dropdown);\n\n return Dropdown;\n\n})));\n//# sourceMappingURL=dropdown.js.map\n/*!\n * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!element) {\n return false;\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n var elementStyle = getComputedStyle(element);\n var parentNodeStyle = getComputedStyle(element.parentNode);\n return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';\n }\n\n return false;\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'modal';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var ESCAPE_KEY = 'Escape';\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Modal, _BaseComponent);\n\n function Modal(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._config = _this._getConfig(config);\n _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);\n _this._backdrop = null;\n _this._isShown = false;\n _this._isBodyOverflowing = false;\n _this._ignoreBackdropClick = false;\n _this._isTransitioning = false;\n _this._scrollbarWidth = 0;\n return _this;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this2 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget: relatedTarget\n });\n\n if (this._isShown || showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this2.hide(event);\n });\n EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this2._element) {\n _this2._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this2._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this3 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var transition = this._element.classList.contains(CLASS_NAME_FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', function (event) {\n return _this3._hideModal(event);\n });\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return EventHandler__default['default'].off(htmlElement, EVENT_KEY);\n });\n\n _BaseComponent.prototype.dispose.call(this);\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n this._config = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = this._element.classList.contains(CLASS_NAME_FADE);\n\n var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (transition) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {\n relatedTarget: relatedTarget\n });\n };\n\n if (transition) {\n var transitionDuration = getTransitionDurationFromElement(this._dialog);\n EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete);\n emulateTransitionEnd(this._dialog, transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop\n\n EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {\n _this6._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(window, EVENT_RESIZE, function () {\n return _this7._adjustDialog();\n });\n } else {\n EventHandler__default['default'].off(window, EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop);\n\n this._backdrop = null;\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n document.body.appendChild(this._backdrop);\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n\n if (animate) {\n reflow(this._backdrop);\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW);\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\n EventHandler__default['default'].one(this._backdrop, 'transitionend', callback);\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n callback();\n };\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);\n\n EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove);\n emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else {\n callback();\n }\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this10 = this;\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);\n EventHandler__default['default'].off(this._element, 'transitionend');\n EventHandler__default['default'].one(this._element, 'transitionend', function () {\n _this10._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n EventHandler__default['default'].one(_this10._element, 'transitionend', function () {\n _this10._element.style.overflowY = '';\n });\n emulateTransitionEnd(_this10._element, modalTransitionDuration);\n }\n });\n emulateTransitionEnd(this._element, modalTransitionDuration);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n ;\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this11 = this;\n\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + _this11._scrollbarWidth;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - _this11._scrollbarWidth;\n });\n\n this._setElementAttributes('body', 'paddingRight', function (calculatedValue) {\n return calculatedValue + _this11._scrollbarWidth;\n });\n }\n\n document.body.classList.add(CLASS_NAME_OPEN);\n };\n\n _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine__default['default'].find(selector).forEach(function (element) {\n var actualValue = element.style[styleProp];\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';\n });\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n\n this._resetElementAttributes('body', 'paddingRight');\n };\n\n _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) {\n SelectorEngine__default['default'].find(selector).forEach(function (element) {\n var value = Manipulator__default['default'].getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined' && element === document.body) {\n element.style[styleProp] = '';\n } else {\n Manipulator__default['default'].removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n });\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Modal;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n var _this12 = this;\n\n var target = getElementFromSelector(this);\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {\n if (isVisible(_this12)) {\n _this12.focus();\n }\n });\n });\n var data = Data__default['default'].getData(target, DATA_KEY);\n\n if (!data) {\n var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));\n\n data = new Modal(target, config);\n }\n\n data.toggle(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Modal);\n\n return Modal;\n\n})));\n//# sourceMappingURL=modal.js.map\n/*!\n * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));\n}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'popover';\n var DATA_KEY = 'bs.popover';\n var EVENT_KEY = \".\" + DATA_KEY;\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n\n var Default = _extends({}, Tooltip__default['default'].Default, {\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"popover-arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div>' + '</div>'\n });\n\n var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {\n content: '(string|element|function)'\n });\n\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement(); // we use append for html objects to maintain js events\n\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this._element);\n }\n\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\n } // Private\n ;\n\n _proto._addAttachmentClass = function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(CLASS_PREFIX + \"-\" + this.updateAttachment(attachment));\n };\n\n _proto._getContent = function _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n } // Static\n ;\n\n Popover.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Popover(this, _config);\n Data__default['default'].setData(this, DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"Default\",\n get: // Getters\n function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Popover;\n }(Tooltip__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Popover);\n\n return Popover;\n\n})));\n//# sourceMappingURL=popover.js.map\n/*!\n * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MAX_UID = 1000000;\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getSelectorFromElement = function getSelectorFromElement(element) {\n var selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'scrollspy';\n var DATA_KEY = 'bs.scrollspy';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var Default = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE = 'active';\n var SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(ScrollSpy, _BaseComponent);\n\n function ScrollSpy(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._scrollElement = element.tagName === 'BODY' ? window : element;\n _this._config = _this._getConfig(config);\n _this._selector = _this._config.target + \" \" + SELECTOR_NAV_LINKS + \", \" + _this._config.target + \" \" + SELECTOR_LIST_ITEMS + \", \" + _this._config.target + \" .\" + CLASS_NAME_DROPDOWN_ITEM;\n _this._offsets = [];\n _this._targets = [];\n _this._activeTarget = null;\n _this._scrollHeight = 0;\n EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () {\n return _this._process();\n });\n\n _this.refresh();\n\n _this._process();\n\n return _this;\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = SelectorEngine__default['default'].find(this._selector);\n targets.map(function (element) {\n var targetSelector = getSelectorFromElement(element);\n var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n _BaseComponent.prototype.dispose.call(this);\n\n EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n var id = config.target.id;\n\n if (!id) {\n id = getUID(NAME);\n config.target.id = id;\n }\n\n config.target = \"#\" + id;\n }\n\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-bs-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n\n var link = SelectorEngine__default['default'].findOne(queries.join(','));\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);\n link.classList.add(CLASS_NAME_ACTIVE);\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE);\n SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).forEach(function (item) {\n return item.classList.add(CLASS_NAME_ACTIVE);\n }); // Handle special case when .nav-link is inside .nav-item\n\n SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(function (navItem) {\n SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(function (item) {\n return item.classList.add(CLASS_NAME_ACTIVE);\n });\n });\n });\n }\n\n EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n };\n\n _proto._clear = function _clear() {\n SelectorEngine__default['default'].find(this._selector).filter(function (node) {\n return node.classList.contains(CLASS_NAME_ACTIVE);\n }).forEach(function (node) {\n return node.classList.remove(CLASS_NAME_ACTIVE);\n });\n } // Static\n ;\n\n ScrollSpy.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new ScrollSpy(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(ScrollSpy, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return ScrollSpy;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () {\n SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(function (spy) {\n return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .ScrollSpy to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, ScrollSpy);\n\n return ScrollSpy;\n\n})));\n//# sourceMappingURL=scrollspy.js.map\n/*!\n * Bootstrap tab.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine, global.Base));\n}(this, (function (Data, EventHandler, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1];\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'tab';\n var DATA_KEY = 'bs.tab';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_UL = ':scope > li > .active';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tab = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Tab, _BaseComponent);\n\n function Tab() {\n return _BaseComponent.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(CLASS_NAME_ACTIVE) || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var previous;\n var target = getElementFromSelector(this._element);\n\n var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);\n\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n previous = SelectorEngine__default['default'].find(itemSelector, listElement);\n previous = previous[previous.length - 1];\n }\n\n var hideEvent = previous ? EventHandler__default['default'].trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n }) : null;\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n });\n\n if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {\n return;\n }\n\n this._activate(this._element, listElement);\n\n var complete = function complete() {\n EventHandler__default['default'].trigger(previous, EVENT_HIDDEN, {\n relatedTarget: _this._element\n });\n EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN, {\n relatedTarget: previous\n });\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n } // Private\n ;\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n\n var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine__default['default'].find(SELECTOR_ACTIVE_UL, container) : SelectorEngine__default['default'].children(container, SELECTOR_ACTIVE);\n var active = activeElements[0];\n var isTransitioning = callback && active && active.classList.contains(CLASS_NAME_FADE);\n\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n\n if (active && isTransitioning) {\n var transitionDuration = getTransitionDurationFromElement(active);\n active.classList.remove(CLASS_NAME_SHOW);\n EventHandler__default['default'].one(active, 'transitionend', complete);\n emulateTransitionEnd(active, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE);\n var dropdownChild = SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n reflow(element);\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW);\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n var dropdownElement = element.closest(SELECTOR_DROPDOWN);\n\n if (dropdownElement) {\n SelectorEngine__default['default'].find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {\n return dropdown.classList.add(CLASS_NAME_ACTIVE);\n });\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n } // Static\n ;\n\n Tab.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tab, null, [{\n key: \"DATA_KEY\",\n get: // Getters\n function get() {\n return DATA_KEY;\n }\n }]);\n\n return Tab;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);\n data.show();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tab to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(NAME, Tab);\n\n return Tab;\n\n})));\n//# sourceMappingURL=tab.js.map\n/*!\n * Bootstrap toast.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator, global.Base));\n}(this, (function (Data, EventHandler, Manipulator, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'toast';\n var DATA_KEY = 'bs.toast';\n var EVENT_KEY = \".\" + DATA_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_HIDE = 'hide';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_SHOWING = 'showing';\n var DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n };\n var Default = {\n animation: true,\n autohide: true,\n delay: 5000\n };\n var SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"toast\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Toast = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Toast, _BaseComponent);\n\n function Toast(element, config) {\n var _this;\n\n _this = _BaseComponent.call(this, element) || this;\n _this._config = _this._getConfig(config);\n _this._timeout = null;\n\n _this._setListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Toast.prototype;\n\n // Public\n _proto.show = function show() {\n var _this2 = this;\n\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._clearTimeout();\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE);\n }\n\n var complete = function complete() {\n _this2._element.classList.remove(CLASS_NAME_SHOWING);\n\n _this2._element.classList.add(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);\n\n if (_this2._config.autohide) {\n _this2._timeout = setTimeout(function () {\n _this2.hide();\n }, _this2._config.delay);\n }\n };\n\n this._element.classList.remove(CLASS_NAME_HIDE);\n\n reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n if (this._config.animation) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var complete = function complete() {\n _this3._element.classList.add(CLASS_NAME_HIDE);\n\n EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);\n };\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n if (this._config.animation) {\n var transitionDuration = getTransitionDurationFromElement(this._element);\n EventHandler__default['default'].one(this._element, 'transitionend', complete);\n emulateTransitionEnd(this._element, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.dispose = function dispose() {\n this._clearTimeout();\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW);\n }\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n\n _BaseComponent.prototype.dispose.call(this);\n\n this._config = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this._element), typeof config === 'object' && config ? config : {});\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._setListeners = function _setListeners() {\n var _this4 = this;\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {\n return _this4.hide();\n });\n };\n\n _proto._clearTimeout = function _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n ;\n\n Toast.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Toast(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](this);\n }\n });\n };\n\n _createClass(Toast, null, [{\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }]);\n\n return Toast;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Toast to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Toast);\n\n return Toast;\n\n})));\n//# sourceMappingURL=toast.js.map\n/*!\n * Bootstrap tooltip.js v5.0.0-beta2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));\n}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n function _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n }\n\n var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var getUID = function getUID(prefix) {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n return (obj[0] || obj).nodeType;\n };\n\n var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {\n var called = false;\n var durationPadding = 5;\n var emulatedDuration = duration + durationPadding;\n\n function listener() {\n called = true;\n element.removeEventListener(TRANSITION_END, listener);\n }\n\n element.addEventListener(TRANSITION_END, listener);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(element);\n }\n }, emulatedDuration);\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n });\n };\n\n var findShadowRoot = function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n var noop = function noop() {\n return function () {};\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback);\n } else {\n callback();\n }\n };\n\n var isRTL = document.documentElement.dir === 'rtl';\n\n var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta2): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.includes(attrName)) {\n if (uriAttrs.has(attrName)) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n\n return false;\n };\n\n var DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\n var _ref;\n\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var allowlistKeys = Object.keys(allowList);\n\n var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));\n\n var _loop = function _loop(i, len) {\n var _ref2;\n\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (!allowlistKeys.includes(elName)) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n\n var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);\n\n var allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, allowedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'tooltip';\n var DATA_KEY = 'bs.tooltip';\n var EVENT_KEY = \".\" + DATA_KEY;\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n var DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(array|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacements: 'array',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n allowList: 'object',\n popperConfig: '(null|object|function)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL ? 'right' : 'left'\n };\n var Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"tooltip-arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: [0, 0],\n container: false,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n boundary: 'clippingParents',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n allowList: DefaultAllowlist,\n popperConfig: null\n };\n var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_MODAL = 'modal';\n var CLASS_NAME_SHOW = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function (_BaseComponent) {\n _inheritsLoose(Tooltip, _BaseComponent);\n\n function Tooltip(element, config) {\n var _this;\n\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n\n _this = _BaseComponent.call(this, element) || this; // private\n\n _this._isEnabled = true;\n _this._timeout = 0;\n _this._hoverState = '';\n _this._activeTrigger = {};\n _this._popper = null; // Protected\n\n _this.config = _this._getConfig(config);\n _this.tip = null;\n\n _this._setListeners();\n\n return _this;\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var context = this._initializeOnDelegatedTarget(event);\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);\n EventHandler__default['default'].off(this._element.closest(\".\" + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);\n\n if (this.tip && this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip);\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._popper = null;\n this.config = null;\n this.tip = null;\n\n _BaseComponent.prototype.dispose.call(this);\n };\n\n _proto.show = function show() {\n var _this2 = this;\n\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n if (!(this.isWithContent() && this._isEnabled)) {\n return;\n }\n\n var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);\n var shadowRoot = findShadowRoot(this._element);\n var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n\n this._element.setAttribute('aria-describedby', tipId);\n\n this.setContent();\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this._addAttachmentClass(attachment);\n\n var container = this._getContainer();\n\n Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip);\n }\n\n EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);\n this._popper = Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n tip.classList.add(CLASS_NAME_SHOW);\n var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;\n\n if (customClass) {\n var _tip$classList;\n\n (_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement) {\n var _ref;\n\n (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {\n EventHandler__default['default'].on(element, 'mouseover', noop());\n });\n }\n\n var complete = function complete() {\n var prevHoverState = _this2._hoverState;\n _this2._hoverState = null;\n EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this2._leave(null, _this2);\n }\n };\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n var transitionDuration = getTransitionDurationFromElement(this.tip);\n EventHandler__default['default'].one(this.tip, 'transitionend', complete);\n emulateTransitionEnd(this.tip, transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.hide = function hide() {\n var _this3 = this;\n\n if (!this._popper) {\n return;\n }\n\n var tip = this.getTipElement();\n\n var complete = function complete() {\n if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this3._cleanTipClass();\n\n _this3._element.removeAttribute('aria-describedby');\n\n EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);\n\n if (_this3._popper) {\n _this3._popper.destroy();\n\n _this3._popper = null;\n }\n };\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n tip.classList.remove(CLASS_NAME_SHOW); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n var _ref2;\n\n (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {\n return EventHandler__default['default'].off(element, 'mouseover', noop);\n });\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n var transitionDuration = getTransitionDurationFromElement(tip);\n EventHandler__default['default'].one(tip, 'transitionend', complete);\n emulateTransitionEnd(tip, transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.update();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.getTipElement = function getTipElement() {\n if (this.tip) {\n return this.tip;\n }\n\n var element = document.createElement('div');\n element.innerHTML = this.config.template;\n this.tip = element.children[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\n };\n\n _proto.setElementContent = function setElementContent(element, content) {\n if (element === null) {\n return;\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0];\n } // content is a DOM node or a jQuery\n\n\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = '';\n element.appendChild(content);\n }\n } else {\n element.textContent = content.textContent;\n }\n\n return;\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);\n }\n\n element.innerHTML = content;\n } else {\n element.textContent = content;\n }\n };\n\n _proto.getTitle = function getTitle() {\n var title = this._element.getAttribute('data-bs-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;\n }\n\n return title;\n };\n\n _proto.updateAttachment = function updateAttachment(attachment) {\n if (attachment === 'right') {\n return 'end';\n }\n\n if (attachment === 'left') {\n return 'start';\n }\n\n return attachment;\n } // Private\n ;\n\n _proto._initializeOnDelegatedTarget = function _initializeOnDelegatedTarget(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || Data__default['default'].getData(event.delegateTarget, dataKey);\n\n if (!context) {\n context = new this.constructor(event.delegateTarget, this._getDelegateConfig());\n Data__default['default'].setData(event.delegateTarget, dataKey, context);\n }\n\n return context;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n\n var offset = this.config.offset;\n\n if (typeof offset === 'string') {\n return offset.split(',').map(function (val) {\n return Number.parseInt(val, 10);\n });\n }\n\n if (typeof offset === 'function') {\n return function (popperData) {\n return offset(popperData, _this4._element);\n };\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this5 = this;\n\n var defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n altBoundary: true,\n fallbackPlacements: this.config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this.config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: \".\" + this.constructor.NAME + \"-arrow\"\n }\n }, {\n name: 'onChange',\n enabled: true,\n phase: 'afterWrite',\n fn: function fn(data) {\n return _this5._handlePopperPlacementChange(data);\n }\n }],\n onFirstUpdate: function onFirstUpdate(data) {\n if (data.options.placement !== data.placement) {\n _this5._handlePopperPlacementChange(data);\n }\n }\n };\n return _extends({}, defaultBsPopperConfig, typeof this.config.popperConfig === 'function' ? this.config.popperConfig(defaultBsPopperConfig) : this.config.popperConfig);\n };\n\n _proto._addAttachmentClass = function _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(CLASS_PREFIX + \"-\" + this.updateAttachment(attachment));\n };\n\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n\n if (isElement(this.config.container)) {\n return this.config.container;\n }\n\n return SelectorEngine__default['default'].findOne(this.config.container);\n };\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this6 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n EventHandler__default['default'].on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) {\n return _this6.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT;\n EventHandler__default['default'].on(_this6._element, eventIn, _this6.config.selector, function (event) {\n return _this6._enter(event);\n });\n EventHandler__default['default'].on(_this6._element, eventOut, _this6.config.selector, function (event) {\n return _this6._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this6._element) {\n _this6.hide();\n }\n };\n\n EventHandler__default['default'].on(this._element.closest(\".\" + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);\n\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var title = this._element.getAttribute('title');\n\n var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');\n\n if (title || originalTitleType !== 'string') {\n this._element.setAttribute('data-bs-original-title', title || '');\n\n if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {\n this._element.setAttribute('aria-label', title);\n }\n\n this._element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n context = this._initializeOnDelegatedTarget(event, context);\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {\n delete dataAttributes[dataAttr];\n }\n });\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0];\n }\n\n config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);\n }\n\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n\n return config;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(function (token) {\n return token.trim();\n }).forEach(function (tClass) {\n return tip.classList.remove(tClass);\n });\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n var state = popperData.state;\n\n if (!state) {\n return;\n }\n\n this.tip = state.elements.popper;\n\n this._cleanTipClass();\n\n this._addAttachmentClass(this._getAttachment(state.placement));\n } // Static\n ;\n\n Tooltip.jQueryInterface = function jQueryInterface(config) {\n return this.each(function () {\n var data = Data__default['default'].getData(this, DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Tooltip(this, _config);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Tooltip;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Tooltip to jQuery only if jQuery is present\n */\n\n\n defineJQueryPlugin(NAME, Tooltip);\n\n return Tooltip;\n\n})));\n//# sourceMappingURL=tooltip.js.map\n\nfunction bruh_moment(){\n\talert('this is a bruh moment')\n}\n\nfunction get_smiles_from_element_text(el_id){\n\tvar inputVal = document.getElementById(el_id).value;\n\tlet url = `https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/${inputVal}/property/CanonicalSMILES/JSON`;\n\tconsole.log(url)\n\tfetch(url)\n\t.then(res => res.json())\n\t.then((out) => {\n\t console.log('Aye, got that dub from PubChem');\n\t //console.log(out[\"PropertyTable\"][\"Properties\"][0][\"CanonicalSMILES\"])\n\t document.getElementById(\"inputSMILES\").value = out[\"PropertyTable\"][\"Properties\"][0][\"CanonicalSMILES\"]\n\t})\n\t.catch(err => { \n\t\tbruh_moment()\n\t\tthrow err });\n}\n\n\nfunction draw_me_like_one_of_your_french_girls(mol){\n\t\n\tmol.condense_abbreviations();\n\tvar canvas = document.getElementById(\"draw-canvas-2\");\n\tmol.draw_to_canvas(canvas, -1, -1);\n}\n\n\nfunction calculate_and_disperse(mol){\n\ttry {\n\t\tvar descrs = JSON.parse(mol.get_descriptors());\n\t} catch(err) {\n\t\talert(\"oo wee, failed to calculate descriptors senpai\")\n\t}\n\t//document.getElementById('exactmw').textContent = descrs[\"exactmw\"];\n\t//document.getElementById('CrippenMR').textContent = descrs[\"CrippenMR\"];\n\t//document.getElementById('CrippenClogP').textContent = descrs[\"CrippenClogP\"];\n\tlet tableRef = document.getElementById(\"analyse_table\");\n\tconst keys = Object.keys(descrs);\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t const key = keys[i];\n\t\t console.log(key, descrs[key]);\n\t\t var newRow = tableRef.insertRow(-1);\n\t \tvar newCell_label = newRow.insertCell(0);\n\t \tvar newCell_value = newRow.insertCell(-1);\n\t \tvar newText_label = document.createTextNode(key);\n\t \tvar newText_value = document.createTextNode(descrs[key]);\n\t \tnewCell_label.appendChild(newText_label);\n\t \tnewCell_value.appendChild(newText_value);\n\t\t}\n\t\n\n\n}\n\nfunction analyse_me_senpai(smile_pwiz) {\n\tvar smiles = document.getElementById(smile_pwiz).value;\n\tvar mol = Module.get_mol(smiles);\n\tdraw_me_like_one_of_your_french_girls(mol);\n\tcalculate_and_disperse(mol);\n}"],"names":["bruh_moment","alert","get_smiles_from_element_text","el_id","url","document","getElementById","value","console","log","fetch","then","res","json","out","catch","err","draw_me_like_one_of_your_french_girls","mol","condense_abbreviations","canvas","draw_to_canvas","calculate_and_disperse","descrs","JSON","parse","get_descriptors","tableRef","keys","Object","i","length","key","newRow","insertRow","newCell_label","insertCell","newCell_value","newText_label","createTextNode","newText_value","appendChild","analyse_me_senpai","smile_pwiz","smiles","Module","get_mol","global","factory","exports","module","define","amd","Popper","this","isBrowser","window","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","indexOf","debounce","Promise","fn","called","resolve","scheduled","setTimeout","isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","protoProps","staticProps","defineProperties","prototype","target","props","descriptor","enumerable","configurable","writable","defineProperty","obj","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","getWindow","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","push","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","side","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","_data$offsets$arrow","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","inner","subtractLength","hide","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","popperWidth","offsetParentRect","position","shouldRound","devicePixelRatio","noRound","v","referenceWidth","isVariation","horizontalToInteger","verticalToInteger","prefixedProperty","willChange","invertLeft","x-placement","arrowStyles","applyStyle","setAttribute","removeAttribute","onLoad","modifierOptions","isDestroyed","isCreated","removeChild","_this","requestAnimationFrame","update","bind","jquery","enableEventListeners","Utils","PopperUtils","require","globalThis","self","Alert","Data","EventHandler","Base","BaseComponent","_interopDefaultLegacy","default","Data__default","EventHandler__default","_defineProperties","_setPrototypeOf","o","p","setPrototypeOf","__proto__","emulateTransitionEnd","duration","emulatedDuration","TRANSITION_END","listener","dispatchEvent","Event","dir","plugin","DATA_KEY","EVENT_KEY","_BaseComponent","apply","superClass","subClass","create","constructor","_proto","close","rootElement","_getRootElement","_element","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","selector","getAttribute","hrefAttr","includes","startsWith","getSelector","getElementFromSelector","closest","trigger","transitionDuration","classList","remove","_window$getComputedSt","transitionDelay","floatTransitionDuration","Number","floatTransitionDelay","getTransitionDurationFromElement","one","_destroyElement","jQueryInterface","config","each","getData","handleDismiss","alertInstance","preventDefault","get","on","jQuery","JQUERY_NO_CONFLICT","$","hasAttribute","noConflict","readyState","Button","SELECTOR_DATA_TOGGLE","toggle","button","Carousel","Manipulator","SelectorEngine","Manipulator__default","SelectorEngine__default","triggerTransitionEnd","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","RegExp","isRTL","NAME","DATA_API_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","EVENT_SLID","CLASS_NAME_ACTIVE","SELECTOR_ACTIVE_ITEM","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","findOne","_touchSupported","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","elementStyle","parentNodeStyle","display","visibility","isVisible","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","to","_this2","activeIndex","_getItemIndex","dispose","off","_handleSwipe","absDeltax","abs","direction","_this3","_keydown","_addTouchEventListeners","_this4","pointerType","touches","clientX","clearTimeout","itemImg","add","tagName","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","activeIndicator","indicators","elementInterval","defaultInterval","_this5","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","carouselInterface","getDataAttributes","action","ride","dataApiClickHandler","slideIndex","carousels","Collapse","getSelectorFromElement","isElement","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","show","actives","dimension","container","activesData","tempActiveData","elemActive","collapseInterface","setData","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","selected","triggerArray","isOpen","delegateTarget","triggerData","Dropdown","_interopNamespace","__esModule","k","d","getOwnPropertyDescriptor","freeze","Popper__namespace","BaseComponent__default","noop","ESCAPE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","CLASS_NAME_DISABLED","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","popperConfig","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","disabled","clearMenus","getParentFromElement","setDataAttribute","referenceElement","_getPopperConfig","isDisplayStatic","createPopper","focus","destroy","removeDataAttribute","stopPropagation","_getPlacement","parentDropdown","isEnd","getPropertyValue","_getOffset","val","popperData","defaultBsPopperConfig","altBoundary","dropdownInterface","type","toggles","dropdownMenu","context","clickEvent","dataApiKeydownHandler","matches","items","click","Modal","reflow","backdrop","EVENT_SHOW","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","ELEMENT_NODE","_enforceFocus","transitionComplete","_this6","_triggerBackdropTransition","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_backdropTransitionDuration","_this9","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","modalTransitionDuration","_this10","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this11","_setElementAttributes","calculatedValue","styleProp","actualValue","_resetElementAttributes","getDataAttribute","scrollDiv","scrollbarWidth","_this12","Popover","Tooltip","Tooltip__default","CLASS_PREFIX","BSCLS_PREFIX_REGEX","content","template","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","_Tooltip","isWithContent","getTitle","_getContent","setContent","tip","getTipElement","setElementContent","_addAttachmentClass","attachment","updateAttachment","_cleanTipClass","tabClass","token","tClass","ScrollSpy","method","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","random","getUID","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","parents","listGroup","navItem","spy","Tab","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","previous","hideEvent","complete","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","Toast","CLASS_NAME_SHOWING","animation","autohide","delay","_timeout","_setListeners","_clearTimeout","findShadowRoot","attachShadow","getRootNode","ShadowRoot","root","uriAttrs","Set","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","createdDocument","DOMParser","parseFromString","allowlistKeys","elements","querySelectorAll","_loop","elName","attributeList","allowedAttributes","attr","allowedAttributeList","attrName","has","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","DISALLOWED_ATTRIBUTES","title","fallbackPlacements","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Event$1","HOVER_STATE_SHOW","TRIGGER_HOVER","TRIGGER_FOCUS","_isEnabled","_hoverState","_activeTrigger","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","_hideModalHandler","_tip$classList","Error","isInTheDom","shadowRoot","tipId","_getAttachment","_getContainer","prevHoverState","textContent","dataKey","_getDelegateConfig","phase","_handlePopperPlacementChange","onFirstUpdate","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr"],"mappings":"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"} \ No newline at end of file
diff --git a/docs/js/my.js b/docs/js/my.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/js/my.js
diff --git a/docs/js/my.min.js b/docs/js/my.min.js
new file mode 100644
index 0000000..d307c69
--- /dev/null
+++ b/docs/js/my.min.js
@@ -0,0 +1,2 @@
+
+//# sourceMappingURL=my.min.js.map
diff --git a/docs/js/my.min.js.map b/docs/js/my.min.js.map
new file mode 100644
index 0000000..b810185
--- /dev/null
+++ b/docs/js/my.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"my.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file