diff --git a/Gemfile.lock b/Gemfile.lock
index 75ce397..9bf1d6a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- dashboard (0.1.2)
+ dashboard (0.1.3)
activerecord-import
bcrypt_pbkdf
cssbundling-rails
diff --git a/app/assets/dashboard/application.css b/app/assets/dashboard/application.css
new file mode 100644
index 0000000..332cd4a
--- /dev/null
+++ b/app/assets/dashboard/application.css
@@ -0,0 +1,12055 @@
+@charset "UTF-8";
+/*!
+ * Bootstrap v5.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2023 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root,
+[data-bs-theme=light] {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-black: #000;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-gray-100: #f8f9fa;
+ --bs-gray-200: #e9ecef;
+ --bs-gray-300: #dee2e6;
+ --bs-gray-400: #ced4da;
+ --bs-gray-500: #adb5bd;
+ --bs-gray-600: #6c757d;
+ --bs-gray-700: #495057;
+ --bs-gray-800: #343a40;
+ --bs-gray-900: #212529;
+ --bs-primary: #0d6efd;
+ --bs-secondary: #6c757d;
+ --bs-success: #198754;
+ --bs-info: #0dcaf0;
+ --bs-warning: #ffc107;
+ --bs-danger: #dc3545;
+ --bs-light: #f8f9fa;
+ --bs-dark: #212529;
+ --bs-primary-rgb: 13, 110, 253;
+ --bs-secondary-rgb: 108, 117, 125;
+ --bs-success-rgb: 25, 135, 84;
+ --bs-info-rgb: 13, 202, 240;
+ --bs-warning-rgb: 255, 193, 7;
+ --bs-danger-rgb: 220, 53, 69;
+ --bs-light-rgb: 248, 249, 250;
+ --bs-dark-rgb: 33, 37, 41;
+ --bs-primary-text-emphasis: #052c65;
+ --bs-secondary-text-emphasis: #2b2f32;
+ --bs-success-text-emphasis: #0a3622;
+ --bs-info-text-emphasis: #055160;
+ --bs-warning-text-emphasis: #664d03;
+ --bs-danger-text-emphasis: #58151c;
+ --bs-light-text-emphasis: #495057;
+ --bs-dark-text-emphasis: #495057;
+ --bs-primary-bg-subtle: #cfe2ff;
+ --bs-secondary-bg-subtle: #e2e3e5;
+ --bs-success-bg-subtle: #d1e7dd;
+ --bs-info-bg-subtle: #cff4fc;
+ --bs-warning-bg-subtle: #fff3cd;
+ --bs-danger-bg-subtle: #f8d7da;
+ --bs-light-bg-subtle: #fcfcfd;
+ --bs-dark-bg-subtle: #ced4da;
+ --bs-primary-border-subtle: #9ec5fe;
+ --bs-secondary-border-subtle: #c4c8cb;
+ --bs-success-border-subtle: #a3cfbb;
+ --bs-info-border-subtle: #9eeaf9;
+ --bs-warning-border-subtle: #ffe69c;
+ --bs-danger-border-subtle: #f1aeb5;
+ --bs-light-border-subtle: #e9ecef;
+ --bs-dark-border-subtle: #adb5bd;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, 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));
+ --bs-body-font-family: var(--bs-font-sans-serif);
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #212529;
+ --bs-body-color-rgb: 33, 37, 41;
+ --bs-body-bg: #fff;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-emphasis-color: #000;
+ --bs-emphasis-color-rgb: 0, 0, 0;
+ --bs-secondary-color: rgba(33, 37, 41, 0.75);
+ --bs-secondary-color-rgb: 33, 37, 41;
+ --bs-secondary-bg: #e9ecef;
+ --bs-secondary-bg-rgb: 233, 236, 239;
+ --bs-tertiary-color: rgba(33, 37, 41, 0.5);
+ --bs-tertiary-color-rgb: 33, 37, 41;
+ --bs-tertiary-bg: #f8f9fa;
+ --bs-tertiary-bg-rgb: 248, 249, 250;
+ --bs-heading-color: inherit;
+ --bs-link-color: #0d6efd;
+ --bs-link-color-rgb: 13, 110, 253;
+ --bs-link-decoration: underline;
+ --bs-link-hover-color: #0a58ca;
+ --bs-link-hover-color-rgb: 10, 88, 202;
+ --bs-code-color: #d63384;
+ --bs-highlight-bg: #fff3cd;
+ --bs-border-width: 1px;
+ --bs-border-style: solid;
+ --bs-border-color: #dee2e6;
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+ --bs-border-radius: 0.375rem;
+ --bs-border-radius-sm: 0.25rem;
+ --bs-border-radius-lg: 0.5rem;
+ --bs-border-radius-xl: 1rem;
+ --bs-border-radius-xxl: 2rem;
+ --bs-border-radius-2xl: var(--bs-border-radius-xxl);
+ --bs-border-radius-pill: 50rem;
+ --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+ --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
+ --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+ --bs-focus-ring-width: 0.25rem;
+ --bs-focus-ring-opacity: 0.25;
+ --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
+ --bs-form-valid-color: #198754;
+ --bs-form-valid-border-color: #198754;
+ --bs-form-invalid-color: #dc3545;
+ --bs-form-invalid-border-color: #dc3545;
+}
+
+[data-bs-theme=dark] {
+ color-scheme: dark;
+ --bs-body-color: #dee2e6;
+ --bs-body-color-rgb: 222, 226, 230;
+ --bs-body-bg: #212529;
+ --bs-body-bg-rgb: 33, 37, 41;
+ --bs-emphasis-color: #fff;
+ --bs-emphasis-color-rgb: 255, 255, 255;
+ --bs-secondary-color: rgba(222, 226, 230, 0.75);
+ --bs-secondary-color-rgb: 222, 226, 230;
+ --bs-secondary-bg: #343a40;
+ --bs-secondary-bg-rgb: 52, 58, 64;
+ --bs-tertiary-color: rgba(222, 226, 230, 0.5);
+ --bs-tertiary-color-rgb: 222, 226, 230;
+ --bs-tertiary-bg: #2b3035;
+ --bs-tertiary-bg-rgb: 43, 48, 53;
+ --bs-primary-text-emphasis: #6ea8fe;
+ --bs-secondary-text-emphasis: #a7acb1;
+ --bs-success-text-emphasis: #75b798;
+ --bs-info-text-emphasis: #6edff6;
+ --bs-warning-text-emphasis: #ffda6a;
+ --bs-danger-text-emphasis: #ea868f;
+ --bs-light-text-emphasis: #f8f9fa;
+ --bs-dark-text-emphasis: #dee2e6;
+ --bs-primary-bg-subtle: #031633;
+ --bs-secondary-bg-subtle: #161719;
+ --bs-success-bg-subtle: #051b11;
+ --bs-info-bg-subtle: #032830;
+ --bs-warning-bg-subtle: #332701;
+ --bs-danger-bg-subtle: #2c0b0e;
+ --bs-light-bg-subtle: #343a40;
+ --bs-dark-bg-subtle: #1a1d20;
+ --bs-primary-border-subtle: #084298;
+ --bs-secondary-border-subtle: #41464b;
+ --bs-success-border-subtle: #0f5132;
+ --bs-info-border-subtle: #087990;
+ --bs-warning-border-subtle: #997404;
+ --bs-danger-border-subtle: #842029;
+ --bs-light-border-subtle: #495057;
+ --bs-dark-border-subtle: #343a40;
+ --bs-heading-color: inherit;
+ --bs-link-color: #6ea8fe;
+ --bs-link-hover-color: #8bb9fe;
+ --bs-link-color-rgb: 110, 168, 254;
+ --bs-link-hover-color-rgb: 139, 185, 254;
+ --bs-code-color: #e685b5;
+ --bs-border-color: #495057;
+ --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
+ --bs-form-valid-color: #75b798;
+ --bs-form-valid-border-color: #75b798;
+ --bs-form-invalid-color: #ea868f;
+ --bs-form-invalid-border-color: #ea868f;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ :root {
+ scroll-behavior: smooth;
+ }
+}
+
+body {
+ margin: 0;
+ font-family: var(--bs-body-font-family);
+ font-size: var(--bs-body-font-size);
+ font-weight: var(--bs-body-font-weight);
+ line-height: var(--bs-body-line-height);
+ color: var(--bs-body-color);
+ text-align: var(--bs-body-text-align);
+ background-color: var(--bs-body-bg);
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+hr {
+ margin: 1rem 0;
+ color: inherit;
+ border: 0;
+ border-top: var(--bs-border-width) solid;
+ opacity: 0.25;
+}
+
+h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ line-height: 1.2;
+ color: var(--bs-heading-color);
+}
+
+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] {
+ text-decoration: underline dotted;
+ cursor: help;
+ 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: 0.5rem;
+ margin-left: 0;
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+small, .small {
+ font-size: 0.875em;
+}
+
+mark, .mark {
+ padding: 0.1875em;
+ background-color: var(--bs-highlight-bg);
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 0.75em;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+a {
+ color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
+ text-decoration: underline;
+}
+a:hover {
+ --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
+}
+
+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;
+}
+
+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: var(--bs-code-color);
+ word-wrap: break-word;
+}
+a > code {
+ color: inherit;
+}
+
+kbd {
+ padding: 0.1875rem 0.375rem;
+ font-size: 0.875em;
+ color: var(--bs-body-bg);
+ background-color: var(--bs-body-color);
+ border-radius: 0.25rem;
+}
+kbd kbd {
+ padding: 0;
+ font-size: 1em;
+}
+
+figure {
+ margin: 0 0 1rem;
+}
+
+img,
+svg {
+ vertical-align: middle;
+}
+
+table {
+ caption-side: bottom;
+ border-collapse: collapse;
+}
+
+caption {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ color: var(--bs-secondary-color);
+ 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;
+}
+select:disabled {
+ opacity: 1;
+}
+
+[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
+ display: none !important;
+}
+
+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] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px;
+}
+
+/* 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-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: "— ";
+}
+
+.img-fluid {
+ max-width: 100%;
+ height: auto;
+}
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: var(--bs-body-bg);
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ border-radius: var(--bs-border-radius);
+ max-width: 100%;
+ height: auto;
+}
+
+.figure {
+ display: inline-block;
+}
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1;
+}
+
+.figure-caption {
+ font-size: 0.875em;
+ color: var(--bs-secondary-color);
+}
+
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 576px) {
+ .container-sm, .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container-md, .container-sm, .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container-lg, .container-md, .container-sm, .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container-xl, .container-lg, .container-md, .container-sm, .container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {
+ max-width: 1320px;
+ }
+}
+:root {
+ --bs-breakpoint-xs: 0;
+ --bs-breakpoint-sm: 576px;
+ --bs-breakpoint-md: 768px;
+ --bs-breakpoint-lg: 992px;
+ --bs-breakpoint-xl: 1200px;
+ --bs-breakpoint-xxl: 1400px;
+}
+
+.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(-1 * var(--bs-gutter-y));
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
+ margin-left: calc(-0.5 * var(--bs-gutter-x));
+}
+.row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
+ margin-top: var(--bs-gutter-y);
+}
+
+.col {
+ flex: 1 0 0%;
+}
+
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+}
+
+.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.6666666667%;
+}
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+
+.offset-3 {
+ margin-left: 25%;
+}
+
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+
+.offset-6 {
+ margin-left: 50%;
+}
+
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+
+.offset-9 {
+ margin-left: 75%;
+}
+
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 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.3333333333%;
+ }
+ .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.6666666667%;
+ }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-sm-0,
+ .gx-sm-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-sm-0,
+ .gy-sm-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-sm-1,
+ .gx-sm-1 {
+ --bs-gutter-x: 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.3333333333%;
+ }
+ .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.6666666667%;
+ }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-md-0 {
+ margin-left: 0;
+ }
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-md-0,
+ .gx-md-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-md-0,
+ .gy-md-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-md-1,
+ .gx-md-1 {
+ --bs-gutter-x: 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.3333333333%;
+ }
+ .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.6666666667%;
+ }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-lg-0,
+ .gx-lg-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-lg-0,
+ .gy-lg-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-lg-1,
+ .gx-lg-1 {
+ --bs-gutter-x: 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.3333333333%;
+ }
+ .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.6666666667%;
+ }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xl-0,
+ .gx-xl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xl-0,
+ .gy-xl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xl-1,
+ .gx-xl-1 {
+ --bs-gutter-x: 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.3333333333%;
+ }
+ .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.6666666667%;
+ }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xxl-0,
+ .gx-xxl-0 {
+ --bs-gutter-x: 0;
+ }
+ .g-xxl-0,
+ .gy-xxl-0 {
+ --bs-gutter-y: 0;
+ }
+ .g-xxl-1,
+ .gx-xxl-1 {
+ --bs-gutter-x: 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-color-type: initial;
+ --bs-table-bg-type: initial;
+ --bs-table-color-state: initial;
+ --bs-table-bg-state: initial;
+ --bs-table-color: var(--bs-body-color);
+ --bs-table-bg: var(--bs-body-bg);
+ --bs-table-border-color: var(--bs-border-color);
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: var(--bs-body-color);
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: var(--bs-body-color);
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: var(--bs-body-color);
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ vertical-align: top;
+ border-color: var(--bs-table-border-color);
+}
+.table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
+ background-color: var(--bs-table-bg);
+ border-bottom-width: var(--bs-border-width);
+ box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+
+.table-group-divider {
+ border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
+}
+
+.caption-top {
+ caption-side: top;
+}
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem;
+}
+
+.table-bordered > :not(caption) > * {
+ border-width: var(--bs-border-width) 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 var(--bs-border-width);
+}
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-color-type: var(--bs-table-striped-color);
+ --bs-table-bg-type: var(--bs-table-striped-bg);
+}
+
+.table-striped-columns > :not(caption) > tr > :nth-child(even) {
+ --bs-table-color-type: var(--bs-table-striped-color);
+ --bs-table-bg-type: var(--bs-table-striped-bg);
+}
+
+.table-active {
+ --bs-table-color-state: var(--bs-table-active-color);
+ --bs-table-bg-state: var(--bs-table-active-bg);
+}
+
+.table-hover > tbody > tr:hover > * {
+ --bs-table-color-state: var(--bs-table-hover-color);
+ --bs-table-bg-state: var(--bs-table-hover-bg);
+}
+
+.table-primary {
+ --bs-table-color: #000;
+ --bs-table-bg: #cfe2ff;
+ --bs-table-border-color: #bacbe6;
+ --bs-table-striped-bg: #c5d7f2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bacbe6;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfd1ec;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-secondary {
+ --bs-table-color: #000;
+ --bs-table-bg: #e2e3e5;
+ --bs-table-border-color: #cbccce;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-success {
+ --bs-table-color: #000;
+ --bs-table-bg: #d1e7dd;
+ --bs-table-border-color: #bcd0c7;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-info {
+ --bs-table-color: #000;
+ --bs-table-bg: #cff4fc;
+ --bs-table-border-color: #badce3;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-warning {
+ --bs-table-color: #000;
+ --bs-table-bg: #fff3cd;
+ --bs-table-border-color: #e6dbb9;
+ --bs-table-striped-bg: #f2e7c3;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #e6dbb9;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #ece1be;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-danger {
+ --bs-table-color: #000;
+ --bs-table-bg: #f8d7da;
+ --bs-table-border-color: #dfc2c4;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-light {
+ --bs-table-color: #000;
+ --bs-table-bg: #f8f9fa;
+ --bs-table-border-color: #dfe0e1;
+ --bs-table-striped-bg: #ecedee;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfe0e1;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5e6e7;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-dark {
+ --bs-table-color: #fff;
+ --bs-table-bg: #212529;
+ --bs-table-border-color: #373b3e;
+ --bs-table-striped-bg: #2c3034;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #373b3e;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #323539;
+ --bs-table-hover-color: #fff;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+@media (max-width: 575.98px) {
+ .table-responsive-sm {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 767.98px) {
+ .table-responsive-md {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 991.98px) {
+ .table-responsive-lg {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table-responsive-xl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+.form-label {
+ margin-bottom: 0.5rem;
+}
+
+.col-form-label {
+ padding-top: calc(0.375rem + var(--bs-border-width));
+ padding-bottom: calc(0.375rem + var(--bs-border-width));
+ margin-bottom: 0;
+ font-size: inherit;
+ line-height: 1.5;
+}
+
+.col-form-label-lg {
+ padding-top: calc(0.5rem + var(--bs-border-width));
+ padding-bottom: calc(0.5rem + var(--bs-border-width));
+ font-size: 1.25rem;
+}
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem + var(--bs-border-width));
+ padding-bottom: calc(0.25rem + var(--bs-border-width));
+ font-size: 0.875rem;
+}
+
+.form-text {
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: var(--bs-secondary-color);
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: var(--bs-body-color);
+ appearance: none;
+ background-color: var(--bs-body-bg);
+ background-clip: padding-box;
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ border-radius: var(--bs-border-radius);
+ transition: border-color 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: var(--bs-body-color);
+ background-color: var(--bs-body-bg);
+ 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 {
+ min-width: 85px;
+ height: 1.5em;
+ margin: 0;
+}
+.form-control::-webkit-datetime-edit {
+ display: block;
+ padding: 0;
+}
+.form-control::placeholder {
+ color: var(--bs-secondary-color);
+ opacity: 1;
+}
+.form-control:disabled {
+ background-color: var(--bs-secondary-bg);
+ opacity: 1;
+}
+.form-control::file-selector-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ margin-inline-end: 0.75rem;
+ color: var(--bs-body-color);
+ background-color: var(--bs-tertiary-bg);
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: var(--bs-border-width);
+ border-radius: 0;
+ transition: color 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: var(--bs-secondary-bg);
+}
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0;
+ margin-bottom: 0;
+ line-height: 1.5;
+ color: var(--bs-body-color);
+ background-color: transparent;
+ border: solid transparent;
+ border-width: var(--bs-border-width) 0;
+}
+.form-control-plaintext:focus {
+ outline: 0;
+}
+.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: var(--bs-border-radius-sm);
+}
+.form-control-sm::file-selector-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ margin-inline-end: 0.5rem;
+}
+
+.form-control-lg {
+ min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: var(--bs-border-radius-lg);
+}
+.form-control-lg::file-selector-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ margin-inline-end: 1rem;
+}
+
+textarea.form-control {
+ min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+}
+textarea.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+}
+textarea.form-control-lg {
+ min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+}
+
+.form-control-color {
+ width: 3rem;
+ height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
+ padding: 0.375rem;
+}
+.form-control-color:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+.form-control-color::-moz-color-swatch {
+ border: 0 !important;
+ border-radius: var(--bs-border-radius);
+}
+.form-control-color::-webkit-color-swatch {
+ border: 0 !important;
+ border-radius: var(--bs-border-radius);
+}
+.form-control-color.form-control-sm {
+ height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
+}
+.form-control-color.form-control-lg {
+ height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
+}
+
+.form-select {
+ --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
+ display: block;
+ width: 100%;
+ padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: var(--bs-body-color);
+ appearance: none;
+ background-color: var(--bs-body-bg);
+ background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
+ background-repeat: no-repeat;
+ background-position: right 0.75rem center;
+ background-size: 16px 12px;
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ border-radius: var(--bs-border-radius);
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-select {
+ transition: none;
+ }
+}
+.form-select:focus {
+ border-color: #86b7fe;
+ outline: 0;
+ box-shadow: 0 0 0 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 {
+ background-color: var(--bs-secondary-bg);
+}
+.form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 var(--bs-body-color);
+}
+
+.form-select-sm {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ padding-left: 0.5rem;
+ font-size: 0.875rem;
+ border-radius: var(--bs-border-radius-sm);
+}
+
+.form-select-lg {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 1rem;
+ font-size: 1.25rem;
+ border-radius: var(--bs-border-radius-lg);
+}
+
+[data-bs-theme=dark] .form-select {
+ --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
+}
+
+.form-check {
+ display: block;
+ min-height: 1.5rem;
+ padding-left: 1.5em;
+ margin-bottom: 0.125rem;
+}
+.form-check .form-check-input {
+ float: left;
+ margin-left: -1.5em;
+}
+
+.form-check-reverse {
+ padding-right: 1.5em;
+ padding-left: 0;
+ text-align: right;
+}
+.form-check-reverse .form-check-input {
+ float: right;
+ margin-right: -1.5em;
+ margin-left: 0;
+}
+
+.form-check-input {
+ --bs-form-check-bg: var(--bs-body-bg);
+ width: 1em;
+ height: 1em;
+ margin-top: 0.25em;
+ vertical-align: top;
+ appearance: none;
+ background-color: var(--bs-form-check-bg);
+ background-image: var(--bs-form-check-bg-image);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ print-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] {
+ --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
+}
+.form-check-input:checked[type=radio] {
+ --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
+}
+.form-check-input[type=checkbox]:indeterminate {
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+ --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
+}
+.form-check-input:disabled {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.5;
+}
+.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ cursor: default;
+ opacity: 0.5;
+}
+
+.form-switch {
+ padding-left: 2.5em;
+}
+.form-switch .form-check-input {
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
+ width: 2em;
+ margin-left: -2.5em;
+ background-image: var(--bs-form-switch-bg);
+ background-position: left center;
+ border-radius: 2em;
+ transition: background-position 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-switch .form-check-input {
+ transition: none;
+ }
+}
+.form-switch .form-check-input:focus {
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e");
+}
+.form-switch .form-check-input:checked {
+ background-position: right center;
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
+}
+.form-switch.form-check-reverse {
+ padding-right: 2.5em;
+ padding-left: 0;
+}
+.form-switch.form-check-reverse .form-check-input {
+ margin-right: -2.5em;
+ margin-left: 0;
+}
+
+.form-check-inline {
+ display: inline-block;
+ margin-right: 1rem;
+}
+
+.btn-check {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.65;
+}
+
+[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
+}
+
+.form-range {
+ width: 100%;
+ height: 1.5rem;
+ padding: 0;
+ appearance: none;
+ background-color: transparent;
+}
+.form-range:focus {
+ outline: 0;
+}
+.form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 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;
+ appearance: none;
+ background-color: #0d6efd;
+ border: 0;
+ border-radius: 1rem;
+ transition: 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-range::-webkit-slider-thumb {
+ 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: var(--bs-tertiary-bg);
+ border-color: transparent;
+ border-radius: 1rem;
+}
+.form-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ appearance: none;
+ background-color: #0d6efd;
+ border: 0;
+ border-radius: 1rem;
+ transition: 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-range::-moz-range-thumb {
+ 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: var(--bs-tertiary-bg);
+ border-color: transparent;
+ border-radius: 1rem;
+}
+.form-range:disabled {
+ pointer-events: none;
+}
+.form-range:disabled::-webkit-slider-thumb {
+ background-color: var(--bs-secondary-color);
+}
+.form-range:disabled::-moz-range-thumb {
+ background-color: var(--bs-secondary-color);
+}
+
+.form-floating {
+ position: relative;
+}
+.form-floating > .form-control,
+.form-floating > .form-control-plaintext,
+.form-floating > .form-select {
+ height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+ min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
+ line-height: 1.25;
+}
+.form-floating > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 2;
+ height: 100%;
+ padding: 1rem 0.75rem;
+ overflow: hidden;
+ text-align: start;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ pointer-events: none;
+ border: var(--bs-border-width) solid transparent;
+ transform-origin: 0 0;
+ transition: opacity 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,
+.form-floating > .form-control-plaintext {
+ padding: 1rem 0.75rem;
+}
+.form-floating > .form-control::placeholder,
+.form-floating > .form-control-plaintext::placeholder {
+ color: transparent;
+}
+.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
+.form-floating > .form-control-plaintext:focus,
+.form-floating > .form-control-plaintext:not(:placeholder-shown) {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:-webkit-autofill,
+.form-floating > .form-control-plaintext:-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:focus ~ label,
+.form-floating > .form-control:not(:placeholder-shown) ~ label,
+.form-floating > .form-control-plaintext ~ label,
+.form-floating > .form-select ~ label {
+ color: rgba(var(--bs-body-color-rgb), 0.65);
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+.form-floating > .form-control:focus ~ label::after,
+.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
+.form-floating > .form-control-plaintext ~ label::after,
+.form-floating > .form-select ~ label::after {
+ position: absolute;
+ inset: 1rem 0.375rem;
+ z-index: -1;
+ height: 1.5em;
+ content: "";
+ background-color: var(--bs-body-bg);
+ border-radius: var(--bs-border-radius);
+}
+.form-floating > .form-control:-webkit-autofill ~ label {
+ color: rgba(var(--bs-body-color-rgb), 0.65);
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+.form-floating > .form-control-plaintext ~ label {
+ border-width: var(--bs-border-width) 0;
+}
+.form-floating > :disabled ~ label,
+.form-floating > .form-control:disabled ~ label {
+ color: #6c757d;
+}
+.form-floating > :disabled ~ label::after,
+.form-floating > .form-control:disabled ~ label::after {
+ background-color: var(--bs-secondary-bg);
+}
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%;
+}
+.input-group > .form-control,
+.input-group > .form-select,
+.input-group > .form-floating {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0;
+}
+.input-group > .form-control:focus,
+.input-group > .form-select:focus,
+.input-group > .form-floating:focus-within {
+ z-index: 5;
+}
+.input-group .btn {
+ position: relative;
+ z-index: 2;
+}
+.input-group .btn:focus {
+ z-index: 5;
+}
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: var(--bs-body-color);
+ text-align: center;
+ white-space: nowrap;
+ background-color: var(--bs-tertiary-bg);
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ border-radius: var(--bs-border-radius);
+}
+
+.input-group-lg > .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: var(--bs-border-radius-lg);
+}
+
+.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: var(--bs-border-radius-sm);
+}
+
+.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):not(.form-floating),
+.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
+ 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):not(.form-floating),
+.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),
+.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,
+.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+ margin-left: calc(var(--bs-border-width) * -1);
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.input-group > .form-floating:not(:first-child) > .form-control,
+.input-group > .form-floating:not(:first-child) > .form-select {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.valid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: var(--bs-form-valid-color);
+}
+
+.valid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: 0.1rem;
+ font-size: 0.875rem;
+ color: #fff;
+ background-color: var(--bs-success);
+ border-radius: var(--bs-border-radius);
+}
+
+.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: var(--bs-form-valid-border-color);
+ 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='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(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: var(--bs-form-valid-border-color);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 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: var(--bs-form-valid-border-color);
+}
+.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
+ --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+ padding-right: 4.125rem;
+ background-position: right 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: var(--bs-form-valid-border-color);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+}
+
+.was-validated .form-control-color:valid, .form-control-color.is-valid {
+ width: calc(3rem + calc(1.5em + 0.75rem));
+}
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: var(--bs-form-valid-border-color);
+}
+.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: var(--bs-form-valid-color);
+}
+.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+}
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: var(--bs-form-valid-color);
+}
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+ margin-left: 0.5em;
+}
+
+.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
+.was-validated .input-group > .form-select:not(:focus):valid,
+.input-group > .form-select:not(:focus).is-valid,
+.was-validated .input-group > .form-floating:not(:focus-within):valid,
+.input-group > .form-floating:not(:focus-within).is-valid {
+ z-index: 3;
+}
+
+.invalid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: var(--bs-form-invalid-color);
+}
+
+.invalid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: 0.1rem;
+ font-size: 0.875rem;
+ color: #fff;
+ background-color: var(--bs-danger);
+ border-radius: var(--bs-border-radius);
+}
+
+.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: var(--bs-form-invalid-border-color);
+ 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='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(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: var(--bs-form-invalid-border-color);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 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: var(--bs-form-invalid-border-color);
+}
+.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
+ --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+ padding-right: 4.125rem;
+ background-position: right 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: var(--bs-form-invalid-border-color);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+}
+
+.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+ width: calc(3rem + calc(1.5em + 0.75rem));
+}
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+ border-color: var(--bs-form-invalid-border-color);
+}
+.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: var(--bs-form-invalid-color);
+}
+.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+}
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: var(--bs-form-invalid-color);
+}
+
+.form-check-inline .form-check-input ~ .invalid-feedback {
+ margin-left: 0.5em;
+}
+
+.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
+.was-validated .input-group > .form-select:not(:focus):invalid,
+.input-group > .form-select:not(:focus).is-invalid,
+.was-validated .input-group > .form-floating:not(:focus-within):invalid,
+.input-group > .form-floating:not(:focus-within).is-invalid {
+ z-index: 4;
+}
+
+.btn {
+ --bs-btn-padding-x: 0.75rem;
+ --bs-btn-padding-y: 0.375rem;
+ --bs-btn-font-family: ;
+ --bs-btn-font-size: 1rem;
+ --bs-btn-font-weight: 400;
+ --bs-btn-line-height: 1.5;
+ --bs-btn-color: var(--bs-body-color);
+ --bs-btn-bg: transparent;
+ --bs-btn-border-width: var(--bs-border-width);
+ --bs-btn-border-color: transparent;
+ --bs-btn-border-radius: var(--bs-border-radius);
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --bs-btn-disabled-opacity: 0.65;
+ --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+ font-family: var(--bs-btn-font-family);
+ font-size: var(--bs-btn-font-size);
+ font-weight: var(--bs-btn-font-weight);
+ line-height: var(--bs-btn-line-height);
+ color: var(--bs-btn-color);
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ user-select: none;
+ border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+ border-radius: var(--bs-btn-border-radius);
+ background-color: var(--bs-btn-bg);
+ transition: color 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: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
+}
+.btn-check + .btn:hover {
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+ border-color: var(--bs-btn-border-color);
+}
+.btn:focus-visible {
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
+ outline: 0;
+ box-shadow: var(--bs-btn-focus-box-shadow);
+}
+.btn-check:focus-visible + .btn {
+ border-color: var(--bs-btn-hover-border-color);
+ outline: 0;
+ box-shadow: var(--bs-btn-focus-box-shadow);
+}
+.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+ color: var(--bs-btn-active-color);
+ background-color: var(--bs-btn-active-bg);
+ border-color: var(--bs-btn-active-border-color);
+}
+.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
+ box-shadow: var(--bs-btn-focus-box-shadow);
+}
+.btn:disabled, .btn.disabled, fieldset:disabled .btn {
+ color: var(--bs-btn-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-btn-disabled-bg);
+ border-color: var(--bs-btn-disabled-border-color);
+ opacity: var(--bs-btn-disabled-opacity);
+}
+
+.btn-primary {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #0d6efd;
+ --bs-btn-border-color: #0d6efd;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #0b5ed7;
+ --bs-btn-hover-border-color: #0a58ca;
+ --bs-btn-focus-shadow-rgb: 49, 132, 253;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #0a58ca;
+ --bs-btn-active-border-color: #0a53be;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #0d6efd;
+ --bs-btn-disabled-border-color: #0d6efd;
+}
+
+.btn-secondary {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #6c757d;
+ --bs-btn-border-color: #6c757d;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #5c636a;
+ --bs-btn-hover-border-color: #565e64;
+ --bs-btn-focus-shadow-rgb: 130, 138, 145;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #565e64;
+ --bs-btn-active-border-color: #51585e;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #6c757d;
+ --bs-btn-disabled-border-color: #6c757d;
+}
+
+.btn-success {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #198754;
+ --bs-btn-border-color: #198754;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #157347;
+ --bs-btn-hover-border-color: #146c43;
+ --bs-btn-focus-shadow-rgb: 60, 153, 110;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #146c43;
+ --bs-btn-active-border-color: #13653f;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #198754;
+ --bs-btn-disabled-border-color: #198754;
+}
+
+.btn-info {
+ --bs-btn-color: #000;
+ --bs-btn-bg: #0dcaf0;
+ --bs-btn-border-color: #0dcaf0;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #31d2f2;
+ --bs-btn-hover-border-color: #25cff2;
+ --bs-btn-focus-shadow-rgb: 11, 172, 204;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #3dd5f3;
+ --bs-btn-active-border-color: #25cff2;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #0dcaf0;
+ --bs-btn-disabled-border-color: #0dcaf0;
+}
+
+.btn-warning {
+ --bs-btn-color: #000;
+ --bs-btn-bg: #ffc107;
+ --bs-btn-border-color: #ffc107;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #ffca2c;
+ --bs-btn-hover-border-color: #ffc720;
+ --bs-btn-focus-shadow-rgb: 217, 164, 6;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #ffcd39;
+ --bs-btn-active-border-color: #ffc720;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #ffc107;
+ --bs-btn-disabled-border-color: #ffc107;
+}
+
+.btn-danger {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #dc3545;
+ --bs-btn-border-color: #dc3545;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #bb2d3b;
+ --bs-btn-hover-border-color: #b02a37;
+ --bs-btn-focus-shadow-rgb: 225, 83, 97;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #b02a37;
+ --bs-btn-active-border-color: #a52834;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #dc3545;
+ --bs-btn-disabled-border-color: #dc3545;
+}
+
+.btn-light {
+ --bs-btn-color: #000;
+ --bs-btn-bg: #f8f9fa;
+ --bs-btn-border-color: #f8f9fa;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #d3d4d5;
+ --bs-btn-hover-border-color: #c6c7c8;
+ --bs-btn-focus-shadow-rgb: 211, 212, 213;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #c6c7c8;
+ --bs-btn-active-border-color: #babbbc;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #f8f9fa;
+ --bs-btn-disabled-border-color: #f8f9fa;
+}
+
+.btn-dark {
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #212529;
+ --bs-btn-border-color: #212529;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #424649;
+ --bs-btn-hover-border-color: #373b3e;
+ --bs-btn-focus-shadow-rgb: 66, 70, 73;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #4d5154;
+ --bs-btn-active-border-color: #373b3e;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #212529;
+ --bs-btn-disabled-border-color: #212529;
+}
+
+.btn-outline-primary {
+ --bs-btn-color: #0d6efd;
+ --bs-btn-border-color: #0d6efd;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #0d6efd;
+ --bs-btn-hover-border-color: #0d6efd;
+ --bs-btn-focus-shadow-rgb: 13, 110, 253;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #0d6efd;
+ --bs-btn-active-border-color: #0d6efd;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #0d6efd;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #0d6efd;
+ --bs-gradient: none;
+}
+
+.btn-outline-secondary {
+ --bs-btn-color: #6c757d;
+ --bs-btn-border-color: #6c757d;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #6c757d;
+ --bs-btn-hover-border-color: #6c757d;
+ --bs-btn-focus-shadow-rgb: 108, 117, 125;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #6c757d;
+ --bs-btn-active-border-color: #6c757d;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #6c757d;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #6c757d;
+ --bs-gradient: none;
+}
+
+.btn-outline-success {
+ --bs-btn-color: #198754;
+ --bs-btn-border-color: #198754;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #198754;
+ --bs-btn-hover-border-color: #198754;
+ --bs-btn-focus-shadow-rgb: 25, 135, 84;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #198754;
+ --bs-btn-active-border-color: #198754;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #198754;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #198754;
+ --bs-gradient: none;
+}
+
+.btn-outline-info {
+ --bs-btn-color: #0dcaf0;
+ --bs-btn-border-color: #0dcaf0;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #0dcaf0;
+ --bs-btn-hover-border-color: #0dcaf0;
+ --bs-btn-focus-shadow-rgb: 13, 202, 240;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #0dcaf0;
+ --bs-btn-active-border-color: #0dcaf0;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #0dcaf0;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #0dcaf0;
+ --bs-gradient: none;
+}
+
+.btn-outline-warning {
+ --bs-btn-color: #ffc107;
+ --bs-btn-border-color: #ffc107;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #ffc107;
+ --bs-btn-hover-border-color: #ffc107;
+ --bs-btn-focus-shadow-rgb: 255, 193, 7;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #ffc107;
+ --bs-btn-active-border-color: #ffc107;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #ffc107;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #ffc107;
+ --bs-gradient: none;
+}
+
+.btn-outline-danger {
+ --bs-btn-color: #dc3545;
+ --bs-btn-border-color: #dc3545;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #dc3545;
+ --bs-btn-hover-border-color: #dc3545;
+ --bs-btn-focus-shadow-rgb: 220, 53, 69;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #dc3545;
+ --bs-btn-active-border-color: #dc3545;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #dc3545;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #dc3545;
+ --bs-gradient: none;
+}
+
+.btn-outline-light {
+ --bs-btn-color: #f8f9fa;
+ --bs-btn-border-color: #f8f9fa;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #f8f9fa;
+ --bs-btn-hover-border-color: #f8f9fa;
+ --bs-btn-focus-shadow-rgb: 248, 249, 250;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #f8f9fa;
+ --bs-btn-active-border-color: #f8f9fa;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #f8f9fa;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #f8f9fa;
+ --bs-gradient: none;
+}
+
+.btn-outline-dark {
+ --bs-btn-color: #212529;
+ --bs-btn-border-color: #212529;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #212529;
+ --bs-btn-hover-border-color: #212529;
+ --bs-btn-focus-shadow-rgb: 33, 37, 41;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #212529;
+ --bs-btn-active-border-color: #212529;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #212529;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #212529;
+ --bs-gradient: none;
+}
+
+.btn-link {
+ --bs-btn-font-weight: 400;
+ --bs-btn-color: var(--bs-link-color);
+ --bs-btn-bg: transparent;
+ --bs-btn-border-color: transparent;
+ --bs-btn-hover-color: var(--bs-link-hover-color);
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-active-color: var(--bs-link-hover-color);
+ --bs-btn-active-border-color: transparent;
+ --bs-btn-disabled-color: #6c757d;
+ --bs-btn-disabled-border-color: transparent;
+ --bs-btn-box-shadow: 0 0 0 #000;
+ --bs-btn-focus-shadow-rgb: 49, 132, 253;
+ text-decoration: underline;
+}
+.btn-link:focus-visible {
+ color: var(--bs-btn-color);
+}
+.btn-link:hover {
+ color: var(--bs-btn-hover-color);
+}
+
+.btn-lg, .btn-group-lg > .btn {
+ --bs-btn-padding-y: 0.5rem;
+ --bs-btn-padding-x: 1rem;
+ --bs-btn-font-size: 1.25rem;
+ --bs-btn-border-radius: var(--bs-border-radius-lg);
+}
+
+.btn-sm, .btn-group-sm > .btn {
+ --bs-btn-padding-y: 0.25rem;
+ --bs-btn-padding-x: 0.5rem;
+ --bs-btn-font-size: 0.875rem;
+ --bs-btn-border-radius: var(--bs-border-radius-sm);
+}
+
+.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;
+ }
+}
+.collapsing.collapse-horizontal {
+ width: 0;
+ height: auto;
+ transition: width 0.35s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .collapsing.collapse-horizontal {
+ transition: none;
+ }
+}
+
+.dropup,
+.dropend,
+.dropdown,
+.dropstart,
+.dropup-center,
+.dropdown-center {
+ 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 {
+ --bs-dropdown-zindex: 1000;
+ --bs-dropdown-min-width: 10rem;
+ --bs-dropdown-padding-x: 0;
+ --bs-dropdown-padding-y: 0.5rem;
+ --bs-dropdown-spacer: 0.125rem;
+ --bs-dropdown-font-size: 1rem;
+ --bs-dropdown-color: var(--bs-body-color);
+ --bs-dropdown-bg: var(--bs-body-bg);
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-border-radius: var(--bs-border-radius);
+ --bs-dropdown-border-width: var(--bs-border-width);
+ --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
+ --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+ --bs-dropdown-divider-margin-y: 0.5rem;
+ --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-dropdown-link-color: var(--bs-body-color);
+ --bs-dropdown-link-hover-color: var(--bs-body-color);
+ --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
+ --bs-dropdown-link-active-color: #fff;
+ --bs-dropdown-link-active-bg: #0d6efd;
+ --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
+ --bs-dropdown-item-padding-x: 1rem;
+ --bs-dropdown-item-padding-y: 0.25rem;
+ --bs-dropdown-header-color: #6c757d;
+ --bs-dropdown-header-padding-x: 1rem;
+ --bs-dropdown-header-padding-y: 0.5rem;
+ position: absolute;
+ z-index: var(--bs-dropdown-zindex);
+ display: none;
+ min-width: var(--bs-dropdown-min-width);
+ padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+ margin: 0;
+ font-size: var(--bs-dropdown-font-size);
+ color: var(--bs-dropdown-color);
+ text-align: left;
+ list-style: none;
+ background-color: var(--bs-dropdown-bg);
+ background-clip: padding-box;
+ border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+ border-radius: var(--bs-dropdown-border-radius);
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: var(--bs-dropdown-spacer);
+}
+
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+}
+
+.dropdown-menu-end {
+ --bs-position: end;
+}
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+}
+
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: var(--bs-dropdown-spacer);
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 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[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: var(--bs-dropdown-spacer);
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 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[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: var(--bs-dropdown-spacer);
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 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: var(--bs-dropdown-divider-margin-y) 0;
+ overflow: hidden;
+ border-top: 1px solid var(--bs-dropdown-divider-bg);
+ opacity: 1;
+}
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+ clear: both;
+ font-weight: 400;
+ color: var(--bs-dropdown-link-color);
+ text-align: inherit;
+ text-decoration: none;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+ border-radius: var(--bs-dropdown-item-border-radius, 0);
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: var(--bs-dropdown-link-hover-color);
+ background-color: var(--bs-dropdown-link-hover-bg);
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: var(--bs-dropdown-link-active-color);
+ text-decoration: none;
+ background-color: var(--bs-dropdown-link-active-bg);
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: var(--bs-dropdown-link-disabled-color);
+ pointer-events: none;
+ background-color: transparent;
+}
+
+.dropdown-menu.show {
+ display: block;
+}
+
+.dropdown-header {
+ display: block;
+ padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: var(--bs-dropdown-header-color);
+ white-space: nowrap;
+}
+
+.dropdown-item-text {
+ display: block;
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+ color: var(--bs-dropdown-link-color);
+}
+
+.dropdown-menu-dark {
+ --bs-dropdown-color: #dee2e6;
+ --bs-dropdown-bg: #343a40;
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-box-shadow: ;
+ --bs-dropdown-link-color: #dee2e6;
+ --bs-dropdown-link-hover-color: #fff;
+ --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+ --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+ --bs-dropdown-link-active-color: #fff;
+ --bs-dropdown-link-active-bg: #0d6efd;
+ --bs-dropdown-link-disabled-color: #adb5bd;
+ --bs-dropdown-header-color: #adb5bd;
+}
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+.btn-group > .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 {
+ border-radius: var(--bs-border-radius);
+}
+.btn-group > :not(.btn-check:first-child) + .btn,
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: calc(var(--bs-border-width) * -1);
+}
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn.dropdown-toggle-split:first-child,
+.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: calc(var(--bs-border-width) * -1);
+}
+.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 {
+ --bs-nav-link-padding-x: 1rem;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-link-color);
+ --bs-nav-link-hover-color: var(--bs-link-hover-color);
+ --bs-nav-link-disabled-color: var(--bs-secondary-color);
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+ font-size: var(--bs-nav-link-font-size);
+ font-weight: var(--bs-nav-link-font-weight);
+ color: var(--bs-nav-link-color);
+ text-decoration: none;
+ background: none;
+ border: 0;
+ 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:hover, .nav-link:focus {
+ color: var(--bs-nav-link-hover-color);
+}
+.nav-link:focus-visible {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+.nav-link.disabled, .nav-link:disabled {
+ color: var(--bs-nav-link-disabled-color);
+ pointer-events: none;
+ cursor: default;
+}
+
+.nav-tabs {
+ --bs-nav-tabs-border-width: var(--bs-border-width);
+ --bs-nav-tabs-border-color: var(--bs-border-color);
+ --bs-nav-tabs-border-radius: var(--bs-border-radius);
+ --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
+ --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
+ --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
+ --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
+ border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
+}
+.nav-tabs .nav-link {
+ margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+ border: var(--bs-nav-tabs-border-width) solid transparent;
+ border-top-left-radius: var(--bs-nav-tabs-border-radius);
+ border-top-right-radius: var(--bs-nav-tabs-border-radius);
+}
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ isolation: isolate;
+ border-color: var(--bs-nav-tabs-link-hover-border-color);
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: var(--bs-nav-tabs-link-active-color);
+ background-color: var(--bs-nav-tabs-link-active-bg);
+ border-color: var(--bs-nav-tabs-link-active-border-color);
+}
+.nav-tabs .dropdown-menu {
+ margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.nav-pills {
+ --bs-nav-pills-border-radius: var(--bs-border-radius);
+ --bs-nav-pills-link-active-color: #fff;
+ --bs-nav-pills-link-active-bg: #0d6efd;
+}
+.nav-pills .nav-link {
+ border-radius: var(--bs-nav-pills-border-radius);
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: var(--bs-nav-pills-link-active-color);
+ background-color: var(--bs-nav-pills-link-active-bg);
+}
+
+.nav-underline {
+ --bs-nav-underline-gap: 1rem;
+ --bs-nav-underline-border-width: 0.125rem;
+ --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
+ gap: var(--bs-nav-underline-gap);
+}
+.nav-underline .nav-link {
+ padding-right: 0;
+ padding-left: 0;
+ border-bottom: var(--bs-nav-underline-border-width) solid transparent;
+}
+.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {
+ border-bottom-color: currentcolor;
+}
+.nav-underline .nav-link.active,
+.nav-underline .show > .nav-link {
+ font-weight: 700;
+ color: var(--bs-nav-underline-link-active-color);
+ border-bottom-color: currentcolor;
+}
+
+.nav-fill > .nav-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;
+}
+
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%;
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+
+.navbar {
+ --bs-navbar-padding-x: 0;
+ --bs-navbar-padding-y: 0.5rem;
+ --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
+ --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
+ --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
+ --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-brand-padding-y: 0.3125rem;
+ --bs-navbar-brand-margin-end: 1rem;
+ --bs-navbar-brand-font-size: 1.25rem;
+ --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-nav-link-padding-x: 0.5rem;
+ --bs-navbar-toggler-padding-y: 0.25rem;
+ --bs-navbar-toggler-padding-x: 0.75rem;
+ --bs-navbar-toggler-font-size: 1.25rem;
+ --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+ --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
+ --bs-navbar-toggler-border-radius: var(--bs-border-radius);
+ --bs-navbar-toggler-focus-width: 0.25rem;
+ --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
+}
+.navbar > .container,
+.navbar > .container-fluid,
+.navbar > .container-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: var(--bs-navbar-brand-padding-y);
+ padding-bottom: var(--bs-navbar-brand-padding-y);
+ margin-right: var(--bs-navbar-brand-margin-end);
+ font-size: var(--bs-navbar-brand-font-size);
+ color: var(--bs-navbar-brand-color);
+ text-decoration: none;
+ white-space: nowrap;
+}
+.navbar-brand:hover, .navbar-brand:focus {
+ color: var(--bs-navbar-brand-hover-color);
+}
+
+.navbar-nav {
+ --bs-nav-link-padding-x: 0;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-navbar-color);
+ --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+ --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
+ color: var(--bs-navbar-active-color);
+}
+.navbar-nav .dropdown-menu {
+ position: static;
+}
+
+.navbar-text {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ color: var(--bs-navbar-color);
+}
+.navbar-text a,
+.navbar-text a:hover,
+.navbar-text a:focus {
+ color: var(--bs-navbar-active-color);
+}
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+}
+
+.navbar-toggler {
+ padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+ font-size: var(--bs-navbar-toggler-font-size);
+ line-height: 1;
+ color: var(--bs-navbar-color);
+ background-color: transparent;
+ border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+ border-radius: var(--bs-navbar-toggler-border-radius);
+ transition: var(--bs-navbar-toggler-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .navbar-toggler {
+ transition: none;
+ }
+}
+.navbar-toggler:hover {
+ text-decoration: none;
+}
+.navbar-toggler:focus {
+ text-decoration: none;
+ outline: 0;
+ box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
+}
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ background-image: var(--bs-navbar-toggler-icon-bg);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.navbar-nav-scroll {
+ max-height: var(--bs-scroll-height, 75vh);
+ overflow-y: auto;
+}
+
+@media (min-width: 576px) {
+ .navbar-expand-sm {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-sm .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-sm .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-sm .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-sm .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-sm .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-sm .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+ }
+ .navbar-expand-sm .offcanvas .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-expand-md {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-md .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+ }
+ .navbar-expand-md .offcanvas .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 992px) {
+ .navbar-expand-lg {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-lg .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+ }
+ .navbar-expand-lg .offcanvas .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1200px) {
+ .navbar-expand-xl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xl .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-xl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+ }
+ .navbar-expand-xl .offcanvas .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1400px) {
+ .navbar-expand-xxl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xxl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xxl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xxl .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-xxl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xxl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xxl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+ }
+ .navbar-expand-xxl .offcanvas .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+.navbar-expand {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+}
+.navbar-expand .navbar-nav {
+ flex-direction: row;
+}
+.navbar-expand .navbar-nav .dropdown-menu {
+ position: absolute;
+}
+.navbar-expand .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+}
+.navbar-expand .navbar-nav-scroll {
+ overflow: visible;
+}
+.navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+}
+.navbar-expand .navbar-toggler {
+ display: none;
+}
+.navbar-expand .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none;
+}
+.navbar-expand .offcanvas .offcanvas-header {
+ display: none;
+}
+.navbar-expand .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+}
+
+.navbar-dark,
+.navbar[data-bs-theme=dark] {
+ --bs-navbar-color: rgba(255, 255, 255, 0.55);
+ --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+ --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+ --bs-navbar-active-color: #fff;
+ --bs-navbar-brand-color: #fff;
+ --bs-navbar-brand-hover-color: #fff;
+ --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+ --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+
+[data-bs-theme=dark] .navbar-toggler-icon {
+ --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+
+.card {
+ --bs-card-spacer-y: 1rem;
+ --bs-card-spacer-x: 1rem;
+ --bs-card-title-spacer-y: 0.5rem;
+ --bs-card-title-color: ;
+ --bs-card-subtitle-color: ;
+ --bs-card-border-width: var(--bs-border-width);
+ --bs-card-border-color: var(--bs-border-color-translucent);
+ --bs-card-border-radius: var(--bs-border-radius);
+ --bs-card-box-shadow: ;
+ --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+ --bs-card-cap-padding-y: 0.5rem;
+ --bs-card-cap-padding-x: 1rem;
+ --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
+ --bs-card-cap-color: ;
+ --bs-card-height: ;
+ --bs-card-color: ;
+ --bs-card-bg: var(--bs-body-bg);
+ --bs-card-img-overlay-padding: 1rem;
+ --bs-card-group-margin: 0.75rem;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ height: var(--bs-card-height);
+ color: var(--bs-body-color);
+ word-wrap: break-word;
+ background-color: var(--bs-card-bg);
+ background-clip: border-box;
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+ border-radius: var(--bs-card-border-radius);
+}
+.card > hr {
+ margin-right: 0;
+ margin-left: 0;
+}
+.card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+}
+.card > .list-group:first-child {
+ border-top-width: 0;
+ border-top-left-radius: var(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+.card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-card-inner-border-radius);
+}
+.card > .card-header + .list-group,
+.card > .list-group + .card-footer {
+ border-top: 0;
+}
+
+.card-body {
+ flex: 1 1 auto;
+ padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
+ color: var(--bs-card-color);
+}
+
+.card-title {
+ margin-bottom: var(--bs-card-title-spacer-y);
+ color: var(--bs-card-title-color);
+}
+
+.card-subtitle {
+ margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
+ margin-bottom: 0;
+ color: var(--bs-card-subtitle-color);
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link + .card-link {
+ margin-left: var(--bs-card-spacer-x);
+}
+
+.card-header {
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+ margin-bottom: 0;
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+.card-header:first-child {
+ border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
+}
+
+.card-footer {
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+.card-footer:last-child {
+ border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
+}
+
+.card-header-tabs {
+ margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+ margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+ margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+ border-bottom: 0;
+}
+.card-header-tabs .nav-link.active {
+ background-color: var(--bs-card-bg);
+ border-bottom-color: var(--bs-card-bg);
+}
+
+.card-header-pills {
+ margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+ margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+}
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: var(--bs-card-img-overlay-padding);
+ border-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+
+.card-img,
+.card-img-top {
+ border-top-left-radius: var(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-group > .card {
+ margin-bottom: var(--bs-card-group-margin);
+}
+@media (min-width: 576px) {
+ .card-group {
+ display: flex;
+ flex-flow: row wrap;
+ }
+ .card-group > .card {
+ flex: 1 0 0%;
+ margin-bottom: 0;
+ }
+ .card-group > .card + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+ .card-group > .card:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .card-group > .card:not(:last-child) .card-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;
+ }
+}
+
+.accordion {
+ --bs-accordion-color: var(--bs-body-color);
+ --bs-accordion-bg: var(--bs-body-bg);
+ --bs-accordion-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, border-radius 0.15s ease;
+ --bs-accordion-border-color: var(--bs-border-color);
+ --bs-accordion-border-width: var(--bs-border-width);
+ --bs-accordion-border-radius: var(--bs-border-radius);
+ --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
+ --bs-accordion-btn-padding-x: 1.25rem;
+ --bs-accordion-btn-padding-y: 1rem;
+ --bs-accordion-btn-color: var(--bs-body-color);
+ --bs-accordion-btn-bg: var(--bs-accordion-bg);
+ --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ --bs-accordion-btn-icon-width: 1.25rem;
+ --bs-accordion-btn-icon-transform: rotate(-180deg);
+ --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+ --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ --bs-accordion-btn-focus-border-color: #86b7fe;
+ --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ --bs-accordion-body-padding-x: 1.25rem;
+ --bs-accordion-body-padding-y: 1rem;
+ --bs-accordion-active-color: var(--bs-primary-text-emphasis);
+ --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
+}
+
+.accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+ font-size: 1rem;
+ color: var(--bs-accordion-btn-color);
+ text-align: left;
+ background-color: var(--bs-accordion-btn-bg);
+ border: 0;
+ border-radius: 0;
+ overflow-anchor: none;
+ transition: var(--bs-accordion-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button {
+ transition: none;
+ }
+}
+.accordion-button:not(.collapsed) {
+ color: var(--bs-accordion-active-color);
+ background-color: var(--bs-accordion-active-bg);
+ box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
+}
+.accordion-button:not(.collapsed)::after {
+ background-image: var(--bs-accordion-btn-active-icon);
+ transform: var(--bs-accordion-btn-icon-transform);
+}
+.accordion-button::after {
+ flex-shrink: 0;
+ width: var(--bs-accordion-btn-icon-width);
+ height: var(--bs-accordion-btn-icon-width);
+ margin-left: auto;
+ content: "";
+ background-image: var(--bs-accordion-btn-icon);
+ background-repeat: no-repeat;
+ background-size: var(--bs-accordion-btn-icon-width);
+ transition: var(--bs-accordion-btn-icon-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button::after {
+ transition: none;
+ }
+}
+.accordion-button:hover {
+ z-index: 2;
+}
+.accordion-button:focus {
+ z-index: 3;
+ border-color: var(--bs-accordion-btn-focus-border-color);
+ outline: 0;
+ box-shadow: var(--bs-accordion-btn-focus-box-shadow);
+}
+
+.accordion-header {
+ margin-bottom: 0;
+}
+
+.accordion-item {
+ color: var(--bs-accordion-color);
+ background-color: var(--bs-accordion-bg);
+ border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
+}
+.accordion-item:first-of-type {
+ border-top-left-radius: var(--bs-accordion-border-radius);
+ border-top-right-radius: var(--bs-accordion-border-radius);
+}
+.accordion-item:first-of-type .accordion-button {
+ border-top-left-radius: var(--bs-accordion-inner-border-radius);
+ border-top-right-radius: var(--bs-accordion-inner-border-radius);
+}
+.accordion-item:not(:first-of-type) {
+ border-top: 0;
+}
+.accordion-item:last-of-type {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+.accordion-item:last-of-type .accordion-button.collapsed {
+ border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
+}
+.accordion-item:last-of-type .accordion-collapse {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+
+.accordion-body {
+ padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
+}
+
+.accordion-flush .accordion-collapse {
+ border-width: 0;
+}
+.accordion-flush .accordion-item {
+ border-right: 0;
+ border-left: 0;
+ border-radius: 0;
+}
+.accordion-flush .accordion-item:first-child {
+ border-top: 0;
+}
+.accordion-flush .accordion-item:last-child {
+ border-bottom: 0;
+}
+.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
+ border-radius: 0;
+}
+
+[data-bs-theme=dark] .accordion-button::after {
+ --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+
+.breadcrumb {
+ --bs-breadcrumb-padding-x: 0;
+ --bs-breadcrumb-padding-y: 0;
+ --bs-breadcrumb-margin-bottom: 1rem;
+ --bs-breadcrumb-bg: ;
+ --bs-breadcrumb-border-radius: ;
+ --bs-breadcrumb-divider-color: var(--bs-secondary-color);
+ --bs-breadcrumb-item-padding-x: 0.5rem;
+ --bs-breadcrumb-item-active-color: var(--bs-secondary-color);
+ display: flex;
+ flex-wrap: wrap;
+ padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+ margin-bottom: var(--bs-breadcrumb-margin-bottom);
+ font-size: var(--bs-breadcrumb-font-size);
+ list-style: none;
+ background-color: var(--bs-breadcrumb-bg);
+ border-radius: var(--bs-breadcrumb-border-radius);
+}
+
+.breadcrumb-item + .breadcrumb-item {
+ padding-left: var(--bs-breadcrumb-item-padding-x);
+}
+.breadcrumb-item + .breadcrumb-item::before {
+ float: left;
+ padding-right: var(--bs-breadcrumb-item-padding-x);
+ color: var(--bs-breadcrumb-divider-color);
+ content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+}
+.breadcrumb-item.active {
+ color: var(--bs-breadcrumb-item-active-color);
+}
+
+.pagination {
+ --bs-pagination-padding-x: 0.75rem;
+ --bs-pagination-padding-y: 0.375rem;
+ --bs-pagination-font-size: 1rem;
+ --bs-pagination-color: var(--bs-link-color);
+ --bs-pagination-bg: var(--bs-body-bg);
+ --bs-pagination-border-width: var(--bs-border-width);
+ --bs-pagination-border-color: var(--bs-border-color);
+ --bs-pagination-border-radius: var(--bs-border-radius);
+ --bs-pagination-hover-color: var(--bs-link-hover-color);
+ --bs-pagination-hover-bg: var(--bs-tertiary-bg);
+ --bs-pagination-hover-border-color: var(--bs-border-color);
+ --bs-pagination-focus-color: var(--bs-link-hover-color);
+ --bs-pagination-focus-bg: var(--bs-secondary-bg);
+ --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ --bs-pagination-active-color: #fff;
+ --bs-pagination-active-bg: #0d6efd;
+ --bs-pagination-active-border-color: #0d6efd;
+ --bs-pagination-disabled-color: var(--bs-secondary-color);
+ --bs-pagination-disabled-bg: var(--bs-secondary-bg);
+ --bs-pagination-disabled-border-color: var(--bs-border-color);
+ display: flex;
+ padding-left: 0;
+ list-style: none;
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+ font-size: var(--bs-pagination-font-size);
+ color: var(--bs-pagination-color);
+ text-decoration: none;
+ background-color: var(--bs-pagination-bg);
+ border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+ transition: color 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: var(--bs-pagination-hover-color);
+ background-color: var(--bs-pagination-hover-bg);
+ border-color: var(--bs-pagination-hover-border-color);
+}
+.page-link:focus {
+ z-index: 3;
+ color: var(--bs-pagination-focus-color);
+ background-color: var(--bs-pagination-focus-bg);
+ outline: 0;
+ box-shadow: var(--bs-pagination-focus-box-shadow);
+}
+.page-link.active, .active > .page-link {
+ z-index: 3;
+ color: var(--bs-pagination-active-color);
+ background-color: var(--bs-pagination-active-bg);
+ border-color: var(--bs-pagination-active-border-color);
+}
+.page-link.disabled, .disabled > .page-link {
+ color: var(--bs-pagination-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-pagination-disabled-bg);
+ border-color: var(--bs-pagination-disabled-border-color);
+}
+
+.page-item:not(:first-child) .page-link {
+ margin-left: calc(var(--bs-border-width) * -1);
+}
+.page-item:first-child .page-link {
+ border-top-left-radius: var(--bs-pagination-border-radius);
+ border-bottom-left-radius: var(--bs-pagination-border-radius);
+}
+.page-item:last-child .page-link {
+ border-top-right-radius: var(--bs-pagination-border-radius);
+ border-bottom-right-radius: var(--bs-pagination-border-radius);
+}
+
+.pagination-lg {
+ --bs-pagination-padding-x: 1.5rem;
+ --bs-pagination-padding-y: 0.75rem;
+ --bs-pagination-font-size: 1.25rem;
+ --bs-pagination-border-radius: var(--bs-border-radius-lg);
+}
+
+.pagination-sm {
+ --bs-pagination-padding-x: 0.5rem;
+ --bs-pagination-padding-y: 0.25rem;
+ --bs-pagination-font-size: 0.875rem;
+ --bs-pagination-border-radius: var(--bs-border-radius-sm);
+}
+
+.badge {
+ --bs-badge-padding-x: 0.65em;
+ --bs-badge-padding-y: 0.35em;
+ --bs-badge-font-size: 0.75em;
+ --bs-badge-font-weight: 700;
+ --bs-badge-color: #fff;
+ --bs-badge-border-radius: var(--bs-border-radius);
+ display: inline-block;
+ padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+ font-size: var(--bs-badge-font-size);
+ font-weight: var(--bs-badge-font-weight);
+ line-height: 1;
+ color: var(--bs-badge-color);
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: var(--bs-badge-border-radius);
+}
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.alert {
+ --bs-alert-bg: transparent;
+ --bs-alert-padding-x: 1rem;
+ --bs-alert-padding-y: 1rem;
+ --bs-alert-margin-bottom: 1rem;
+ --bs-alert-color: inherit;
+ --bs-alert-border-color: transparent;
+ --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
+ --bs-alert-border-radius: var(--bs-border-radius);
+ --bs-alert-link-color: inherit;
+ position: relative;
+ padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+ margin-bottom: var(--bs-alert-margin-bottom);
+ color: var(--bs-alert-color);
+ background-color: var(--bs-alert-bg);
+ border: var(--bs-alert-border);
+ border-radius: var(--bs-alert-border-radius);
+}
+
+.alert-heading {
+ color: inherit;
+}
+
+.alert-link {
+ font-weight: 700;
+ color: var(--bs-alert-link-color);
+}
+
+.alert-dismissible {
+ padding-right: 3rem;
+}
+.alert-dismissible .btn-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ padding: 1.25rem 1rem;
+}
+
+.alert-primary {
+ --bs-alert-color: var(--bs-primary-text-emphasis);
+ --bs-alert-bg: var(--bs-primary-bg-subtle);
+ --bs-alert-border-color: var(--bs-primary-border-subtle);
+ --bs-alert-link-color: var(--bs-primary-text-emphasis);
+}
+
+.alert-secondary {
+ --bs-alert-color: var(--bs-secondary-text-emphasis);
+ --bs-alert-bg: var(--bs-secondary-bg-subtle);
+ --bs-alert-border-color: var(--bs-secondary-border-subtle);
+ --bs-alert-link-color: var(--bs-secondary-text-emphasis);
+}
+
+.alert-success {
+ --bs-alert-color: var(--bs-success-text-emphasis);
+ --bs-alert-bg: var(--bs-success-bg-subtle);
+ --bs-alert-border-color: var(--bs-success-border-subtle);
+ --bs-alert-link-color: var(--bs-success-text-emphasis);
+}
+
+.alert-info {
+ --bs-alert-color: var(--bs-info-text-emphasis);
+ --bs-alert-bg: var(--bs-info-bg-subtle);
+ --bs-alert-border-color: var(--bs-info-border-subtle);
+ --bs-alert-link-color: var(--bs-info-text-emphasis);
+}
+
+.alert-warning {
+ --bs-alert-color: var(--bs-warning-text-emphasis);
+ --bs-alert-bg: var(--bs-warning-bg-subtle);
+ --bs-alert-border-color: var(--bs-warning-border-subtle);
+ --bs-alert-link-color: var(--bs-warning-text-emphasis);
+}
+
+.alert-danger {
+ --bs-alert-color: var(--bs-danger-text-emphasis);
+ --bs-alert-bg: var(--bs-danger-bg-subtle);
+ --bs-alert-border-color: var(--bs-danger-border-subtle);
+ --bs-alert-link-color: var(--bs-danger-text-emphasis);
+}
+
+.alert-light {
+ --bs-alert-color: var(--bs-light-text-emphasis);
+ --bs-alert-bg: var(--bs-light-bg-subtle);
+ --bs-alert-border-color: var(--bs-light-border-subtle);
+ --bs-alert-link-color: var(--bs-light-text-emphasis);
+}
+
+.alert-dark {
+ --bs-alert-color: var(--bs-dark-text-emphasis);
+ --bs-alert-bg: var(--bs-dark-bg-subtle);
+ --bs-alert-border-color: var(--bs-dark-border-subtle);
+ --bs-alert-link-color: var(--bs-dark-text-emphasis);
+}
+
+@keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem;
+ }
+}
+.progress,
+.progress-stacked {
+ --bs-progress-height: 1rem;
+ --bs-progress-font-size: 0.75rem;
+ --bs-progress-bg: var(--bs-secondary-bg);
+ --bs-progress-border-radius: var(--bs-border-radius);
+ --bs-progress-box-shadow: var(--bs-box-shadow-inset);
+ --bs-progress-bar-color: #fff;
+ --bs-progress-bar-bg: #0d6efd;
+ --bs-progress-bar-transition: width 0.6s ease;
+ display: flex;
+ height: var(--bs-progress-height);
+ overflow: hidden;
+ font-size: var(--bs-progress-font-size);
+ background-color: var(--bs-progress-bg);
+ border-radius: var(--bs-progress-border-radius);
+}
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ color: var(--bs-progress-bar-color);
+ text-align: center;
+ white-space: nowrap;
+ background-color: var(--bs-progress-bar-bg);
+ transition: var(--bs-progress-bar-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .progress-bar {
+ transition: none;
+ }
+}
+
+.progress-bar-striped {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 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: var(--bs-progress-height) var(--bs-progress-height);
+}
+
+.progress-stacked > .progress {
+ overflow: visible;
+}
+
+.progress-stacked > .progress > .progress-bar {
+ width: 100%;
+}
+
+.progress-bar-animated {
+ animation: 1s linear infinite progress-bar-stripes;
+}
+@media (prefers-reduced-motion: reduce) {
+ .progress-bar-animated {
+ animation: none;
+ }
+}
+
+.list-group {
+ --bs-list-group-color: var(--bs-body-color);
+ --bs-list-group-bg: var(--bs-body-bg);
+ --bs-list-group-border-color: var(--bs-border-color);
+ --bs-list-group-border-width: var(--bs-border-width);
+ --bs-list-group-border-radius: var(--bs-border-radius);
+ --bs-list-group-item-padding-x: 1rem;
+ --bs-list-group-item-padding-y: 0.5rem;
+ --bs-list-group-action-color: var(--bs-secondary-color);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);
+ --bs-list-group-action-active-color: var(--bs-body-color);
+ --bs-list-group-action-active-bg: var(--bs-secondary-bg);
+ --bs-list-group-disabled-color: var(--bs-secondary-color);
+ --bs-list-group-disabled-bg: var(--bs-body-bg);
+ --bs-list-group-active-color: #fff;
+ --bs-list-group-active-bg: #0d6efd;
+ --bs-list-group-active-border-color: #0d6efd;
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: var(--bs-list-group-border-radius);
+}
+
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section;
+}
+.list-group-numbered > .list-group-item::before {
+ content: counters(section, ".") ". ";
+ counter-increment: section;
+}
+
+.list-group-item-action {
+ width: 100%;
+ color: var(--bs-list-group-action-color);
+ text-align: inherit;
+}
+.list-group-item-action:hover, .list-group-item-action:focus {
+ z-index: 1;
+ color: var(--bs-list-group-action-hover-color);
+ text-decoration: none;
+ background-color: var(--bs-list-group-action-hover-bg);
+}
+.list-group-item-action:active {
+ color: var(--bs-list-group-action-active-color);
+ background-color: var(--bs-list-group-action-active-bg);
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+ color: var(--bs-list-group-color);
+ text-decoration: none;
+ background-color: var(--bs-list-group-bg);
+ border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
+}
+.list-group-item:first-child {
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit;
+}
+.list-group-item:last-child {
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius: inherit;
+}
+.list-group-item.disabled, .list-group-item:disabled {
+ color: var(--bs-list-group-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-list-group-disabled-bg);
+}
+.list-group-item.active {
+ z-index: 2;
+ color: var(--bs-list-group-active-color);
+ background-color: var(--bs-list-group-active-bg);
+ border-color: var(--bs-list-group-active-border-color);
+}
+.list-group-item + .list-group-item {
+ border-top-width: 0;
+}
+.list-group-item + .list-group-item.active {
+ margin-top: calc(-1 * var(--bs-list-group-border-width));
+ border-top-width: var(--bs-list-group-border-width);
+}
+
+.list-group-horizontal {
+ flex-direction: row;
+}
+.list-group-horizontal > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+}
+.list-group-horizontal > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+}
+.list-group-horizontal > .list-group-item.active {
+ margin-top: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+}
+
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row;
+ }
+ .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row;
+ }
+ .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-md > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row;
+ }
+ .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+.list-group-flush {
+ border-radius: 0;
+}
+.list-group-flush > .list-group-item {
+ border-width: 0 0 var(--bs-list-group-border-width);
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+
+.list-group-item-primary {
+ --bs-list-group-color: var(--bs-primary-text-emphasis);
+ --bs-list-group-bg: var(--bs-primary-bg-subtle);
+ --bs-list-group-border-color: var(--bs-primary-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);
+ --bs-list-group-active-color: var(--bs-primary-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-primary-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);
+}
+
+.list-group-item-secondary {
+ --bs-list-group-color: var(--bs-secondary-text-emphasis);
+ --bs-list-group-bg: var(--bs-secondary-bg-subtle);
+ --bs-list-group-border-color: var(--bs-secondary-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);
+ --bs-list-group-active-color: var(--bs-secondary-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);
+}
+
+.list-group-item-success {
+ --bs-list-group-color: var(--bs-success-text-emphasis);
+ --bs-list-group-bg: var(--bs-success-bg-subtle);
+ --bs-list-group-border-color: var(--bs-success-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-success-border-subtle);
+ --bs-list-group-active-color: var(--bs-success-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-success-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-success-text-emphasis);
+}
+
+.list-group-item-info {
+ --bs-list-group-color: var(--bs-info-text-emphasis);
+ --bs-list-group-bg: var(--bs-info-bg-subtle);
+ --bs-list-group-border-color: var(--bs-info-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-info-border-subtle);
+ --bs-list-group-active-color: var(--bs-info-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-info-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-info-text-emphasis);
+}
+
+.list-group-item-warning {
+ --bs-list-group-color: var(--bs-warning-text-emphasis);
+ --bs-list-group-bg: var(--bs-warning-bg-subtle);
+ --bs-list-group-border-color: var(--bs-warning-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
+ --bs-list-group-active-color: var(--bs-warning-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
+}
+
+.list-group-item-danger {
+ --bs-list-group-color: var(--bs-danger-text-emphasis);
+ --bs-list-group-bg: var(--bs-danger-bg-subtle);
+ --bs-list-group-border-color: var(--bs-danger-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);
+ --bs-list-group-active-color: var(--bs-danger-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-danger-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);
+}
+
+.list-group-item-light {
+ --bs-list-group-color: var(--bs-light-text-emphasis);
+ --bs-list-group-bg: var(--bs-light-bg-subtle);
+ --bs-list-group-border-color: var(--bs-light-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-light-border-subtle);
+ --bs-list-group-active-color: var(--bs-light-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-light-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-light-text-emphasis);
+}
+
+.list-group-item-dark {
+ --bs-list-group-color: var(--bs-dark-text-emphasis);
+ --bs-list-group-bg: var(--bs-dark-bg-subtle);
+ --bs-list-group-border-color: var(--bs-dark-border-subtle);
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);
+ --bs-list-group-action-active-color: var(--bs-emphasis-color);
+ --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);
+ --bs-list-group-active-color: var(--bs-dark-bg-subtle);
+ --bs-list-group-active-bg: var(--bs-dark-text-emphasis);
+ --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);
+}
+
+.btn-close {
+ --bs-btn-close-color: #000;
+ --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
+ --bs-btn-close-opacity: 0.5;
+ --bs-btn-close-hover-opacity: 0.75;
+ --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+ --bs-btn-close-focus-opacity: 1;
+ --bs-btn-close-disabled-opacity: 0.25;
+ --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
+ box-sizing: content-box;
+ width: 1em;
+ height: 1em;
+ padding: 0.25em 0.25em;
+ color: var(--bs-btn-close-color);
+ background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
+ border: 0;
+ border-radius: 0.375rem;
+ opacity: var(--bs-btn-close-opacity);
+}
+.btn-close:hover {
+ color: var(--bs-btn-close-color);
+ text-decoration: none;
+ opacity: var(--bs-btn-close-hover-opacity);
+}
+.btn-close:focus {
+ outline: 0;
+ box-shadow: var(--bs-btn-close-focus-shadow);
+ opacity: var(--bs-btn-close-focus-opacity);
+}
+.btn-close:disabled, .btn-close.disabled {
+ pointer-events: none;
+ user-select: none;
+ opacity: var(--bs-btn-close-disabled-opacity);
+}
+
+.btn-close-white {
+ filter: var(--bs-btn-close-white-filter);
+}
+
+[data-bs-theme=dark] .btn-close {
+ filter: var(--bs-btn-close-white-filter);
+}
+
+.toast {
+ --bs-toast-zindex: 1090;
+ --bs-toast-padding-x: 0.75rem;
+ --bs-toast-padding-y: 0.5rem;
+ --bs-toast-spacing: 1.5rem;
+ --bs-toast-max-width: 350px;
+ --bs-toast-font-size: 0.875rem;
+ --bs-toast-color: ;
+ --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+ --bs-toast-border-width: var(--bs-border-width);
+ --bs-toast-border-color: var(--bs-border-color-translucent);
+ --bs-toast-border-radius: var(--bs-border-radius);
+ --bs-toast-box-shadow: var(--bs-box-shadow);
+ --bs-toast-header-color: var(--bs-secondary-color);
+ --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);
+ --bs-toast-header-border-color: var(--bs-border-color-translucent);
+ width: var(--bs-toast-max-width);
+ max-width: 100%;
+ font-size: var(--bs-toast-font-size);
+ color: var(--bs-toast-color);
+ pointer-events: auto;
+ background-color: var(--bs-toast-bg);
+ background-clip: padding-box;
+ border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+ box-shadow: var(--bs-toast-box-shadow);
+ border-radius: var(--bs-toast-border-radius);
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+
+.toast-container {
+ --bs-toast-zindex: 1090;
+ position: absolute;
+ z-index: var(--bs-toast-zindex);
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: var(--bs-toast-spacing);
+}
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+ color: var(--bs-toast-header-color);
+ background-color: var(--bs-toast-header-bg);
+ background-clip: padding-box;
+ border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+ border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+ border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+}
+.toast-header .btn-close {
+ margin-right: calc(-0.5 * var(--bs-toast-padding-x));
+ margin-left: var(--bs-toast-padding-x);
+}
+
+.toast-body {
+ padding: var(--bs-toast-padding-x);
+ word-wrap: break-word;
+}
+
+.modal {
+ --bs-modal-zindex: 1055;
+ --bs-modal-width: 500px;
+ --bs-modal-padding: 1rem;
+ --bs-modal-margin: 0.5rem;
+ --bs-modal-color: ;
+ --bs-modal-bg: var(--bs-body-bg);
+ --bs-modal-border-color: var(--bs-border-color-translucent);
+ --bs-modal-border-width: var(--bs-border-width);
+ --bs-modal-border-radius: var(--bs-border-radius-lg);
+ --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+ --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
+ --bs-modal-header-padding-x: 1rem;
+ --bs-modal-header-padding-y: 1rem;
+ --bs-modal-header-padding: 1rem 1rem;
+ --bs-modal-header-border-color: var(--bs-border-color);
+ --bs-modal-header-border-width: var(--bs-border-width);
+ --bs-modal-title-line-height: 1.5;
+ --bs-modal-footer-gap: 0.5rem;
+ --bs-modal-footer-bg: ;
+ --bs-modal-footer-border-color: var(--bs-border-color);
+ --bs-modal-footer-border-width: var(--bs-border-width);
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--bs-modal-zindex);
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: var(--bs-modal-margin);
+ pointer-events: none;
+}
+.modal.fade .modal-dialog {
+ transition: transform 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% - var(--bs-modal-margin) * 2);
+}
+.modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow: hidden;
+}
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - var(--bs-modal-margin) * 2);
+}
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ color: var(--bs-modal-color);
+ pointer-events: auto;
+ background-color: var(--bs-modal-bg);
+ background-clip: padding-box;
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ border-radius: var(--bs-modal-border-radius);
+ outline: 0;
+}
+
+.modal-backdrop {
+ --bs-backdrop-zindex: 1050;
+ --bs-backdrop-bg: #000;
+ --bs-backdrop-opacity: 0.5;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--bs-backdrop-zindex);
+ width: 100vw;
+ height: 100vh;
+ background-color: var(--bs-backdrop-bg);
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: var(--bs-backdrop-opacity);
+}
+
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-modal-header-padding);
+ border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+ border-top-left-radius: var(--bs-modal-inner-border-radius);
+ border-top-right-radius: var(--bs-modal-inner-border-radius);
+}
+.modal-header .btn-close {
+ padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
+ margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
+}
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: var(--bs-modal-title-line-height);
+}
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: var(--bs-modal-padding);
+}
+
+.modal-footer {
+ display: flex;
+ flex-shrink: 0;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: flex-end;
+ padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
+ background-color: var(--bs-modal-footer-bg);
+ border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+ border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+ border-bottom-left-radius: var(--bs-modal-inner-border-radius);
+}
+.modal-footer > * {
+ margin: calc(var(--bs-modal-footer-gap) * 0.5);
+}
+
+@media (min-width: 576px) {
+ .modal {
+ --bs-modal-margin: 1.75rem;
+ --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ }
+ .modal-dialog {
+ max-width: var(--bs-modal-width);
+ margin-right: auto;
+ margin-left: auto;
+ }
+ .modal-sm {
+ --bs-modal-width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg,
+ .modal-xl {
+ --bs-modal-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ --bs-modal-width: 1140px;
+ }
+}
+.modal-fullscreen {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+}
+.modal-fullscreen .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+}
+.modal-fullscreen .modal-header,
+.modal-fullscreen .modal-footer {
+ border-radius: 0;
+}
+.modal-fullscreen .modal-body {
+ overflow-y: auto;
+}
+
+@media (max-width: 575.98px) {
+ .modal-fullscreen-sm-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-sm-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-header,
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0;
+ }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 767.98px) {
+ .modal-fullscreen-md-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-md-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-header,
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0;
+ }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 991.98px) {
+ .modal-fullscreen-lg-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-lg-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-header,
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0;
+ }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 1199.98px) {
+ .modal-fullscreen-xl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-header,
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 1399.98px) {
+ .modal-fullscreen-xxl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-header,
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto;
+ }
+}
+.tooltip {
+ --bs-tooltip-zindex: 1080;
+ --bs-tooltip-max-width: 200px;
+ --bs-tooltip-padding-x: 0.5rem;
+ --bs-tooltip-padding-y: 0.25rem;
+ --bs-tooltip-margin: ;
+ --bs-tooltip-font-size: 0.875rem;
+ --bs-tooltip-color: var(--bs-body-bg);
+ --bs-tooltip-bg: var(--bs-emphasis-color);
+ --bs-tooltip-border-radius: var(--bs-border-radius);
+ --bs-tooltip-opacity: 0.9;
+ --bs-tooltip-arrow-width: 0.8rem;
+ --bs-tooltip-arrow-height: 0.4rem;
+ z-index: var(--bs-tooltip-zindex);
+ display: block;
+ margin: var(--bs-tooltip-margin);
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ white-space: normal;
+ word-spacing: normal;
+ line-break: auto;
+ font-size: var(--bs-tooltip-font-size);
+ word-wrap: break-word;
+ opacity: 0;
+}
+.tooltip.show {
+ opacity: var(--bs-tooltip-opacity);
+}
+.tooltip .tooltip-arrow {
+ display: block;
+ width: var(--bs-tooltip-arrow-width);
+ height: var(--bs-tooltip-arrow-height);
+}
+.tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: calc(-1 * var(--bs-tooltip-arrow-height));
+}
+.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top: -1px;
+ border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+ border-top-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left: calc(-1 * var(--bs-tooltip-arrow-height));
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-tooltip-arrow-width);
+}
+.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ right: -1px;
+ border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+ border-right-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: calc(-1 * var(--bs-tooltip-arrow-height));
+}
+.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+ border-bottom-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right: calc(-1 * var(--bs-tooltip-arrow-height));
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-tooltip-arrow-width);
+}
+.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ left: -1px;
+ border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+ border-left-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.tooltip-inner {
+ max-width: var(--bs-tooltip-max-width);
+ padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+ color: var(--bs-tooltip-color);
+ text-align: center;
+ background-color: var(--bs-tooltip-bg);
+ border-radius: var(--bs-tooltip-border-radius);
+}
+
+.popover {
+ --bs-popover-zindex: 1070;
+ --bs-popover-max-width: 276px;
+ --bs-popover-font-size: 0.875rem;
+ --bs-popover-bg: var(--bs-body-bg);
+ --bs-popover-border-width: var(--bs-border-width);
+ --bs-popover-border-color: var(--bs-border-color-translucent);
+ --bs-popover-border-radius: var(--bs-border-radius-lg);
+ --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));
+ --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-popover-header-padding-x: 1rem;
+ --bs-popover-header-padding-y: 0.5rem;
+ --bs-popover-header-font-size: 1rem;
+ --bs-popover-header-color: inherit;
+ --bs-popover-header-bg: var(--bs-secondary-bg);
+ --bs-popover-body-padding-x: 1rem;
+ --bs-popover-body-padding-y: 1rem;
+ --bs-popover-body-color: var(--bs-body-color);
+ --bs-popover-arrow-width: 1rem;
+ --bs-popover-arrow-height: 0.5rem;
+ --bs-popover-arrow-border: var(--bs-popover-border-color);
+ z-index: var(--bs-popover-zindex);
+ display: block;
+ max-width: var(--bs-popover-max-width);
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ white-space: normal;
+ word-spacing: normal;
+ line-break: auto;
+ font-size: var(--bs-popover-font-size);
+ word-wrap: break-word;
+ background-color: var(--bs-popover-bg);
+ background-clip: padding-box;
+ border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-radius: var(--bs-popover-border-radius);
+}
+.popover .popover-arrow {
+ display: block;
+ width: var(--bs-popover-arrow-width);
+ height: var(--bs-popover-arrow-height);
+}
+.popover .popover-arrow::before, .popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ border-width: 0;
+}
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+ bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+}
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+}
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ bottom: 0;
+ border-top-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ bottom: var(--bs-popover-border-width);
+ border-top-color: var(--bs-popover-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+ left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-popover-arrow-width);
+}
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+}
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ left: 0;
+ border-right-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ left: var(--bs-popover-border-width);
+ border-right-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+ top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+}
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+}
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ top: 0;
+ border-bottom-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ top: var(--bs-popover-border-width);
+ border-bottom-color: var(--bs-popover-bg);
+}
+.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: var(--bs-popover-arrow-width);
+ margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
+ content: "";
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+ right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-popover-arrow-width);
+}
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
+}
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ right: 0;
+ border-left-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ right: var(--bs-popover-border-width);
+ border-left-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.popover-header {
+ padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
+ margin-bottom: 0;
+ font-size: var(--bs-popover-header-font-size);
+ color: var(--bs-popover-header-color);
+ background-color: var(--bs-popover-header-bg);
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-top-left-radius: var(--bs-popover-inner-border-radius);
+ border-top-right-radius: var(--bs-popover-inner-border-radius);
+}
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+ color: var(--bs-popover-body-color);
+}
+
+.carousel {
+ position: relative;
+}
+
+.carousel.pointer-event {
+ touch-action: pan-y;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+.carousel-inner::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.carousel-item {
+ position: relative;
+ display: none;
+ float: left;
+ width: 100%;
+ margin-right: -100%;
+ backface-visibility: hidden;
+ transition: transform 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;
+}
+
+.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%);
+}
+
+.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%;
+}
+.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;
+}
+
+[data-bs-theme=dark] .carousel .carousel-control-prev-icon,
+[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,
+[data-bs-theme=dark].carousel .carousel-control-next-icon {
+ filter: invert(1) grayscale(100);
+}
+[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
+ background-color: #000;
+}
+[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {
+ color: #000;
+}
+
+.spinner-grow,
+.spinner-border {
+ display: inline-block;
+ width: var(--bs-spinner-width);
+ height: var(--bs-spinner-height);
+ vertical-align: var(--bs-spinner-vertical-align);
+ border-radius: 50%;
+ animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
+}
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */;
+ }
+}
+.spinner-border {
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-border-width: 0.25em;
+ --bs-spinner-animation-speed: 0.75s;
+ --bs-spinner-animation-name: spinner-border;
+ border: var(--bs-spinner-border-width) solid currentcolor;
+ border-right-color: transparent;
+}
+
+.spinner-border-sm {
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem;
+ --bs-spinner-border-width: 0.2em;
+}
+
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ transform: none;
+ }
+}
+.spinner-grow {
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-animation-speed: 0.75s;
+ --bs-spinner-animation-name: spinner-grow;
+ background-color: currentcolor;
+ opacity: 0;
+}
+
+.spinner-grow-sm {
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+ .spinner-grow {
+ --bs-spinner-animation-speed: 1.5s;
+ }
+}
+.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
+ --bs-offcanvas-zindex: 1045;
+ --bs-offcanvas-width: 400px;
+ --bs-offcanvas-height: 30vh;
+ --bs-offcanvas-padding-x: 1rem;
+ --bs-offcanvas-padding-y: 1rem;
+ --bs-offcanvas-color: var(--bs-body-color);
+ --bs-offcanvas-bg: var(--bs-body-bg);
+ --bs-offcanvas-border-width: var(--bs-border-width);
+ --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+ --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+ --bs-offcanvas-transition: transform 0.3s ease-in-out;
+ --bs-offcanvas-title-line-height: 1.5;
+}
+
+@media (max-width: 575.98px) {
+ .offcanvas-sm {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+ }
+}
+@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-sm {
+ transition: none;
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+ .offcanvas-sm.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+ .offcanvas-sm.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+ .offcanvas-sm.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+ .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+ transform: none;
+ }
+ .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 576px) {
+ .offcanvas-sm {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-sm .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-sm .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .offcanvas-md {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+ }
+}
+@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-md {
+ transition: none;
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+ .offcanvas-md.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+ .offcanvas-md.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+ .offcanvas-md.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+ .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+ transform: none;
+ }
+ .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 768px) {
+ .offcanvas-md {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-md .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-md .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 991.98px) {
+ .offcanvas-lg {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+ }
+}
+@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-lg {
+ transition: none;
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+ .offcanvas-lg.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+ .offcanvas-lg.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+ .offcanvas-lg.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+ .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+ transform: none;
+ }
+ .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 992px) {
+ .offcanvas-lg {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-lg .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-lg .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 1199.98px) {
+ .offcanvas-xl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+ }
+}
+@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-xl {
+ transition: none;
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+ .offcanvas-xl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+ .offcanvas-xl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+ .offcanvas-xl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+ .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+ transform: none;
+ }
+ .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 1200px) {
+ .offcanvas-xl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-xl .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-xl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+ }
+}
+@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-xxl {
+ transition: none;
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+ .offcanvas-xxl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+ .offcanvas-xxl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+ .offcanvas-xxl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+ .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+ transform: none;
+ }
+ .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 1400px) {
+ .offcanvas-xxl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-xxl .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-xxl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+.offcanvas {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: var(--bs-offcanvas-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .offcanvas {
+ transition: none;
+ }
+}
+.offcanvas.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+}
+.offcanvas.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+}
+.offcanvas.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+}
+.offcanvas.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+}
+.offcanvas.showing, .offcanvas.show:not(.hiding) {
+ transform: none;
+}
+.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
+ visibility: visible;
+}
+
+.offcanvas-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.offcanvas-backdrop.fade {
+ opacity: 0;
+}
+.offcanvas-backdrop.show {
+ opacity: 0.5;
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+}
+.offcanvas-header .btn-close {
+ padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
+ margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
+ margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
+ margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: var(--bs-offcanvas-title-line-height);
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+ overflow-y: auto;
+}
+
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentcolor;
+ opacity: 0.5;
+}
+.placeholder.btn::before {
+ display: inline-block;
+ content: "";
+}
+
+.placeholder-xs {
+ min-height: 0.6em;
+}
+
+.placeholder-sm {
+ min-height: 0.8em;
+}
+
+.placeholder-lg {
+ min-height: 1.2em;
+}
+
+.placeholder-glow .placeholder {
+ animation: placeholder-glow 2s ease-in-out infinite;
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+.placeholder-wave {
+ mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
+ mask-size: 200% 100%;
+ animation: placeholder-wave 2s linear infinite;
+}
+
+@keyframes placeholder-wave {
+ 100% {
+ mask-position: -200% 0%;
+ }
+}
+.clearfix::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.text-bg-primary {
+ color: #fff !important;
+ background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-secondary {
+ color: #fff !important;
+ background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-success {
+ color: #fff !important;
+ background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-info {
+ color: #000 !important;
+ background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-warning {
+ color: #000 !important;
+ background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-danger {
+ color: #fff !important;
+ background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-light {
+ color: #000 !important;
+ background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-dark {
+ color: #fff !important;
+ background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;
+}
+
+.link-primary {
+ color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-primary:hover, .link-primary:focus {
+ color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-secondary {
+ color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-secondary:hover, .link-secondary:focus {
+ color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-success {
+ color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-success:hover, .link-success:focus {
+ color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-info {
+ color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-info:hover, .link-info:focus {
+ color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-warning {
+ color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-warning:hover, .link-warning:focus {
+ color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-danger {
+ color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-danger:hover, .link-danger:focus {
+ color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-light {
+ color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-light:hover, .link-light:focus {
+ color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-dark {
+ color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-dark:hover, .link-dark:focus {
+ color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-body-emphasis {
+ color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
+ text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+.link-body-emphasis:hover, .link-body-emphasis:focus {
+ color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
+ text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
+}
+
+.focus-ring:focus {
+ outline: 0;
+ box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);
+}
+
+.icon-link {
+ display: inline-flex;
+ gap: 0.375rem;
+ align-items: center;
+ text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));
+ text-underline-offset: 0.25em;
+ backface-visibility: hidden;
+}
+.icon-link > .bi {
+ flex-shrink: 0;
+ width: 1em;
+ height: 1em;
+ fill: currentcolor;
+ transition: 0.2s ease-in-out transform;
+}
+@media (prefers-reduced-motion: reduce) {
+ .icon-link > .bi {
+ transition: none;
+ }
+}
+
+.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {
+ transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));
+}
+
+.ratio {
+ position: relative;
+ width: 100%;
+}
+.ratio::before {
+ display: block;
+ padding-top: var(--bs-aspect-ratio);
+ content: "";
+}
+.ratio > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.ratio-1x1 {
+ --bs-aspect-ratio: 100%;
+}
+
+.ratio-4x3 {
+ --bs-aspect-ratio: 75%;
+}
+
+.ratio-16x9 {
+ --bs-aspect-ratio: 56.25%;
+}
+
+.ratio-21x9 {
+ --bs-aspect-ratio: 42.8571428571%;
+}
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.sticky-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+}
+
+.sticky-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+}
+
+@media (min-width: 576px) {
+ .sticky-sm-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+ .sticky-sm-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 768px) {
+ .sticky-md-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+ .sticky-md-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 992px) {
+ .sticky-lg-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+ .sticky-lg-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 1200px) {
+ .sticky-xl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+ .sticky-xl-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 1400px) {
+ .sticky-xxl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+ .sticky-xxl-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020;
+ }
+}
+.hstack {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ align-self: stretch;
+}
+
+.vstack {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ align-self: stretch;
+}
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+.visually-hidden:not(caption),
+.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
+ position: absolute !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;
+}
+
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: var(--bs-border-width);
+ min-height: 1em;
+ background-color: currentcolor;
+ opacity: 0.25;
+}
+
+.align-baseline {
+ vertical-align: baseline !important;
+}
+
+.align-top {
+ vertical-align: top !important;
+}
+
+.align-middle {
+ vertical-align: middle !important;
+}
+
+.align-bottom {
+ vertical-align: bottom !important;
+}
+
+.align-text-bottom {
+ vertical-align: text-bottom !important;
+}
+
+.align-text-top {
+ vertical-align: text-top !important;
+}
+
+.float-start {
+ float: left !important;
+}
+
+.float-end {
+ float: right !important;
+}
+
+.float-none {
+ float: none !important;
+}
+
+.object-fit-contain {
+ object-fit: contain !important;
+}
+
+.object-fit-cover {
+ object-fit: cover !important;
+}
+
+.object-fit-fill {
+ object-fit: fill !important;
+}
+
+.object-fit-scale {
+ object-fit: scale-down !important;
+}
+
+.object-fit-none {
+ object-fit: none !important;
+}
+
+.opacity-0 {
+ opacity: 0 !important;
+}
+
+.opacity-25 {
+ opacity: 0.25 !important;
+}
+
+.opacity-50 {
+ opacity: 0.5 !important;
+}
+
+.opacity-75 {
+ opacity: 0.75 !important;
+}
+
+.opacity-100 {
+ opacity: 1 !important;
+}
+
+.overflow-auto {
+ overflow: auto !important;
+}
+
+.overflow-hidden {
+ overflow: hidden !important;
+}
+
+.overflow-visible {
+ overflow: visible !important;
+}
+
+.overflow-scroll {
+ overflow: scroll !important;
+}
+
+.overflow-x-auto {
+ overflow-x: auto !important;
+}
+
+.overflow-x-hidden {
+ overflow-x: hidden !important;
+}
+
+.overflow-x-visible {
+ overflow-x: visible !important;
+}
+
+.overflow-x-scroll {
+ overflow-x: scroll !important;
+}
+
+.overflow-y-auto {
+ overflow-y: auto !important;
+}
+
+.overflow-y-hidden {
+ overflow-y: hidden !important;
+}
+
+.overflow-y-visible {
+ overflow-y: visible !important;
+}
+
+.overflow-y-scroll {
+ overflow-y: scroll !important;
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-block {
+ display: block !important;
+}
+
+.d-grid {
+ display: grid !important;
+}
+
+.d-inline-grid {
+ display: inline-grid !important;
+}
+
+.d-table {
+ display: table !important;
+}
+
+.d-table-row {
+ display: table-row !important;
+}
+
+.d-table-cell {
+ display: table-cell !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+.shadow {
+ box-shadow: 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;
+}
+
+.focus-ring-primary {
+ --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-secondary {
+ --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-success {
+ --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-info {
+ --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-warning {
+ --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-danger {
+ --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-light {
+ --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));
+}
+
+.focus-ring-dark {
+ --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));
+}
+
+.position-static {
+ position: static !important;
+}
+
+.position-relative {
+ position: relative !important;
+}
+
+.position-absolute {
+ position: absolute !important;
+}
+
+.position-fixed {
+ position: fixed !important;
+}
+
+.position-sticky {
+ position: sticky !important;
+}
+
+.top-0 {
+ top: 0 !important;
+}
+
+.top-50 {
+ top: 50% !important;
+}
+
+.top-100 {
+ top: 100% !important;
+}
+
+.bottom-0 {
+ bottom: 0 !important;
+}
+
+.bottom-50 {
+ bottom: 50% !important;
+}
+
+.bottom-100 {
+ bottom: 100% !important;
+}
+
+.start-0 {
+ left: 0 !important;
+}
+
+.start-50 {
+ left: 50% !important;
+}
+
+.start-100 {
+ left: 100% !important;
+}
+
+.end-0 {
+ right: 0 !important;
+}
+
+.end-50 {
+ right: 50% !important;
+}
+
+.end-100 {
+ right: 100% !important;
+}
+
+.translate-middle {
+ transform: translate(-50%, -50%) !important;
+}
+
+.translate-middle-x {
+ transform: translateX(-50%) !important;
+}
+
+.translate-middle-y {
+ transform: translateY(-50%) !important;
+}
+
+.border {
+ border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-0 {
+ border: 0 !important;
+}
+
+.border-top {
+ border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-top-0 {
+ border-top: 0 !important;
+}
+
+.border-end {
+ border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-end-0 {
+ border-right: 0 !important;
+}
+
+.border-bottom {
+ border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-bottom-0 {
+ border-bottom: 0 !important;
+}
+
+.border-start {
+ border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-start-0 {
+ border-left: 0 !important;
+}
+
+.border-primary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-secondary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-success {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-info {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-warning {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-danger {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-light {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-dark {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-black {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-white {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-primary-subtle {
+ border-color: var(--bs-primary-border-subtle) !important;
+}
+
+.border-secondary-subtle {
+ border-color: var(--bs-secondary-border-subtle) !important;
+}
+
+.border-success-subtle {
+ border-color: var(--bs-success-border-subtle) !important;
+}
+
+.border-info-subtle {
+ border-color: var(--bs-info-border-subtle) !important;
+}
+
+.border-warning-subtle {
+ border-color: var(--bs-warning-border-subtle) !important;
+}
+
+.border-danger-subtle {
+ border-color: var(--bs-danger-border-subtle) !important;
+}
+
+.border-light-subtle {
+ border-color: var(--bs-light-border-subtle) !important;
+}
+
+.border-dark-subtle {
+ border-color: var(--bs-dark-border-subtle) !important;
+}
+
+.border-1 {
+ border-width: 1px !important;
+}
+
+.border-2 {
+ border-width: 2px !important;
+}
+
+.border-3 {
+ border-width: 3px !important;
+}
+
+.border-4 {
+ border-width: 4px !important;
+}
+
+.border-5 {
+ border-width: 5px !important;
+}
+
+.border-opacity-10 {
+ --bs-border-opacity: 0.1;
+}
+
+.border-opacity-25 {
+ --bs-border-opacity: 0.25;
+}
+
+.border-opacity-50 {
+ --bs-border-opacity: 0.5;
+}
+
+.border-opacity-75 {
+ --bs-border-opacity: 0.75;
+}
+
+.border-opacity-100 {
+ --bs-border-opacity: 1;
+}
+
+.w-25 {
+ width: 25% !important;
+}
+
+.w-50 {
+ width: 50% !important;
+}
+
+.w-75 {
+ width: 75% !important;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.w-auto {
+ width: auto !important;
+}
+
+.mw-100 {
+ max-width: 100% !important;
+}
+
+.vw-100 {
+ width: 100vw !important;
+}
+
+.min-vw-100 {
+ min-width: 100vw !important;
+}
+
+.h-25 {
+ height: 25% !important;
+}
+
+.h-50 {
+ height: 50% !important;
+}
+
+.h-75 {
+ height: 75% !important;
+}
+
+.h-100 {
+ height: 100% !important;
+}
+
+.h-auto {
+ height: auto !important;
+}
+
+.mh-100 {
+ max-height: 100% !important;
+}
+
+.vh-100 {
+ height: 100vh !important;
+}
+
+.min-vh-100 {
+ min-height: 100vh !important;
+}
+
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+
+.flex-row {
+ flex-direction: row !important;
+}
+
+.flex-column {
+ flex-direction: column !important;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
+
+.justify-content-between {
+ justify-content: space-between !important;
+}
+
+.justify-content-around {
+ justify-content: space-around !important;
+}
+
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+
+.align-items-start {
+ align-items: flex-start !important;
+}
+
+.align-items-end {
+ align-items: flex-end !important;
+}
+
+.align-items-center {
+ align-items: center !important;
+}
+
+.align-items-baseline {
+ align-items: baseline !important;
+}
+
+.align-items-stretch {
+ align-items: stretch !important;
+}
+
+.align-content-start {
+ align-content: flex-start !important;
+}
+
+.align-content-end {
+ align-content: flex-end !important;
+}
+
+.align-content-center {
+ align-content: center !important;
+}
+
+.align-content-between {
+ align-content: space-between !important;
+}
+
+.align-content-around {
+ align-content: space-around !important;
+}
+
+.align-content-stretch {
+ align-content: stretch !important;
+}
+
+.align-self-auto {
+ align-self: auto !important;
+}
+
+.align-self-start {
+ align-self: flex-start !important;
+}
+
+.align-self-end {
+ align-self: flex-end !important;
+}
+
+.align-self-center {
+ align-self: center !important;
+}
+
+.align-self-baseline {
+ align-self: baseline !important;
+}
+
+.align-self-stretch {
+ align-self: stretch !important;
+}
+
+.order-first {
+ order: -1 !important;
+}
+
+.order-0 {
+ order: 0 !important;
+}
+
+.order-1 {
+ order: 1 !important;
+}
+
+.order-2 {
+ order: 2 !important;
+}
+
+.order-3 {
+ order: 3 !important;
+}
+
+.order-4 {
+ order: 4 !important;
+}
+
+.order-5 {
+ order: 5 !important;
+}
+
+.order-last {
+ order: 6 !important;
+}
+
+.m-0 {
+ margin: 0 !important;
+}
+
+.m-1 {
+ margin: 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;
+}
+
+.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;
+}
+
+.row-gap-0 {
+ row-gap: 0 !important;
+}
+
+.row-gap-1 {
+ row-gap: 0.25rem !important;
+}
+
+.row-gap-2 {
+ row-gap: 0.5rem !important;
+}
+
+.row-gap-3 {
+ row-gap: 1rem !important;
+}
+
+.row-gap-4 {
+ row-gap: 1.5rem !important;
+}
+
+.row-gap-5 {
+ row-gap: 3rem !important;
+}
+
+.column-gap-0 {
+ column-gap: 0 !important;
+}
+
+.column-gap-1 {
+ column-gap: 0.25rem !important;
+}
+
+.column-gap-2 {
+ column-gap: 0.5rem !important;
+}
+
+.column-gap-3 {
+ column-gap: 1rem !important;
+}
+
+.column-gap-4 {
+ column-gap: 1.5rem !important;
+}
+
+.column-gap-5 {
+ column-gap: 3rem !important;
+}
+
+.font-monospace {
+ font-family: var(--bs-font-monospace) !important;
+}
+
+.fs-1 {
+ font-size: calc(1.375rem + 1.5vw) !important;
+}
+
+.fs-2 {
+ font-size: calc(1.325rem + 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-lighter {
+ font-weight: lighter !important;
+}
+
+.fw-light {
+ font-weight: 300 !important;
+}
+
+.fw-normal {
+ font-weight: 400 !important;
+}
+
+.fw-medium {
+ font-weight: 500 !important;
+}
+
+.fw-semibold {
+ font-weight: 600 !important;
+}
+
+.fw-bold {
+ font-weight: 700 !important;
+}
+
+.fw-bolder {
+ font-weight: bolder !important;
+}
+
+.lh-1 {
+ line-height: 1 !important;
+}
+
+.lh-sm {
+ line-height: 1.25 !important;
+}
+
+.lh-base {
+ line-height: 1.5 !important;
+}
+
+.lh-lg {
+ line-height: 2 !important;
+}
+
+.text-start {
+ text-align: left !important;
+}
+
+.text-end {
+ text-align: right !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+
+.text-decoration-none {
+ text-decoration: none !important;
+}
+
+.text-decoration-underline {
+ text-decoration: underline !important;
+}
+
+.text-decoration-line-through {
+ text-decoration: line-through !important;
+}
+
+.text-lowercase {
+ text-transform: lowercase !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
+
+.text-capitalize {
+ text-transform: capitalize !important;
+}
+
+.text-wrap {
+ white-space: normal !important;
+}
+
+.text-nowrap {
+ white-space: nowrap !important;
+}
+
+/* rtl:begin:remove */
+.text-break {
+ word-wrap: break-word !important;
+ word-break: break-word !important;
+}
+
+/* rtl:end:remove */
+.text-primary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-secondary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-success {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-info {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-warning {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-danger {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-light {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-dark {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-black {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-white {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-body {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-muted {
+ --bs-text-opacity: 1;
+ color: var(--bs-secondary-color) !important;
+}
+
+.text-black-50 {
+ --bs-text-opacity: 1;
+ color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+ --bs-text-opacity: 1;
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
+.text-body-secondary {
+ --bs-text-opacity: 1;
+ color: var(--bs-secondary-color) !important;
+}
+
+.text-body-tertiary {
+ --bs-text-opacity: 1;
+ color: var(--bs-tertiary-color) !important;
+}
+
+.text-body-emphasis {
+ --bs-text-opacity: 1;
+ color: var(--bs-emphasis-color) !important;
+}
+
+.text-reset {
+ --bs-text-opacity: 1;
+ color: inherit !important;
+}
+
+.text-opacity-25 {
+ --bs-text-opacity: 0.25;
+}
+
+.text-opacity-50 {
+ --bs-text-opacity: 0.5;
+}
+
+.text-opacity-75 {
+ --bs-text-opacity: 0.75;
+}
+
+.text-opacity-100 {
+ --bs-text-opacity: 1;
+}
+
+.text-primary-emphasis {
+ color: var(--bs-primary-text-emphasis) !important;
+}
+
+.text-secondary-emphasis {
+ color: var(--bs-secondary-text-emphasis) !important;
+}
+
+.text-success-emphasis {
+ color: var(--bs-success-text-emphasis) !important;
+}
+
+.text-info-emphasis {
+ color: var(--bs-info-text-emphasis) !important;
+}
+
+.text-warning-emphasis {
+ color: var(--bs-warning-text-emphasis) !important;
+}
+
+.text-danger-emphasis {
+ color: var(--bs-danger-text-emphasis) !important;
+}
+
+.text-light-emphasis {
+ color: var(--bs-light-text-emphasis) !important;
+}
+
+.text-dark-emphasis {
+ color: var(--bs-dark-text-emphasis) !important;
+}
+
+.link-opacity-10 {
+ --bs-link-opacity: 0.1;
+}
+
+.link-opacity-10-hover:hover {
+ --bs-link-opacity: 0.1;
+}
+
+.link-opacity-25 {
+ --bs-link-opacity: 0.25;
+}
+
+.link-opacity-25-hover:hover {
+ --bs-link-opacity: 0.25;
+}
+
+.link-opacity-50 {
+ --bs-link-opacity: 0.5;
+}
+
+.link-opacity-50-hover:hover {
+ --bs-link-opacity: 0.5;
+}
+
+.link-opacity-75 {
+ --bs-link-opacity: 0.75;
+}
+
+.link-opacity-75-hover:hover {
+ --bs-link-opacity: 0.75;
+}
+
+.link-opacity-100 {
+ --bs-link-opacity: 1;
+}
+
+.link-opacity-100-hover:hover {
+ --bs-link-opacity: 1;
+}
+
+.link-offset-1 {
+ text-underline-offset: 0.125em !important;
+}
+
+.link-offset-1-hover:hover {
+ text-underline-offset: 0.125em !important;
+}
+
+.link-offset-2 {
+ text-underline-offset: 0.25em !important;
+}
+
+.link-offset-2-hover:hover {
+ text-underline-offset: 0.25em !important;
+}
+
+.link-offset-3 {
+ text-underline-offset: 0.375em !important;
+}
+
+.link-offset-3-hover:hover {
+ text-underline-offset: 0.375em !important;
+}
+
+.link-underline-primary {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-secondary {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-success {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-info {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-warning {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-danger {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-light {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline-dark {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
+}
+
+.link-underline {
+ --bs-link-underline-opacity: 1;
+ text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
+}
+
+.link-underline-opacity-0 {
+ --bs-link-underline-opacity: 0;
+}
+
+.link-underline-opacity-0-hover:hover {
+ --bs-link-underline-opacity: 0;
+}
+
+.link-underline-opacity-10 {
+ --bs-link-underline-opacity: 0.1;
+}
+
+.link-underline-opacity-10-hover:hover {
+ --bs-link-underline-opacity: 0.1;
+}
+
+.link-underline-opacity-25 {
+ --bs-link-underline-opacity: 0.25;
+}
+
+.link-underline-opacity-25-hover:hover {
+ --bs-link-underline-opacity: 0.25;
+}
+
+.link-underline-opacity-50 {
+ --bs-link-underline-opacity: 0.5;
+}
+
+.link-underline-opacity-50-hover:hover {
+ --bs-link-underline-opacity: 0.5;
+}
+
+.link-underline-opacity-75 {
+ --bs-link-underline-opacity: 0.75;
+}
+
+.link-underline-opacity-75-hover:hover {
+ --bs-link-underline-opacity: 0.75;
+}
+
+.link-underline-opacity-100 {
+ --bs-link-underline-opacity: 1;
+}
+
+.link-underline-opacity-100-hover:hover {
+ --bs-link-underline-opacity: 1;
+}
+
+.bg-primary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-success {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-info {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-warning {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-danger {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-light {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-dark {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-black {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-white {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-transparent {
+ --bs-bg-opacity: 1;
+ background-color: transparent !important;
+}
+
+.bg-body-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body-tertiary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-opacity-10 {
+ --bs-bg-opacity: 0.1;
+}
+
+.bg-opacity-25 {
+ --bs-bg-opacity: 0.25;
+}
+
+.bg-opacity-50 {
+ --bs-bg-opacity: 0.5;
+}
+
+.bg-opacity-75 {
+ --bs-bg-opacity: 0.75;
+}
+
+.bg-opacity-100 {
+ --bs-bg-opacity: 1;
+}
+
+.bg-primary-subtle {
+ background-color: var(--bs-primary-bg-subtle) !important;
+}
+
+.bg-secondary-subtle {
+ background-color: var(--bs-secondary-bg-subtle) !important;
+}
+
+.bg-success-subtle {
+ background-color: var(--bs-success-bg-subtle) !important;
+}
+
+.bg-info-subtle {
+ background-color: var(--bs-info-bg-subtle) !important;
+}
+
+.bg-warning-subtle {
+ background-color: var(--bs-warning-bg-subtle) !important;
+}
+
+.bg-danger-subtle {
+ background-color: var(--bs-danger-bg-subtle) !important;
+}
+
+.bg-light-subtle {
+ background-color: var(--bs-light-bg-subtle) !important;
+}
+
+.bg-dark-subtle {
+ background-color: var(--bs-dark-bg-subtle) !important;
+}
+
+.bg-gradient {
+ background-image: var(--bs-gradient) !important;
+}
+
+.user-select-all {
+ user-select: all !important;
+}
+
+.user-select-auto {
+ user-select: auto !important;
+}
+
+.user-select-none {
+ user-select: none !important;
+}
+
+.pe-none {
+ pointer-events: none !important;
+}
+
+.pe-auto {
+ pointer-events: auto !important;
+}
+
+.rounded {
+ border-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-0 {
+ border-radius: 0 !important;
+}
+
+.rounded-1 {
+ border-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-2 {
+ border-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-3 {
+ border-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-4 {
+ border-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-5 {
+ border-radius: var(--bs-border-radius-xxl) !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.rounded-pill {
+ border-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-top {
+ border-top-left-radius: var(--bs-border-radius) !important;
+ border-top-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-top-0 {
+ border-top-left-radius: 0 !important;
+ border-top-right-radius: 0 !important;
+}
+
+.rounded-top-1 {
+ border-top-left-radius: var(--bs-border-radius-sm) !important;
+ border-top-right-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-top-2 {
+ border-top-left-radius: var(--bs-border-radius) !important;
+ border-top-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-top-3 {
+ border-top-left-radius: var(--bs-border-radius-lg) !important;
+ border-top-right-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-top-4 {
+ border-top-left-radius: var(--bs-border-radius-xl) !important;
+ border-top-right-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-top-5 {
+ border-top-left-radius: var(--bs-border-radius-xxl) !important;
+ border-top-right-radius: var(--bs-border-radius-xxl) !important;
+}
+
+.rounded-top-circle {
+ border-top-left-radius: 50% !important;
+ border-top-right-radius: 50% !important;
+}
+
+.rounded-top-pill {
+ border-top-left-radius: var(--bs-border-radius-pill) !important;
+ border-top-right-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-end {
+ border-top-right-radius: var(--bs-border-radius) !important;
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-end-0 {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.rounded-end-1 {
+ border-top-right-radius: var(--bs-border-radius-sm) !important;
+ border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-end-2 {
+ border-top-right-radius: var(--bs-border-radius) !important;
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-end-3 {
+ border-top-right-radius: var(--bs-border-radius-lg) !important;
+ border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-end-4 {
+ border-top-right-radius: var(--bs-border-radius-xl) !important;
+ border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-end-5 {
+ border-top-right-radius: var(--bs-border-radius-xxl) !important;
+ border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+}
+
+.rounded-end-circle {
+ border-top-right-radius: 50% !important;
+ border-bottom-right-radius: 50% !important;
+}
+
+.rounded-end-pill {
+ border-top-right-radius: var(--bs-border-radius-pill) !important;
+ border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-bottom {
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-bottom-0 {
+ border-bottom-right-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
+
+.rounded-bottom-1 {
+ border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+ border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-bottom-2 {
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-bottom-3 {
+ border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+ border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-bottom-4 {
+ border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+ border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-bottom-5 {
+ border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
+ border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+}
+
+.rounded-bottom-circle {
+ border-bottom-right-radius: 50% !important;
+ border-bottom-left-radius: 50% !important;
+}
+
+.rounded-bottom-pill {
+ border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+ border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-start {
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+ border-top-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-start-0 {
+ border-bottom-left-radius: 0 !important;
+ border-top-left-radius: 0 !important;
+}
+
+.rounded-start-1 {
+ border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+ border-top-left-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-start-2 {
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+ border-top-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-start-3 {
+ border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+ border-top-left-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-start-4 {
+ border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+ border-top-left-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-start-5 {
+ border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
+ border-top-left-radius: var(--bs-border-radius-xxl) !important;
+}
+
+.rounded-start-circle {
+ border-bottom-left-radius: 50% !important;
+ border-top-left-radius: 50% !important;
+}
+
+.rounded-start-pill {
+ border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+ border-top-left-radius: var(--bs-border-radius-pill) !important;
+}
+
+.visible {
+ visibility: visible !important;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+.z-n1 {
+ z-index: -1 !important;
+}
+
+.z-0 {
+ z-index: 0 !important;
+}
+
+.z-1 {
+ z-index: 1 !important;
+}
+
+.z-2 {
+ z-index: 2 !important;
+}
+
+.z-3 {
+ z-index: 3 !important;
+}
+
+@media (min-width: 576px) {
+ .float-sm-start {
+ float: left !important;
+ }
+ .float-sm-end {
+ float: right !important;
+ }
+ .float-sm-none {
+ float: none !important;
+ }
+ .object-fit-sm-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-sm-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-sm-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-sm-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-sm-none {
+ object-fit: none !important;
+ }
+ .d-sm-inline {
+ display: inline !important;
+ }
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+ .d-sm-block {
+ display: block !important;
+ }
+ .d-sm-grid {
+ display: grid !important;
+ }
+ .d-sm-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-sm-table {
+ display: table !important;
+ }
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+ .d-sm-flex {
+ display: flex !important;
+ }
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-sm-none {
+ display: none !important;
+ }
+ .flex-sm-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-sm-row {
+ flex-direction: row !important;
+ }
+ .flex-sm-column {
+ flex-direction: column !important;
+ }
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-sm-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-sm-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-sm-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-sm-center {
+ justify-content: center !important;
+ }
+ .justify-content-sm-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-sm-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-sm-start {
+ align-items: flex-start !important;
+ }
+ .align-items-sm-end {
+ align-items: flex-end !important;
+ }
+ .align-items-sm-center {
+ align-items: center !important;
+ }
+ .align-items-sm-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-sm-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-sm-start {
+ align-content: flex-start !important;
+ }
+ .align-content-sm-end {
+ align-content: flex-end !important;
+ }
+ .align-content-sm-center {
+ align-content: center !important;
+ }
+ .align-content-sm-between {
+ align-content: space-between !important;
+ }
+ .align-content-sm-around {
+ align-content: space-around !important;
+ }
+ .align-content-sm-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-sm-auto {
+ align-self: auto !important;
+ }
+ .align-self-sm-start {
+ align-self: flex-start !important;
+ }
+ .align-self-sm-end {
+ align-self: flex-end !important;
+ }
+ .align-self-sm-center {
+ align-self: center !important;
+ }
+ .align-self-sm-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-sm-stretch {
+ align-self: stretch !important;
+ }
+ .order-sm-first {
+ order: -1 !important;
+ }
+ .order-sm-0 {
+ order: 0 !important;
+ }
+ .order-sm-1 {
+ order: 1 !important;
+ }
+ .order-sm-2 {
+ order: 2 !important;
+ }
+ .order-sm-3 {
+ order: 3 !important;
+ }
+ .order-sm-4 {
+ order: 4 !important;
+ }
+ .order-sm-5 {
+ order: 5 !important;
+ }
+ .order-sm-last {
+ order: 6 !important;
+ }
+ .m-sm-0 {
+ margin: 0 !important;
+ }
+ .m-sm-1 {
+ margin: 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;
+ }
+ .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;
+ }
+ .row-gap-sm-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-sm-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-sm-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-sm-3 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-sm-4 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-sm-5 {
+ row-gap: 3rem !important;
+ }
+ .column-gap-sm-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-sm-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-sm-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-sm-3 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-sm-4 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-sm-5 {
+ column-gap: 3rem !important;
+ }
+ .text-sm-start {
+ text-align: left !important;
+ }
+ .text-sm-end {
+ text-align: right !important;
+ }
+ .text-sm-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 768px) {
+ .float-md-start {
+ float: left !important;
+ }
+ .float-md-end {
+ float: right !important;
+ }
+ .float-md-none {
+ float: none !important;
+ }
+ .object-fit-md-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-md-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-md-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-md-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-md-none {
+ object-fit: none !important;
+ }
+ .d-md-inline {
+ display: inline !important;
+ }
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+ .d-md-block {
+ display: block !important;
+ }
+ .d-md-grid {
+ display: grid !important;
+ }
+ .d-md-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-md-table {
+ display: table !important;
+ }
+ .d-md-table-row {
+ display: table-row !important;
+ }
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+ .d-md-flex {
+ display: flex !important;
+ }
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-md-none {
+ display: none !important;
+ }
+ .flex-md-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+ .flex-md-column {
+ flex-direction: column !important;
+ }
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-md-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-md-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-md-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-md-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-md-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-md-center {
+ justify-content: center !important;
+ }
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-md-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-md-start {
+ align-items: flex-start !important;
+ }
+ .align-items-md-end {
+ align-items: flex-end !important;
+ }
+ .align-items-md-center {
+ align-items: center !important;
+ }
+ .align-items-md-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-md-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-md-start {
+ align-content: flex-start !important;
+ }
+ .align-content-md-end {
+ align-content: flex-end !important;
+ }
+ .align-content-md-center {
+ align-content: center !important;
+ }
+ .align-content-md-between {
+ align-content: space-between !important;
+ }
+ .align-content-md-around {
+ align-content: space-around !important;
+ }
+ .align-content-md-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-md-auto {
+ align-self: auto !important;
+ }
+ .align-self-md-start {
+ align-self: flex-start !important;
+ }
+ .align-self-md-end {
+ align-self: flex-end !important;
+ }
+ .align-self-md-center {
+ align-self: center !important;
+ }
+ .align-self-md-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-md-stretch {
+ align-self: stretch !important;
+ }
+ .order-md-first {
+ order: -1 !important;
+ }
+ .order-md-0 {
+ order: 0 !important;
+ }
+ .order-md-1 {
+ order: 1 !important;
+ }
+ .order-md-2 {
+ order: 2 !important;
+ }
+ .order-md-3 {
+ order: 3 !important;
+ }
+ .order-md-4 {
+ order: 4 !important;
+ }
+ .order-md-5 {
+ order: 5 !important;
+ }
+ .order-md-last {
+ order: 6 !important;
+ }
+ .m-md-0 {
+ margin: 0 !important;
+ }
+ .m-md-1 {
+ margin: 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;
+ }
+ .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;
+ }
+ .row-gap-md-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-md-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-md-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-md-3 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-md-4 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-md-5 {
+ row-gap: 3rem !important;
+ }
+ .column-gap-md-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-md-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-md-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-md-3 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-md-4 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-md-5 {
+ column-gap: 3rem !important;
+ }
+ .text-md-start {
+ text-align: left !important;
+ }
+ .text-md-end {
+ text-align: right !important;
+ }
+ .text-md-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 992px) {
+ .float-lg-start {
+ float: left !important;
+ }
+ .float-lg-end {
+ float: right !important;
+ }
+ .float-lg-none {
+ float: none !important;
+ }
+ .object-fit-lg-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-lg-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-lg-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-lg-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-lg-none {
+ object-fit: none !important;
+ }
+ .d-lg-inline {
+ display: inline !important;
+ }
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+ .d-lg-block {
+ display: block !important;
+ }
+ .d-lg-grid {
+ display: grid !important;
+ }
+ .d-lg-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-lg-table {
+ display: table !important;
+ }
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+ .d-lg-flex {
+ display: flex !important;
+ }
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-lg-none {
+ display: none !important;
+ }
+ .flex-lg-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-lg-row {
+ flex-direction: row !important;
+ }
+ .flex-lg-column {
+ flex-direction: column !important;
+ }
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-lg-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-lg-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-lg-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-lg-center {
+ justify-content: center !important;
+ }
+ .justify-content-lg-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-lg-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-lg-start {
+ align-items: flex-start !important;
+ }
+ .align-items-lg-end {
+ align-items: flex-end !important;
+ }
+ .align-items-lg-center {
+ align-items: center !important;
+ }
+ .align-items-lg-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-lg-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-lg-start {
+ align-content: flex-start !important;
+ }
+ .align-content-lg-end {
+ align-content: flex-end !important;
+ }
+ .align-content-lg-center {
+ align-content: center !important;
+ }
+ .align-content-lg-between {
+ align-content: space-between !important;
+ }
+ .align-content-lg-around {
+ align-content: space-around !important;
+ }
+ .align-content-lg-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-lg-auto {
+ align-self: auto !important;
+ }
+ .align-self-lg-start {
+ align-self: flex-start !important;
+ }
+ .align-self-lg-end {
+ align-self: flex-end !important;
+ }
+ .align-self-lg-center {
+ align-self: center !important;
+ }
+ .align-self-lg-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-lg-stretch {
+ align-self: stretch !important;
+ }
+ .order-lg-first {
+ order: -1 !important;
+ }
+ .order-lg-0 {
+ order: 0 !important;
+ }
+ .order-lg-1 {
+ order: 1 !important;
+ }
+ .order-lg-2 {
+ order: 2 !important;
+ }
+ .order-lg-3 {
+ order: 3 !important;
+ }
+ .order-lg-4 {
+ order: 4 !important;
+ }
+ .order-lg-5 {
+ order: 5 !important;
+ }
+ .order-lg-last {
+ order: 6 !important;
+ }
+ .m-lg-0 {
+ margin: 0 !important;
+ }
+ .m-lg-1 {
+ margin: 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;
+ }
+ .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;
+ }
+ .row-gap-lg-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-lg-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-lg-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-lg-3 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-lg-4 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-lg-5 {
+ row-gap: 3rem !important;
+ }
+ .column-gap-lg-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-lg-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-lg-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-lg-3 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-lg-4 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-lg-5 {
+ column-gap: 3rem !important;
+ }
+ .text-lg-start {
+ text-align: left !important;
+ }
+ .text-lg-end {
+ text-align: right !important;
+ }
+ .text-lg-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1200px) {
+ .float-xl-start {
+ float: left !important;
+ }
+ .float-xl-end {
+ float: right !important;
+ }
+ .float-xl-none {
+ float: none !important;
+ }
+ .object-fit-xl-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-xl-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-xl-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-xl-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-xl-none {
+ object-fit: none !important;
+ }
+ .d-xl-inline {
+ display: inline !important;
+ }
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xl-block {
+ display: block !important;
+ }
+ .d-xl-grid {
+ display: grid !important;
+ }
+ .d-xl-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-xl-table {
+ display: table !important;
+ }
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xl-flex {
+ display: flex !important;
+ }
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xl-none {
+ display: none !important;
+ }
+ .flex-xl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xl-row {
+ flex-direction: row !important;
+ }
+ .flex-xl-column {
+ flex-direction: column !important;
+ }
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xl-center {
+ align-items: center !important;
+ }
+ .align-items-xl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xl-center {
+ align-content: center !important;
+ }
+ .align-content-xl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xl-center {
+ align-self: center !important;
+ }
+ .align-self-xl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xl-first {
+ order: -1 !important;
+ }
+ .order-xl-0 {
+ order: 0 !important;
+ }
+ .order-xl-1 {
+ order: 1 !important;
+ }
+ .order-xl-2 {
+ order: 2 !important;
+ }
+ .order-xl-3 {
+ order: 3 !important;
+ }
+ .order-xl-4 {
+ order: 4 !important;
+ }
+ .order-xl-5 {
+ order: 5 !important;
+ }
+ .order-xl-last {
+ order: 6 !important;
+ }
+ .m-xl-0 {
+ margin: 0 !important;
+ }
+ .m-xl-1 {
+ margin: 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;
+ }
+ .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;
+ }
+ .row-gap-xl-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-xl-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-xl-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-xl-3 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-xl-4 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-xl-5 {
+ row-gap: 3rem !important;
+ }
+ .column-gap-xl-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-xl-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-xl-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-xl-3 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-xl-4 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-xl-5 {
+ column-gap: 3rem !important;
+ }
+ .text-xl-start {
+ text-align: left !important;
+ }
+ .text-xl-end {
+ text-align: right !important;
+ }
+ .text-xl-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1400px) {
+ .float-xxl-start {
+ float: left !important;
+ }
+ .float-xxl-end {
+ float: right !important;
+ }
+ .float-xxl-none {
+ float: none !important;
+ }
+ .object-fit-xxl-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-xxl-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-xxl-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-xxl-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-xxl-none {
+ object-fit: none !important;
+ }
+ .d-xxl-inline {
+ display: inline !important;
+ }
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xxl-block {
+ display: block !important;
+ }
+ .d-xxl-grid {
+ display: grid !important;
+ }
+ .d-xxl-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-xxl-table {
+ display: table !important;
+ }
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xxl-flex {
+ display: flex !important;
+ }
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xxl-none {
+ display: none !important;
+ }
+ .flex-xxl-fill {
+ flex: 1 1 auto !important;
+ }
+ .flex-xxl-row {
+ flex-direction: row !important;
+ }
+ .flex-xxl-column {
+ flex-direction: column !important;
+ }
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important;
+ }
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important;
+ }
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important;
+ }
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+ .justify-content-xxl-start {
+ justify-content: flex-start !important;
+ }
+ .justify-content-xxl-end {
+ justify-content: flex-end !important;
+ }
+ .justify-content-xxl-center {
+ justify-content: center !important;
+ }
+ .justify-content-xxl-between {
+ justify-content: space-between !important;
+ }
+ .justify-content-xxl-around {
+ justify-content: space-around !important;
+ }
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important;
+ }
+ .align-items-xxl-start {
+ align-items: flex-start !important;
+ }
+ .align-items-xxl-end {
+ align-items: flex-end !important;
+ }
+ .align-items-xxl-center {
+ align-items: center !important;
+ }
+ .align-items-xxl-baseline {
+ align-items: baseline !important;
+ }
+ .align-items-xxl-stretch {
+ align-items: stretch !important;
+ }
+ .align-content-xxl-start {
+ align-content: flex-start !important;
+ }
+ .align-content-xxl-end {
+ align-content: flex-end !important;
+ }
+ .align-content-xxl-center {
+ align-content: center !important;
+ }
+ .align-content-xxl-between {
+ align-content: space-between !important;
+ }
+ .align-content-xxl-around {
+ align-content: space-around !important;
+ }
+ .align-content-xxl-stretch {
+ align-content: stretch !important;
+ }
+ .align-self-xxl-auto {
+ align-self: auto !important;
+ }
+ .align-self-xxl-start {
+ align-self: flex-start !important;
+ }
+ .align-self-xxl-end {
+ align-self: flex-end !important;
+ }
+ .align-self-xxl-center {
+ align-self: center !important;
+ }
+ .align-self-xxl-baseline {
+ align-self: baseline !important;
+ }
+ .align-self-xxl-stretch {
+ align-self: stretch !important;
+ }
+ .order-xxl-first {
+ order: -1 !important;
+ }
+ .order-xxl-0 {
+ order: 0 !important;
+ }
+ .order-xxl-1 {
+ order: 1 !important;
+ }
+ .order-xxl-2 {
+ order: 2 !important;
+ }
+ .order-xxl-3 {
+ order: 3 !important;
+ }
+ .order-xxl-4 {
+ order: 4 !important;
+ }
+ .order-xxl-5 {
+ order: 5 !important;
+ }
+ .order-xxl-last {
+ order: 6 !important;
+ }
+ .m-xxl-0 {
+ margin: 0 !important;
+ }
+ .m-xxl-1 {
+ margin: 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;
+ }
+ .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;
+ }
+ .row-gap-xxl-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-xxl-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-xxl-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-xxl-3 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-xxl-4 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-xxl-5 {
+ row-gap: 3rem !important;
+ }
+ .column-gap-xxl-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-xxl-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-xxl-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-xxl-3 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-xxl-4 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-xxl-5 {
+ column-gap: 3rem !important;
+ }
+ .text-xxl-start {
+ text-align: left !important;
+ }
+ .text-xxl-end {
+ text-align: right !important;
+ }
+ .text-xxl-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1200px) {
+ .fs-1 {
+ font-size: 2.5rem !important;
+ }
+ .fs-2 {
+ font-size: 2rem !important;
+ }
+ .fs-3 {
+ font-size: 1.75rem !important;
+ }
+ .fs-4 {
+ font-size: 1.5rem !important;
+ }
+}
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+ .d-print-block {
+ display: block !important;
+ }
+ .d-print-grid {
+ display: grid !important;
+ }
+ .d-print-inline-grid {
+ display: inline-grid !important;
+ }
+ .d-print-table {
+ display: table !important;
+ }
+ .d-print-table-row {
+ display: table-row !important;
+ }
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+ .d-print-flex {
+ display: flex !important;
+ }
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-print-none {
+ display: none !important;
+ }
+}
+body {
+ color: #333;
+ font-family: "Roboto", sans-serif;
+ font-size: 13px;
+ line-height: 18px;
+ margin: 33px;
+ font-size: 15px;
+}
+
+.notice, .alert, .subscription, .highlight {
+ margin-top: 12px;
+ padding: 24px;
+ text-align: center;
+ border-radius: 12px;
+}
+.notice a, .notice a:hover, .notice a:visited, .alert a, .alert a:hover, .alert a:visited, .subscription a, .subscription a:hover, .subscription a:visited, .highlight a, .highlight a:hover, .highlight a:visited {
+ text-decoration: underline;
+}
+
+.notice {
+ background-color: #C8E6C9;
+}
+
+.alert {
+ background-color: #FFCDD2;
+}
+
+.highlight {
+ background-color: #fcf5e2;
+}
+
+.faq {
+ color: #007bff;
+}
+
+header {
+ border-bottom: 1px solid #9e9e9e;
+ margin-bottom: 30px;
+}
+header a, header a:hover, header a:visited {
+ color: #212121;
+ text-decoration: none;
+}
+
+footer {
+ height: 90px;
+ border-top: 1px solid #ccc;
+ padding-top: 12px;
+ clear: both;
+}
+
+form .form-group {
+ padding-top: 12px;
+}
+form .form-group label {
+ font-weight: bold;
+}
+form .form-group .form-check-collection .form-check-label {
+ display: block;
+ padding-bottom: 12px;
+ font-weight: normal;
+}
+
+@media (max-width: 978px) {
+ .container {
+ padding: 0;
+ margin: 0;
+ }
+ body {
+ padding: 0;
+ }
+}
+.school_category, .question {
+ border: 1px solid black;
+}
+.school_category .title, .question .title {
+ height: 3.5em;
+}
+.school_category .description, .question .description {
+ height: 6em;
+}
+
+.indicator-container.centered {
+ margin-top: -3px;
+}
+.indicator-container.centered .indicator-circle {
+ margin: auto;
+}
+.indicator-container .indicator {
+ padding-top: 6px;
+ height: 90px;
+}
+.indicator-container .indicator .indicator-circle {
+ height: 100%;
+ position: relative;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones {
+ width: 100%;
+ height: 100%;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones div {
+ height: 100%;
+ width: 20%;
+ float: left;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones .zone0 {
+ background-color: orange;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones .zone1 {
+ background-color: yellow;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones .zone2 {
+ background-color: lightgreen;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones .zone3 {
+ background-color: green;
+}
+.indicator-container .indicator .indicator-circle .indicator-zones .zone4 {
+ background: repeating-linear-gradient(45deg, lightgray, green 15px);
+}
+.indicator-container .indicator .indicator-circle .average {
+ position: absolute;
+ width: 10%;
+ height: 107%;
+ top: -3px;
+ border: 2px dashed black;
+ font-weight: bold;
+ font-size: 14px;
+}
+.indicator-container .indicator .indicator-circle .average span {
+ text-align: center;
+ position: absolute;
+ width: 7.75em;
+ margin-top: -1.5em;
+}
+.indicator-container .indicator.small {
+ height: 87px;
+}
+.indicator-container .indicator.small .indicator-circle {
+ width: 90px;
+ overflow: hidden;
+}
+.indicator-container .indicator.small .indicator-circle .indicator-zones {
+ width: 900px;
+}
+.indicator-container .indicator.small .indicator-circle .average {
+ border: none;
+ text-align: center;
+ width: 100%;
+ line-height: 90px;
+}
+.indicator-container.short .indicator {
+ height: 30px;
+}
+.indicator-container.short .indicator .indicator-circle {
+ width: 100%;
+ height: 100%;
+}
+.indicator-container.short .indicator .indicator-circle .average {
+ height: 120%;
+}
+.indicator-container.short .indicator .indicator-circle .average span {
+ left: -1.5em;
+ font-size: 10px;
+ border: none;
+ line-height: 10px;
+}
+
+.question .question-text {
+ height: 3em;
+}
+.question .answers {
+ width: 100%;
+ border-bottom: 1px solid #ccc;
+}
+.question .answers .answer {
+ border-top: 1px solid #ccc;
+}
+.question .answers .answer .text {
+ width: 50%;
+}
+.question .answers .answer td {
+ line-height: 2em;
+}
+.question .answers .answer td div {
+ margin: 0.25em 0;
+ height: 1.5em;
+}
+.question .answers .answer .bar0 {
+ background-color: #00008b;
+}
+.question .answers .answer .bar1 {
+ background-color: #ADD8E6;
+}
+.question .answers .answer .bar2 {
+ background-color: #4B0082;
+}
+.question .answers .answer .bar3 {
+ background-color: #EE82EE;
+}
+.question .answers .answer .bar4 {
+ background-color: #FFC0CB;
+}
diff --git a/app/assets/dashboard/application.js b/app/assets/dashboard/application.js
new file mode 100644
index 0000000..7a73305
--- /dev/null
+++ b/app/assets/dashboard/application.js
@@ -0,0 +1,13703 @@
+(() => {
+ var __create = Object.create;
+ var __defProp = Object.defineProperty;
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
+ var __esm = (fn2, res) => function __init() {
+ return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
+ };
+ var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+ };
+ var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+ };
+ var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+
+ // node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js
+ var require_rails_ujs = __commonJS({
+ "node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js"(exports, module) {
+ (function() {
+ var context = this;
+ (function() {
+ (function() {
+ this.Rails = {
+ linkClickSelector: "a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",
+ buttonClickSelector: {
+ selector: "button[data-remote]:not([form]), button[data-confirm]:not([form])",
+ exclude: "form button"
+ },
+ inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]",
+ formSubmitSelector: "form:not([data-turbo=true])",
+ formInputClickSelector: "form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",
+ formDisableSelector: "input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",
+ formEnableSelector: "input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",
+ fileInputSelector: "input[name][type=file]:not([disabled])",
+ linkDisableSelector: "a[data-disable-with], a[data-disable]",
+ buttonDisableSelector: "button[data-remote][data-disable-with], button[data-remote][data-disable]"
+ };
+ }).call(this);
+ }).call(context);
+ var Rails2 = context.Rails;
+ (function() {
+ (function() {
+ var nonce;
+ nonce = null;
+ Rails2.loadCSPNonce = function() {
+ var ref;
+ return nonce = (ref = document.querySelector("meta[name=csp-nonce]")) != null ? ref.content : void 0;
+ };
+ Rails2.cspNonce = function() {
+ return nonce != null ? nonce : Rails2.loadCSPNonce();
+ };
+ }).call(this);
+ (function() {
+ var expando, m;
+ m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;
+ Rails2.matches = function(element, selector) {
+ if (selector.exclude != null) {
+ return m.call(element, selector.selector) && !m.call(element, selector.exclude);
+ } else {
+ return m.call(element, selector);
+ }
+ };
+ expando = "_ujsData";
+ Rails2.getData = function(element, key) {
+ var ref;
+ return (ref = element[expando]) != null ? ref[key] : void 0;
+ };
+ Rails2.setData = function(element, key, value) {
+ if (element[expando] == null) {
+ element[expando] = {};
+ }
+ return element[expando][key] = value;
+ };
+ Rails2.isContentEditable = function(element) {
+ var isEditable;
+ isEditable = false;
+ while (true) {
+ if (element.isContentEditable) {
+ isEditable = true;
+ break;
+ }
+ element = element.parentElement;
+ if (!element) {
+ break;
+ }
+ }
+ return isEditable;
+ };
+ Rails2.$ = function(selector) {
+ return Array.prototype.slice.call(document.querySelectorAll(selector));
+ };
+ }).call(this);
+ (function() {
+ var $, csrfParam, csrfToken;
+ $ = Rails2.$;
+ csrfToken = Rails2.csrfToken = function() {
+ var meta;
+ meta = document.querySelector("meta[name=csrf-token]");
+ return meta && meta.content;
+ };
+ csrfParam = Rails2.csrfParam = function() {
+ var meta;
+ meta = document.querySelector("meta[name=csrf-param]");
+ return meta && meta.content;
+ };
+ Rails2.CSRFProtection = function(xhr) {
+ var token;
+ token = csrfToken();
+ if (token != null) {
+ return xhr.setRequestHeader("X-CSRF-Token", token);
+ }
+ };
+ Rails2.refreshCSRFTokens = function() {
+ var param, token;
+ token = csrfToken();
+ param = csrfParam();
+ if (token != null && param != null) {
+ return $('form input[name="' + param + '"]').forEach(function(input) {
+ return input.value = token;
+ });
+ }
+ };
+ }).call(this);
+ (function() {
+ var CustomEvent2, fire, matches, preventDefault;
+ matches = Rails2.matches;
+ CustomEvent2 = window.CustomEvent;
+ if (typeof CustomEvent2 !== "function") {
+ CustomEvent2 = function(event, params) {
+ var evt;
+ evt = document.createEvent("CustomEvent");
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+ return evt;
+ };
+ CustomEvent2.prototype = window.Event.prototype;
+ preventDefault = CustomEvent2.prototype.preventDefault;
+ CustomEvent2.prototype.preventDefault = function() {
+ var result;
+ result = preventDefault.call(this);
+ if (this.cancelable && !this.defaultPrevented) {
+ Object.defineProperty(this, "defaultPrevented", {
+ get: function() {
+ return true;
+ }
+ });
+ }
+ return result;
+ };
+ }
+ fire = Rails2.fire = function(obj, name, data) {
+ var event;
+ event = new CustomEvent2(name, {
+ bubbles: true,
+ cancelable: true,
+ detail: data
+ });
+ obj.dispatchEvent(event);
+ return !event.defaultPrevented;
+ };
+ Rails2.stopEverything = function(e) {
+ fire(e.target, "ujs:everythingStopped");
+ e.preventDefault();
+ e.stopPropagation();
+ return e.stopImmediatePropagation();
+ };
+ Rails2.delegate = function(element, selector, eventType, handler) {
+ return element.addEventListener(eventType, function(e) {
+ var target;
+ target = e.target;
+ while (!(!(target instanceof Element) || matches(target, selector))) {
+ target = target.parentNode;
+ }
+ if (target instanceof Element && handler.call(target, e) === false) {
+ e.preventDefault();
+ return e.stopPropagation();
+ }
+ });
+ };
+ }).call(this);
+ (function() {
+ var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;
+ cspNonce = Rails2.cspNonce, CSRFProtection = Rails2.CSRFProtection, fire = Rails2.fire;
+ AcceptHeaders = {
+ "*": "*/*",
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript",
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ };
+ Rails2.ajax = function(options) {
+ var xhr;
+ options = prepareOptions(options);
+ xhr = createXHR(options, function() {
+ var ref, response;
+ response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader("Content-Type"));
+ if (Math.floor(xhr.status / 100) === 2) {
+ if (typeof options.success === "function") {
+ options.success(response, xhr.statusText, xhr);
+ }
+ } else {
+ if (typeof options.error === "function") {
+ options.error(response, xhr.statusText, xhr);
+ }
+ }
+ return typeof options.complete === "function" ? options.complete(xhr, xhr.statusText) : void 0;
+ });
+ if (options.beforeSend != null && !options.beforeSend(xhr, options)) {
+ return false;
+ }
+ if (xhr.readyState === XMLHttpRequest.OPENED) {
+ return xhr.send(options.data);
+ }
+ };
+ prepareOptions = function(options) {
+ options.url = options.url || location.href;
+ options.type = options.type.toUpperCase();
+ if (options.type === "GET" && options.data) {
+ if (options.url.indexOf("?") < 0) {
+ options.url += "?" + options.data;
+ } else {
+ options.url += "&" + options.data;
+ }
+ }
+ if (AcceptHeaders[options.dataType] == null) {
+ options.dataType = "*";
+ }
+ options.accept = AcceptHeaders[options.dataType];
+ if (options.dataType !== "*") {
+ options.accept += ", */*; q=0.01";
+ }
+ return options;
+ };
+ createXHR = function(options, done) {
+ var xhr;
+ xhr = new XMLHttpRequest();
+ xhr.open(options.type, options.url, true);
+ xhr.setRequestHeader("Accept", options.accept);
+ if (typeof options.data === "string") {
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ }
+ if (!options.crossDomain) {
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ CSRFProtection(xhr);
+ }
+ xhr.withCredentials = !!options.withCredentials;
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+ return done(xhr);
+ }
+ };
+ return xhr;
+ };
+ processResponse = function(response, type) {
+ var parser, script;
+ if (typeof response === "string" && typeof type === "string") {
+ if (type.match(/\bjson\b/)) {
+ try {
+ response = JSON.parse(response);
+ } catch (error2) {
+ }
+ } else if (type.match(/\b(?:java|ecma)script\b/)) {
+ script = document.createElement("script");
+ script.setAttribute("nonce", cspNonce());
+ script.text = response;
+ document.head.appendChild(script).parentNode.removeChild(script);
+ } else if (type.match(/\b(xml|html|svg)\b/)) {
+ parser = new DOMParser();
+ type = type.replace(/;.+/, "");
+ try {
+ response = parser.parseFromString(response, type);
+ } catch (error2) {
+ }
+ }
+ }
+ return response;
+ };
+ Rails2.href = function(element) {
+ return element.href;
+ };
+ Rails2.isCrossDomain = function(url) {
+ var e, originAnchor, urlAnchor;
+ originAnchor = document.createElement("a");
+ originAnchor.href = location.href;
+ urlAnchor = document.createElement("a");
+ try {
+ urlAnchor.href = url;
+ return !((!urlAnchor.protocol || urlAnchor.protocol === ":") && !urlAnchor.host || originAnchor.protocol + "//" + originAnchor.host === urlAnchor.protocol + "//" + urlAnchor.host);
+ } catch (error2) {
+ e = error2;
+ return true;
+ }
+ };
+ }).call(this);
+ (function() {
+ var matches, toArray2;
+ matches = Rails2.matches;
+ toArray2 = function(e) {
+ return Array.prototype.slice.call(e);
+ };
+ Rails2.serializeElement = function(element, additionalParam) {
+ var inputs, params;
+ inputs = [element];
+ if (matches(element, "form")) {
+ inputs = toArray2(element.elements);
+ }
+ params = [];
+ inputs.forEach(function(input) {
+ if (!input.name || input.disabled) {
+ return;
+ }
+ if (matches(input, "fieldset[disabled] *")) {
+ return;
+ }
+ if (matches(input, "select")) {
+ return toArray2(input.options).forEach(function(option) {
+ if (option.selected) {
+ return params.push({
+ name: input.name,
+ value: option.value
+ });
+ }
+ });
+ } else if (input.checked || ["radio", "checkbox", "submit"].indexOf(input.type) === -1) {
+ return params.push({
+ name: input.name,
+ value: input.value
+ });
+ }
+ });
+ if (additionalParam) {
+ params.push(additionalParam);
+ }
+ return params.map(function(param) {
+ if (param.name != null) {
+ return encodeURIComponent(param.name) + "=" + encodeURIComponent(param.value);
+ } else {
+ return param;
+ }
+ }).join("&");
+ };
+ Rails2.formElements = function(form, selector) {
+ if (matches(form, "form")) {
+ return toArray2(form.elements).filter(function(el) {
+ return matches(el, selector);
+ });
+ } else {
+ return toArray2(form.querySelectorAll(selector));
+ }
+ };
+ }).call(this);
+ (function() {
+ var allowAction, fire, stopEverything;
+ fire = Rails2.fire, stopEverything = Rails2.stopEverything;
+ Rails2.handleConfirm = function(e) {
+ if (!allowAction(this)) {
+ return stopEverything(e);
+ }
+ };
+ Rails2.confirm = function(message, element) {
+ return confirm(message);
+ };
+ allowAction = function(element) {
+ var answer, callback, message;
+ message = element.getAttribute("data-confirm");
+ if (!message) {
+ return true;
+ }
+ answer = false;
+ if (fire(element, "confirm")) {
+ try {
+ answer = Rails2.confirm(message, element);
+ } catch (error2) {
+ }
+ callback = fire(element, "confirm:complete", [answer]);
+ }
+ return answer && callback;
+ };
+ }).call(this);
+ (function() {
+ var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;
+ matches = Rails2.matches, getData = Rails2.getData, setData = Rails2.setData, stopEverything = Rails2.stopEverything, formElements = Rails2.formElements, isContentEditable = Rails2.isContentEditable;
+ Rails2.handleDisabledElement = function(e) {
+ var element;
+ element = this;
+ if (element.disabled) {
+ return stopEverything(e);
+ }
+ };
+ Rails2.enableElement = function(e) {
+ var element;
+ if (e instanceof Event) {
+ if (isXhrRedirect(e)) {
+ return;
+ }
+ element = e.target;
+ } else {
+ element = e;
+ }
+ if (isContentEditable(element)) {
+ return;
+ }
+ if (matches(element, Rails2.linkDisableSelector)) {
+ return enableLinkElement(element);
+ } else if (matches(element, Rails2.buttonDisableSelector) || matches(element, Rails2.formEnableSelector)) {
+ return enableFormElement(element);
+ } else if (matches(element, Rails2.formSubmitSelector)) {
+ return enableFormElements(element);
+ }
+ };
+ Rails2.disableElement = function(e) {
+ var element;
+ element = e instanceof Event ? e.target : e;
+ if (isContentEditable(element)) {
+ return;
+ }
+ if (matches(element, Rails2.linkDisableSelector)) {
+ return disableLinkElement(element);
+ } else if (matches(element, Rails2.buttonDisableSelector) || matches(element, Rails2.formDisableSelector)) {
+ return disableFormElement(element);
+ } else if (matches(element, Rails2.formSubmitSelector)) {
+ return disableFormElements(element);
+ }
+ };
+ disableLinkElement = function(element) {
+ var replacement;
+ if (getData(element, "ujs:disabled")) {
+ return;
+ }
+ replacement = element.getAttribute("data-disable-with");
+ if (replacement != null) {
+ setData(element, "ujs:enable-with", element.innerHTML);
+ element.innerHTML = replacement;
+ }
+ element.addEventListener("click", stopEverything);
+ return setData(element, "ujs:disabled", true);
+ };
+ enableLinkElement = function(element) {
+ var originalText;
+ originalText = getData(element, "ujs:enable-with");
+ if (originalText != null) {
+ element.innerHTML = originalText;
+ setData(element, "ujs:enable-with", null);
+ }
+ element.removeEventListener("click", stopEverything);
+ return setData(element, "ujs:disabled", null);
+ };
+ disableFormElements = function(form) {
+ return formElements(form, Rails2.formDisableSelector).forEach(disableFormElement);
+ };
+ disableFormElement = function(element) {
+ var replacement;
+ if (getData(element, "ujs:disabled")) {
+ return;
+ }
+ replacement = element.getAttribute("data-disable-with");
+ if (replacement != null) {
+ if (matches(element, "button")) {
+ setData(element, "ujs:enable-with", element.innerHTML);
+ element.innerHTML = replacement;
+ } else {
+ setData(element, "ujs:enable-with", element.value);
+ element.value = replacement;
+ }
+ }
+ element.disabled = true;
+ return setData(element, "ujs:disabled", true);
+ };
+ enableFormElements = function(form) {
+ return formElements(form, Rails2.formEnableSelector).forEach(enableFormElement);
+ };
+ enableFormElement = function(element) {
+ var originalText;
+ originalText = getData(element, "ujs:enable-with");
+ if (originalText != null) {
+ if (matches(element, "button")) {
+ element.innerHTML = originalText;
+ } else {
+ element.value = originalText;
+ }
+ setData(element, "ujs:enable-with", null);
+ }
+ element.disabled = false;
+ return setData(element, "ujs:disabled", null);
+ };
+ isXhrRedirect = function(event) {
+ var ref, xhr;
+ xhr = (ref = event.detail) != null ? ref[0] : void 0;
+ return (xhr != null ? xhr.getResponseHeader("X-Xhr-Redirect") : void 0) != null;
+ };
+ }).call(this);
+ (function() {
+ var isContentEditable, stopEverything;
+ stopEverything = Rails2.stopEverything;
+ isContentEditable = Rails2.isContentEditable;
+ Rails2.handleMethod = function(e) {
+ var csrfParam, csrfToken, form, formContent, href, link, method;
+ link = this;
+ method = link.getAttribute("data-method");
+ if (!method) {
+ return;
+ }
+ if (isContentEditable(this)) {
+ return;
+ }
+ href = Rails2.href(link);
+ csrfToken = Rails2.csrfToken();
+ csrfParam = Rails2.csrfParam();
+ form = document.createElement("form");
+ formContent = "";
+ if (csrfParam != null && csrfToken != null && !Rails2.isCrossDomain(href)) {
+ formContent += "";
+ }
+ formContent += '';
+ form.method = "post";
+ form.action = href;
+ form.target = link.target;
+ form.innerHTML = formContent;
+ form.style.display = "none";
+ document.body.appendChild(form);
+ form.querySelector('[type="submit"]').click();
+ return stopEverything(e);
+ };
+ }).call(this);
+ (function() {
+ var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything, slice = [].slice;
+ matches = Rails2.matches, getData = Rails2.getData, setData = Rails2.setData, fire = Rails2.fire, stopEverything = Rails2.stopEverything, ajax = Rails2.ajax, isCrossDomain = Rails2.isCrossDomain, serializeElement = Rails2.serializeElement, isContentEditable = Rails2.isContentEditable;
+ isRemote = function(element) {
+ var value;
+ value = element.getAttribute("data-remote");
+ return value != null && value !== "false";
+ };
+ Rails2.handleRemote = function(e) {
+ var button, data, dataType, element, method, url, withCredentials;
+ element = this;
+ if (!isRemote(element)) {
+ return true;
+ }
+ if (!fire(element, "ajax:before")) {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ if (isContentEditable(element)) {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ withCredentials = element.getAttribute("data-with-credentials");
+ dataType = element.getAttribute("data-type") || "script";
+ if (matches(element, Rails2.formSubmitSelector)) {
+ button = getData(element, "ujs:submit-button");
+ method = getData(element, "ujs:submit-button-formmethod") || element.method;
+ url = getData(element, "ujs:submit-button-formaction") || element.getAttribute("action") || location.href;
+ if (method.toUpperCase() === "GET") {
+ url = url.replace(/\?.*$/, "");
+ }
+ if (element.enctype === "multipart/form-data") {
+ data = new FormData(element);
+ if (button != null) {
+ data.append(button.name, button.value);
+ }
+ } else {
+ data = serializeElement(element, button);
+ }
+ setData(element, "ujs:submit-button", null);
+ setData(element, "ujs:submit-button-formmethod", null);
+ setData(element, "ujs:submit-button-formaction", null);
+ } else if (matches(element, Rails2.buttonClickSelector) || matches(element, Rails2.inputChangeSelector)) {
+ method = element.getAttribute("data-method");
+ url = element.getAttribute("data-url");
+ data = serializeElement(element, element.getAttribute("data-params"));
+ } else {
+ method = element.getAttribute("data-method");
+ url = Rails2.href(element);
+ data = element.getAttribute("data-params");
+ }
+ ajax({
+ type: method || "GET",
+ url,
+ data,
+ dataType,
+ beforeSend: function(xhr, options) {
+ if (fire(element, "ajax:beforeSend", [xhr, options])) {
+ return fire(element, "ajax:send", [xhr]);
+ } else {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ },
+ success: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:success", args);
+ },
+ error: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:error", args);
+ },
+ complete: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:complete", args);
+ },
+ crossDomain: isCrossDomain(url),
+ withCredentials: withCredentials != null && withCredentials !== "false"
+ });
+ return stopEverything(e);
+ };
+ Rails2.formSubmitButtonClick = function(e) {
+ var button, form;
+ button = this;
+ form = button.form;
+ if (!form) {
+ return;
+ }
+ if (button.name) {
+ setData(form, "ujs:submit-button", {
+ name: button.name,
+ value: button.value
+ });
+ }
+ setData(form, "ujs:formnovalidate-button", button.formNoValidate);
+ setData(form, "ujs:submit-button-formaction", button.getAttribute("formaction"));
+ return setData(form, "ujs:submit-button-formmethod", button.getAttribute("formmethod"));
+ };
+ Rails2.preventInsignificantClick = function(e) {
+ var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;
+ link = this;
+ method = (link.getAttribute("data-method") || "GET").toUpperCase();
+ data = link.getAttribute("data-params");
+ metaClick = e.metaKey || e.ctrlKey;
+ insignificantMetaClick = metaClick && method === "GET" && !data;
+ nonPrimaryMouseClick = e.button != null && e.button !== 0;
+ if (nonPrimaryMouseClick || insignificantMetaClick) {
+ return e.stopImmediatePropagation();
+ }
+ };
+ }).call(this);
+ (function() {
+ var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;
+ fire = Rails2.fire, delegate = Rails2.delegate, getData = Rails2.getData, $ = Rails2.$, refreshCSRFTokens = Rails2.refreshCSRFTokens, CSRFProtection = Rails2.CSRFProtection, loadCSPNonce = Rails2.loadCSPNonce, enableElement = Rails2.enableElement, disableElement = Rails2.disableElement, handleDisabledElement = Rails2.handleDisabledElement, handleConfirm = Rails2.handleConfirm, preventInsignificantClick = Rails2.preventInsignificantClick, handleRemote = Rails2.handleRemote, formSubmitButtonClick = Rails2.formSubmitButtonClick, handleMethod = Rails2.handleMethod;
+ if (typeof jQuery !== "undefined" && jQuery !== null && jQuery.ajax != null) {
+ if (jQuery.rails) {
+ throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");
+ }
+ jQuery.rails = Rails2;
+ jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {
+ if (!options.crossDomain) {
+ return CSRFProtection(xhr);
+ }
+ });
+ }
+ Rails2.start = function() {
+ if (window._rails_loaded) {
+ throw new Error("rails-ujs has already been loaded!");
+ }
+ window.addEventListener("pageshow", function() {
+ $(Rails2.formEnableSelector).forEach(function(el) {
+ if (getData(el, "ujs:disabled")) {
+ return enableElement(el);
+ }
+ });
+ return $(Rails2.linkDisableSelector).forEach(function(el) {
+ if (getData(el, "ujs:disabled")) {
+ return enableElement(el);
+ }
+ });
+ });
+ delegate(document, Rails2.linkDisableSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.linkDisableSelector, "ajax:stopped", enableElement);
+ delegate(document, Rails2.buttonDisableSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.buttonDisableSelector, "ajax:stopped", enableElement);
+ delegate(document, Rails2.linkClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.linkClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.linkClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.linkClickSelector, "click", disableElement);
+ delegate(document, Rails2.linkClickSelector, "click", handleRemote);
+ delegate(document, Rails2.linkClickSelector, "click", handleMethod);
+ delegate(document, Rails2.buttonClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.buttonClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.buttonClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.buttonClickSelector, "click", disableElement);
+ delegate(document, Rails2.buttonClickSelector, "click", handleRemote);
+ delegate(document, Rails2.inputChangeSelector, "change", handleDisabledElement);
+ delegate(document, Rails2.inputChangeSelector, "change", handleConfirm);
+ delegate(document, Rails2.inputChangeSelector, "change", handleRemote);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleDisabledElement);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleConfirm);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleRemote);
+ delegate(document, Rails2.formSubmitSelector, "submit", function(e) {
+ return setTimeout(function() {
+ return disableElement(e);
+ }, 13);
+ });
+ delegate(document, Rails2.formSubmitSelector, "ajax:send", disableElement);
+ delegate(document, Rails2.formSubmitSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.formInputClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.formInputClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.formInputClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.formInputClickSelector, "click", formSubmitButtonClick);
+ document.addEventListener("DOMContentLoaded", refreshCSRFTokens);
+ document.addEventListener("DOMContentLoaded", loadCSPNonce);
+ return window._rails_loaded = true;
+ };
+ if (window.Rails === Rails2 && fire(document, "rails:attachBindings")) {
+ Rails2.start();
+ }
+ }).call(this);
+ }).call(this);
+ if (typeof module === "object" && module.exports) {
+ module.exports = Rails2;
+ } else if (typeof define === "function" && define.amd) {
+ define(Rails2);
+ }
+ }).call(exports);
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/adapters.js
+ var adapters_default;
+ var init_adapters = __esm({
+ "node_modules/@rails/actioncable/src/adapters.js"() {
+ adapters_default = {
+ logger: self.console,
+ WebSocket: self.WebSocket
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/logger.js
+ var logger_default;
+ var init_logger = __esm({
+ "node_modules/@rails/actioncable/src/logger.js"() {
+ init_adapters();
+ logger_default = {
+ log(...messages) {
+ if (this.enabled) {
+ messages.push(Date.now());
+ adapters_default.logger.log("[ActionCable]", ...messages);
+ }
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/connection_monitor.js
+ var now, secondsSince, ConnectionMonitor, connection_monitor_default;
+ var init_connection_monitor = __esm({
+ "node_modules/@rails/actioncable/src/connection_monitor.js"() {
+ init_logger();
+ now = () => (/* @__PURE__ */ new Date()).getTime();
+ secondsSince = (time) => (now() - time) / 1e3;
+ ConnectionMonitor = class {
+ constructor(connection) {
+ this.visibilityDidChange = this.visibilityDidChange.bind(this);
+ this.connection = connection;
+ this.reconnectAttempts = 0;
+ }
+ start() {
+ if (!this.isRunning()) {
+ this.startedAt = now();
+ delete this.stoppedAt;
+ this.startPolling();
+ addEventListener("visibilitychange", this.visibilityDidChange);
+ logger_default.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);
+ }
+ }
+ stop() {
+ if (this.isRunning()) {
+ this.stoppedAt = now();
+ this.stopPolling();
+ removeEventListener("visibilitychange", this.visibilityDidChange);
+ logger_default.log("ConnectionMonitor stopped");
+ }
+ }
+ isRunning() {
+ return this.startedAt && !this.stoppedAt;
+ }
+ recordPing() {
+ this.pingedAt = now();
+ }
+ recordConnect() {
+ this.reconnectAttempts = 0;
+ this.recordPing();
+ delete this.disconnectedAt;
+ logger_default.log("ConnectionMonitor recorded connect");
+ }
+ recordDisconnect() {
+ this.disconnectedAt = now();
+ logger_default.log("ConnectionMonitor recorded disconnect");
+ }
+ // Private
+ startPolling() {
+ this.stopPolling();
+ this.poll();
+ }
+ stopPolling() {
+ clearTimeout(this.pollTimeout);
+ }
+ poll() {
+ this.pollTimeout = setTimeout(
+ () => {
+ this.reconnectIfStale();
+ this.poll();
+ },
+ this.getPollInterval()
+ );
+ }
+ getPollInterval() {
+ const { staleThreshold, reconnectionBackoffRate } = this.constructor;
+ const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));
+ const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;
+ const jitter = jitterMax * Math.random();
+ return staleThreshold * 1e3 * backoff * (1 + jitter);
+ }
+ reconnectIfStale() {
+ if (this.connectionIsStale()) {
+ logger_default.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);
+ this.reconnectAttempts++;
+ if (this.disconnectedRecently()) {
+ logger_default.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);
+ } else {
+ logger_default.log("ConnectionMonitor reopening");
+ this.connection.reopen();
+ }
+ }
+ }
+ get refreshedAt() {
+ return this.pingedAt ? this.pingedAt : this.startedAt;
+ }
+ connectionIsStale() {
+ return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;
+ }
+ disconnectedRecently() {
+ return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;
+ }
+ visibilityDidChange() {
+ if (document.visibilityState === "visible") {
+ setTimeout(
+ () => {
+ if (this.connectionIsStale() || !this.connection.isOpen()) {
+ logger_default.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);
+ this.connection.reopen();
+ }
+ },
+ 200
+ );
+ }
+ }
+ };
+ ConnectionMonitor.staleThreshold = 6;
+ ConnectionMonitor.reconnectionBackoffRate = 0.15;
+ connection_monitor_default = ConnectionMonitor;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/internal.js
+ var internal_default;
+ var init_internal = __esm({
+ "node_modules/@rails/actioncable/src/internal.js"() {
+ internal_default = {
+ "message_types": {
+ "welcome": "welcome",
+ "disconnect": "disconnect",
+ "ping": "ping",
+ "confirmation": "confirm_subscription",
+ "rejection": "reject_subscription"
+ },
+ "disconnect_reasons": {
+ "unauthorized": "unauthorized",
+ "invalid_request": "invalid_request",
+ "server_restart": "server_restart"
+ },
+ "default_mount_path": "/cable",
+ "protocols": [
+ "actioncable-v1-json",
+ "actioncable-unsupported"
+ ]
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/connection.js
+ var message_types, protocols, supportedProtocols, indexOf, Connection, connection_default;
+ var init_connection = __esm({
+ "node_modules/@rails/actioncable/src/connection.js"() {
+ init_adapters();
+ init_connection_monitor();
+ init_internal();
+ init_logger();
+ ({ message_types, protocols } = internal_default);
+ supportedProtocols = protocols.slice(0, protocols.length - 1);
+ indexOf = [].indexOf;
+ Connection = class {
+ constructor(consumer2) {
+ this.open = this.open.bind(this);
+ this.consumer = consumer2;
+ this.subscriptions = this.consumer.subscriptions;
+ this.monitor = new connection_monitor_default(this);
+ this.disconnected = true;
+ }
+ send(data) {
+ if (this.isOpen()) {
+ this.webSocket.send(JSON.stringify(data));
+ return true;
+ } else {
+ return false;
+ }
+ }
+ open() {
+ if (this.isActive()) {
+ logger_default.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);
+ return false;
+ } else {
+ logger_default.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`);
+ if (this.webSocket) {
+ this.uninstallEventHandlers();
+ }
+ this.webSocket = new adapters_default.WebSocket(this.consumer.url, protocols);
+ this.installEventHandlers();
+ this.monitor.start();
+ return true;
+ }
+ }
+ close({ allowReconnect } = { allowReconnect: true }) {
+ if (!allowReconnect) {
+ this.monitor.stop();
+ }
+ if (this.isOpen()) {
+ return this.webSocket.close();
+ }
+ }
+ reopen() {
+ logger_default.log(`Reopening WebSocket, current state is ${this.getState()}`);
+ if (this.isActive()) {
+ try {
+ return this.close();
+ } catch (error2) {
+ logger_default.log("Failed to reopen WebSocket", error2);
+ } finally {
+ logger_default.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);
+ setTimeout(this.open, this.constructor.reopenDelay);
+ }
+ } else {
+ return this.open();
+ }
+ }
+ getProtocol() {
+ if (this.webSocket) {
+ return this.webSocket.protocol;
+ }
+ }
+ isOpen() {
+ return this.isState("open");
+ }
+ isActive() {
+ return this.isState("open", "connecting");
+ }
+ // Private
+ isProtocolSupported() {
+ return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;
+ }
+ isState(...states) {
+ return indexOf.call(states, this.getState()) >= 0;
+ }
+ getState() {
+ if (this.webSocket) {
+ for (let state in adapters_default.WebSocket) {
+ if (adapters_default.WebSocket[state] === this.webSocket.readyState) {
+ return state.toLowerCase();
+ }
+ }
+ }
+ return null;
+ }
+ installEventHandlers() {
+ for (let eventName in this.events) {
+ const handler = this.events[eventName].bind(this);
+ this.webSocket[`on${eventName}`] = handler;
+ }
+ }
+ uninstallEventHandlers() {
+ for (let eventName in this.events) {
+ this.webSocket[`on${eventName}`] = function() {
+ };
+ }
+ }
+ };
+ Connection.reopenDelay = 500;
+ Connection.prototype.events = {
+ message(event) {
+ if (!this.isProtocolSupported()) {
+ return;
+ }
+ const { identifier, message, reason, reconnect, type } = JSON.parse(event.data);
+ switch (type) {
+ case message_types.welcome:
+ this.monitor.recordConnect();
+ return this.subscriptions.reload();
+ case message_types.disconnect:
+ logger_default.log(`Disconnecting. Reason: ${reason}`);
+ return this.close({ allowReconnect: reconnect });
+ case message_types.ping:
+ return this.monitor.recordPing();
+ case message_types.confirmation:
+ this.subscriptions.confirmSubscription(identifier);
+ return this.subscriptions.notify(identifier, "connected");
+ case message_types.rejection:
+ return this.subscriptions.reject(identifier);
+ default:
+ return this.subscriptions.notify(identifier, "received", message);
+ }
+ },
+ open() {
+ logger_default.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);
+ this.disconnected = false;
+ if (!this.isProtocolSupported()) {
+ logger_default.log("Protocol is unsupported. Stopping monitor and disconnecting.");
+ return this.close({ allowReconnect: false });
+ }
+ },
+ close(event) {
+ logger_default.log("WebSocket onclose event");
+ if (this.disconnected) {
+ return;
+ }
+ this.disconnected = true;
+ this.monitor.recordDisconnect();
+ return this.subscriptions.notifyAll("disconnected", { willAttemptReconnect: this.monitor.isRunning() });
+ },
+ error() {
+ logger_default.log("WebSocket onerror event");
+ }
+ };
+ connection_default = Connection;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscription.js
+ var extend, Subscription;
+ var init_subscription = __esm({
+ "node_modules/@rails/actioncable/src/subscription.js"() {
+ extend = function(object, properties) {
+ if (properties != null) {
+ for (let key in properties) {
+ const value = properties[key];
+ object[key] = value;
+ }
+ }
+ return object;
+ };
+ Subscription = class {
+ constructor(consumer2, params = {}, mixin) {
+ this.consumer = consumer2;
+ this.identifier = JSON.stringify(params);
+ extend(this, mixin);
+ }
+ // Perform a channel action with the optional data passed as an attribute
+ perform(action, data = {}) {
+ data.action = action;
+ return this.send(data);
+ }
+ send(data) {
+ return this.consumer.send({ command: "message", identifier: this.identifier, data: JSON.stringify(data) });
+ }
+ unsubscribe() {
+ return this.consumer.subscriptions.remove(this);
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscription_guarantor.js
+ var SubscriptionGuarantor, subscription_guarantor_default;
+ var init_subscription_guarantor = __esm({
+ "node_modules/@rails/actioncable/src/subscription_guarantor.js"() {
+ init_logger();
+ SubscriptionGuarantor = class {
+ constructor(subscriptions) {
+ this.subscriptions = subscriptions;
+ this.pendingSubscriptions = [];
+ }
+ guarantee(subscription) {
+ if (this.pendingSubscriptions.indexOf(subscription) == -1) {
+ logger_default.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);
+ this.pendingSubscriptions.push(subscription);
+ } else {
+ logger_default.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);
+ }
+ this.startGuaranteeing();
+ }
+ forget(subscription) {
+ logger_default.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);
+ this.pendingSubscriptions = this.pendingSubscriptions.filter((s) => s !== subscription);
+ }
+ startGuaranteeing() {
+ this.stopGuaranteeing();
+ this.retrySubscribing();
+ }
+ stopGuaranteeing() {
+ clearTimeout(this.retryTimeout);
+ }
+ retrySubscribing() {
+ this.retryTimeout = setTimeout(
+ () => {
+ if (this.subscriptions && typeof this.subscriptions.subscribe === "function") {
+ this.pendingSubscriptions.map((subscription) => {
+ logger_default.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);
+ this.subscriptions.subscribe(subscription);
+ });
+ }
+ },
+ 500
+ );
+ }
+ };
+ subscription_guarantor_default = SubscriptionGuarantor;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscriptions.js
+ var Subscriptions;
+ var init_subscriptions = __esm({
+ "node_modules/@rails/actioncable/src/subscriptions.js"() {
+ init_subscription();
+ init_subscription_guarantor();
+ init_logger();
+ Subscriptions = class {
+ constructor(consumer2) {
+ this.consumer = consumer2;
+ this.guarantor = new subscription_guarantor_default(this);
+ this.subscriptions = [];
+ }
+ create(channelName, mixin) {
+ const channel = channelName;
+ const params = typeof channel === "object" ? channel : { channel };
+ const subscription = new Subscription(this.consumer, params, mixin);
+ return this.add(subscription);
+ }
+ // Private
+ add(subscription) {
+ this.subscriptions.push(subscription);
+ this.consumer.ensureActiveConnection();
+ this.notify(subscription, "initialized");
+ this.subscribe(subscription);
+ return subscription;
+ }
+ remove(subscription) {
+ this.forget(subscription);
+ if (!this.findAll(subscription.identifier).length) {
+ this.sendCommand(subscription, "unsubscribe");
+ }
+ return subscription;
+ }
+ reject(identifier) {
+ return this.findAll(identifier).map((subscription) => {
+ this.forget(subscription);
+ this.notify(subscription, "rejected");
+ return subscription;
+ });
+ }
+ forget(subscription) {
+ this.guarantor.forget(subscription);
+ this.subscriptions = this.subscriptions.filter((s) => s !== subscription);
+ return subscription;
+ }
+ findAll(identifier) {
+ return this.subscriptions.filter((s) => s.identifier === identifier);
+ }
+ reload() {
+ return this.subscriptions.map((subscription) => this.subscribe(subscription));
+ }
+ notifyAll(callbackName, ...args) {
+ return this.subscriptions.map((subscription) => this.notify(subscription, callbackName, ...args));
+ }
+ notify(subscription, callbackName, ...args) {
+ let subscriptions;
+ if (typeof subscription === "string") {
+ subscriptions = this.findAll(subscription);
+ } else {
+ subscriptions = [subscription];
+ }
+ return subscriptions.map((subscription2) => typeof subscription2[callbackName] === "function" ? subscription2[callbackName](...args) : void 0);
+ }
+ subscribe(subscription) {
+ if (this.sendCommand(subscription, "subscribe")) {
+ this.guarantor.guarantee(subscription);
+ }
+ }
+ confirmSubscription(identifier) {
+ logger_default.log(`Subscription confirmed ${identifier}`);
+ this.findAll(identifier).map((subscription) => this.guarantor.forget(subscription));
+ }
+ sendCommand(subscription, command) {
+ const { identifier } = subscription;
+ return this.consumer.send({ command, identifier });
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/consumer.js
+ function createWebSocketURL(url) {
+ if (typeof url === "function") {
+ url = url();
+ }
+ if (url && !/^wss?:/i.test(url)) {
+ const a = document.createElement("a");
+ a.href = url;
+ a.href = a.href;
+ a.protocol = a.protocol.replace("http", "ws");
+ return a.href;
+ } else {
+ return url;
+ }
+ }
+ var Consumer;
+ var init_consumer = __esm({
+ "node_modules/@rails/actioncable/src/consumer.js"() {
+ init_connection();
+ init_subscriptions();
+ Consumer = class {
+ constructor(url) {
+ this._url = url;
+ this.subscriptions = new Subscriptions(this);
+ this.connection = new connection_default(this);
+ }
+ get url() {
+ return createWebSocketURL(this._url);
+ }
+ send(data) {
+ return this.connection.send(data);
+ }
+ connect() {
+ return this.connection.open();
+ }
+ disconnect() {
+ return this.connection.close({ allowReconnect: false });
+ }
+ ensureActiveConnection() {
+ if (!this.connection.isActive()) {
+ return this.connection.open();
+ }
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/index.js
+ var src_exports = {};
+ __export(src_exports, {
+ Connection: () => connection_default,
+ ConnectionMonitor: () => connection_monitor_default,
+ Consumer: () => Consumer,
+ INTERNAL: () => internal_default,
+ Subscription: () => Subscription,
+ SubscriptionGuarantor: () => subscription_guarantor_default,
+ Subscriptions: () => Subscriptions,
+ adapters: () => adapters_default,
+ createConsumer: () => createConsumer,
+ createWebSocketURL: () => createWebSocketURL,
+ getConfig: () => getConfig,
+ logger: () => logger_default
+ });
+ function createConsumer(url = getConfig("url") || internal_default.default_mount_path) {
+ return new Consumer(url);
+ }
+ function getConfig(name) {
+ const element = document.head.querySelector(`meta[name='action-cable-${name}']`);
+ if (element) {
+ return element.getAttribute("content");
+ }
+ }
+ var init_src = __esm({
+ "node_modules/@rails/actioncable/src/index.js"() {
+ init_connection();
+ init_connection_monitor();
+ init_consumer();
+ init_internal();
+ init_subscription();
+ init_subscriptions();
+ init_subscription_guarantor();
+ init_adapters();
+ init_logger();
+ }
+ });
+
+ // node_modules/debounce/index.js
+ var require_debounce = __commonJS({
+ "node_modules/debounce/index.js"(exports, module) {
+ function debounce3(func, wait, immediate) {
+ var timeout, args, context, timestamp, result;
+ if (null == wait)
+ wait = 100;
+ function later() {
+ var last = Date.now() - timestamp;
+ if (last < wait && last >= 0) {
+ timeout = setTimeout(later, wait - last);
+ } else {
+ timeout = null;
+ if (!immediate) {
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ }
+ }
+ ;
+ var debounced = function() {
+ context = this;
+ args = arguments;
+ timestamp = Date.now();
+ var callNow = immediate && !timeout;
+ if (!timeout)
+ timeout = setTimeout(later, wait);
+ if (callNow) {
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ return result;
+ };
+ debounced.clear = function() {
+ if (timeout) {
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ };
+ debounced.flush = function() {
+ if (timeout) {
+ result = func.apply(context, args);
+ context = args = null;
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ };
+ return debounced;
+ }
+ debounce3.debounce = debounce3;
+ module.exports = debounce3;
+ }
+ });
+
+ // app/javascript/application.js
+ var import_ujs = __toESM(require_rails_ujs());
+
+ // node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js
+ var sparkMd5 = {
+ exports: {}
+ };
+ (function(module, exports) {
+ (function(factory) {
+ {
+ module.exports = factory();
+ }
+ })(function(undefined$1) {
+ var hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
+ function md5cycle(x, k) {
+ var a = x[0], b = x[1], c = x[2], d = x[3];
+ a += (b & c | ~b & d) + k[0] - 680876936 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[1] - 389564586 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[2] + 606105819 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[4] - 176418897 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[7] - 45705983 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[10] - 42063 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[13] - 40341101 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & d | c & ~d) + k[1] - 165796510 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[11] + 643717713 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[0] - 373897302 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[5] - 701558691 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[10] + 38016083 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[15] - 660478335 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[4] - 405537848 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[9] + 568446438 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[3] - 187363961 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[2] - 51403784 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b ^ c ^ d) + k[5] - 378558 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[14] - 35309556 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[7] - 155497632 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[13] + 681279174 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[0] - 358537222 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[3] - 722521979 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[6] + 76029189 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[9] - 640364487 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[12] - 421815835 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[15] + 530742520 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[2] - 995338651 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ x[0] = a + x[0] | 0;
+ x[1] = b + x[1] | 0;
+ x[2] = c + x[2] | 0;
+ x[3] = d + x[3] | 0;
+ }
+ function md5blk(s) {
+ var md5blks = [], i;
+ for (i = 0; i < 64; i += 4) {
+ md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
+ }
+ return md5blks;
+ }
+ function md5blk_array(a) {
+ var md5blks = [], i;
+ for (i = 0; i < 64; i += 4) {
+ md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
+ }
+ return md5blks;
+ }
+ function md51(s) {
+ var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
+ for (i = 64; i <= n; i += 64) {
+ md5cycle(state, md5blk(s.substring(i - 64, i)));
+ }
+ s = s.substring(i - 64);
+ length = s.length;
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
+ }
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(state, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = n * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(state, tail);
+ return state;
+ }
+ function md51_array(a) {
+ var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
+ for (i = 64; i <= n; i += 64) {
+ md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
+ }
+ a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
+ length = a.length;
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= a[i] << (i % 4 << 3);
+ }
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(state, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = n * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(state, tail);
+ return state;
+ }
+ function rhex(n) {
+ var s = "", j;
+ for (j = 0; j < 4; j += 1) {
+ s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
+ }
+ return s;
+ }
+ function hex(x) {
+ var i;
+ for (i = 0; i < x.length; i += 1) {
+ x[i] = rhex(x[i]);
+ }
+ return x.join("");
+ }
+ if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592")
+ ;
+ if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
+ (function() {
+ function clamp(val, length) {
+ val = val | 0 || 0;
+ if (val < 0) {
+ return Math.max(val + length, 0);
+ }
+ return Math.min(val, length);
+ }
+ ArrayBuffer.prototype.slice = function(from, to) {
+ var length = this.byteLength, begin = clamp(from, length), end2 = length, num, target, targetArray, sourceArray;
+ if (to !== undefined$1) {
+ end2 = clamp(to, length);
+ }
+ if (begin > end2) {
+ return new ArrayBuffer(0);
+ }
+ num = end2 - begin;
+ target = new ArrayBuffer(num);
+ targetArray = new Uint8Array(target);
+ sourceArray = new Uint8Array(this, begin, num);
+ targetArray.set(sourceArray);
+ return target;
+ };
+ })();
+ }
+ function toUtf8(str) {
+ if (/[\u0080-\uFFFF]/.test(str)) {
+ str = unescape(encodeURIComponent(str));
+ }
+ return str;
+ }
+ function utf8Str2ArrayBuffer(str, returnUInt8Array) {
+ var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
+ for (i = 0; i < length; i += 1) {
+ arr[i] = str.charCodeAt(i);
+ }
+ return returnUInt8Array ? arr : buff;
+ }
+ function arrayBuffer2Utf8Str(buff) {
+ return String.fromCharCode.apply(null, new Uint8Array(buff));
+ }
+ function concatenateArrayBuffers(first, second, returnUInt8Array) {
+ var result = new Uint8Array(first.byteLength + second.byteLength);
+ result.set(new Uint8Array(first));
+ result.set(new Uint8Array(second), first.byteLength);
+ return returnUInt8Array ? result : result.buffer;
+ }
+ function hexToBinaryString(hex2) {
+ var bytes = [], length = hex2.length, x;
+ for (x = 0; x < length - 1; x += 2) {
+ bytes.push(parseInt(hex2.substr(x, 2), 16));
+ }
+ return String.fromCharCode.apply(String, bytes);
+ }
+ function SparkMD52() {
+ this.reset();
+ }
+ SparkMD52.prototype.append = function(str) {
+ this.appendBinary(toUtf8(str));
+ return this;
+ };
+ SparkMD52.prototype.appendBinary = function(contents) {
+ this._buff += contents;
+ this._length += contents.length;
+ var length = this._buff.length, i;
+ for (i = 64; i <= length; i += 64) {
+ md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
+ }
+ this._buff = this._buff.substring(i - 64);
+ return this;
+ };
+ SparkMD52.prototype.end = function(raw) {
+ var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
+ }
+ this._finish(tail, length);
+ ret = hex(this._hash);
+ if (raw) {
+ ret = hexToBinaryString(ret);
+ }
+ this.reset();
+ return ret;
+ };
+ SparkMD52.prototype.reset = function() {
+ this._buff = "";
+ this._length = 0;
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
+ return this;
+ };
+ SparkMD52.prototype.getState = function() {
+ return {
+ buff: this._buff,
+ length: this._length,
+ hash: this._hash.slice()
+ };
+ };
+ SparkMD52.prototype.setState = function(state) {
+ this._buff = state.buff;
+ this._length = state.length;
+ this._hash = state.hash;
+ return this;
+ };
+ SparkMD52.prototype.destroy = function() {
+ delete this._hash;
+ delete this._buff;
+ delete this._length;
+ };
+ SparkMD52.prototype._finish = function(tail, length) {
+ var i = length, tmp, lo, hi;
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(this._hash, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = this._length * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(this._hash, tail);
+ };
+ SparkMD52.hash = function(str, raw) {
+ return SparkMD52.hashBinary(toUtf8(str), raw);
+ };
+ SparkMD52.hashBinary = function(content, raw) {
+ var hash3 = md51(content), ret = hex(hash3);
+ return raw ? hexToBinaryString(ret) : ret;
+ };
+ SparkMD52.ArrayBuffer = function() {
+ this.reset();
+ };
+ SparkMD52.ArrayBuffer.prototype.append = function(arr) {
+ var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;
+ this._length += arr.byteLength;
+ for (i = 64; i <= length; i += 64) {
+ md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
+ }
+ this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
+ return this;
+ };
+ SparkMD52.ArrayBuffer.prototype.end = function(raw) {
+ var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= buff[i] << (i % 4 << 3);
+ }
+ this._finish(tail, length);
+ ret = hex(this._hash);
+ if (raw) {
+ ret = hexToBinaryString(ret);
+ }
+ this.reset();
+ return ret;
+ };
+ SparkMD52.ArrayBuffer.prototype.reset = function() {
+ this._buff = new Uint8Array(0);
+ this._length = 0;
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
+ return this;
+ };
+ SparkMD52.ArrayBuffer.prototype.getState = function() {
+ var state = SparkMD52.prototype.getState.call(this);
+ state.buff = arrayBuffer2Utf8Str(state.buff);
+ return state;
+ };
+ SparkMD52.ArrayBuffer.prototype.setState = function(state) {
+ state.buff = utf8Str2ArrayBuffer(state.buff, true);
+ return SparkMD52.prototype.setState.call(this, state);
+ };
+ SparkMD52.ArrayBuffer.prototype.destroy = SparkMD52.prototype.destroy;
+ SparkMD52.ArrayBuffer.prototype._finish = SparkMD52.prototype._finish;
+ SparkMD52.ArrayBuffer.hash = function(arr, raw) {
+ var hash3 = md51_array(new Uint8Array(arr)), ret = hex(hash3);
+ return raw ? hexToBinaryString(ret) : ret;
+ };
+ return SparkMD52;
+ });
+ })(sparkMd5);
+ var SparkMD5 = sparkMd5.exports;
+ var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;
+ var FileChecksum = class _FileChecksum {
+ static create(file, callback) {
+ const instance = new _FileChecksum(file);
+ instance.create(callback);
+ }
+ constructor(file) {
+ this.file = file;
+ this.chunkSize = 2097152;
+ this.chunkCount = Math.ceil(this.file.size / this.chunkSize);
+ this.chunkIndex = 0;
+ }
+ create(callback) {
+ this.callback = callback;
+ this.md5Buffer = new SparkMD5.ArrayBuffer();
+ this.fileReader = new FileReader();
+ this.fileReader.addEventListener("load", (event) => this.fileReaderDidLoad(event));
+ this.fileReader.addEventListener("error", (event) => this.fileReaderDidError(event));
+ this.readNextChunk();
+ }
+ fileReaderDidLoad(event) {
+ this.md5Buffer.append(event.target.result);
+ if (!this.readNextChunk()) {
+ const binaryDigest = this.md5Buffer.end(true);
+ const base64digest = btoa(binaryDigest);
+ this.callback(null, base64digest);
+ }
+ }
+ fileReaderDidError(event) {
+ this.callback(`Error reading ${this.file.name}`);
+ }
+ readNextChunk() {
+ if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {
+ const start4 = this.chunkIndex * this.chunkSize;
+ const end2 = Math.min(start4 + this.chunkSize, this.file.size);
+ const bytes = fileSlice.call(this.file, start4, end2);
+ this.fileReader.readAsArrayBuffer(bytes);
+ this.chunkIndex++;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ };
+ function getMetaValue(name) {
+ const element = findElement(document.head, `meta[name="${name}"]`);
+ if (element) {
+ return element.getAttribute("content");
+ }
+ }
+ function findElements(root, selector) {
+ if (typeof root == "string") {
+ selector = root;
+ root = document;
+ }
+ const elements = root.querySelectorAll(selector);
+ return toArray(elements);
+ }
+ function findElement(root, selector) {
+ if (typeof root == "string") {
+ selector = root;
+ root = document;
+ }
+ return root.querySelector(selector);
+ }
+ function dispatchEvent2(element, type, eventInit = {}) {
+ const { disabled } = element;
+ const { bubbles, cancelable, detail } = eventInit;
+ const event = document.createEvent("Event");
+ event.initEvent(type, bubbles || true, cancelable || true);
+ event.detail = detail || {};
+ try {
+ element.disabled = false;
+ element.dispatchEvent(event);
+ } finally {
+ element.disabled = disabled;
+ }
+ return event;
+ }
+ function toArray(value) {
+ if (Array.isArray(value)) {
+ return value;
+ } else if (Array.from) {
+ return Array.from(value);
+ } else {
+ return [].slice.call(value);
+ }
+ }
+ var BlobRecord = class {
+ constructor(file, checksum, url) {
+ this.file = file;
+ this.attributes = {
+ filename: file.name,
+ content_type: file.type || "application/octet-stream",
+ byte_size: file.size,
+ checksum
+ };
+ this.xhr = new XMLHttpRequest();
+ this.xhr.open("POST", url, true);
+ this.xhr.responseType = "json";
+ this.xhr.setRequestHeader("Content-Type", "application/json");
+ this.xhr.setRequestHeader("Accept", "application/json");
+ this.xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ const csrfToken = getMetaValue("csrf-token");
+ if (csrfToken != void 0) {
+ this.xhr.setRequestHeader("X-CSRF-Token", csrfToken);
+ }
+ this.xhr.addEventListener("load", (event) => this.requestDidLoad(event));
+ this.xhr.addEventListener("error", (event) => this.requestDidError(event));
+ }
+ get status() {
+ return this.xhr.status;
+ }
+ get response() {
+ const { responseType, response } = this.xhr;
+ if (responseType == "json") {
+ return response;
+ } else {
+ return JSON.parse(response);
+ }
+ }
+ create(callback) {
+ this.callback = callback;
+ this.xhr.send(JSON.stringify({
+ blob: this.attributes
+ }));
+ }
+ requestDidLoad(event) {
+ if (this.status >= 200 && this.status < 300) {
+ const { response } = this;
+ const { direct_upload } = response;
+ delete response.direct_upload;
+ this.attributes = response;
+ this.directUploadData = direct_upload;
+ this.callback(null, this.toJSON());
+ } else {
+ this.requestDidError(event);
+ }
+ }
+ requestDidError(event) {
+ this.callback(`Error creating Blob for "${this.file.name}". Status: ${this.status}`);
+ }
+ toJSON() {
+ const result = {};
+ for (const key in this.attributes) {
+ result[key] = this.attributes[key];
+ }
+ return result;
+ }
+ };
+ var BlobUpload = class {
+ constructor(blob) {
+ this.blob = blob;
+ this.file = blob.file;
+ const { url, headers } = blob.directUploadData;
+ this.xhr = new XMLHttpRequest();
+ this.xhr.open("PUT", url, true);
+ this.xhr.responseType = "text";
+ for (const key in headers) {
+ this.xhr.setRequestHeader(key, headers[key]);
+ }
+ this.xhr.addEventListener("load", (event) => this.requestDidLoad(event));
+ this.xhr.addEventListener("error", (event) => this.requestDidError(event));
+ }
+ create(callback) {
+ this.callback = callback;
+ this.xhr.send(this.file.slice());
+ }
+ requestDidLoad(event) {
+ const { status, response } = this.xhr;
+ if (status >= 200 && status < 300) {
+ this.callback(null, response);
+ } else {
+ this.requestDidError(event);
+ }
+ }
+ requestDidError(event) {
+ this.callback(`Error storing "${this.file.name}". Status: ${this.xhr.status}`);
+ }
+ };
+ var id = 0;
+ var DirectUpload = class {
+ constructor(file, url, delegate) {
+ this.id = ++id;
+ this.file = file;
+ this.url = url;
+ this.delegate = delegate;
+ }
+ create(callback) {
+ FileChecksum.create(this.file, (error2, checksum) => {
+ if (error2) {
+ callback(error2);
+ return;
+ }
+ const blob = new BlobRecord(this.file, checksum, this.url);
+ notify(this.delegate, "directUploadWillCreateBlobWithXHR", blob.xhr);
+ blob.create((error3) => {
+ if (error3) {
+ callback(error3);
+ } else {
+ const upload = new BlobUpload(blob);
+ notify(this.delegate, "directUploadWillStoreFileWithXHR", upload.xhr);
+ upload.create((error4) => {
+ if (error4) {
+ callback(error4);
+ } else {
+ callback(null, blob.toJSON());
+ }
+ });
+ }
+ });
+ });
+ }
+ };
+ function notify(object, methodName, ...messages) {
+ if (object && typeof object[methodName] == "function") {
+ return object[methodName](...messages);
+ }
+ }
+ var DirectUploadController = class {
+ constructor(input, file) {
+ this.input = input;
+ this.file = file;
+ this.directUpload = new DirectUpload(this.file, this.url, this);
+ this.dispatch("initialize");
+ }
+ start(callback) {
+ const hiddenInput = document.createElement("input");
+ hiddenInput.type = "hidden";
+ hiddenInput.name = this.input.name;
+ this.input.insertAdjacentElement("beforebegin", hiddenInput);
+ this.dispatch("start");
+ this.directUpload.create((error2, attributes) => {
+ if (error2) {
+ hiddenInput.parentNode.removeChild(hiddenInput);
+ this.dispatchError(error2);
+ } else {
+ hiddenInput.value = attributes.signed_id;
+ }
+ this.dispatch("end");
+ callback(error2);
+ });
+ }
+ uploadRequestDidProgress(event) {
+ const progress = event.loaded / event.total * 100;
+ if (progress) {
+ this.dispatch("progress", {
+ progress
+ });
+ }
+ }
+ get url() {
+ return this.input.getAttribute("data-direct-upload-url");
+ }
+ dispatch(name, detail = {}) {
+ detail.file = this.file;
+ detail.id = this.directUpload.id;
+ return dispatchEvent2(this.input, `direct-upload:${name}`, {
+ detail
+ });
+ }
+ dispatchError(error2) {
+ const event = this.dispatch("error", {
+ error: error2
+ });
+ if (!event.defaultPrevented) {
+ alert(error2);
+ }
+ }
+ directUploadWillCreateBlobWithXHR(xhr) {
+ this.dispatch("before-blob-request", {
+ xhr
+ });
+ }
+ directUploadWillStoreFileWithXHR(xhr) {
+ this.dispatch("before-storage-request", {
+ xhr
+ });
+ xhr.upload.addEventListener("progress", (event) => this.uploadRequestDidProgress(event));
+ }
+ };
+ var inputSelector = "input[type=file][data-direct-upload-url]:not([disabled])";
+ var DirectUploadsController = class {
+ constructor(form) {
+ this.form = form;
+ this.inputs = findElements(form, inputSelector).filter((input) => input.files.length);
+ }
+ start(callback) {
+ const controllers = this.createDirectUploadControllers();
+ const startNextController = () => {
+ const controller = controllers.shift();
+ if (controller) {
+ controller.start((error2) => {
+ if (error2) {
+ callback(error2);
+ this.dispatch("end");
+ } else {
+ startNextController();
+ }
+ });
+ } else {
+ callback();
+ this.dispatch("end");
+ }
+ };
+ this.dispatch("start");
+ startNextController();
+ }
+ createDirectUploadControllers() {
+ const controllers = [];
+ this.inputs.forEach((input) => {
+ toArray(input.files).forEach((file) => {
+ const controller = new DirectUploadController(input, file);
+ controllers.push(controller);
+ });
+ });
+ return controllers;
+ }
+ dispatch(name, detail = {}) {
+ return dispatchEvent2(this.form, `direct-uploads:${name}`, {
+ detail
+ });
+ }
+ };
+ var processingAttribute = "data-direct-uploads-processing";
+ var submitButtonsByForm = /* @__PURE__ */ new WeakMap();
+ var started = false;
+ function start() {
+ if (!started) {
+ started = true;
+ document.addEventListener("click", didClick, true);
+ document.addEventListener("submit", didSubmitForm, true);
+ document.addEventListener("ajax:before", didSubmitRemoteElement);
+ }
+ }
+ function didClick(event) {
+ const { target } = event;
+ if ((target.tagName == "INPUT" || target.tagName == "BUTTON") && target.type == "submit" && target.form) {
+ submitButtonsByForm.set(target.form, target);
+ }
+ }
+ function didSubmitForm(event) {
+ handleFormSubmissionEvent(event);
+ }
+ function didSubmitRemoteElement(event) {
+ if (event.target.tagName == "FORM") {
+ handleFormSubmissionEvent(event);
+ }
+ }
+ function handleFormSubmissionEvent(event) {
+ const form = event.target;
+ if (form.hasAttribute(processingAttribute)) {
+ event.preventDefault();
+ return;
+ }
+ const controller = new DirectUploadsController(form);
+ const { inputs } = controller;
+ if (inputs.length) {
+ event.preventDefault();
+ form.setAttribute(processingAttribute, "");
+ inputs.forEach(disable);
+ controller.start((error2) => {
+ form.removeAttribute(processingAttribute);
+ if (error2) {
+ inputs.forEach(enable);
+ } else {
+ submitForm(form);
+ }
+ });
+ }
+ }
+ function submitForm(form) {
+ let button = submitButtonsByForm.get(form) || findElement(form, "input[type=submit], button[type=submit]");
+ if (button) {
+ const { disabled } = button;
+ button.disabled = false;
+ button.focus();
+ button.click();
+ button.disabled = disabled;
+ } else {
+ button = document.createElement("input");
+ button.type = "submit";
+ button.style.display = "none";
+ form.appendChild(button);
+ button.click();
+ form.removeChild(button);
+ }
+ submitButtonsByForm.delete(form);
+ }
+ function disable(input) {
+ input.disabled = true;
+ }
+ function enable(input) {
+ input.disabled = false;
+ }
+ function autostart() {
+ if (window.ActiveStorage) {
+ start();
+ }
+ }
+ setTimeout(autostart, 1);
+
+ // node_modules/@popperjs/core/lib/index.js
+ var lib_exports = {};
+ __export(lib_exports, {
+ afterMain: () => afterMain,
+ afterRead: () => afterRead,
+ afterWrite: () => afterWrite,
+ applyStyles: () => applyStyles_default,
+ arrow: () => arrow_default,
+ auto: () => auto,
+ basePlacements: () => basePlacements,
+ beforeMain: () => beforeMain,
+ beforeRead: () => beforeRead,
+ beforeWrite: () => beforeWrite,
+ bottom: () => bottom,
+ clippingParents: () => clippingParents,
+ computeStyles: () => computeStyles_default,
+ createPopper: () => createPopper3,
+ createPopperBase: () => createPopper,
+ createPopperLite: () => createPopper2,
+ detectOverflow: () => detectOverflow,
+ end: () => end,
+ eventListeners: () => eventListeners_default,
+ flip: () => flip_default,
+ hide: () => hide_default,
+ left: () => left,
+ main: () => main,
+ modifierPhases: () => modifierPhases,
+ offset: () => offset_default,
+ placements: () => placements,
+ popper: () => popper,
+ popperGenerator: () => popperGenerator,
+ popperOffsets: () => popperOffsets_default,
+ preventOverflow: () => preventOverflow_default,
+ read: () => read,
+ reference: () => reference,
+ right: () => right,
+ start: () => start2,
+ top: () => top,
+ variationPlacements: () => variationPlacements,
+ viewport: () => viewport,
+ write: () => write
+ });
+
+ // node_modules/@popperjs/core/lib/enums.js
+ var top = "top";
+ var bottom = "bottom";
+ var right = "right";
+ var left = "left";
+ var auto = "auto";
+ var basePlacements = [top, bottom, right, left];
+ var start2 = "start";
+ var end = "end";
+ var clippingParents = "clippingParents";
+ var viewport = "viewport";
+ var popper = "popper";
+ var reference = "reference";
+ var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
+ return acc.concat([placement + "-" + start2, placement + "-" + end]);
+ }, []);
+ var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
+ return acc.concat([placement, placement + "-" + start2, placement + "-" + end]);
+ }, []);
+ var beforeRead = "beforeRead";
+ var read = "read";
+ var afterRead = "afterRead";
+ var beforeMain = "beforeMain";
+ var main = "main";
+ var afterMain = "afterMain";
+ var beforeWrite = "beforeWrite";
+ var write = "write";
+ var afterWrite = "afterWrite";
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
+
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
+ function getNodeName(element) {
+ return element ? (element.nodeName || "").toLowerCase() : null;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindow.js
+ function getWindow(node) {
+ if (node == null) {
+ return window;
+ }
+ if (node.toString() !== "[object Window]") {
+ var ownerDocument = node.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView || window : window;
+ }
+ return node;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
+ function isElement(node) {
+ var OwnElement = getWindow(node).Element;
+ return node instanceof OwnElement || node instanceof Element;
+ }
+ function isHTMLElement(node) {
+ var OwnElement = getWindow(node).HTMLElement;
+ return node instanceof OwnElement || node instanceof HTMLElement;
+ }
+ function isShadowRoot(node) {
+ if (typeof ShadowRoot === "undefined") {
+ return false;
+ }
+ var OwnElement = getWindow(node).ShadowRoot;
+ return node instanceof OwnElement || node instanceof ShadowRoot;
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/applyStyles.js
+ function applyStyles(_ref) {
+ var state = _ref.state;
+ Object.keys(state.elements).forEach(function(name) {
+ var style = state.styles[name] || {};
+ var attributes = state.attributes[name] || {};
+ var element = state.elements[name];
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(name2) {
+ var value = attributes[name2];
+ if (value === false) {
+ element.removeAttribute(name2);
+ } else {
+ element.setAttribute(name2, value === true ? "" : value);
+ }
+ });
+ });
+ }
+ function effect(_ref2) {
+ var state = _ref2.state;
+ var initialStyles = {
+ popper: {
+ position: state.options.strategy,
+ left: "0",
+ top: "0",
+ margin: "0"
+ },
+ arrow: {
+ position: "absolute"
+ },
+ reference: {}
+ };
+ Object.assign(state.elements.popper.style, initialStyles.popper);
+ state.styles = initialStyles;
+ if (state.elements.arrow) {
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
+ }
+ return function() {
+ Object.keys(state.elements).forEach(function(name) {
+ var element = state.elements[name];
+ var attributes = state.attributes[name] || {};
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
+ var style = styleProperties.reduce(function(style2, property) {
+ style2[property] = "";
+ return style2;
+ }, {});
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(attribute) {
+ element.removeAttribute(attribute);
+ });
+ });
+ };
+ }
+ var applyStyles_default = {
+ name: "applyStyles",
+ enabled: true,
+ phase: "write",
+ fn: applyStyles,
+ effect,
+ requires: ["computeStyles"]
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getBasePlacement.js
+ function getBasePlacement(placement) {
+ return placement.split("-")[0];
+ }
+
+ // node_modules/@popperjs/core/lib/utils/math.js
+ var max = Math.max;
+ var min = Math.min;
+ var round = Math.round;
+
+ // node_modules/@popperjs/core/lib/utils/userAgent.js
+ function getUAString() {
+ var uaData = navigator.userAgentData;
+ if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
+ return uaData.brands.map(function(item) {
+ return item.brand + "/" + item.version;
+ }).join(" ");
+ }
+ return navigator.userAgent;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js
+ function isLayoutViewport() {
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
+ function getBoundingClientRect(element, includeScale, isFixedStrategy) {
+ if (includeScale === void 0) {
+ includeScale = false;
+ }
+ if (isFixedStrategy === void 0) {
+ isFixedStrategy = false;
+ }
+ var clientRect = element.getBoundingClientRect();
+ var scaleX = 1;
+ var scaleY = 1;
+ if (includeScale && isHTMLElement(element)) {
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
+ }
+ var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
+ var width = clientRect.width / scaleX;
+ var height = clientRect.height / scaleY;
+ return {
+ width,
+ height,
+ top: y,
+ right: x + width,
+ bottom: y + height,
+ left: x,
+ x,
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
+ function getLayoutRect(element) {
+ var clientRect = getBoundingClientRect(element);
+ var width = element.offsetWidth;
+ var height = element.offsetHeight;
+ if (Math.abs(clientRect.width - width) <= 1) {
+ width = clientRect.width;
+ }
+ if (Math.abs(clientRect.height - height) <= 1) {
+ height = clientRect.height;
+ }
+ return {
+ x: element.offsetLeft,
+ y: element.offsetTop,
+ width,
+ height
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/contains.js
+ function contains(parent, child) {
+ var rootNode = child.getRootNode && child.getRootNode();
+ if (parent.contains(child)) {
+ return true;
+ } else if (rootNode && isShadowRoot(rootNode)) {
+ var next = child;
+ do {
+ if (next && parent.isSameNode(next)) {
+ return true;
+ }
+ next = next.parentNode || next.host;
+ } while (next);
+ }
+ return false;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
+ function getComputedStyle2(element) {
+ return getWindow(element).getComputedStyle(element);
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
+ function isTableElement(element) {
+ return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
+ function getDocumentElement(element) {
+ return ((isElement(element) ? element.ownerDocument : (
+ // $FlowFixMe[prop-missing]
+ element.document
+ )) || window.document).documentElement;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
+ function getParentNode(element) {
+ if (getNodeName(element) === "html") {
+ return element;
+ }
+ return (
+ // this is a quicker (but less type safe) way to save quite some bytes from the bundle
+ // $FlowFixMe[incompatible-return]
+ // $FlowFixMe[prop-missing]
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
+ element.parentNode || // DOM Element detected
+ (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
+ getDocumentElement(element)
+ );
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
+ function getTrueOffsetParent(element) {
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
+ getComputedStyle2(element).position === "fixed") {
+ return null;
+ }
+ return element.offsetParent;
+ }
+ function getContainingBlock(element) {
+ var isFirefox = /firefox/i.test(getUAString());
+ var isIE = /Trident/i.test(getUAString());
+ if (isIE && isHTMLElement(element)) {
+ var elementCss = getComputedStyle2(element);
+ if (elementCss.position === "fixed") {
+ return null;
+ }
+ }
+ var currentNode = getParentNode(element);
+ if (isShadowRoot(currentNode)) {
+ currentNode = currentNode.host;
+ }
+ while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
+ var css = getComputedStyle2(currentNode);
+ if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
+ return currentNode;
+ } else {
+ currentNode = currentNode.parentNode;
+ }
+ }
+ return null;
+ }
+ function getOffsetParent(element) {
+ var window2 = getWindow(element);
+ var offsetParent = getTrueOffsetParent(element);
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") {
+ offsetParent = getTrueOffsetParent(offsetParent);
+ }
+ if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) {
+ return window2;
+ }
+ return offsetParent || getContainingBlock(element) || window2;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
+ function getMainAxisFromPlacement(placement) {
+ return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
+ }
+
+ // node_modules/@popperjs/core/lib/utils/within.js
+ function within(min2, value, max2) {
+ return max(min2, min(value, max2));
+ }
+ function withinMaxClamp(min2, value, max2) {
+ var v = within(min2, value, max2);
+ return v > max2 ? max2 : v;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
+ function getFreshSideObject() {
+ return {
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
+ function mergePaddingObject(paddingObject) {
+ return Object.assign({}, getFreshSideObject(), paddingObject);
+ }
+
+ // node_modules/@popperjs/core/lib/utils/expandToHashMap.js
+ function expandToHashMap(value, keys) {
+ return keys.reduce(function(hashMap, key) {
+ hashMap[key] = value;
+ return hashMap;
+ }, {});
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/arrow.js
+ var toPaddingObject = function toPaddingObject2(padding, state) {
+ padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : padding;
+ return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+ };
+ function arrow(_ref) {
+ var _state$modifiersData$;
+ var state = _ref.state, name = _ref.name, options = _ref.options;
+ var arrowElement = state.elements.arrow;
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var basePlacement = getBasePlacement(state.placement);
+ var axis = getMainAxisFromPlacement(basePlacement);
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
+ var len = isVertical ? "height" : "width";
+ if (!arrowElement || !popperOffsets2) {
+ return;
+ }
+ var paddingObject = toPaddingObject(options.padding, state);
+ var arrowRect = getLayoutRect(arrowElement);
+ var minProp = axis === "y" ? top : left;
+ var maxProp = axis === "y" ? bottom : right;
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
+ var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
+ var arrowOffsetParent = getOffsetParent(arrowElement);
+ var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
+ var centerToReference = endDiff / 2 - startDiff / 2;
+ var min2 = paddingObject[minProp];
+ var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
+ var offset2 = within(min2, center, max2);
+ var axisProp = axis;
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
+ }
+ function effect2(_ref2) {
+ var state = _ref2.state, options = _ref2.options;
+ var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
+ if (arrowElement == null) {
+ return;
+ }
+ if (typeof arrowElement === "string") {
+ arrowElement = state.elements.popper.querySelector(arrowElement);
+ if (!arrowElement) {
+ return;
+ }
+ }
+ if (!contains(state.elements.popper, arrowElement)) {
+ return;
+ }
+ state.elements.arrow = arrowElement;
+ }
+ var arrow_default = {
+ name: "arrow",
+ enabled: true,
+ phase: "main",
+ fn: arrow,
+ effect: effect2,
+ requires: ["popperOffsets"],
+ requiresIfExists: ["preventOverflow"]
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getVariation.js
+ function getVariation(placement) {
+ return placement.split("-")[1];
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/computeStyles.js
+ var unsetSides = {
+ top: "auto",
+ right: "auto",
+ bottom: "auto",
+ left: "auto"
+ };
+ function roundOffsetsByDPR(_ref, win) {
+ var x = _ref.x, y = _ref.y;
+ var dpr = win.devicePixelRatio || 1;
+ return {
+ x: round(x * dpr) / dpr || 0,
+ y: round(y * dpr) / dpr || 0
+ };
+ }
+ function mapToStyles(_ref2) {
+ var _Object$assign2;
+ var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
+ var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
+ var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
+ x,
+ y
+ }) : {
+ x,
+ y
+ };
+ x = _ref3.x;
+ y = _ref3.y;
+ var hasX = offsets.hasOwnProperty("x");
+ var hasY = offsets.hasOwnProperty("y");
+ var sideX = left;
+ var sideY = top;
+ var win = window;
+ if (adaptive) {
+ var offsetParent = getOffsetParent(popper2);
+ var heightProp = "clientHeight";
+ var widthProp = "clientWidth";
+ if (offsetParent === getWindow(popper2)) {
+ offsetParent = getDocumentElement(popper2);
+ if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") {
+ heightProp = "scrollHeight";
+ widthProp = "scrollWidth";
+ }
+ }
+ offsetParent = offsetParent;
+ if (placement === top || (placement === left || placement === right) && variation === end) {
+ sideY = bottom;
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : (
+ // $FlowFixMe[prop-missing]
+ offsetParent[heightProp]
+ );
+ y -= offsetY - popperRect.height;
+ y *= gpuAcceleration ? 1 : -1;
+ }
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
+ sideX = right;
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : (
+ // $FlowFixMe[prop-missing]
+ offsetParent[widthProp]
+ );
+ x -= offsetX - popperRect.width;
+ x *= gpuAcceleration ? 1 : -1;
+ }
+ }
+ var commonStyles = Object.assign({
+ position
+ }, adaptive && unsetSides);
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
+ x,
+ y
+ }, getWindow(popper2)) : {
+ x,
+ y
+ };
+ x = _ref4.x;
+ y = _ref4.y;
+ if (gpuAcceleration) {
+ var _Object$assign;
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
+ }
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
+ }
+ function computeStyles(_ref5) {
+ var state = _ref5.state, options = _ref5.options;
+ var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
+ var commonStyles = {
+ placement: getBasePlacement(state.placement),
+ variation: getVariation(state.placement),
+ popper: state.elements.popper,
+ popperRect: state.rects.popper,
+ gpuAcceleration,
+ isFixed: state.options.strategy === "fixed"
+ };
+ if (state.modifiersData.popperOffsets != null) {
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.popperOffsets,
+ position: state.options.strategy,
+ adaptive,
+ roundOffsets
+ })));
+ }
+ if (state.modifiersData.arrow != null) {
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.arrow,
+ position: "absolute",
+ adaptive: false,
+ roundOffsets
+ })));
+ }
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-placement": state.placement
+ });
+ }
+ var computeStyles_default = {
+ name: "computeStyles",
+ enabled: true,
+ phase: "beforeWrite",
+ fn: computeStyles,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/eventListeners.js
+ var passive = {
+ passive: true
+ };
+ function effect3(_ref) {
+ var state = _ref.state, instance = _ref.instance, options = _ref.options;
+ var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
+ var window2 = getWindow(state.elements.popper);
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.addEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.addEventListener("resize", instance.update, passive);
+ }
+ return function() {
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.removeEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.removeEventListener("resize", instance.update, passive);
+ }
+ };
+ }
+ var eventListeners_default = {
+ name: "eventListeners",
+ enabled: true,
+ phase: "write",
+ fn: function fn() {
+ },
+ effect: effect3,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
+ var hash = {
+ left: "right",
+ right: "left",
+ bottom: "top",
+ top: "bottom"
+ };
+ function getOppositePlacement(placement) {
+ return placement.replace(/left|right|bottom|top/g, function(matched) {
+ return hash[matched];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
+ var hash2 = {
+ start: "end",
+ end: "start"
+ };
+ function getOppositeVariationPlacement(placement) {
+ return placement.replace(/start|end/g, function(matched) {
+ return hash2[matched];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
+ function getWindowScroll(node) {
+ var win = getWindow(node);
+ var scrollLeft = win.pageXOffset;
+ var scrollTop = win.pageYOffset;
+ return {
+ scrollLeft,
+ scrollTop
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
+ function getWindowScrollBarX(element) {
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
+ function getViewportRect(element, strategy) {
+ var win = getWindow(element);
+ var html = getDocumentElement(element);
+ var visualViewport = win.visualViewport;
+ var width = html.clientWidth;
+ var height = html.clientHeight;
+ var x = 0;
+ var y = 0;
+ if (visualViewport) {
+ width = visualViewport.width;
+ height = visualViewport.height;
+ var layoutViewport = isLayoutViewport();
+ if (layoutViewport || !layoutViewport && strategy === "fixed") {
+ x = visualViewport.offsetLeft;
+ y = visualViewport.offsetTop;
+ }
+ }
+ return {
+ width,
+ height,
+ x: x + getWindowScrollBarX(element),
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
+ function getDocumentRect(element) {
+ var _element$ownerDocumen;
+ var html = getDocumentElement(element);
+ var winScroll = getWindowScroll(element);
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
+ var y = -winScroll.scrollTop;
+ if (getComputedStyle2(body || html).direction === "rtl") {
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
+ }
+ return {
+ width,
+ height,
+ x,
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
+ function isScrollParent(element) {
+ var _getComputedStyle = getComputedStyle2(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
+ function getScrollParent(node) {
+ if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
+ return node.ownerDocument.body;
+ }
+ if (isHTMLElement(node) && isScrollParent(node)) {
+ return node;
+ }
+ return getScrollParent(getParentNode(node));
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
+ function listScrollParents(element, list) {
+ var _element$ownerDocumen;
+ if (list === void 0) {
+ list = [];
+ }
+ var scrollParent = getScrollParent(element);
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
+ var win = getWindow(scrollParent);
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
+ var updatedList = list.concat(target);
+ return isBody ? updatedList : (
+ // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
+ updatedList.concat(listScrollParents(getParentNode(target)))
+ );
+ }
+
+ // node_modules/@popperjs/core/lib/utils/rectToClientRect.js
+ function rectToClientRect(rect) {
+ return Object.assign({}, rect, {
+ left: rect.x,
+ top: rect.y,
+ right: rect.x + rect.width,
+ bottom: rect.y + rect.height
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
+ function getInnerBoundingClientRect(element, strategy) {
+ var rect = getBoundingClientRect(element, false, strategy === "fixed");
+ rect.top = rect.top + element.clientTop;
+ rect.left = rect.left + element.clientLeft;
+ rect.bottom = rect.top + element.clientHeight;
+ rect.right = rect.left + element.clientWidth;
+ rect.width = element.clientWidth;
+ rect.height = element.clientHeight;
+ rect.x = rect.left;
+ rect.y = rect.top;
+ return rect;
+ }
+ function getClientRectFromMixedType(element, clippingParent, strategy) {
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
+ }
+ function getClippingParents(element) {
+ var clippingParents2 = listScrollParents(getParentNode(element));
+ var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0;
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
+ if (!isElement(clipperElement)) {
+ return [];
+ }
+ return clippingParents2.filter(function(clippingParent) {
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
+ });
+ }
+ function getClippingRect(element, boundary, rootBoundary, strategy) {
+ var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
+ var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
+ var firstClippingParent = clippingParents2[0];
+ var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
+ accRect.top = max(rect.top, accRect.top);
+ accRect.right = min(rect.right, accRect.right);
+ accRect.bottom = min(rect.bottom, accRect.bottom);
+ accRect.left = max(rect.left, accRect.left);
+ return accRect;
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
+ clippingRect.width = clippingRect.right - clippingRect.left;
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
+ clippingRect.x = clippingRect.left;
+ clippingRect.y = clippingRect.top;
+ return clippingRect;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/computeOffsets.js
+ function computeOffsets(_ref) {
+ var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
+ var basePlacement = placement ? getBasePlacement(placement) : null;
+ var variation = placement ? getVariation(placement) : null;
+ var commonX = reference2.x + reference2.width / 2 - element.width / 2;
+ var commonY = reference2.y + reference2.height / 2 - element.height / 2;
+ var offsets;
+ switch (basePlacement) {
+ case top:
+ offsets = {
+ x: commonX,
+ y: reference2.y - element.height
+ };
+ break;
+ case bottom:
+ offsets = {
+ x: commonX,
+ y: reference2.y + reference2.height
+ };
+ break;
+ case right:
+ offsets = {
+ x: reference2.x + reference2.width,
+ y: commonY
+ };
+ break;
+ case left:
+ offsets = {
+ x: reference2.x - element.width,
+ y: commonY
+ };
+ break;
+ default:
+ offsets = {
+ x: reference2.x,
+ y: reference2.y
+ };
+ }
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
+ if (mainAxis != null) {
+ var len = mainAxis === "y" ? "height" : "width";
+ switch (variation) {
+ case start2:
+ offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
+ break;
+ case end:
+ offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
+ break;
+ default:
+ }
+ }
+ return offsets;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/detectOverflow.js
+ function detectOverflow(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
+ var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+ var altContext = elementContext === popper ? reference : popper;
+ var popperRect = state.rects.popper;
+ var element = state.elements[altBoundary ? altContext : elementContext];
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
+ var popperOffsets2 = computeOffsets({
+ reference: referenceClientRect,
+ element: popperRect,
+ strategy: "absolute",
+ placement
+ });
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
+ var overflowOffsets = {
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
+ };
+ var offsetData = state.modifiersData.offset;
+ if (elementContext === popper && offsetData) {
+ var offset2 = offsetData[placement];
+ Object.keys(overflowOffsets).forEach(function(key) {
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
+ var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
+ overflowOffsets[key] += offset2[axis] * multiply;
+ });
+ }
+ return overflowOffsets;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
+ function computeAutoPlacement(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
+ var variation = getVariation(placement);
+ var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
+ return getVariation(placement2) === variation;
+ }) : basePlacements;
+ var allowedPlacements = placements2.filter(function(placement2) {
+ return allowedAutoPlacements.indexOf(placement2) >= 0;
+ });
+ if (allowedPlacements.length === 0) {
+ allowedPlacements = placements2;
+ }
+ var overflows = allowedPlacements.reduce(function(acc, placement2) {
+ acc[placement2] = detectOverflow(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding
+ })[getBasePlacement(placement2)];
+ return acc;
+ }, {});
+ return Object.keys(overflows).sort(function(a, b) {
+ return overflows[a] - overflows[b];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/flip.js
+ function getExpandedFallbackPlacements(placement) {
+ if (getBasePlacement(placement) === auto) {
+ return [];
+ }
+ var oppositePlacement = getOppositePlacement(placement);
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
+ }
+ function flip(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ if (state.modifiersData[name]._skip) {
+ return;
+ }
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
+ var preferredPlacement = state.options.placement;
+ var basePlacement = getBasePlacement(preferredPlacement);
+ var isBasePlacement = basePlacement === preferredPlacement;
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
+ var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
+ return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding,
+ flipVariations,
+ allowedAutoPlacements
+ }) : placement2);
+ }, []);
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var checksMap = /* @__PURE__ */ new Map();
+ var makeFallbackChecks = true;
+ var firstFittingPlacement = placements2[0];
+ for (var i = 0; i < placements2.length; i++) {
+ var placement = placements2[i];
+ var _basePlacement = getBasePlacement(placement);
+ var isStartVariation = getVariation(placement) === start2;
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
+ var len = isVertical ? "width" : "height";
+ var overflow = detectOverflow(state, {
+ placement,
+ boundary,
+ rootBoundary,
+ altBoundary,
+ padding
+ });
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
+ if (referenceRect[len] > popperRect[len]) {
+ mainVariationSide = getOppositePlacement(mainVariationSide);
+ }
+ var altVariationSide = getOppositePlacement(mainVariationSide);
+ var checks = [];
+ if (checkMainAxis) {
+ checks.push(overflow[_basePlacement] <= 0);
+ }
+ if (checkAltAxis) {
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
+ }
+ if (checks.every(function(check) {
+ return check;
+ })) {
+ firstFittingPlacement = placement;
+ makeFallbackChecks = false;
+ break;
+ }
+ checksMap.set(placement, checks);
+ }
+ if (makeFallbackChecks) {
+ var numberOfChecks = flipVariations ? 3 : 1;
+ var _loop = function _loop2(_i2) {
+ var fittingPlacement = placements2.find(function(placement2) {
+ var checks2 = checksMap.get(placement2);
+ if (checks2) {
+ return checks2.slice(0, _i2).every(function(check) {
+ return check;
+ });
+ }
+ });
+ if (fittingPlacement) {
+ firstFittingPlacement = fittingPlacement;
+ return "break";
+ }
+ };
+ for (var _i = numberOfChecks; _i > 0; _i--) {
+ var _ret = _loop(_i);
+ if (_ret === "break")
+ break;
+ }
+ }
+ if (state.placement !== firstFittingPlacement) {
+ state.modifiersData[name]._skip = true;
+ state.placement = firstFittingPlacement;
+ state.reset = true;
+ }
+ }
+ var flip_default = {
+ name: "flip",
+ enabled: true,
+ phase: "main",
+ fn: flip,
+ requiresIfExists: ["offset"],
+ data: {
+ _skip: false
+ }
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/hide.js
+ function getSideOffsets(overflow, rect, preventedOffsets) {
+ if (preventedOffsets === void 0) {
+ preventedOffsets = {
+ x: 0,
+ y: 0
+ };
+ }
+ return {
+ top: overflow.top - rect.height - preventedOffsets.y,
+ right: overflow.right - rect.width + preventedOffsets.x,
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
+ left: overflow.left - rect.width - preventedOffsets.x
+ };
+ }
+ function isAnySideFullyClipped(overflow) {
+ return [top, right, bottom, left].some(function(side) {
+ return overflow[side] >= 0;
+ });
+ }
+ function hide(_ref) {
+ var state = _ref.state, name = _ref.name;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var preventedOffsets = state.modifiersData.preventOverflow;
+ var referenceOverflow = detectOverflow(state, {
+ elementContext: "reference"
+ });
+ var popperAltOverflow = detectOverflow(state, {
+ altBoundary: true
+ });
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
+ state.modifiersData[name] = {
+ referenceClippingOffsets,
+ popperEscapeOffsets,
+ isReferenceHidden,
+ hasPopperEscaped
+ };
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-reference-hidden": isReferenceHidden,
+ "data-popper-escaped": hasPopperEscaped
+ });
+ }
+ var hide_default = {
+ name: "hide",
+ enabled: true,
+ phase: "main",
+ requiresIfExists: ["preventOverflow"],
+ fn: hide
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/offset.js
+ function distanceAndSkiddingToXY(placement, rects, offset2) {
+ var basePlacement = getBasePlacement(placement);
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
+ var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
+ placement
+ })) : offset2, skidding = _ref[0], distance = _ref[1];
+ skidding = skidding || 0;
+ distance = (distance || 0) * invertDistance;
+ return [left, right].indexOf(basePlacement) >= 0 ? {
+ x: distance,
+ y: skidding
+ } : {
+ x: skidding,
+ y: distance
+ };
+ }
+ function offset(_ref2) {
+ var state = _ref2.state, options = _ref2.options, name = _ref2.name;
+ var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
+ var data = placements.reduce(function(acc, placement) {
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
+ return acc;
+ }, {});
+ var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
+ if (state.modifiersData.popperOffsets != null) {
+ state.modifiersData.popperOffsets.x += x;
+ state.modifiersData.popperOffsets.y += y;
+ }
+ state.modifiersData[name] = data;
+ }
+ var offset_default = {
+ name: "offset",
+ enabled: true,
+ phase: "main",
+ requires: ["popperOffsets"],
+ fn: offset
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
+ function popperOffsets(_ref) {
+ var state = _ref.state, name = _ref.name;
+ state.modifiersData[name] = computeOffsets({
+ reference: state.rects.reference,
+ element: state.rects.popper,
+ strategy: "absolute",
+ placement: state.placement
+ });
+ }
+ var popperOffsets_default = {
+ name: "popperOffsets",
+ enabled: true,
+ phase: "read",
+ fn: popperOffsets,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getAltAxis.js
+ function getAltAxis(axis) {
+ return axis === "x" ? "y" : "x";
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
+ function preventOverflow(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
+ var overflow = detectOverflow(state, {
+ boundary,
+ rootBoundary,
+ padding,
+ altBoundary
+ });
+ var basePlacement = getBasePlacement(state.placement);
+ var variation = getVariation(state.placement);
+ var isBasePlacement = !variation;
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
+ var altAxis = getAltAxis(mainAxis);
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : tetherOffset;
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
+ mainAxis: tetherOffsetValue,
+ altAxis: tetherOffsetValue
+ } : Object.assign({
+ mainAxis: 0,
+ altAxis: 0
+ }, tetherOffsetValue);
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
+ var data = {
+ x: 0,
+ y: 0
+ };
+ if (!popperOffsets2) {
+ return;
+ }
+ if (checkMainAxis) {
+ var _offsetModifierState$;
+ var mainSide = mainAxis === "y" ? top : left;
+ var altSide = mainAxis === "y" ? bottom : right;
+ var len = mainAxis === "y" ? "height" : "width";
+ var offset2 = popperOffsets2[mainAxis];
+ var min2 = offset2 + overflow[mainSide];
+ var max2 = offset2 - overflow[altSide];
+ var additive = tether ? -popperRect[len] / 2 : 0;
+ var minLen = variation === start2 ? referenceRect[len] : popperRect[len];
+ var maxLen = variation === start2 ? -popperRect[len] : -referenceRect[len];
+ var arrowElement = state.elements.arrow;
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
+ width: 0,
+ height: 0
+ };
+ var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
+ var arrowPaddingMax = arrowPaddingObject[altSide];
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
+ var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
+ var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
+ var tetherMax = offset2 + maxOffset - offsetModifierValue;
+ var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2);
+ popperOffsets2[mainAxis] = preventedOffset;
+ data[mainAxis] = preventedOffset - offset2;
+ }
+ if (checkAltAxis) {
+ var _offsetModifierState$2;
+ var _mainSide = mainAxis === "x" ? top : left;
+ var _altSide = mainAxis === "x" ? bottom : right;
+ var _offset = popperOffsets2[altAxis];
+ var _len = altAxis === "y" ? "height" : "width";
+ var _min = _offset + overflow[_mainSide];
+ var _max = _offset - overflow[_altSide];
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
+ popperOffsets2[altAxis] = _preventedOffset;
+ data[altAxis] = _preventedOffset - _offset;
+ }
+ state.modifiersData[name] = data;
+ }
+ var preventOverflow_default = {
+ name: "preventOverflow",
+ enabled: true,
+ phase: "main",
+ fn: preventOverflow,
+ requiresIfExists: ["offset"]
+ };
+
+ // node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
+ function getHTMLElementScroll(element) {
+ return {
+ scrollLeft: element.scrollLeft,
+ scrollTop: element.scrollTop
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
+ function getNodeScroll(node) {
+ if (node === getWindow(node) || !isHTMLElement(node)) {
+ return getWindowScroll(node);
+ } else {
+ return getHTMLElementScroll(node);
+ }
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
+ function isElementScaled(element) {
+ var rect = element.getBoundingClientRect();
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
+ return scaleX !== 1 || scaleY !== 1;
+ }
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
+ if (isFixed === void 0) {
+ isFixed = false;
+ }
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
+ var documentElement = getDocumentElement(offsetParent);
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
+ var scroll = {
+ scrollLeft: 0,
+ scrollTop: 0
+ };
+ var offsets = {
+ x: 0,
+ y: 0
+ };
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
+ if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
+ isScrollParent(documentElement)) {
+ scroll = getNodeScroll(offsetParent);
+ }
+ if (isHTMLElement(offsetParent)) {
+ offsets = getBoundingClientRect(offsetParent, true);
+ offsets.x += offsetParent.clientLeft;
+ offsets.y += offsetParent.clientTop;
+ } else if (documentElement) {
+ offsets.x = getWindowScrollBarX(documentElement);
+ }
+ }
+ return {
+ x: rect.left + scroll.scrollLeft - offsets.x,
+ y: rect.top + scroll.scrollTop - offsets.y,
+ width: rect.width,
+ height: rect.height
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/orderModifiers.js
+ function order(modifiers) {
+ var map = /* @__PURE__ */ new Map();
+ var visited = /* @__PURE__ */ new Set();
+ var result = [];
+ modifiers.forEach(function(modifier) {
+ map.set(modifier.name, modifier);
+ });
+ function sort(modifier) {
+ visited.add(modifier.name);
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
+ requires.forEach(function(dep) {
+ if (!visited.has(dep)) {
+ var depModifier = map.get(dep);
+ if (depModifier) {
+ sort(depModifier);
+ }
+ }
+ });
+ result.push(modifier);
+ }
+ modifiers.forEach(function(modifier) {
+ if (!visited.has(modifier.name)) {
+ sort(modifier);
+ }
+ });
+ return result;
+ }
+ function orderModifiers(modifiers) {
+ var orderedModifiers = order(modifiers);
+ return modifierPhases.reduce(function(acc, phase) {
+ return acc.concat(orderedModifiers.filter(function(modifier) {
+ return modifier.phase === phase;
+ }));
+ }, []);
+ }
+
+ // node_modules/@popperjs/core/lib/utils/debounce.js
+ function debounce(fn2) {
+ var pending;
+ return function() {
+ if (!pending) {
+ pending = new Promise(function(resolve) {
+ Promise.resolve().then(function() {
+ pending = void 0;
+ resolve(fn2());
+ });
+ });
+ }
+ return pending;
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/mergeByName.js
+ function mergeByName(modifiers) {
+ var merged = modifiers.reduce(function(merged2, current) {
+ var existing = merged2[current.name];
+ merged2[current.name] = existing ? Object.assign({}, existing, current, {
+ options: Object.assign({}, existing.options, current.options),
+ data: Object.assign({}, existing.data, current.data)
+ }) : current;
+ return merged2;
+ }, {});
+ return Object.keys(merged).map(function(key) {
+ return merged[key];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/createPopper.js
+ var DEFAULT_OPTIONS = {
+ placement: "bottom",
+ modifiers: [],
+ strategy: "absolute"
+ };
+ function areValidElements() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+ return !args.some(function(element) {
+ return !(element && typeof element.getBoundingClientRect === "function");
+ });
+ }
+ function popperGenerator(generatorOptions) {
+ if (generatorOptions === void 0) {
+ generatorOptions = {};
+ }
+ var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers3 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions2 = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
+ return function createPopper4(reference2, popper2, options) {
+ if (options === void 0) {
+ options = defaultOptions2;
+ }
+ var state = {
+ placement: "bottom",
+ orderedModifiers: [],
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions2),
+ modifiersData: {},
+ elements: {
+ reference: reference2,
+ popper: popper2
+ },
+ attributes: {},
+ styles: {}
+ };
+ var effectCleanupFns = [];
+ var isDestroyed = false;
+ var instance = {
+ state,
+ setOptions: function setOptions(setOptionsAction) {
+ var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
+ cleanupModifierEffects();
+ state.options = Object.assign({}, defaultOptions2, state.options, options2);
+ state.scrollParents = {
+ reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
+ popper: listScrollParents(popper2)
+ };
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers3, state.options.modifiers)));
+ state.orderedModifiers = orderedModifiers.filter(function(m) {
+ return m.enabled;
+ });
+ runModifierEffects();
+ return instance.update();
+ },
+ // Sync update – it will always be executed, even if not necessary. This
+ // is useful for low frequency updates where sync behavior simplifies the
+ // logic.
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
+ // prefer the async Popper#update method
+ forceUpdate: function forceUpdate() {
+ if (isDestroyed) {
+ return;
+ }
+ var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
+ if (!areValidElements(reference3, popper3)) {
+ return;
+ }
+ state.rects = {
+ reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
+ popper: getLayoutRect(popper3)
+ };
+ state.reset = false;
+ state.placement = state.options.placement;
+ state.orderedModifiers.forEach(function(modifier) {
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
+ });
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
+ if (state.reset === true) {
+ state.reset = false;
+ index = -1;
+ continue;
+ }
+ var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
+ if (typeof fn2 === "function") {
+ state = fn2({
+ state,
+ options: _options,
+ name,
+ instance
+ }) || state;
+ }
+ }
+ },
+ // Async and optimistically optimized update – it will not be executed if
+ // not necessary (debounced to run at most once-per-tick)
+ update: debounce(function() {
+ return new Promise(function(resolve) {
+ instance.forceUpdate();
+ resolve(state);
+ });
+ }),
+ destroy: function destroy() {
+ cleanupModifierEffects();
+ isDestroyed = true;
+ }
+ };
+ if (!areValidElements(reference2, popper2)) {
+ return instance;
+ }
+ instance.setOptions(options).then(function(state2) {
+ if (!isDestroyed && options.onFirstUpdate) {
+ options.onFirstUpdate(state2);
+ }
+ });
+ function runModifierEffects() {
+ state.orderedModifiers.forEach(function(_ref) {
+ var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect4 = _ref.effect;
+ if (typeof effect4 === "function") {
+ var cleanupFn = effect4({
+ state,
+ name,
+ instance,
+ options: options2
+ });
+ var noopFn = function noopFn2() {
+ };
+ effectCleanupFns.push(cleanupFn || noopFn);
+ }
+ });
+ }
+ function cleanupModifierEffects() {
+ effectCleanupFns.forEach(function(fn2) {
+ return fn2();
+ });
+ effectCleanupFns = [];
+ }
+ return instance;
+ };
+ }
+ var createPopper = /* @__PURE__ */ popperGenerator();
+
+ // node_modules/@popperjs/core/lib/popper-lite.js
+ var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default];
+ var createPopper2 = /* @__PURE__ */ popperGenerator({
+ defaultModifiers
+ });
+
+ // node_modules/@popperjs/core/lib/popper.js
+ var defaultModifiers2 = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default];
+ var createPopper3 = /* @__PURE__ */ popperGenerator({
+ defaultModifiers: defaultModifiers2
+ });
+
+ // node_modules/bootstrap/dist/js/bootstrap.esm.js
+ var elementMap = /* @__PURE__ */ new Map();
+ var Data = {
+ set(element, key, instance) {
+ if (!elementMap.has(element)) {
+ elementMap.set(element, /* @__PURE__ */ new Map());
+ }
+ const instanceMap = elementMap.get(element);
+ if (!instanceMap.has(key) && instanceMap.size !== 0) {
+ console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
+ return;
+ }
+ instanceMap.set(key, instance);
+ },
+ get(element, key) {
+ if (elementMap.has(element)) {
+ return elementMap.get(element).get(key) || null;
+ }
+ return null;
+ },
+ remove(element, key) {
+ if (!elementMap.has(element)) {
+ return;
+ }
+ const instanceMap = elementMap.get(element);
+ instanceMap.delete(key);
+ if (instanceMap.size === 0) {
+ elementMap.delete(element);
+ }
+ }
+ };
+ var MAX_UID = 1e6;
+ var MILLISECONDS_MULTIPLIER = 1e3;
+ var TRANSITION_END = "transitionend";
+ var parseSelector = (selector) => {
+ if (selector && window.CSS && window.CSS.escape) {
+ selector = selector.replace(/#([^\s"#']+)/g, (match, id2) => `#${CSS.escape(id2)}`);
+ }
+ return selector;
+ };
+ var toType = (object) => {
+ if (object === null || object === void 0) {
+ return `${object}`;
+ }
+ return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ var getUID = (prefix) => {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+ return prefix;
+ };
+ var getTransitionDurationFromElement = (element) => {
+ if (!element) {
+ return 0;
+ }
+ let {
+ transitionDuration,
+ transitionDelay
+ } = window.getComputedStyle(element);
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
+ const floatTransitionDelay = Number.parseFloat(transitionDelay);
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ }
+ transitionDuration = transitionDuration.split(",")[0];
+ transitionDelay = transitionDelay.split(",")[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+ var triggerTransitionEnd = (element) => {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+ var isElement2 = (object) => {
+ if (!object || typeof object !== "object") {
+ return false;
+ }
+ if (typeof object.jquery !== "undefined") {
+ object = object[0];
+ }
+ return typeof object.nodeType !== "undefined";
+ };
+ var getElement = (object) => {
+ if (isElement2(object)) {
+ return object.jquery ? object[0] : object;
+ }
+ if (typeof object === "string" && object.length > 0) {
+ return document.querySelector(parseSelector(object));
+ }
+ return null;
+ };
+ var isVisible = (element) => {
+ if (!isElement2(element) || element.getClientRects().length === 0) {
+ return false;
+ }
+ const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible";
+ const closedDetails = element.closest("details:not([open])");
+ if (!closedDetails) {
+ return elementIsVisible;
+ }
+ if (closedDetails !== element) {
+ const summary = element.closest("summary");
+ if (summary && summary.parentNode !== closedDetails) {
+ return false;
+ }
+ if (summary === null) {
+ return false;
+ }
+ }
+ return elementIsVisible;
+ };
+ var isDisabled = (element) => {
+ if (!element || element.nodeType !== Node.ELEMENT_NODE) {
+ return true;
+ }
+ if (element.classList.contains("disabled")) {
+ return true;
+ }
+ if (typeof element.disabled !== "undefined") {
+ return element.disabled;
+ }
+ return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false";
+ };
+ var findShadowRoot = (element) => {
+ if (!document.documentElement.attachShadow) {
+ return null;
+ }
+ if (typeof element.getRootNode === "function") {
+ const root = element.getRootNode();
+ return root instanceof ShadowRoot ? root : null;
+ }
+ if (element instanceof ShadowRoot) {
+ return element;
+ }
+ if (!element.parentNode) {
+ return null;
+ }
+ return findShadowRoot(element.parentNode);
+ };
+ var noop = () => {
+ };
+ var reflow = (element) => {
+ element.offsetHeight;
+ };
+ var getjQuery = () => {
+ if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) {
+ return window.jQuery;
+ }
+ return null;
+ };
+ var DOMContentLoadedCallbacks = [];
+ var onDOMContentLoaded = (callback) => {
+ if (document.readyState === "loading") {
+ if (!DOMContentLoadedCallbacks.length) {
+ document.addEventListener("DOMContentLoaded", () => {
+ for (const callback2 of DOMContentLoadedCallbacks) {
+ callback2();
+ }
+ });
+ }
+ DOMContentLoadedCallbacks.push(callback);
+ } else {
+ callback();
+ }
+ };
+ var isRTL = () => document.documentElement.dir === "rtl";
+ var defineJQueryPlugin = (plugin) => {
+ onDOMContentLoaded(() => {
+ const $ = getjQuery();
+ if ($) {
+ const name = plugin.NAME;
+ const JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+ $.fn[name].noConflict = () => {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+ var execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
+ return typeof possibleCallback === "function" ? possibleCallback(...args) : defaultValue;
+ };
+ var executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
+ if (!waitForTransition) {
+ execute(callback);
+ return;
+ }
+ const durationPadding = 5;
+ const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
+ let called = false;
+ const handler = ({
+ target
+ }) => {
+ if (target !== transitionElement) {
+ return;
+ }
+ called = true;
+ transitionElement.removeEventListener(TRANSITION_END, handler);
+ execute(callback);
+ };
+ transitionElement.addEventListener(TRANSITION_END, handler);
+ setTimeout(() => {
+ if (!called) {
+ triggerTransitionEnd(transitionElement);
+ }
+ }, emulatedDuration);
+ };
+ var getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
+ const listLength = list.length;
+ let index = list.indexOf(activeElement);
+ if (index === -1) {
+ return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
+ }
+ index += shouldGetNext ? 1 : -1;
+ if (isCycleAllowed) {
+ index = (index + listLength) % listLength;
+ }
+ return list[Math.max(0, Math.min(index, listLength - 1))];
+ };
+ var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
+ var stripNameRegex = /\..*/;
+ var stripUidRegex = /::\d+$/;
+ var eventRegistry = {};
+ var uidEvent = 1;
+ var customEvents = {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ };
+ var nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
+ function makeEventUid(element, uid) {
+ return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
+ }
+ function getElementEvents(element) {
+ const uid = makeEventUid(element);
+ element.uidEvent = uid;
+ eventRegistry[uid] = eventRegistry[uid] || {};
+ return eventRegistry[uid];
+ }
+ function bootstrapHandler(element, fn2) {
+ return function handler(event) {
+ hydrateObj(event, {
+ delegateTarget: element
+ });
+ if (handler.oneOff) {
+ EventHandler.off(element, event.type, fn2);
+ }
+ return fn2.apply(element, [event]);
+ };
+ }
+ function bootstrapDelegationHandler(element, selector, fn2) {
+ return function handler(event) {
+ const domElements = element.querySelectorAll(selector);
+ for (let {
+ target
+ } = event; target && target !== this; target = target.parentNode) {
+ for (const domElement of domElements) {
+ if (domElement !== target) {
+ continue;
+ }
+ hydrateObj(event, {
+ delegateTarget: target
+ });
+ if (handler.oneOff) {
+ EventHandler.off(element, event.type, selector, fn2);
+ }
+ return fn2.apply(target, [event]);
+ }
+ }
+ };
+ }
+ function findHandler(events, callable, delegationSelector = null) {
+ return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector);
+ }
+ function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
+ const isDelegated = typeof handler === "string";
+ const callable = isDelegated ? delegationFunction : handler || delegationFunction;
+ let typeEvent = getTypeEvent(originalTypeEvent);
+ if (!nativeEvents.has(typeEvent)) {
+ typeEvent = originalTypeEvent;
+ }
+ return [isDelegated, callable, typeEvent];
+ }
+ function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
+ if (typeof originalTypeEvent !== "string" || !element) {
+ return;
+ }
+ let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
+ if (originalTypeEvent in customEvents) {
+ const wrapFunction = (fn3) => {
+ return function(event) {
+ if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
+ return fn3.call(this, event);
+ }
+ };
+ };
+ callable = wrapFunction(callable);
+ }
+ const events = getElementEvents(element);
+ const handlers = events[typeEvent] || (events[typeEvent] = {});
+ const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
+ if (previousFunction) {
+ previousFunction.oneOff = previousFunction.oneOff && oneOff;
+ return;
+ }
+ const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ""));
+ const fn2 = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
+ fn2.delegationSelector = isDelegated ? handler : null;
+ fn2.callable = callable;
+ fn2.oneOff = oneOff;
+ fn2.uidEvent = uid;
+ handlers[uid] = fn2;
+ element.addEventListener(typeEvent, fn2, isDelegated);
+ }
+ function removeHandler(element, events, typeEvent, handler, delegationSelector) {
+ const fn2 = findHandler(events[typeEvent], handler, delegationSelector);
+ if (!fn2) {
+ return;
+ }
+ element.removeEventListener(typeEvent, fn2, Boolean(delegationSelector));
+ delete events[typeEvent][fn2.uidEvent];
+ }
+ function removeNamespacedHandlers(element, events, typeEvent, namespace) {
+ const storeElementEvent = events[typeEvent] || {};
+ for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
+ if (handlerKey.includes(namespace)) {
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
+ }
+ }
+ }
+ function getTypeEvent(event) {
+ event = event.replace(stripNameRegex, "");
+ return customEvents[event] || event;
+ }
+ var EventHandler = {
+ on(element, event, handler, delegationFunction) {
+ addHandler(element, event, handler, delegationFunction, false);
+ },
+ one(element, event, handler, delegationFunction) {
+ addHandler(element, event, handler, delegationFunction, true);
+ },
+ off(element, originalTypeEvent, handler, delegationFunction) {
+ if (typeof originalTypeEvent !== "string" || !element) {
+ return;
+ }
+ const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
+ const inNamespace = typeEvent !== originalTypeEvent;
+ const events = getElementEvents(element);
+ const storeElementEvent = events[typeEvent] || {};
+ const isNamespace = originalTypeEvent.startsWith(".");
+ if (typeof callable !== "undefined") {
+ if (!Object.keys(storeElementEvent).length) {
+ return;
+ }
+ removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
+ return;
+ }
+ if (isNamespace) {
+ for (const elementEvent of Object.keys(events)) {
+ removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
+ }
+ }
+ for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
+ const handlerKey = keyHandlers.replace(stripUidRegex, "");
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
+ }
+ }
+ },
+ trigger(element, event, args) {
+ if (typeof event !== "string" || !element) {
+ return null;
+ }
+ const $ = getjQuery();
+ const typeEvent = getTypeEvent(event);
+ const inNamespace = event !== typeEvent;
+ let jQueryEvent = null;
+ let bubbles = true;
+ let nativeDispatch = true;
+ let defaultPrevented = false;
+ if (inNamespace && $) {
+ jQueryEvent = $.Event(event, args);
+ $(element).trigger(jQueryEvent);
+ bubbles = !jQueryEvent.isPropagationStopped();
+ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
+ defaultPrevented = jQueryEvent.isDefaultPrevented();
+ }
+ const evt = hydrateObj(new Event(event, {
+ bubbles,
+ cancelable: true
+ }), args);
+ if (defaultPrevented) {
+ evt.preventDefault();
+ }
+ if (nativeDispatch) {
+ element.dispatchEvent(evt);
+ }
+ if (evt.defaultPrevented && jQueryEvent) {
+ jQueryEvent.preventDefault();
+ }
+ return evt;
+ }
+ };
+ function hydrateObj(obj, meta = {}) {
+ for (const [key, value] of Object.entries(meta)) {
+ try {
+ obj[key] = value;
+ } catch (_unused) {
+ Object.defineProperty(obj, key, {
+ configurable: true,
+ get() {
+ return value;
+ }
+ });
+ }
+ }
+ return obj;
+ }
+ function normalizeData(value) {
+ if (value === "true") {
+ return true;
+ }
+ if (value === "false") {
+ return false;
+ }
+ if (value === Number(value).toString()) {
+ return Number(value);
+ }
+ if (value === "" || value === "null") {
+ return null;
+ }
+ if (typeof value !== "string") {
+ return value;
+ }
+ try {
+ return JSON.parse(decodeURIComponent(value));
+ } catch (_unused) {
+ return value;
+ }
+ }
+ function normalizeDataKey(key) {
+ return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);
+ }
+ var Manipulator = {
+ setDataAttribute(element, key, value) {
+ element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
+ },
+ removeDataAttribute(element, key) {
+ element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
+ },
+ getDataAttributes(element) {
+ if (!element) {
+ return {};
+ }
+ const attributes = {};
+ const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig"));
+ for (const key of bsKeys) {
+ let pureKey = key.replace(/^bs/, "");
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
+ attributes[pureKey] = normalizeData(element.dataset[key]);
+ }
+ return attributes;
+ },
+ getDataAttribute(element, key) {
+ return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
+ }
+ };
+ var Config = class {
+ // Getters
+ static get Default() {
+ return {};
+ }
+ static get DefaultType() {
+ return {};
+ }
+ static get NAME() {
+ throw new Error('You have to implement the static method "NAME", for each component!');
+ }
+ _getConfig(config) {
+ config = this._mergeConfigObj(config);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ _configAfterMerge(config) {
+ return config;
+ }
+ _mergeConfigObj(config, element) {
+ const jsonConfig = isElement2(element) ? Manipulator.getDataAttribute(element, "config") : {};
+ return {
+ ...this.constructor.Default,
+ ...typeof jsonConfig === "object" ? jsonConfig : {},
+ ...isElement2(element) ? Manipulator.getDataAttributes(element) : {},
+ ...typeof config === "object" ? config : {}
+ };
+ }
+ _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
+ for (const [property, expectedTypes] of Object.entries(configTypes)) {
+ const value = config[property];
+ const valueType = isElement2(value) ? "element" : toType(value);
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
+ }
+ }
+ }
+ };
+ var VERSION = "5.3.0";
+ var BaseComponent = class extends Config {
+ constructor(element, config) {
+ super();
+ element = getElement(element);
+ if (!element) {
+ return;
+ }
+ this._element = element;
+ this._config = this._getConfig(config);
+ Data.set(this._element, this.constructor.DATA_KEY, this);
+ }
+ // Public
+ dispose() {
+ Data.remove(this._element, this.constructor.DATA_KEY);
+ EventHandler.off(this._element, this.constructor.EVENT_KEY);
+ for (const propertyName of Object.getOwnPropertyNames(this)) {
+ this[propertyName] = null;
+ }
+ }
+ _queueCallback(callback, element, isAnimated = true) {
+ executeAfterTransition(callback, element, isAnimated);
+ }
+ _getConfig(config) {
+ config = this._mergeConfigObj(config, this._element);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ // Static
+ static getInstance(element) {
+ return Data.get(getElement(element), this.DATA_KEY);
+ }
+ static getOrCreateInstance(element, config = {}) {
+ return this.getInstance(element) || new this(element, typeof config === "object" ? config : null);
+ }
+ static get VERSION() {
+ return VERSION;
+ }
+ static get DATA_KEY() {
+ return `bs.${this.NAME}`;
+ }
+ static get EVENT_KEY() {
+ return `.${this.DATA_KEY}`;
+ }
+ static eventName(name) {
+ return `${name}${this.EVENT_KEY}`;
+ }
+ };
+ var getSelector = (element) => {
+ let selector = element.getAttribute("data-bs-target");
+ if (!selector || selector === "#") {
+ let hrefAttribute = element.getAttribute("href");
+ if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) {
+ return null;
+ }
+ if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) {
+ hrefAttribute = `#${hrefAttribute.split("#")[1]}`;
+ }
+ selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null;
+ }
+ return parseSelector(selector);
+ };
+ var SelectorEngine = {
+ find(selector, element = document.documentElement) {
+ return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
+ },
+ findOne(selector, element = document.documentElement) {
+ return Element.prototype.querySelector.call(element, selector);
+ },
+ children(element, selector) {
+ return [].concat(...element.children).filter((child) => child.matches(selector));
+ },
+ parents(element, selector) {
+ const parents = [];
+ let ancestor = element.parentNode.closest(selector);
+ while (ancestor) {
+ parents.push(ancestor);
+ ancestor = ancestor.parentNode.closest(selector);
+ }
+ return parents;
+ },
+ prev(element, selector) {
+ let previous = element.previousElementSibling;
+ while (previous) {
+ if (previous.matches(selector)) {
+ return [previous];
+ }
+ previous = previous.previousElementSibling;
+ }
+ return [];
+ },
+ // TODO: this is now unused; remove later along with prev()
+ next(element, selector) {
+ let next = element.nextElementSibling;
+ while (next) {
+ if (next.matches(selector)) {
+ return [next];
+ }
+ next = next.nextElementSibling;
+ }
+ return [];
+ },
+ focusableChildren(element) {
+ const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector) => `${selector}:not([tabindex^="-"])`).join(",");
+ return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));
+ },
+ getSelectorFromElement(element) {
+ const selector = getSelector(element);
+ if (selector) {
+ return SelectorEngine.findOne(selector) ? selector : null;
+ }
+ return null;
+ },
+ getElementFromSelector(element) {
+ const selector = getSelector(element);
+ return selector ? SelectorEngine.findOne(selector) : null;
+ },
+ getMultipleElementsFromSelector(element) {
+ const selector = getSelector(element);
+ return selector ? SelectorEngine.find(selector) : [];
+ }
+ };
+ var enableDismissTrigger = (component, method = "hide") => {
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
+ const name = component.NAME;
+ EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) {
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
+ const instance = component.getOrCreateInstance(target);
+ instance[method]();
+ });
+ };
+ var NAME$f = "alert";
+ var DATA_KEY$a = "bs.alert";
+ var EVENT_KEY$b = `.${DATA_KEY$a}`;
+ var EVENT_CLOSE = `close${EVENT_KEY$b}`;
+ var EVENT_CLOSED = `closed${EVENT_KEY$b}`;
+ var CLASS_NAME_FADE$5 = "fade";
+ var CLASS_NAME_SHOW$8 = "show";
+ var Alert = class _Alert extends BaseComponent {
+ // Getters
+ static get NAME() {
+ return NAME$f;
+ }
+ // Public
+ close() {
+ const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
+ if (closeEvent.defaultPrevented) {
+ return;
+ }
+ this._element.classList.remove(CLASS_NAME_SHOW$8);
+ const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
+ this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
+ }
+ // Private
+ _destroyElement() {
+ this._element.remove();
+ EventHandler.trigger(this._element, EVENT_CLOSED);
+ this.dispose();
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Alert.getOrCreateInstance(this);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ });
+ }
+ };
+ enableDismissTrigger(Alert, "close");
+ defineJQueryPlugin(Alert);
+ var NAME$e = "button";
+ var DATA_KEY$9 = "bs.button";
+ var EVENT_KEY$a = `.${DATA_KEY$9}`;
+ var DATA_API_KEY$6 = ".data-api";
+ var CLASS_NAME_ACTIVE$3 = "active";
+ var SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
+ var EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
+ var Button = class _Button extends BaseComponent {
+ // Getters
+ static get NAME() {
+ return NAME$e;
+ }
+ // Public
+ toggle() {
+ this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Button.getOrCreateInstance(this);
+ if (config === "toggle") {
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => {
+ event.preventDefault();
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
+ const data = Button.getOrCreateInstance(button);
+ data.toggle();
+ });
+ defineJQueryPlugin(Button);
+ var NAME$d = "swipe";
+ var EVENT_KEY$9 = ".bs.swipe";
+ var EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
+ var EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
+ var EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
+ var EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
+ var EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
+ var POINTER_TYPE_TOUCH = "touch";
+ var POINTER_TYPE_PEN = "pen";
+ var CLASS_NAME_POINTER_EVENT = "pointer-event";
+ var SWIPE_THRESHOLD = 40;
+ var Default$c = {
+ endCallback: null,
+ leftCallback: null,
+ rightCallback: null
+ };
+ var DefaultType$c = {
+ endCallback: "(function|null)",
+ leftCallback: "(function|null)",
+ rightCallback: "(function|null)"
+ };
+ var Swipe = class _Swipe extends Config {
+ constructor(element, config) {
+ super();
+ this._element = element;
+ if (!element || !_Swipe.isSupported()) {
+ return;
+ }
+ this._config = this._getConfig(config);
+ this._deltaX = 0;
+ this._supportPointerEvents = Boolean(window.PointerEvent);
+ this._initEvents();
+ }
+ // Getters
+ static get Default() {
+ return Default$c;
+ }
+ static get DefaultType() {
+ return DefaultType$c;
+ }
+ static get NAME() {
+ return NAME$d;
+ }
+ // Public
+ dispose() {
+ EventHandler.off(this._element, EVENT_KEY$9);
+ }
+ // Private
+ _start(event) {
+ if (!this._supportPointerEvents) {
+ this._deltaX = event.touches[0].clientX;
+ return;
+ }
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX;
+ }
+ }
+ _end(event) {
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX - this._deltaX;
+ }
+ this._handleSwipe();
+ execute(this._config.endCallback);
+ }
+ _move(event) {
+ this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
+ }
+ _handleSwipe() {
+ const absDeltaX = Math.abs(this._deltaX);
+ if (absDeltaX <= SWIPE_THRESHOLD) {
+ return;
+ }
+ const direction = absDeltaX / this._deltaX;
+ this._deltaX = 0;
+ if (!direction) {
+ return;
+ }
+ execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
+ }
+ _initEvents() {
+ if (this._supportPointerEvents) {
+ EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));
+ EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));
+ EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));
+ EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));
+ }
+ }
+ _eventIsPointerPenTouch(event) {
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
+ }
+ // Static
+ static isSupported() {
+ return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
+ }
+ };
+ var NAME$c = "carousel";
+ var DATA_KEY$8 = "bs.carousel";
+ var EVENT_KEY$8 = `.${DATA_KEY$8}`;
+ var DATA_API_KEY$5 = ".data-api";
+ var ARROW_LEFT_KEY$1 = "ArrowLeft";
+ var ARROW_RIGHT_KEY$1 = "ArrowRight";
+ var TOUCHEVENT_COMPAT_WAIT = 500;
+ var ORDER_NEXT = "next";
+ var ORDER_PREV = "prev";
+ var DIRECTION_LEFT = "left";
+ var DIRECTION_RIGHT = "right";
+ var EVENT_SLIDE = `slide${EVENT_KEY$8}`;
+ var EVENT_SLID = `slid${EVENT_KEY$8}`;
+ var EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
+ var EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
+ var EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
+ var EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
+ var EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
+ var EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
+ var CLASS_NAME_CAROUSEL = "carousel";
+ var CLASS_NAME_ACTIVE$2 = "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 SELECTOR_ACTIVE = ".active";
+ var SELECTOR_ITEM = ".carousel-item";
+ var SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
+ var SELECTOR_ITEM_IMG = ".carousel-item img";
+ var SELECTOR_INDICATORS = ".carousel-indicators";
+ var SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]";
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+ var KEY_TO_DIRECTION = {
+ [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
+ [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
+ };
+ var Default$b = {
+ interval: 5e3,
+ keyboard: true,
+ pause: "hover",
+ ride: false,
+ touch: true,
+ wrap: true
+ };
+ var DefaultType$b = {
+ interval: "(number|boolean)",
+ // TODO:v6 remove boolean support
+ keyboard: "boolean",
+ pause: "(string|boolean)",
+ ride: "(boolean|string)",
+ touch: "boolean",
+ wrap: "boolean"
+ };
+ var Carousel = class _Carousel extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._interval = null;
+ this._activeElement = null;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this._swipeHelper = null;
+ this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
+ this._addEventListeners();
+ if (this._config.ride === CLASS_NAME_CAROUSEL) {
+ this.cycle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$b;
+ }
+ static get DefaultType() {
+ return DefaultType$b;
+ }
+ static get NAME() {
+ return NAME$c;
+ }
+ // Public
+ next() {
+ this._slide(ORDER_NEXT);
+ }
+ nextWhenVisible() {
+ if (!document.hidden && isVisible(this._element)) {
+ this.next();
+ }
+ }
+ prev() {
+ this._slide(ORDER_PREV);
+ }
+ pause() {
+ if (this._isSliding) {
+ triggerTransitionEnd(this._element);
+ }
+ this._clearInterval();
+ }
+ cycle() {
+ this._clearInterval();
+ this._updateInterval();
+ this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
+ }
+ _maybeEnableCycle() {
+ if (!this._config.ride) {
+ return;
+ }
+ if (this._isSliding) {
+ EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
+ return;
+ }
+ this.cycle();
+ }
+ to(index) {
+ const items = this._getItems();
+ if (index > items.length - 1 || index < 0) {
+ return;
+ }
+ if (this._isSliding) {
+ EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
+ return;
+ }
+ const activeIndex = this._getItemIndex(this._getActive());
+ if (activeIndex === index) {
+ return;
+ }
+ const order2 = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
+ this._slide(order2, items[index]);
+ }
+ dispose() {
+ if (this._swipeHelper) {
+ this._swipeHelper.dispose();
+ }
+ super.dispose();
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.defaultInterval = config.interval;
+ return config;
+ }
+ _addEventListeners() {
+ if (this._config.keyboard) {
+ EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event));
+ }
+ if (this._config.pause === "hover") {
+ EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
+ EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
+ }
+ if (this._config.touch && Swipe.isSupported()) {
+ this._addTouchEventListeners();
+ }
+ }
+ _addTouchEventListeners() {
+ for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
+ EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());
+ }
+ const endCallBack = () => {
+ if (this._config.pause !== "hover") {
+ return;
+ }
+ this.pause();
+ if (this.touchTimeout) {
+ clearTimeout(this.touchTimeout);
+ }
+ this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
+ };
+ const swipeConfig = {
+ leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
+ rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
+ endCallback: endCallBack
+ };
+ this._swipeHelper = new Swipe(this._element, swipeConfig);
+ }
+ _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+ const direction = KEY_TO_DIRECTION[event.key];
+ if (direction) {
+ event.preventDefault();
+ this._slide(this._directionToOrder(direction));
+ }
+ }
+ _getItemIndex(element) {
+ return this._getItems().indexOf(element);
+ }
+ _setActiveIndicatorElement(index) {
+ if (!this._indicatorsElement) {
+ return;
+ }
+ const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
+ activeIndicator.removeAttribute("aria-current");
+ const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
+ if (newActiveIndicator) {
+ newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
+ newActiveIndicator.setAttribute("aria-current", "true");
+ }
+ }
+ _updateInterval() {
+ const element = this._activeElement || this._getActive();
+ if (!element) {
+ return;
+ }
+ const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10);
+ this._config.interval = elementInterval || this._config.defaultInterval;
+ }
+ _slide(order2, element = null) {
+ if (this._isSliding) {
+ return;
+ }
+ const activeElement = this._getActive();
+ const isNext = order2 === ORDER_NEXT;
+ const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
+ if (nextElement === activeElement) {
+ return;
+ }
+ const nextElementIndex = this._getItemIndex(nextElement);
+ const triggerEvent = (eventName) => {
+ return EventHandler.trigger(this._element, eventName, {
+ relatedTarget: nextElement,
+ direction: this._orderToDirection(order2),
+ from: this._getItemIndex(activeElement),
+ to: nextElementIndex
+ });
+ };
+ const slideEvent = triggerEvent(EVENT_SLIDE);
+ if (slideEvent.defaultPrevented) {
+ return;
+ }
+ if (!activeElement || !nextElement) {
+ return;
+ }
+ const isCycling = Boolean(this._interval);
+ this.pause();
+ this._isSliding = true;
+ this._setActiveIndicatorElement(nextElementIndex);
+ this._activeElement = nextElement;
+ const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
+ const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
+ nextElement.classList.add(orderClassName);
+ reflow(nextElement);
+ activeElement.classList.add(directionalClassName);
+ nextElement.classList.add(directionalClassName);
+ const completeCallBack = () => {
+ nextElement.classList.remove(directionalClassName, orderClassName);
+ nextElement.classList.add(CLASS_NAME_ACTIVE$2);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
+ this._isSliding = false;
+ triggerEvent(EVENT_SLID);
+ };
+ this._queueCallback(completeCallBack, activeElement, this._isAnimated());
+ if (isCycling) {
+ this.cycle();
+ }
+ }
+ _isAnimated() {
+ return this._element.classList.contains(CLASS_NAME_SLIDE);
+ }
+ _getActive() {
+ return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ }
+ _getItems() {
+ return SelectorEngine.find(SELECTOR_ITEM, this._element);
+ }
+ _clearInterval() {
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+ }
+ _directionToOrder(direction) {
+ if (isRTL()) {
+ return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
+ }
+ return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
+ }
+ _orderToDirection(order2) {
+ if (isRTL()) {
+ return order2 === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ return order2 === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Carousel.getOrCreateInstance(this, config);
+ if (typeof config === "number") {
+ data.to(config);
+ return;
+ }
+ if (typeof config === "string") {
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+ event.preventDefault();
+ const carousel = Carousel.getOrCreateInstance(target);
+ const slideIndex = this.getAttribute("data-bs-slide-to");
+ if (slideIndex) {
+ carousel.to(slideIndex);
+ carousel._maybeEnableCycle();
+ return;
+ }
+ if (Manipulator.getDataAttribute(this, "slide") === "next") {
+ carousel.next();
+ carousel._maybeEnableCycle();
+ return;
+ }
+ carousel.prev();
+ carousel._maybeEnableCycle();
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
+ const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
+ for (const carousel of carousels) {
+ Carousel.getOrCreateInstance(carousel);
+ }
+ });
+ defineJQueryPlugin(Carousel);
+ var NAME$b = "collapse";
+ var DATA_KEY$7 = "bs.collapse";
+ var EVENT_KEY$7 = `.${DATA_KEY$7}`;
+ var DATA_API_KEY$4 = ".data-api";
+ var EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
+ var EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
+ var EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
+ var EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
+ var EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
+ var CLASS_NAME_SHOW$7 = "show";
+ var CLASS_NAME_COLLAPSE = "collapse";
+ var CLASS_NAME_COLLAPSING = "collapsing";
+ var CLASS_NAME_COLLAPSED = "collapsed";
+ var CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
+ var CLASS_NAME_HORIZONTAL = "collapse-horizontal";
+ var WIDTH = "width";
+ var HEIGHT = "height";
+ var SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing";
+ var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
+ var Default$a = {
+ parent: null,
+ toggle: true
+ };
+ var DefaultType$a = {
+ parent: "(null|element)",
+ toggle: "boolean"
+ };
+ var Collapse = class _Collapse extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._isTransitioning = false;
+ this._triggerArray = [];
+ const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
+ for (const elem of toggleList) {
+ const selector = SelectorEngine.getSelectorFromElement(elem);
+ const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element);
+ if (selector !== null && filterElement.length) {
+ this._triggerArray.push(elem);
+ }
+ }
+ this._initializeChildren();
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
+ }
+ if (this._config.toggle) {
+ this.toggle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$a;
+ }
+ static get DefaultType() {
+ return DefaultType$a;
+ }
+ static get NAME() {
+ return NAME$b;
+ }
+ // Public
+ toggle() {
+ if (this._isShown()) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ }
+ show() {
+ if (this._isTransitioning || this._isShown()) {
+ return;
+ }
+ let activeChildren = [];
+ if (this._config.parent) {
+ activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => _Collapse.getOrCreateInstance(element, {
+ toggle: false
+ }));
+ }
+ if (activeChildren.length && activeChildren[0]._isTransitioning) {
+ return;
+ }
+ const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+ for (const activeInstance of activeChildren) {
+ activeInstance.hide();
+ }
+ const dimension = this._getDimension();
+ this._element.classList.remove(CLASS_NAME_COLLAPSE);
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+ this._element.style[dimension] = 0;
+ this._addAriaAndCollapsedClass(this._triggerArray, true);
+ this._isTransitioning = true;
+ const complete = () => {
+ this._isTransitioning = false;
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
+ this._element.style[dimension] = "";
+ EventHandler.trigger(this._element, EVENT_SHOWN$6);
+ };
+ const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ const scrollSize = `scroll${capitalizedDimension}`;
+ this._queueCallback(complete, this._element, true);
+ this._element.style[dimension] = `${this._element[scrollSize]}px`;
+ }
+ hide() {
+ if (this._isTransitioning || !this._isShown()) {
+ return;
+ }
+ const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+ const 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$7);
+ for (const trigger of this._triggerArray) {
+ const element = SelectorEngine.getElementFromSelector(trigger);
+ if (element && !this._isShown(element)) {
+ this._addAriaAndCollapsedClass([trigger], false);
+ }
+ }
+ this._isTransitioning = true;
+ const complete = () => {
+ this._isTransitioning = false;
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ this._element.classList.add(CLASS_NAME_COLLAPSE);
+ EventHandler.trigger(this._element, EVENT_HIDDEN$6);
+ };
+ this._element.style[dimension] = "";
+ this._queueCallback(complete, this._element, true);
+ }
+ _isShown(element = this._element) {
+ return element.classList.contains(CLASS_NAME_SHOW$7);
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.toggle = Boolean(config.toggle);
+ config.parent = getElement(config.parent);
+ return config;
+ }
+ _getDimension() {
+ return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
+ }
+ _initializeChildren() {
+ if (!this._config.parent) {
+ return;
+ }
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
+ for (const element of children) {
+ const selected = SelectorEngine.getElementFromSelector(element);
+ if (selected) {
+ this._addAriaAndCollapsedClass([element], this._isShown(selected));
+ }
+ }
+ }
+ _getFirstLevelChildren(selector) {
+ const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
+ return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element));
+ }
+ _addAriaAndCollapsedClass(triggerArray, isOpen) {
+ if (!triggerArray.length) {
+ return;
+ }
+ for (const element of triggerArray) {
+ element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
+ element.setAttribute("aria-expanded", isOpen);
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ const _config = {};
+ if (typeof config === "string" && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+ return this.each(function() {
+ const data = _Collapse.getOrCreateInstance(this, _config);
+ if (typeof config === "string") {
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) {
+ if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") {
+ event.preventDefault();
+ }
+ for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
+ Collapse.getOrCreateInstance(element, {
+ toggle: false
+ }).toggle();
+ }
+ });
+ defineJQueryPlugin(Collapse);
+ var NAME$a = "dropdown";
+ var DATA_KEY$6 = "bs.dropdown";
+ var EVENT_KEY$6 = `.${DATA_KEY$6}`;
+ var DATA_API_KEY$3 = ".data-api";
+ var ESCAPE_KEY$2 = "Escape";
+ var TAB_KEY$1 = "Tab";
+ var ARROW_UP_KEY$1 = "ArrowUp";
+ var ARROW_DOWN_KEY$1 = "ArrowDown";
+ var RIGHT_MOUSE_BUTTON = 2;
+ var EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
+ var EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
+ var EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
+ var EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
+ var EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var CLASS_NAME_SHOW$6 = "show";
+ var CLASS_NAME_DROPUP = "dropup";
+ var CLASS_NAME_DROPEND = "dropend";
+ var CLASS_NAME_DROPSTART = "dropstart";
+ var CLASS_NAME_DROPUP_CENTER = "dropup-center";
+ var CLASS_NAME_DROPDOWN_CENTER = "dropdown-center";
+ var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
+ var SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
+ var SELECTOR_MENU = ".dropdown-menu";
+ var SELECTOR_NAVBAR = ".navbar";
+ 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 PLACEMENT_TOPCENTER = "top";
+ var PLACEMENT_BOTTOMCENTER = "bottom";
+ var Default$9 = {
+ autoClose: true,
+ boundary: "clippingParents",
+ display: "dynamic",
+ offset: [0, 2],
+ popperConfig: null,
+ reference: "toggle"
+ };
+ var DefaultType$9 = {
+ autoClose: "(boolean|string)",
+ boundary: "(string|element)",
+ display: "string",
+ offset: "(array|string|function)",
+ popperConfig: "(null|object|function)",
+ reference: "(string|element|object)"
+ };
+ var Dropdown = class _Dropdown extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._popper = null;
+ this._parent = this._element.parentNode;
+ this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
+ this._inNavbar = this._detectNavbar();
+ }
+ // Getters
+ static get Default() {
+ return Default$9;
+ }
+ static get DefaultType() {
+ return DefaultType$9;
+ }
+ static get NAME() {
+ return NAME$a;
+ }
+ // Public
+ toggle() {
+ return this._isShown() ? this.hide() : this.show();
+ }
+ show() {
+ if (isDisabled(this._element) || this._isShown()) {
+ return;
+ }
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._createPopper();
+ if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.on(element, "mouseover", noop);
+ }
+ }
+ this._element.focus();
+ this._element.setAttribute("aria-expanded", true);
+ this._menu.classList.add(CLASS_NAME_SHOW$6);
+ this._element.classList.add(CLASS_NAME_SHOW$6);
+ EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
+ }
+ hide() {
+ if (isDisabled(this._element) || !this._isShown()) {
+ return;
+ }
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ this._completeHide(relatedTarget);
+ }
+ dispose() {
+ if (this._popper) {
+ this._popper.destroy();
+ }
+ super.dispose();
+ }
+ update() {
+ this._inNavbar = this._detectNavbar();
+ if (this._popper) {
+ this._popper.update();
+ }
+ }
+ // Private
+ _completeHide(relatedTarget) {
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.off(element, "mouseover", noop);
+ }
+ }
+ if (this._popper) {
+ this._popper.destroy();
+ }
+ this._menu.classList.remove(CLASS_NAME_SHOW$6);
+ this._element.classList.remove(CLASS_NAME_SHOW$6);
+ this._element.setAttribute("aria-expanded", "false");
+ Manipulator.removeDataAttribute(this._menu, "popper");
+ EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
+ }
+ _getConfig(config) {
+ config = super._getConfig(config);
+ if (typeof config.reference === "object" && !isElement2(config.reference) && typeof config.reference.getBoundingClientRect !== "function") {
+ throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
+ }
+ return config;
+ }
+ _createPopper() {
+ if (typeof lib_exports === "undefined") {
+ throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
+ }
+ let referenceElement = this._element;
+ if (this._config.reference === "parent") {
+ referenceElement = this._parent;
+ } else if (isElement2(this._config.reference)) {
+ referenceElement = getElement(this._config.reference);
+ } else if (typeof this._config.reference === "object") {
+ referenceElement = this._config.reference;
+ }
+ const popperConfig = this._getPopperConfig();
+ this._popper = createPopper3(referenceElement, this._menu, popperConfig);
+ }
+ _isShown() {
+ return this._menu.classList.contains(CLASS_NAME_SHOW$6);
+ }
+ _getPlacement() {
+ const parentDropdown = this._parent;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
+ return PLACEMENT_TOPCENTER;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
+ return PLACEMENT_BOTTOMCENTER;
+ }
+ const 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;
+ }
+ _detectNavbar() {
+ return this._element.closest(SELECTOR_NAVBAR) !== null;
+ }
+ _getOffset() {
+ const {
+ offset: offset2
+ } = this._config;
+ if (typeof offset2 === "string") {
+ return offset2.split(",").map((value) => Number.parseInt(value, 10));
+ }
+ if (typeof offset2 === "function") {
+ return (popperData) => offset2(popperData, this._element);
+ }
+ return offset2;
+ }
+ _getPopperConfig() {
+ const defaultBsPopperConfig = {
+ placement: this._getPlacement(),
+ modifiers: [{
+ name: "preventOverflow",
+ options: {
+ boundary: this._config.boundary
+ }
+ }, {
+ name: "offset",
+ options: {
+ offset: this._getOffset()
+ }
+ }]
+ };
+ if (this._inNavbar || this._config.display === "static") {
+ Manipulator.setDataAttribute(this._menu, "popper", "static");
+ defaultBsPopperConfig.modifiers = [{
+ name: "applyStyles",
+ enabled: false
+ }];
+ }
+ return {
+ ...defaultBsPopperConfig,
+ ...execute(this._config.popperConfig, [defaultBsPopperConfig])
+ };
+ }
+ _selectMenuItem({
+ key,
+ target
+ }) {
+ const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element));
+ if (!items.length) {
+ return;
+ }
+ getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Dropdown.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ static clearMenus(event) {
+ if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) {
+ return;
+ }
+ const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
+ for (const toggle of openToggles) {
+ const context = _Dropdown.getInstance(toggle);
+ if (!context || context._config.autoClose === false) {
+ continue;
+ }
+ const composedPath = event.composedPath();
+ const isMenuTarget = composedPath.includes(context._menu);
+ if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) {
+ continue;
+ }
+ if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
+ continue;
+ }
+ const relatedTarget = {
+ relatedTarget: context._element
+ };
+ if (event.type === "click") {
+ relatedTarget.clickEvent = event;
+ }
+ context._completeHide(relatedTarget);
+ }
+ }
+ static dataApiKeydownHandler(event) {
+ const isInput = /input|textarea/i.test(event.target.tagName);
+ const isEscapeEvent = event.key === ESCAPE_KEY$2;
+ const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
+ if (!isUpOrDownEvent && !isEscapeEvent) {
+ return;
+ }
+ if (isInput && !isEscapeEvent) {
+ return;
+ }
+ event.preventDefault();
+ const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
+ const instance = _Dropdown.getOrCreateInstance(getToggleButton);
+ if (isUpOrDownEvent) {
+ event.stopPropagation();
+ instance.show();
+ instance._selectMenuItem(event);
+ return;
+ }
+ if (instance._isShown()) {
+ event.stopPropagation();
+ instance.hide();
+ getToggleButton.focus();
+ }
+ }
+ };
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
+ EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
+ EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
+ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) {
+ event.preventDefault();
+ Dropdown.getOrCreateInstance(this).toggle();
+ });
+ defineJQueryPlugin(Dropdown);
+ var NAME$9 = "backdrop";
+ var CLASS_NAME_FADE$4 = "fade";
+ var CLASS_NAME_SHOW$5 = "show";
+ var EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
+ var Default$8 = {
+ className: "modal-backdrop",
+ clickCallback: null,
+ isAnimated: false,
+ isVisible: true,
+ // if false, we use the backdrop helper without adding any element to the dom
+ rootElement: "body"
+ // give the choice to place backdrop under different elements
+ };
+ var DefaultType$8 = {
+ className: "string",
+ clickCallback: "(function|null)",
+ isAnimated: "boolean",
+ isVisible: "boolean",
+ rootElement: "(element|string)"
+ };
+ var Backdrop = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ this._isAppended = false;
+ this._element = null;
+ }
+ // Getters
+ static get Default() {
+ return Default$8;
+ }
+ static get DefaultType() {
+ return DefaultType$8;
+ }
+ static get NAME() {
+ return NAME$9;
+ }
+ // Public
+ show(callback) {
+ if (!this._config.isVisible) {
+ execute(callback);
+ return;
+ }
+ this._append();
+ const element = this._getElement();
+ if (this._config.isAnimated) {
+ reflow(element);
+ }
+ element.classList.add(CLASS_NAME_SHOW$5);
+ this._emulateAnimation(() => {
+ execute(callback);
+ });
+ }
+ hide(callback) {
+ if (!this._config.isVisible) {
+ execute(callback);
+ return;
+ }
+ this._getElement().classList.remove(CLASS_NAME_SHOW$5);
+ this._emulateAnimation(() => {
+ this.dispose();
+ execute(callback);
+ });
+ }
+ dispose() {
+ if (!this._isAppended) {
+ return;
+ }
+ EventHandler.off(this._element, EVENT_MOUSEDOWN);
+ this._element.remove();
+ this._isAppended = false;
+ }
+ // Private
+ _getElement() {
+ if (!this._element) {
+ const backdrop = document.createElement("div");
+ backdrop.className = this._config.className;
+ if (this._config.isAnimated) {
+ backdrop.classList.add(CLASS_NAME_FADE$4);
+ }
+ this._element = backdrop;
+ }
+ return this._element;
+ }
+ _configAfterMerge(config) {
+ config.rootElement = getElement(config.rootElement);
+ return config;
+ }
+ _append() {
+ if (this._isAppended) {
+ return;
+ }
+ const element = this._getElement();
+ this._config.rootElement.append(element);
+ EventHandler.on(element, EVENT_MOUSEDOWN, () => {
+ execute(this._config.clickCallback);
+ });
+ this._isAppended = true;
+ }
+ _emulateAnimation(callback) {
+ executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
+ }
+ };
+ var NAME$8 = "focustrap";
+ var DATA_KEY$5 = "bs.focustrap";
+ var EVENT_KEY$5 = `.${DATA_KEY$5}`;
+ var EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
+ var EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
+ var TAB_KEY = "Tab";
+ var TAB_NAV_FORWARD = "forward";
+ var TAB_NAV_BACKWARD = "backward";
+ var Default$7 = {
+ autofocus: true,
+ trapElement: null
+ // The element to trap focus inside of
+ };
+ var DefaultType$7 = {
+ autofocus: "boolean",
+ trapElement: "element"
+ };
+ var FocusTrap = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ this._isActive = false;
+ this._lastTabNavDirection = null;
+ }
+ // Getters
+ static get Default() {
+ return Default$7;
+ }
+ static get DefaultType() {
+ return DefaultType$7;
+ }
+ static get NAME() {
+ return NAME$8;
+ }
+ // Public
+ activate() {
+ if (this._isActive) {
+ return;
+ }
+ if (this._config.autofocus) {
+ this._config.trapElement.focus();
+ }
+ EventHandler.off(document, EVENT_KEY$5);
+ EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event));
+ EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
+ this._isActive = true;
+ }
+ deactivate() {
+ if (!this._isActive) {
+ return;
+ }
+ this._isActive = false;
+ EventHandler.off(document, EVENT_KEY$5);
+ }
+ // Private
+ _handleFocusin(event) {
+ const {
+ trapElement
+ } = this._config;
+ if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
+ return;
+ }
+ const elements = SelectorEngine.focusableChildren(trapElement);
+ if (elements.length === 0) {
+ trapElement.focus();
+ } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
+ elements[elements.length - 1].focus();
+ } else {
+ elements[0].focus();
+ }
+ }
+ _handleKeydown(event) {
+ if (event.key !== TAB_KEY) {
+ return;
+ }
+ this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
+ }
+ };
+ var SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top";
+ var SELECTOR_STICKY_CONTENT = ".sticky-top";
+ var PROPERTY_PADDING = "padding-right";
+ var PROPERTY_MARGIN = "margin-right";
+ var ScrollBarHelper = class {
+ constructor() {
+ this._element = document.body;
+ }
+ // Public
+ getWidth() {
+ const documentWidth = document.documentElement.clientWidth;
+ return Math.abs(window.innerWidth - documentWidth);
+ }
+ hide() {
+ const width = this.getWidth();
+ this._disableOverFlow();
+ this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width);
+ }
+ reset() {
+ this._resetElementAttributes(this._element, "overflow");
+ this._resetElementAttributes(this._element, PROPERTY_PADDING);
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
+ }
+ isOverflowing() {
+ return this.getWidth() > 0;
+ }
+ // Private
+ _disableOverFlow() {
+ this._saveInitialAttribute(this._element, "overflow");
+ this._element.style.overflow = "hidden";
+ }
+ _setElementAttributes(selector, styleProperty, callback) {
+ const scrollbarWidth = this.getWidth();
+ const manipulationCallBack = (element) => {
+ if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
+ return;
+ }
+ this._saveInitialAttribute(element, styleProperty);
+ const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
+ element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
+ };
+ this._applyManipulationCallback(selector, manipulationCallBack);
+ }
+ _saveInitialAttribute(element, styleProperty) {
+ const actualValue = element.style.getPropertyValue(styleProperty);
+ if (actualValue) {
+ Manipulator.setDataAttribute(element, styleProperty, actualValue);
+ }
+ }
+ _resetElementAttributes(selector, styleProperty) {
+ const manipulationCallBack = (element) => {
+ const value = Manipulator.getDataAttribute(element, styleProperty);
+ if (value === null) {
+ element.style.removeProperty(styleProperty);
+ return;
+ }
+ Manipulator.removeDataAttribute(element, styleProperty);
+ element.style.setProperty(styleProperty, value);
+ };
+ this._applyManipulationCallback(selector, manipulationCallBack);
+ }
+ _applyManipulationCallback(selector, callBack) {
+ if (isElement2(selector)) {
+ callBack(selector);
+ return;
+ }
+ for (const sel of SelectorEngine.find(selector, this._element)) {
+ callBack(sel);
+ }
+ }
+ };
+ var NAME$7 = "modal";
+ var DATA_KEY$4 = "bs.modal";
+ var EVENT_KEY$4 = `.${DATA_KEY$4}`;
+ var DATA_API_KEY$2 = ".data-api";
+ var ESCAPE_KEY$1 = "Escape";
+ var EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
+ var EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
+ var EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
+ var EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
+ var EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
+ var EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
+ var EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
+ var EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
+ var EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
+ var EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
+ var CLASS_NAME_OPEN = "modal-open";
+ var CLASS_NAME_FADE$3 = "fade";
+ var CLASS_NAME_SHOW$4 = "show";
+ var CLASS_NAME_STATIC = "modal-static";
+ var OPEN_SELECTOR$1 = ".modal.show";
+ var SELECTOR_DIALOG = ".modal-dialog";
+ var SELECTOR_MODAL_BODY = ".modal-body";
+ var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
+ var Default$6 = {
+ backdrop: true,
+ focus: true,
+ keyboard: true
+ };
+ var DefaultType$6 = {
+ backdrop: "(boolean|string)",
+ focus: "boolean",
+ keyboard: "boolean"
+ };
+ var Modal = class _Modal extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
+ this._backdrop = this._initializeBackDrop();
+ this._focustrap = this._initializeFocusTrap();
+ this._isShown = false;
+ this._isTransitioning = false;
+ this._scrollBar = new ScrollBarHelper();
+ this._addEventListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default$6;
+ }
+ static get DefaultType() {
+ return DefaultType$6;
+ }
+ static get NAME() {
+ return NAME$7;
+ }
+ // Public
+ toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+ show(relatedTarget) {
+ if (this._isShown || this._isTransitioning) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
+ relatedTarget
+ });
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = true;
+ this._isTransitioning = true;
+ this._scrollBar.hide();
+ document.body.classList.add(CLASS_NAME_OPEN);
+ this._adjustDialog();
+ this._backdrop.show(() => this._showElement(relatedTarget));
+ }
+ hide() {
+ if (!this._isShown || this._isTransitioning) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = false;
+ this._isTransitioning = true;
+ this._focustrap.deactivate();
+ this._element.classList.remove(CLASS_NAME_SHOW$4);
+ this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
+ }
+ dispose() {
+ EventHandler.off(window, EVENT_KEY$4);
+ EventHandler.off(this._dialog, EVENT_KEY$4);
+ this._backdrop.dispose();
+ this._focustrap.deactivate();
+ super.dispose();
+ }
+ handleUpdate() {
+ this._adjustDialog();
+ }
+ // Private
+ _initializeBackDrop() {
+ return new Backdrop({
+ isVisible: Boolean(this._config.backdrop),
+ // 'static' option will be translated to true, and booleans will keep their value,
+ isAnimated: this._isAnimated()
+ });
+ }
+ _initializeFocusTrap() {
+ return new FocusTrap({
+ trapElement: this._element
+ });
+ }
+ _showElement(relatedTarget) {
+ if (!document.body.contains(this._element)) {
+ document.body.append(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;
+ const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
+ if (modalBody) {
+ modalBody.scrollTop = 0;
+ }
+ reflow(this._element);
+ this._element.classList.add(CLASS_NAME_SHOW$4);
+ const transitionComplete = () => {
+ if (this._config.focus) {
+ this._focustrap.activate();
+ }
+ this._isTransitioning = false;
+ EventHandler.trigger(this._element, EVENT_SHOWN$4, {
+ relatedTarget
+ });
+ };
+ this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
+ }
+ _addEventListeners() {
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => {
+ if (event.key !== ESCAPE_KEY$1) {
+ return;
+ }
+ if (this._config.keyboard) {
+ this.hide();
+ return;
+ }
+ this._triggerBackdropTransition();
+ });
+ EventHandler.on(window, EVENT_RESIZE$1, () => {
+ if (this._isShown && !this._isTransitioning) {
+ this._adjustDialog();
+ }
+ });
+ EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {
+ EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {
+ if (this._element !== event.target || this._element !== event2.target) {
+ return;
+ }
+ if (this._config.backdrop === "static") {
+ this._triggerBackdropTransition();
+ return;
+ }
+ if (this._config.backdrop) {
+ this.hide();
+ }
+ });
+ });
+ }
+ _hideModal() {
+ this._element.style.display = "none";
+ this._element.setAttribute("aria-hidden", true);
+ this._element.removeAttribute("aria-modal");
+ this._element.removeAttribute("role");
+ this._isTransitioning = false;
+ this._backdrop.hide(() => {
+ document.body.classList.remove(CLASS_NAME_OPEN);
+ this._resetAdjustments();
+ this._scrollBar.reset();
+ EventHandler.trigger(this._element, EVENT_HIDDEN$4);
+ });
+ }
+ _isAnimated() {
+ return this._element.classList.contains(CLASS_NAME_FADE$3);
+ }
+ _triggerBackdropTransition() {
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ const initialOverflowY = this._element.style.overflowY;
+ if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) {
+ return;
+ }
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = "hidden";
+ }
+ this._element.classList.add(CLASS_NAME_STATIC);
+ this._queueCallback(() => {
+ this._element.classList.remove(CLASS_NAME_STATIC);
+ this._queueCallback(() => {
+ this._element.style.overflowY = initialOverflowY;
+ }, this._dialog);
+ }, this._dialog);
+ this._element.focus();
+ }
+ /**
+ * The following methods are used to handle overflowing modals
+ */
+ _adjustDialog() {
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ const scrollbarWidth = this._scrollBar.getWidth();
+ const isBodyOverflowing = scrollbarWidth > 0;
+ if (isBodyOverflowing && !isModalOverflowing) {
+ const property = isRTL() ? "paddingLeft" : "paddingRight";
+ this._element.style[property] = `${scrollbarWidth}px`;
+ }
+ if (!isBodyOverflowing && isModalOverflowing) {
+ const property = isRTL() ? "paddingRight" : "paddingLeft";
+ this._element.style[property] = `${scrollbarWidth}px`;
+ }
+ }
+ _resetAdjustments() {
+ this._element.style.paddingLeft = "";
+ this._element.style.paddingRight = "";
+ }
+ // Static
+ static jQueryInterface(config, relatedTarget) {
+ return this.each(function() {
+ const data = _Modal.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](relatedTarget);
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ EventHandler.one(target, EVENT_SHOW$4, (showEvent) => {
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ EventHandler.one(target, EVENT_HIDDEN$4, () => {
+ if (isVisible(this)) {
+ this.focus();
+ }
+ });
+ });
+ const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
+ if (alreadyOpen) {
+ Modal.getInstance(alreadyOpen).hide();
+ }
+ const data = Modal.getOrCreateInstance(target);
+ data.toggle(this);
+ });
+ enableDismissTrigger(Modal);
+ defineJQueryPlugin(Modal);
+ var NAME$6 = "offcanvas";
+ var DATA_KEY$3 = "bs.offcanvas";
+ var EVENT_KEY$3 = `.${DATA_KEY$3}`;
+ var DATA_API_KEY$1 = ".data-api";
+ var EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
+ var ESCAPE_KEY = "Escape";
+ var CLASS_NAME_SHOW$3 = "show";
+ var CLASS_NAME_SHOWING$1 = "showing";
+ var CLASS_NAME_HIDING = "hiding";
+ var CLASS_NAME_BACKDROP = "offcanvas-backdrop";
+ var OPEN_SELECTOR = ".offcanvas.show";
+ var EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
+ var EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
+ var EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
+ var EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
+ var EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
+ var EVENT_RESIZE = `resize${EVENT_KEY$3}`;
+ var EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
+ var EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
+ var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
+ var Default$5 = {
+ backdrop: true,
+ keyboard: true,
+ scroll: false
+ };
+ var DefaultType$5 = {
+ backdrop: "(boolean|string)",
+ keyboard: "boolean",
+ scroll: "boolean"
+ };
+ var Offcanvas = class _Offcanvas extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._isShown = false;
+ this._backdrop = this._initializeBackDrop();
+ this._focustrap = this._initializeFocusTrap();
+ this._addEventListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default$5;
+ }
+ static get DefaultType() {
+ return DefaultType$5;
+ }
+ static get NAME() {
+ return NAME$6;
+ }
+ // Public
+ toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+ show(relatedTarget) {
+ if (this._isShown) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
+ relatedTarget
+ });
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = true;
+ this._backdrop.show();
+ if (!this._config.scroll) {
+ new ScrollBarHelper().hide();
+ }
+ this._element.setAttribute("aria-modal", true);
+ this._element.setAttribute("role", "dialog");
+ this._element.classList.add(CLASS_NAME_SHOWING$1);
+ const completeCallBack = () => {
+ if (!this._config.scroll || this._config.backdrop) {
+ this._focustrap.activate();
+ }
+ this._element.classList.add(CLASS_NAME_SHOW$3);
+ this._element.classList.remove(CLASS_NAME_SHOWING$1);
+ EventHandler.trigger(this._element, EVENT_SHOWN$3, {
+ relatedTarget
+ });
+ };
+ this._queueCallback(completeCallBack, this._element, true);
+ }
+ hide() {
+ if (!this._isShown) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ this._focustrap.deactivate();
+ this._element.blur();
+ this._isShown = false;
+ this._element.classList.add(CLASS_NAME_HIDING);
+ this._backdrop.hide();
+ const completeCallback = () => {
+ this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
+ this._element.removeAttribute("aria-modal");
+ this._element.removeAttribute("role");
+ if (!this._config.scroll) {
+ new ScrollBarHelper().reset();
+ }
+ EventHandler.trigger(this._element, EVENT_HIDDEN$3);
+ };
+ this._queueCallback(completeCallback, this._element, true);
+ }
+ dispose() {
+ this._backdrop.dispose();
+ this._focustrap.deactivate();
+ super.dispose();
+ }
+ // Private
+ _initializeBackDrop() {
+ const clickCallback = () => {
+ if (this._config.backdrop === "static") {
+ EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
+ return;
+ }
+ this.hide();
+ };
+ const isVisible2 = Boolean(this._config.backdrop);
+ return new Backdrop({
+ className: CLASS_NAME_BACKDROP,
+ isVisible: isVisible2,
+ isAnimated: true,
+ rootElement: this._element.parentNode,
+ clickCallback: isVisible2 ? clickCallback : null
+ });
+ }
+ _initializeFocusTrap() {
+ return new FocusTrap({
+ trapElement: this._element
+ });
+ }
+ _addEventListeners() {
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {
+ if (event.key !== ESCAPE_KEY) {
+ return;
+ }
+ if (this._config.keyboard) {
+ this.hide();
+ return;
+ }
+ EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
+ });
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Offcanvas.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ EventHandler.one(target, EVENT_HIDDEN$3, () => {
+ if (isVisible(this)) {
+ this.focus();
+ }
+ });
+ const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
+ if (alreadyOpen && alreadyOpen !== target) {
+ Offcanvas.getInstance(alreadyOpen).hide();
+ }
+ const data = Offcanvas.getOrCreateInstance(target);
+ data.toggle(this);
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
+ for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
+ Offcanvas.getOrCreateInstance(selector).show();
+ }
+ });
+ EventHandler.on(window, EVENT_RESIZE, () => {
+ for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) {
+ if (getComputedStyle(element).position !== "fixed") {
+ Offcanvas.getOrCreateInstance(element).hide();
+ }
+ }
+ });
+ enableDismissTrigger(Offcanvas);
+ defineJQueryPlugin(Offcanvas);
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
+ 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: []
+ };
+ var uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]);
+ var SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
+ var allowedAttribute = (attribute, allowedAttributeList) => {
+ const attributeName = attribute.nodeName.toLowerCase();
+ if (allowedAttributeList.includes(attributeName)) {
+ if (uriAttributes.has(attributeName)) {
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
+ }
+ return true;
+ }
+ return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName));
+ };
+ function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
+ if (!unsafeHtml.length) {
+ return unsafeHtml;
+ }
+ if (sanitizeFunction && typeof sanitizeFunction === "function") {
+ return sanitizeFunction(unsafeHtml);
+ }
+ const domParser = new window.DOMParser();
+ const createdDocument = domParser.parseFromString(unsafeHtml, "text/html");
+ const elements = [].concat(...createdDocument.body.querySelectorAll("*"));
+ for (const element of elements) {
+ const elementName = element.nodeName.toLowerCase();
+ if (!Object.keys(allowList).includes(elementName)) {
+ element.remove();
+ continue;
+ }
+ const attributeList = [].concat(...element.attributes);
+ const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []);
+ for (const attribute of attributeList) {
+ if (!allowedAttribute(attribute, allowedAttributes)) {
+ element.removeAttribute(attribute.nodeName);
+ }
+ }
+ }
+ return createdDocument.body.innerHTML;
+ }
+ var NAME$5 = "TemplateFactory";
+ var Default$4 = {
+ allowList: DefaultAllowlist,
+ content: {},
+ // { selector : text , selector2 : text2 , }
+ extraClass: "",
+ html: false,
+ sanitize: true,
+ sanitizeFn: null,
+ template: "
"
+ };
+ var DefaultType$4 = {
+ allowList: "object",
+ content: "object",
+ extraClass: "(string|function)",
+ html: "boolean",
+ sanitize: "boolean",
+ sanitizeFn: "(null|function)",
+ template: "string"
+ };
+ var DefaultContentType = {
+ entry: "(string|element|function|null)",
+ selector: "(string|element)"
+ };
+ var TemplateFactory = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ }
+ // Getters
+ static get Default() {
+ return Default$4;
+ }
+ static get DefaultType() {
+ return DefaultType$4;
+ }
+ static get NAME() {
+ return NAME$5;
+ }
+ // Public
+ getContent() {
+ return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean);
+ }
+ hasContent() {
+ return this.getContent().length > 0;
+ }
+ changeContent(content) {
+ this._checkContent(content);
+ this._config.content = {
+ ...this._config.content,
+ ...content
+ };
+ return this;
+ }
+ toHtml() {
+ const templateWrapper = document.createElement("div");
+ templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
+ for (const [selector, text] of Object.entries(this._config.content)) {
+ this._setContent(templateWrapper, text, selector);
+ }
+ const template = templateWrapper.children[0];
+ const extraClass = this._resolvePossibleFunction(this._config.extraClass);
+ if (extraClass) {
+ template.classList.add(...extraClass.split(" "));
+ }
+ return template;
+ }
+ // Private
+ _typeCheckConfig(config) {
+ super._typeCheckConfig(config);
+ this._checkContent(config.content);
+ }
+ _checkContent(arg) {
+ for (const [selector, content] of Object.entries(arg)) {
+ super._typeCheckConfig({
+ selector,
+ entry: content
+ }, DefaultContentType);
+ }
+ }
+ _setContent(template, content, selector) {
+ const templateElement = SelectorEngine.findOne(selector, template);
+ if (!templateElement) {
+ return;
+ }
+ content = this._resolvePossibleFunction(content);
+ if (!content) {
+ templateElement.remove();
+ return;
+ }
+ if (isElement2(content)) {
+ this._putElementInTemplate(getElement(content), templateElement);
+ return;
+ }
+ if (this._config.html) {
+ templateElement.innerHTML = this._maybeSanitize(content);
+ return;
+ }
+ templateElement.textContent = content;
+ }
+ _maybeSanitize(arg) {
+ return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
+ }
+ _resolvePossibleFunction(arg) {
+ return execute(arg, [this]);
+ }
+ _putElementInTemplate(element, templateElement) {
+ if (this._config.html) {
+ templateElement.innerHTML = "";
+ templateElement.append(element);
+ return;
+ }
+ templateElement.textContent = element.textContent;
+ }
+ };
+ var NAME$4 = "tooltip";
+ var DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]);
+ var CLASS_NAME_FADE$2 = "fade";
+ var CLASS_NAME_MODAL = "modal";
+ var CLASS_NAME_SHOW$2 = "show";
+ var SELECTOR_TOOLTIP_INNER = ".tooltip-inner";
+ var SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
+ var EVENT_MODAL_HIDE = "hide.bs.modal";
+ var TRIGGER_HOVER = "hover";
+ var TRIGGER_FOCUS = "focus";
+ var TRIGGER_CLICK = "click";
+ var TRIGGER_MANUAL = "manual";
+ var EVENT_HIDE$2 = "hide";
+ var EVENT_HIDDEN$2 = "hidden";
+ var EVENT_SHOW$2 = "show";
+ var EVENT_SHOWN$2 = "shown";
+ var EVENT_INSERTED = "inserted";
+ var EVENT_CLICK$1 = "click";
+ var EVENT_FOCUSIN$1 = "focusin";
+ var EVENT_FOCUSOUT$1 = "focusout";
+ var EVENT_MOUSEENTER = "mouseenter";
+ var EVENT_MOUSELEAVE = "mouseleave";
+ var AttachmentMap = {
+ AUTO: "auto",
+ TOP: "top",
+ RIGHT: isRTL() ? "left" : "right",
+ BOTTOM: "bottom",
+ LEFT: isRTL() ? "right" : "left"
+ };
+ var Default$3 = {
+ allowList: DefaultAllowlist,
+ animation: true,
+ boundary: "clippingParents",
+ container: false,
+ customClass: "",
+ delay: 0,
+ fallbackPlacements: ["top", "right", "bottom", "left"],
+ html: false,
+ offset: [0, 6],
+ placement: "top",
+ popperConfig: null,
+ sanitize: true,
+ sanitizeFn: null,
+ selector: false,
+ template: '',
+ title: "",
+ trigger: "hover focus"
+ };
+ var DefaultType$3 = {
+ allowList: "object",
+ animation: "boolean",
+ boundary: "(string|element)",
+ container: "(string|element|boolean)",
+ customClass: "(string|function)",
+ delay: "(number|object)",
+ fallbackPlacements: "array",
+ html: "boolean",
+ offset: "(array|string|function)",
+ placement: "(string|function)",
+ popperConfig: "(null|object|function)",
+ sanitize: "boolean",
+ sanitizeFn: "(null|function)",
+ selector: "(string|boolean)",
+ template: "string",
+ title: "(string|element|function)",
+ trigger: "string"
+ };
+ var Tooltip = class _Tooltip extends BaseComponent {
+ constructor(element, config) {
+ if (typeof lib_exports === "undefined") {
+ throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
+ }
+ super(element, config);
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._isHovered = null;
+ this._activeTrigger = {};
+ this._popper = null;
+ this._templateFactory = null;
+ this._newContent = null;
+ this.tip = null;
+ this._setListeners();
+ if (!this._config.selector) {
+ this._fixTitle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$3;
+ }
+ static get DefaultType() {
+ return DefaultType$3;
+ }
+ static get NAME() {
+ return NAME$4;
+ }
+ // Public
+ enable() {
+ this._isEnabled = true;
+ }
+ disable() {
+ this._isEnabled = false;
+ }
+ toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ }
+ toggle() {
+ if (!this._isEnabled) {
+ return;
+ }
+ this._activeTrigger.click = !this._activeTrigger.click;
+ if (this._isShown()) {
+ this._leave();
+ return;
+ }
+ this._enter();
+ }
+ dispose() {
+ clearTimeout(this._timeout);
+ EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
+ if (this._element.getAttribute("data-bs-original-title")) {
+ this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title"));
+ }
+ this._disposePopper();
+ super.dispose();
+ }
+ show() {
+ if (this._element.style.display === "none") {
+ throw new Error("Please use show on visible elements");
+ }
+ if (!(this._isWithContent() && this._isEnabled)) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
+ const shadowRoot = findShadowRoot(this._element);
+ const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
+ if (showEvent.defaultPrevented || !isInTheDom) {
+ return;
+ }
+ this._disposePopper();
+ const tip = this._getTipElement();
+ this._element.setAttribute("aria-describedby", tip.getAttribute("id"));
+ const {
+ container
+ } = this._config;
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
+ container.append(tip);
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
+ }
+ this._popper = this._createPopper(tip);
+ tip.classList.add(CLASS_NAME_SHOW$2);
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.on(element, "mouseover", noop);
+ }
+ }
+ const complete = () => {
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
+ if (this._isHovered === false) {
+ this._leave();
+ }
+ this._isHovered = false;
+ };
+ this._queueCallback(complete, this.tip, this._isAnimated());
+ }
+ hide() {
+ if (!this._isShown()) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const tip = this._getTipElement();
+ tip.classList.remove(CLASS_NAME_SHOW$2);
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.off(element, "mouseover", noop);
+ }
+ }
+ this._activeTrigger[TRIGGER_CLICK] = false;
+ this._activeTrigger[TRIGGER_FOCUS] = false;
+ this._activeTrigger[TRIGGER_HOVER] = false;
+ this._isHovered = null;
+ const complete = () => {
+ if (this._isWithActiveTrigger()) {
+ return;
+ }
+ if (!this._isHovered) {
+ this._disposePopper();
+ }
+ this._element.removeAttribute("aria-describedby");
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
+ };
+ this._queueCallback(complete, this.tip, this._isAnimated());
+ }
+ update() {
+ if (this._popper) {
+ this._popper.update();
+ }
+ }
+ // Protected
+ _isWithContent() {
+ return Boolean(this._getTitle());
+ }
+ _getTipElement() {
+ if (!this.tip) {
+ this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
+ }
+ return this.tip;
+ }
+ _createTipElement(content) {
+ const tip = this._getTemplateFactory(content).toHtml();
+ if (!tip) {
+ return null;
+ }
+ tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
+ tip.classList.add(`bs-${this.constructor.NAME}-auto`);
+ const tipId = getUID(this.constructor.NAME).toString();
+ tip.setAttribute("id", tipId);
+ if (this._isAnimated()) {
+ tip.classList.add(CLASS_NAME_FADE$2);
+ }
+ return tip;
+ }
+ setContent(content) {
+ this._newContent = content;
+ if (this._isShown()) {
+ this._disposePopper();
+ this.show();
+ }
+ }
+ _getTemplateFactory(content) {
+ if (this._templateFactory) {
+ this._templateFactory.changeContent(content);
+ } else {
+ this._templateFactory = new TemplateFactory({
+ ...this._config,
+ // the `content` var has to be after `this._config`
+ // to override config.content in case of popover
+ content,
+ extraClass: this._resolvePossibleFunction(this._config.customClass)
+ });
+ }
+ return this._templateFactory;
+ }
+ _getContentForTemplate() {
+ return {
+ [SELECTOR_TOOLTIP_INNER]: this._getTitle()
+ };
+ }
+ _getTitle() {
+ return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
+ }
+ // Private
+ _initializeOnDelegatedTarget(event) {
+ return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
+ }
+ _isAnimated() {
+ return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
+ }
+ _isShown() {
+ return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
+ }
+ _createPopper(tip) {
+ const placement = execute(this._config.placement, [this, tip, this._element]);
+ const attachment = AttachmentMap[placement.toUpperCase()];
+ return createPopper3(this._element, tip, this._getPopperConfig(attachment));
+ }
+ _getOffset() {
+ const {
+ offset: offset2
+ } = this._config;
+ if (typeof offset2 === "string") {
+ return offset2.split(",").map((value) => Number.parseInt(value, 10));
+ }
+ if (typeof offset2 === "function") {
+ return (popperData) => offset2(popperData, this._element);
+ }
+ return offset2;
+ }
+ _resolvePossibleFunction(arg) {
+ return execute(arg, [this._element]);
+ }
+ _getPopperConfig(attachment) {
+ const defaultBsPopperConfig = {
+ placement: attachment,
+ modifiers: [{
+ name: "flip",
+ options: {
+ 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: "preSetPlacement",
+ enabled: true,
+ phase: "beforeMain",
+ fn: (data) => {
+ this._getTipElement().setAttribute("data-popper-placement", data.state.placement);
+ }
+ }]
+ };
+ return {
+ ...defaultBsPopperConfig,
+ ...execute(this._config.popperConfig, [defaultBsPopperConfig])
+ };
+ }
+ _setListeners() {
+ const triggers = this._config.trigger.split(" ");
+ for (const trigger of triggers) {
+ if (trigger === "click") {
+ EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context.toggle();
+ });
+ } else if (trigger !== TRIGGER_MANUAL) {
+ const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
+ const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
+ EventHandler.on(this._element, eventIn, this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
+ context._enter();
+ });
+ EventHandler.on(this._element, eventOut, this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
+ context._leave();
+ });
+ }
+ }
+ this._hideModalHandler = () => {
+ if (this._element) {
+ this.hide();
+ }
+ };
+ EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
+ }
+ _fixTitle() {
+ const title = this._element.getAttribute("title");
+ if (!title) {
+ return;
+ }
+ if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) {
+ this._element.setAttribute("aria-label", title);
+ }
+ this._element.setAttribute("data-bs-original-title", title);
+ this._element.removeAttribute("title");
+ }
+ _enter() {
+ if (this._isShown() || this._isHovered) {
+ this._isHovered = true;
+ return;
+ }
+ this._isHovered = true;
+ this._setTimeout(() => {
+ if (this._isHovered) {
+ this.show();
+ }
+ }, this._config.delay.show);
+ }
+ _leave() {
+ if (this._isWithActiveTrigger()) {
+ return;
+ }
+ this._isHovered = false;
+ this._setTimeout(() => {
+ if (!this._isHovered) {
+ this.hide();
+ }
+ }, this._config.delay.hide);
+ }
+ _setTimeout(handler, timeout) {
+ clearTimeout(this._timeout);
+ this._timeout = setTimeout(handler, timeout);
+ }
+ _isWithActiveTrigger() {
+ return Object.values(this._activeTrigger).includes(true);
+ }
+ _getConfig(config) {
+ const dataAttributes = Manipulator.getDataAttributes(this._element);
+ for (const dataAttribute of Object.keys(dataAttributes)) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
+ delete dataAttributes[dataAttribute];
+ }
+ }
+ config = {
+ ...dataAttributes,
+ ...typeof config === "object" && config ? config : {}
+ };
+ config = this._mergeConfigObj(config);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ _configAfterMerge(config) {
+ config.container = config.container === false ? document.body : getElement(config.container);
+ 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();
+ }
+ return config;
+ }
+ _getDelegateConfig() {
+ const config = {};
+ for (const [key, value] of Object.entries(this._config)) {
+ if (this.constructor.Default[key] !== value) {
+ config[key] = value;
+ }
+ }
+ config.selector = false;
+ config.trigger = "manual";
+ return config;
+ }
+ _disposePopper() {
+ if (this._popper) {
+ this._popper.destroy();
+ this._popper = null;
+ }
+ if (this.tip) {
+ this.tip.remove();
+ this.tip = null;
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Tooltip.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ defineJQueryPlugin(Tooltip);
+ var NAME$3 = "popover";
+ var SELECTOR_TITLE = ".popover-header";
+ var SELECTOR_CONTENT = ".popover-body";
+ var Default$2 = {
+ ...Tooltip.Default,
+ content: "",
+ offset: [0, 8],
+ placement: "right",
+ template: '',
+ trigger: "click"
+ };
+ var DefaultType$2 = {
+ ...Tooltip.DefaultType,
+ content: "(null|string|element|function)"
+ };
+ var Popover = class _Popover extends Tooltip {
+ // Getters
+ static get Default() {
+ return Default$2;
+ }
+ static get DefaultType() {
+ return DefaultType$2;
+ }
+ static get NAME() {
+ return NAME$3;
+ }
+ // Overrides
+ _isWithContent() {
+ return this._getTitle() || this._getContent();
+ }
+ // Private
+ _getContentForTemplate() {
+ return {
+ [SELECTOR_TITLE]: this._getTitle(),
+ [SELECTOR_CONTENT]: this._getContent()
+ };
+ }
+ _getContent() {
+ return this._resolvePossibleFunction(this._config.content);
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Popover.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ defineJQueryPlugin(Popover);
+ var NAME$2 = "scrollspy";
+ var DATA_KEY$2 = "bs.scrollspy";
+ var EVENT_KEY$2 = `.${DATA_KEY$2}`;
+ var DATA_API_KEY = ".data-api";
+ var EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
+ var EVENT_CLICK = `click${EVENT_KEY$2}`;
+ var EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
+ var CLASS_NAME_DROPDOWN_ITEM = "dropdown-item";
+ var CLASS_NAME_ACTIVE$1 = "active";
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
+ var SELECTOR_TARGET_LINKS = "[href]";
+ 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_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
+ var SELECTOR_DROPDOWN = ".dropdown";
+ var SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle";
+ var Default$1 = {
+ offset: null,
+ // TODO: v6 @deprecated, keep it for backwards compatibility reasons
+ rootMargin: "0px 0px -25%",
+ smoothScroll: false,
+ target: null,
+ threshold: [0.1, 0.5, 1]
+ };
+ var DefaultType$1 = {
+ offset: "(number|null)",
+ // TODO v6 @deprecated, keep it for backwards compatibility reasons
+ rootMargin: "string",
+ smoothScroll: "boolean",
+ target: "element",
+ threshold: "array"
+ };
+ var ScrollSpy = class _ScrollSpy extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._targetLinks = /* @__PURE__ */ new Map();
+ this._observableSections = /* @__PURE__ */ new Map();
+ this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element;
+ this._activeTarget = null;
+ this._observer = null;
+ this._previousScrollData = {
+ visibleEntryTop: 0,
+ parentScrollTop: 0
+ };
+ this.refresh();
+ }
+ // Getters
+ static get Default() {
+ return Default$1;
+ }
+ static get DefaultType() {
+ return DefaultType$1;
+ }
+ static get NAME() {
+ return NAME$2;
+ }
+ // Public
+ refresh() {
+ this._initializeTargetsAndObservables();
+ this._maybeEnableSmoothScroll();
+ if (this._observer) {
+ this._observer.disconnect();
+ } else {
+ this._observer = this._getNewObserver();
+ }
+ for (const section of this._observableSections.values()) {
+ this._observer.observe(section);
+ }
+ }
+ dispose() {
+ this._observer.disconnect();
+ super.dispose();
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.target = getElement(config.target) || document.body;
+ config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
+ if (typeof config.threshold === "string") {
+ config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value));
+ }
+ return config;
+ }
+ _maybeEnableSmoothScroll() {
+ if (!this._config.smoothScroll) {
+ return;
+ }
+ EventHandler.off(this._config.target, EVENT_CLICK);
+ EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {
+ const observableSection = this._observableSections.get(event.target.hash);
+ if (observableSection) {
+ event.preventDefault();
+ const root = this._rootElement || window;
+ const height = observableSection.offsetTop - this._element.offsetTop;
+ if (root.scrollTo) {
+ root.scrollTo({
+ top: height,
+ behavior: "smooth"
+ });
+ return;
+ }
+ root.scrollTop = height;
+ }
+ });
+ }
+ _getNewObserver() {
+ const options = {
+ root: this._rootElement,
+ threshold: this._config.threshold,
+ rootMargin: this._config.rootMargin
+ };
+ return new IntersectionObserver((entries) => this._observerCallback(entries), options);
+ }
+ // The logic of selection
+ _observerCallback(entries) {
+ const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);
+ const activate = (entry) => {
+ this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
+ this._process(targetElement(entry));
+ };
+ const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
+ const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
+ this._previousScrollData.parentScrollTop = parentScrollTop;
+ for (const entry of entries) {
+ if (!entry.isIntersecting) {
+ this._activeTarget = null;
+ this._clearActiveClass(targetElement(entry));
+ continue;
+ }
+ const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
+ if (userScrollsDown && entryIsLowerThanPrevious) {
+ activate(entry);
+ if (!parentScrollTop) {
+ return;
+ }
+ continue;
+ }
+ if (!userScrollsDown && !entryIsLowerThanPrevious) {
+ activate(entry);
+ }
+ }
+ }
+ _initializeTargetsAndObservables() {
+ this._targetLinks = /* @__PURE__ */ new Map();
+ this._observableSections = /* @__PURE__ */ new Map();
+ const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
+ for (const anchor of targetLinks) {
+ if (!anchor.hash || isDisabled(anchor)) {
+ continue;
+ }
+ const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
+ if (isVisible(observableSection)) {
+ this._targetLinks.set(decodeURI(anchor.hash), anchor);
+ this._observableSections.set(anchor.hash, observableSection);
+ }
+ }
+ }
+ _process(target) {
+ if (this._activeTarget === target) {
+ return;
+ }
+ this._clearActiveClass(this._config.target);
+ this._activeTarget = target;
+ target.classList.add(CLASS_NAME_ACTIVE$1);
+ this._activateParents(target);
+ EventHandler.trigger(this._element, EVENT_ACTIVATE, {
+ relatedTarget: target
+ });
+ }
+ _activateParents(target) {
+ if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
+ return;
+ }
+ for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
+ for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
+ item.classList.add(CLASS_NAME_ACTIVE$1);
+ }
+ }
+ }
+ _clearActiveClass(parent) {
+ parent.classList.remove(CLASS_NAME_ACTIVE$1);
+ const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
+ for (const node of activeNodes) {
+ node.classList.remove(CLASS_NAME_ACTIVE$1);
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _ScrollSpy.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
+ for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
+ ScrollSpy.getOrCreateInstance(spy);
+ }
+ });
+ defineJQueryPlugin(ScrollSpy);
+ var NAME$1 = "tab";
+ var DATA_KEY$1 = "bs.tab";
+ var EVENT_KEY$1 = `.${DATA_KEY$1}`;
+ var EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
+ var EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
+ var EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
+ var EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
+ var EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
+ var EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
+ var EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
+ var ARROW_LEFT_KEY = "ArrowLeft";
+ var ARROW_RIGHT_KEY = "ArrowRight";
+ var ARROW_UP_KEY = "ArrowUp";
+ var ARROW_DOWN_KEY = "ArrowDown";
+ var CLASS_NAME_ACTIVE = "active";
+ var CLASS_NAME_FADE$1 = "fade";
+ var CLASS_NAME_SHOW$1 = "show";
+ var CLASS_DROPDOWN = "dropdown";
+ var SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle";
+ var SELECTOR_DROPDOWN_MENU = ".dropdown-menu";
+ var NOT_SELECTOR_DROPDOWN_TOGGLE = ":not(.dropdown-toggle)";
+ var SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
+ var SELECTOR_OUTER = ".nav-item, .list-group-item";
+ var SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
+ var SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
+ var SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
+ var Tab = class _Tab extends BaseComponent {
+ constructor(element) {
+ super(element);
+ this._parent = this._element.closest(SELECTOR_TAB_PANEL);
+ if (!this._parent) {
+ return;
+ }
+ this._setInitialAttributes(this._parent, this._getChildren());
+ EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));
+ }
+ // Getters
+ static get NAME() {
+ return NAME$1;
+ }
+ // Public
+ show() {
+ const innerElem = this._element;
+ if (this._elemIsActive(innerElem)) {
+ return;
+ }
+ const active = this._getActiveElem();
+ const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
+ relatedTarget: innerElem
+ }) : null;
+ const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
+ relatedTarget: active
+ });
+ if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
+ return;
+ }
+ this._deactivate(active, innerElem);
+ this._activate(innerElem, active);
+ }
+ // Private
+ _activate(element, relatedElem) {
+ if (!element) {
+ return;
+ }
+ element.classList.add(CLASS_NAME_ACTIVE);
+ this._activate(SelectorEngine.getElementFromSelector(element));
+ const complete = () => {
+ if (element.getAttribute("role") !== "tab") {
+ element.classList.add(CLASS_NAME_SHOW$1);
+ return;
+ }
+ element.removeAttribute("tabindex");
+ element.setAttribute("aria-selected", true);
+ this._toggleDropDown(element, true);
+ EventHandler.trigger(element, EVENT_SHOWN$1, {
+ relatedTarget: relatedElem
+ });
+ };
+ this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
+ }
+ _deactivate(element, relatedElem) {
+ if (!element) {
+ return;
+ }
+ element.classList.remove(CLASS_NAME_ACTIVE);
+ element.blur();
+ this._deactivate(SelectorEngine.getElementFromSelector(element));
+ const complete = () => {
+ if (element.getAttribute("role") !== "tab") {
+ element.classList.remove(CLASS_NAME_SHOW$1);
+ return;
+ }
+ element.setAttribute("aria-selected", false);
+ element.setAttribute("tabindex", "-1");
+ this._toggleDropDown(element, false);
+ EventHandler.trigger(element, EVENT_HIDDEN$1, {
+ relatedTarget: relatedElem
+ });
+ };
+ this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
+ }
+ _keydown(event) {
+ if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
+ return;
+ }
+ event.stopPropagation();
+ event.preventDefault();
+ const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
+ const nextActiveElement = getNextActiveElement(this._getChildren().filter((element) => !isDisabled(element)), event.target, isNext, true);
+ if (nextActiveElement) {
+ nextActiveElement.focus({
+ preventScroll: true
+ });
+ _Tab.getOrCreateInstance(nextActiveElement).show();
+ }
+ }
+ _getChildren() {
+ return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
+ }
+ _getActiveElem() {
+ return this._getChildren().find((child) => this._elemIsActive(child)) || null;
+ }
+ _setInitialAttributes(parent, children) {
+ this._setAttributeIfNotExists(parent, "role", "tablist");
+ for (const child of children) {
+ this._setInitialAttributesOnChild(child);
+ }
+ }
+ _setInitialAttributesOnChild(child) {
+ child = this._getInnerElement(child);
+ const isActive = this._elemIsActive(child);
+ const outerElem = this._getOuterElement(child);
+ child.setAttribute("aria-selected", isActive);
+ if (outerElem !== child) {
+ this._setAttributeIfNotExists(outerElem, "role", "presentation");
+ }
+ if (!isActive) {
+ child.setAttribute("tabindex", "-1");
+ }
+ this._setAttributeIfNotExists(child, "role", "tab");
+ this._setInitialAttributesOnTargetPanel(child);
+ }
+ _setInitialAttributesOnTargetPanel(child) {
+ const target = SelectorEngine.getElementFromSelector(child);
+ if (!target) {
+ return;
+ }
+ this._setAttributeIfNotExists(target, "role", "tabpanel");
+ if (child.id) {
+ this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`);
+ }
+ }
+ _toggleDropDown(element, open) {
+ const outerElem = this._getOuterElement(element);
+ if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
+ return;
+ }
+ const toggle = (selector, className) => {
+ const element2 = SelectorEngine.findOne(selector, outerElem);
+ if (element2) {
+ element2.classList.toggle(className, open);
+ }
+ };
+ toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
+ toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
+ outerElem.setAttribute("aria-expanded", open);
+ }
+ _setAttributeIfNotExists(element, attribute, value) {
+ if (!element.hasAttribute(attribute)) {
+ element.setAttribute(attribute, value);
+ }
+ }
+ _elemIsActive(elem) {
+ return elem.classList.contains(CLASS_NAME_ACTIVE);
+ }
+ // Try to get the inner element (usually the .nav-link)
+ _getInnerElement(elem) {
+ return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
+ }
+ // Try to get the outer element (usually the .nav-item)
+ _getOuterElement(elem) {
+ return elem.closest(SELECTOR_OUTER) || elem;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Tab.getOrCreateInstance(this);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) {
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ Tab.getOrCreateInstance(this).show();
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
+ for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
+ Tab.getOrCreateInstance(element);
+ }
+ });
+ defineJQueryPlugin(Tab);
+ var NAME = "toast";
+ var DATA_KEY = "bs.toast";
+ var EVENT_KEY = `.${DATA_KEY}`;
+ var EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
+ var EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
+ var EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
+ var EVENT_FOCUSOUT = `focusout${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: 5e3
+ };
+ var Toast = class _Toast extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._timeout = null;
+ this._hasMouseInteraction = false;
+ this._hasKeyboardInteraction = false;
+ this._setListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default;
+ }
+ static get DefaultType() {
+ return DefaultType;
+ }
+ static get NAME() {
+ return NAME;
+ }
+ // Public
+ show() {
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._clearTimeout();
+ if (this._config.animation) {
+ this._element.classList.add(CLASS_NAME_FADE);
+ }
+ const complete = () => {
+ this._element.classList.remove(CLASS_NAME_SHOWING);
+ EventHandler.trigger(this._element, EVENT_SHOWN);
+ this._maybeScheduleHide();
+ };
+ this._element.classList.remove(CLASS_NAME_HIDE);
+ reflow(this._element);
+ this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
+ this._queueCallback(complete, this._element, this._config.animation);
+ }
+ hide() {
+ if (!this.isShown()) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const complete = () => {
+ this._element.classList.add(CLASS_NAME_HIDE);
+ this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
+ EventHandler.trigger(this._element, EVENT_HIDDEN);
+ };
+ this._element.classList.add(CLASS_NAME_SHOWING);
+ this._queueCallback(complete, this._element, this._config.animation);
+ }
+ dispose() {
+ this._clearTimeout();
+ if (this.isShown()) {
+ this._element.classList.remove(CLASS_NAME_SHOW);
+ }
+ super.dispose();
+ }
+ isShown() {
+ return this._element.classList.contains(CLASS_NAME_SHOW);
+ }
+ // Private
+ _maybeScheduleHide() {
+ if (!this._config.autohide) {
+ return;
+ }
+ if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
+ return;
+ }
+ this._timeout = setTimeout(() => {
+ this.hide();
+ }, this._config.delay);
+ }
+ _onInteraction(event, isInteracting) {
+ switch (event.type) {
+ case "mouseover":
+ case "mouseout": {
+ this._hasMouseInteraction = isInteracting;
+ break;
+ }
+ case "focusin":
+ case "focusout": {
+ this._hasKeyboardInteraction = isInteracting;
+ break;
+ }
+ }
+ if (isInteracting) {
+ this._clearTimeout();
+ return;
+ }
+ const nextElement = event.relatedTarget;
+ if (this._element === nextElement || this._element.contains(nextElement)) {
+ return;
+ }
+ this._maybeScheduleHide();
+ }
+ _setListeners() {
+ EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true));
+ EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false));
+ EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true));
+ EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false));
+ }
+ _clearTimeout() {
+ clearTimeout(this._timeout);
+ this._timeout = null;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Toast.getOrCreateInstance(this, config);
+ if (typeof config === "string") {
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ }
+ });
+ }
+ };
+ enableDismissTrigger(Toast);
+ defineJQueryPlugin(Toast);
+
+ // app/javascript/overview.js
+ function initializeListenersForNavDropdowns() {
+ const schoolDropdown = document.querySelector("#select-school");
+ if (schoolDropdown) {
+ document.querySelector("#select-school").addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ document.querySelector("#select-district").addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ }
+ const academicYearDropdown = document.querySelector("#select-academic-year");
+ if (academicYearDropdown) {
+ academicYearDropdown.addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ }
+ }
+ function initializePopovers() {
+ document.querySelectorAll('[data-bs-toggle="popover"]').forEach((popoverElement) => {
+ new Popover(popoverElement, { trigger: "hover focus" });
+ });
+ }
+
+ // app/javascript/modal.js
+ function showEmptyDatasetModal() {
+ const modal = document.querySelector(".modal");
+ if (modal) {
+ new Modal(modal).show();
+ }
+ }
+
+ // node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js
+ (function() {
+ if (window.Reflect === void 0 || window.customElements === void 0 || window.customElements.polyfillWrapFlushCallback) {
+ return;
+ }
+ const BuiltInHTMLElement = HTMLElement;
+ const wrapperForTheName = {
+ HTMLElement: function HTMLElement2() {
+ return Reflect.construct(BuiltInHTMLElement, [], this.constructor);
+ }
+ };
+ window.HTMLElement = wrapperForTheName["HTMLElement"];
+ HTMLElement.prototype = BuiltInHTMLElement.prototype;
+ HTMLElement.prototype.constructor = HTMLElement;
+ Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);
+ })();
+ (function(prototype) {
+ if (typeof prototype.requestSubmit == "function")
+ return;
+ prototype.requestSubmit = function(submitter) {
+ if (submitter) {
+ validateSubmitter(submitter, this);
+ submitter.click();
+ } else {
+ submitter = document.createElement("input");
+ submitter.type = "submit";
+ submitter.hidden = true;
+ this.appendChild(submitter);
+ submitter.click();
+ this.removeChild(submitter);
+ }
+ };
+ function validateSubmitter(submitter, form) {
+ submitter instanceof HTMLElement || raise(TypeError, "parameter 1 is not of type 'HTMLElement'");
+ submitter.type == "submit" || raise(TypeError, "The specified element is not a submit button");
+ submitter.form == form || raise(DOMException, "The specified element is not owned by this form element", "NotFoundError");
+ }
+ function raise(errorConstructor, message, name) {
+ throw new errorConstructor("Failed to execute 'requestSubmit' on 'HTMLFormElement': " + message + ".", name);
+ }
+ })(HTMLFormElement.prototype);
+ var submittersByForm = /* @__PURE__ */ new WeakMap();
+ function findSubmitterFromClickTarget(target) {
+ const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
+ const candidate = element ? element.closest("input, button") : null;
+ return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == "submit" ? candidate : null;
+ }
+ function clickCaptured(event) {
+ const submitter = findSubmitterFromClickTarget(event.target);
+ if (submitter && submitter.form) {
+ submittersByForm.set(submitter.form, submitter);
+ }
+ }
+ (function() {
+ if ("submitter" in Event.prototype)
+ return;
+ let prototype = window.Event.prototype;
+ if ("SubmitEvent" in window && /Apple Computer/.test(navigator.vendor)) {
+ prototype = window.SubmitEvent.prototype;
+ } else if ("SubmitEvent" in window) {
+ return;
+ }
+ addEventListener("click", clickCaptured, true);
+ Object.defineProperty(prototype, "submitter", {
+ get() {
+ if (this.type == "submit" && this.target instanceof HTMLFormElement) {
+ return submittersByForm.get(this.target);
+ }
+ }
+ });
+ })();
+ var FrameLoadingStyle;
+ (function(FrameLoadingStyle2) {
+ FrameLoadingStyle2["eager"] = "eager";
+ FrameLoadingStyle2["lazy"] = "lazy";
+ })(FrameLoadingStyle || (FrameLoadingStyle = {}));
+ var FrameElement = class _FrameElement extends HTMLElement {
+ static get observedAttributes() {
+ return ["disabled", "complete", "loading", "src"];
+ }
+ constructor() {
+ super();
+ this.loaded = Promise.resolve();
+ this.delegate = new _FrameElement.delegateConstructor(this);
+ }
+ connectedCallback() {
+ this.delegate.connect();
+ }
+ disconnectedCallback() {
+ this.delegate.disconnect();
+ }
+ reload() {
+ return this.delegate.sourceURLReloaded();
+ }
+ attributeChangedCallback(name) {
+ if (name == "loading") {
+ this.delegate.loadingStyleChanged();
+ } else if (name == "complete") {
+ this.delegate.completeChanged();
+ } else if (name == "src") {
+ this.delegate.sourceURLChanged();
+ } else {
+ this.delegate.disabledChanged();
+ }
+ }
+ get src() {
+ return this.getAttribute("src");
+ }
+ set src(value) {
+ if (value) {
+ this.setAttribute("src", value);
+ } else {
+ this.removeAttribute("src");
+ }
+ }
+ get loading() {
+ return frameLoadingStyleFromString(this.getAttribute("loading") || "");
+ }
+ set loading(value) {
+ if (value) {
+ this.setAttribute("loading", value);
+ } else {
+ this.removeAttribute("loading");
+ }
+ }
+ get disabled() {
+ return this.hasAttribute("disabled");
+ }
+ set disabled(value) {
+ if (value) {
+ this.setAttribute("disabled", "");
+ } else {
+ this.removeAttribute("disabled");
+ }
+ }
+ get autoscroll() {
+ return this.hasAttribute("autoscroll");
+ }
+ set autoscroll(value) {
+ if (value) {
+ this.setAttribute("autoscroll", "");
+ } else {
+ this.removeAttribute("autoscroll");
+ }
+ }
+ get complete() {
+ return !this.delegate.isLoading;
+ }
+ get isActive() {
+ return this.ownerDocument === document && !this.isPreview;
+ }
+ get isPreview() {
+ var _a, _b;
+ return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute("data-turbo-preview");
+ }
+ };
+ function frameLoadingStyleFromString(style) {
+ switch (style.toLowerCase()) {
+ case "lazy":
+ return FrameLoadingStyle.lazy;
+ default:
+ return FrameLoadingStyle.eager;
+ }
+ }
+ function expandURL(locatable) {
+ return new URL(locatable.toString(), document.baseURI);
+ }
+ function getAnchor(url) {
+ let anchorMatch;
+ if (url.hash) {
+ return url.hash.slice(1);
+ } else if (anchorMatch = url.href.match(/#(.*)$/)) {
+ return anchorMatch[1];
+ }
+ }
+ function getAction(form, submitter) {
+ const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formaction")) || form.getAttribute("action") || form.action;
+ return expandURL(action);
+ }
+ function getExtension(url) {
+ return (getLastPathComponent(url).match(/\.[^.]*$/) || [])[0] || "";
+ }
+ function isHTML(url) {
+ return !!getExtension(url).match(/^(?:|\.(?:htm|html|xhtml|php))$/);
+ }
+ function isPrefixedBy(baseURL, url) {
+ const prefix = getPrefix(url);
+ return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);
+ }
+ function locationIsVisitable(location2, rootLocation) {
+ return isPrefixedBy(location2, rootLocation) && isHTML(location2);
+ }
+ function getRequestURL(url) {
+ const anchor = getAnchor(url);
+ return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;
+ }
+ function toCacheKey(url) {
+ return getRequestURL(url);
+ }
+ function urlsAreEqual(left2, right2) {
+ return expandURL(left2).href == expandURL(right2).href;
+ }
+ function getPathComponents(url) {
+ return url.pathname.split("/").slice(1);
+ }
+ function getLastPathComponent(url) {
+ return getPathComponents(url).slice(-1)[0];
+ }
+ function getPrefix(url) {
+ return addTrailingSlash(url.origin + url.pathname);
+ }
+ function addTrailingSlash(value) {
+ return value.endsWith("/") ? value : value + "/";
+ }
+ var FetchResponse = class {
+ constructor(response) {
+ this.response = response;
+ }
+ get succeeded() {
+ return this.response.ok;
+ }
+ get failed() {
+ return !this.succeeded;
+ }
+ get clientError() {
+ return this.statusCode >= 400 && this.statusCode <= 499;
+ }
+ get serverError() {
+ return this.statusCode >= 500 && this.statusCode <= 599;
+ }
+ get redirected() {
+ return this.response.redirected;
+ }
+ get location() {
+ return expandURL(this.response.url);
+ }
+ get isHTML() {
+ return this.contentType && this.contentType.match(/^(?:text\/([^\s;,]+\b)?html|application\/xhtml\+xml)\b/);
+ }
+ get statusCode() {
+ return this.response.status;
+ }
+ get contentType() {
+ return this.header("Content-Type");
+ }
+ get responseText() {
+ return this.response.clone().text();
+ }
+ get responseHTML() {
+ if (this.isHTML) {
+ return this.response.clone().text();
+ } else {
+ return Promise.resolve(void 0);
+ }
+ }
+ header(name) {
+ return this.response.headers.get(name);
+ }
+ };
+ function activateScriptElement(element) {
+ if (element.getAttribute("data-turbo-eval") == "false") {
+ return element;
+ } else {
+ const createdScriptElement = document.createElement("script");
+ const cspNonce = getMetaContent("csp-nonce");
+ if (cspNonce) {
+ createdScriptElement.nonce = cspNonce;
+ }
+ createdScriptElement.textContent = element.textContent;
+ createdScriptElement.async = false;
+ copyElementAttributes(createdScriptElement, element);
+ return createdScriptElement;
+ }
+ }
+ function copyElementAttributes(destinationElement, sourceElement) {
+ for (const { name, value } of sourceElement.attributes) {
+ destinationElement.setAttribute(name, value);
+ }
+ }
+ function createDocumentFragment(html) {
+ const template = document.createElement("template");
+ template.innerHTML = html;
+ return template.content;
+ }
+ function dispatch(eventName, { target, cancelable, detail } = {}) {
+ const event = new CustomEvent(eventName, {
+ cancelable,
+ bubbles: true,
+ composed: true,
+ detail
+ });
+ if (target && target.isConnected) {
+ target.dispatchEvent(event);
+ } else {
+ document.documentElement.dispatchEvent(event);
+ }
+ return event;
+ }
+ function nextAnimationFrame() {
+ return new Promise((resolve) => requestAnimationFrame(() => resolve()));
+ }
+ function nextEventLoopTick() {
+ return new Promise((resolve) => setTimeout(() => resolve(), 0));
+ }
+ function nextMicrotask() {
+ return Promise.resolve();
+ }
+ function parseHTMLDocument(html = "") {
+ return new DOMParser().parseFromString(html, "text/html");
+ }
+ function unindent(strings, ...values) {
+ const lines = interpolate(strings, values).replace(/^\n/, "").split("\n");
+ const match = lines[0].match(/^\s+/);
+ const indent = match ? match[0].length : 0;
+ return lines.map((line) => line.slice(indent)).join("\n");
+ }
+ function interpolate(strings, values) {
+ return strings.reduce((result, string, i) => {
+ const value = values[i] == void 0 ? "" : values[i];
+ return result + string + value;
+ }, "");
+ }
+ function uuid() {
+ return Array.from({ length: 36 }).map((_, i) => {
+ if (i == 8 || i == 13 || i == 18 || i == 23) {
+ return "-";
+ } else if (i == 14) {
+ return "4";
+ } else if (i == 19) {
+ return (Math.floor(Math.random() * 4) + 8).toString(16);
+ } else {
+ return Math.floor(Math.random() * 15).toString(16);
+ }
+ }).join("");
+ }
+ function getAttribute(attributeName, ...elements) {
+ for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {
+ if (typeof value == "string")
+ return value;
+ }
+ return null;
+ }
+ function hasAttribute(attributeName, ...elements) {
+ return elements.some((element) => element && element.hasAttribute(attributeName));
+ }
+ function markAsBusy(...elements) {
+ for (const element of elements) {
+ if (element.localName == "turbo-frame") {
+ element.setAttribute("busy", "");
+ }
+ element.setAttribute("aria-busy", "true");
+ }
+ }
+ function clearBusyState(...elements) {
+ for (const element of elements) {
+ if (element.localName == "turbo-frame") {
+ element.removeAttribute("busy");
+ }
+ element.removeAttribute("aria-busy");
+ }
+ }
+ function waitForLoad(element, timeoutInMilliseconds = 2e3) {
+ return new Promise((resolve) => {
+ const onComplete = () => {
+ element.removeEventListener("error", onComplete);
+ element.removeEventListener("load", onComplete);
+ resolve();
+ };
+ element.addEventListener("load", onComplete, { once: true });
+ element.addEventListener("error", onComplete, { once: true });
+ setTimeout(resolve, timeoutInMilliseconds);
+ });
+ }
+ function getHistoryMethodForAction(action) {
+ switch (action) {
+ case "replace":
+ return history.replaceState;
+ case "advance":
+ case "restore":
+ return history.pushState;
+ }
+ }
+ function isAction(action) {
+ return action == "advance" || action == "replace" || action == "restore";
+ }
+ function getVisitAction(...elements) {
+ const action = getAttribute("data-turbo-action", ...elements);
+ return isAction(action) ? action : null;
+ }
+ function getMetaElement(name) {
+ return document.querySelector(`meta[name="${name}"]`);
+ }
+ function getMetaContent(name) {
+ const element = getMetaElement(name);
+ return element && element.content;
+ }
+ function setMetaContent(name, content) {
+ let element = getMetaElement(name);
+ if (!element) {
+ element = document.createElement("meta");
+ element.setAttribute("name", name);
+ document.head.appendChild(element);
+ }
+ element.setAttribute("content", content);
+ return element;
+ }
+ function findClosestRecursively(element, selector) {
+ var _a;
+ if (element instanceof Element) {
+ return element.closest(selector) || findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector);
+ }
+ }
+ var FetchMethod;
+ (function(FetchMethod2) {
+ FetchMethod2[FetchMethod2["get"] = 0] = "get";
+ FetchMethod2[FetchMethod2["post"] = 1] = "post";
+ FetchMethod2[FetchMethod2["put"] = 2] = "put";
+ FetchMethod2[FetchMethod2["patch"] = 3] = "patch";
+ FetchMethod2[FetchMethod2["delete"] = 4] = "delete";
+ })(FetchMethod || (FetchMethod = {}));
+ function fetchMethodFromString(method) {
+ switch (method.toLowerCase()) {
+ case "get":
+ return FetchMethod.get;
+ case "post":
+ return FetchMethod.post;
+ case "put":
+ return FetchMethod.put;
+ case "patch":
+ return FetchMethod.patch;
+ case "delete":
+ return FetchMethod.delete;
+ }
+ }
+ var FetchRequest = class {
+ constructor(delegate, method, location2, body = new URLSearchParams(), target = null) {
+ this.abortController = new AbortController();
+ this.resolveRequestPromise = (_value) => {
+ };
+ this.delegate = delegate;
+ this.method = method;
+ this.headers = this.defaultHeaders;
+ this.body = body;
+ this.url = location2;
+ this.target = target;
+ }
+ get location() {
+ return this.url;
+ }
+ get params() {
+ return this.url.searchParams;
+ }
+ get entries() {
+ return this.body ? Array.from(this.body.entries()) : [];
+ }
+ cancel() {
+ this.abortController.abort();
+ }
+ async perform() {
+ const { fetchOptions } = this;
+ this.delegate.prepareRequest(this);
+ await this.allowRequestToBeIntercepted(fetchOptions);
+ try {
+ this.delegate.requestStarted(this);
+ const response = await fetch(this.url.href, fetchOptions);
+ return await this.receive(response);
+ } catch (error2) {
+ if (error2.name !== "AbortError") {
+ if (this.willDelegateErrorHandling(error2)) {
+ this.delegate.requestErrored(this, error2);
+ }
+ throw error2;
+ }
+ } finally {
+ this.delegate.requestFinished(this);
+ }
+ }
+ async receive(response) {
+ const fetchResponse = new FetchResponse(response);
+ const event = dispatch("turbo:before-fetch-response", {
+ cancelable: true,
+ detail: { fetchResponse },
+ target: this.target
+ });
+ if (event.defaultPrevented) {
+ this.delegate.requestPreventedHandlingResponse(this, fetchResponse);
+ } else if (fetchResponse.succeeded) {
+ this.delegate.requestSucceededWithResponse(this, fetchResponse);
+ } else {
+ this.delegate.requestFailedWithResponse(this, fetchResponse);
+ }
+ return fetchResponse;
+ }
+ get fetchOptions() {
+ var _a;
+ return {
+ method: FetchMethod[this.method].toUpperCase(),
+ credentials: "same-origin",
+ headers: this.headers,
+ redirect: "follow",
+ body: this.isSafe ? null : this.body,
+ signal: this.abortSignal,
+ referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href
+ };
+ }
+ get defaultHeaders() {
+ return {
+ Accept: "text/html, application/xhtml+xml"
+ };
+ }
+ get isSafe() {
+ return this.method === FetchMethod.get;
+ }
+ get abortSignal() {
+ return this.abortController.signal;
+ }
+ acceptResponseType(mimeType) {
+ this.headers["Accept"] = [mimeType, this.headers["Accept"]].join(", ");
+ }
+ async allowRequestToBeIntercepted(fetchOptions) {
+ const requestInterception = new Promise((resolve) => this.resolveRequestPromise = resolve);
+ const event = dispatch("turbo:before-fetch-request", {
+ cancelable: true,
+ detail: {
+ fetchOptions,
+ url: this.url,
+ resume: this.resolveRequestPromise
+ },
+ target: this.target
+ });
+ if (event.defaultPrevented)
+ await requestInterception;
+ }
+ willDelegateErrorHandling(error2) {
+ const event = dispatch("turbo:fetch-request-error", {
+ target: this.target,
+ cancelable: true,
+ detail: { request: this, error: error2 }
+ });
+ return !event.defaultPrevented;
+ }
+ };
+ var AppearanceObserver = class {
+ constructor(delegate, element) {
+ this.started = false;
+ this.intersect = (entries) => {
+ const lastEntry = entries.slice(-1)[0];
+ if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {
+ this.delegate.elementAppearedInViewport(this.element);
+ }
+ };
+ this.delegate = delegate;
+ this.element = element;
+ this.intersectionObserver = new IntersectionObserver(this.intersect);
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ this.intersectionObserver.observe(this.element);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ this.intersectionObserver.unobserve(this.element);
+ }
+ }
+ };
+ var StreamMessage = class {
+ static wrap(message) {
+ if (typeof message == "string") {
+ return new this(createDocumentFragment(message));
+ } else {
+ return message;
+ }
+ }
+ constructor(fragment) {
+ this.fragment = importStreamElements(fragment);
+ }
+ };
+ StreamMessage.contentType = "text/vnd.turbo-stream.html";
+ function importStreamElements(fragment) {
+ for (const element of fragment.querySelectorAll("turbo-stream")) {
+ const streamElement = document.importNode(element, true);
+ for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll("script")) {
+ inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));
+ }
+ element.replaceWith(streamElement);
+ }
+ return fragment;
+ }
+ var FormSubmissionState;
+ (function(FormSubmissionState2) {
+ FormSubmissionState2[FormSubmissionState2["initialized"] = 0] = "initialized";
+ FormSubmissionState2[FormSubmissionState2["requesting"] = 1] = "requesting";
+ FormSubmissionState2[FormSubmissionState2["waiting"] = 2] = "waiting";
+ FormSubmissionState2[FormSubmissionState2["receiving"] = 3] = "receiving";
+ FormSubmissionState2[FormSubmissionState2["stopping"] = 4] = "stopping";
+ FormSubmissionState2[FormSubmissionState2["stopped"] = 5] = "stopped";
+ })(FormSubmissionState || (FormSubmissionState = {}));
+ var FormEnctype;
+ (function(FormEnctype2) {
+ FormEnctype2["urlEncoded"] = "application/x-www-form-urlencoded";
+ FormEnctype2["multipart"] = "multipart/form-data";
+ FormEnctype2["plain"] = "text/plain";
+ })(FormEnctype || (FormEnctype = {}));
+ function formEnctypeFromString(encoding) {
+ switch (encoding.toLowerCase()) {
+ case FormEnctype.multipart:
+ return FormEnctype.multipart;
+ case FormEnctype.plain:
+ return FormEnctype.plain;
+ default:
+ return FormEnctype.urlEncoded;
+ }
+ }
+ var FormSubmission = class _FormSubmission {
+ static confirmMethod(message, _element, _submitter) {
+ return Promise.resolve(confirm(message));
+ }
+ constructor(delegate, formElement, submitter, mustRedirect = false) {
+ this.state = FormSubmissionState.initialized;
+ this.delegate = delegate;
+ this.formElement = formElement;
+ this.submitter = submitter;
+ this.formData = buildFormData(formElement, submitter);
+ this.location = expandURL(this.action);
+ if (this.method == FetchMethod.get) {
+ mergeFormDataEntries(this.location, [...this.body.entries()]);
+ }
+ this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);
+ this.mustRedirect = mustRedirect;
+ }
+ get method() {
+ var _a;
+ const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("formmethod")) || this.formElement.getAttribute("method") || "";
+ return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;
+ }
+ get action() {
+ var _a;
+ const formElementAction = typeof this.formElement.action === "string" ? this.formElement.action : null;
+ if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute("formaction")) {
+ return this.submitter.getAttribute("formaction") || "";
+ } else {
+ return this.formElement.getAttribute("action") || formElementAction || "";
+ }
+ }
+ get body() {
+ if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {
+ return new URLSearchParams(this.stringFormData);
+ } else {
+ return this.formData;
+ }
+ }
+ get enctype() {
+ var _a;
+ return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("formenctype")) || this.formElement.enctype);
+ }
+ get isSafe() {
+ return this.fetchRequest.isSafe;
+ }
+ get stringFormData() {
+ return [...this.formData].reduce((entries, [name, value]) => {
+ return entries.concat(typeof value == "string" ? [[name, value]] : []);
+ }, []);
+ }
+ async start() {
+ const { initialized, requesting } = FormSubmissionState;
+ const confirmationMessage = getAttribute("data-turbo-confirm", this.submitter, this.formElement);
+ if (typeof confirmationMessage === "string") {
+ const answer = await _FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);
+ if (!answer) {
+ return;
+ }
+ }
+ if (this.state == initialized) {
+ this.state = requesting;
+ return this.fetchRequest.perform();
+ }
+ }
+ stop() {
+ const { stopping, stopped } = FormSubmissionState;
+ if (this.state != stopping && this.state != stopped) {
+ this.state = stopping;
+ this.fetchRequest.cancel();
+ return true;
+ }
+ }
+ prepareRequest(request) {
+ if (!request.isSafe) {
+ const token = getCookieValue(getMetaContent("csrf-param")) || getMetaContent("csrf-token");
+ if (token) {
+ request.headers["X-CSRF-Token"] = token;
+ }
+ }
+ if (this.requestAcceptsTurboStreamResponse(request)) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted(_request) {
+ var _a;
+ this.state = FormSubmissionState.waiting;
+ (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute("disabled", "");
+ this.setSubmitsWith();
+ dispatch("turbo:submit-start", {
+ target: this.formElement,
+ detail: { formSubmission: this }
+ });
+ this.delegate.formSubmissionStarted(this);
+ }
+ requestPreventedHandlingResponse(request, response) {
+ this.result = { success: response.succeeded, fetchResponse: response };
+ }
+ requestSucceededWithResponse(request, response) {
+ if (response.clientError || response.serverError) {
+ this.delegate.formSubmissionFailedWithResponse(this, response);
+ } else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {
+ const error2 = new Error("Form responses must redirect to another location");
+ this.delegate.formSubmissionErrored(this, error2);
+ } else {
+ this.state = FormSubmissionState.receiving;
+ this.result = { success: true, fetchResponse: response };
+ this.delegate.formSubmissionSucceededWithResponse(this, response);
+ }
+ }
+ requestFailedWithResponse(request, response) {
+ this.result = { success: false, fetchResponse: response };
+ this.delegate.formSubmissionFailedWithResponse(this, response);
+ }
+ requestErrored(request, error2) {
+ this.result = { success: false, error: error2 };
+ this.delegate.formSubmissionErrored(this, error2);
+ }
+ requestFinished(_request) {
+ var _a;
+ this.state = FormSubmissionState.stopped;
+ (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute("disabled");
+ this.resetSubmitterText();
+ dispatch("turbo:submit-end", {
+ target: this.formElement,
+ detail: Object.assign({ formSubmission: this }, this.result)
+ });
+ this.delegate.formSubmissionFinished(this);
+ }
+ setSubmitsWith() {
+ if (!this.submitter || !this.submitsWith)
+ return;
+ if (this.submitter.matches("button")) {
+ this.originalSubmitText = this.submitter.innerHTML;
+ this.submitter.innerHTML = this.submitsWith;
+ } else if (this.submitter.matches("input")) {
+ const input = this.submitter;
+ this.originalSubmitText = input.value;
+ input.value = this.submitsWith;
+ }
+ }
+ resetSubmitterText() {
+ if (!this.submitter || !this.originalSubmitText)
+ return;
+ if (this.submitter.matches("button")) {
+ this.submitter.innerHTML = this.originalSubmitText;
+ } else if (this.submitter.matches("input")) {
+ const input = this.submitter;
+ input.value = this.originalSubmitText;
+ }
+ }
+ requestMustRedirect(request) {
+ return !request.isSafe && this.mustRedirect;
+ }
+ requestAcceptsTurboStreamResponse(request) {
+ return !request.isSafe || hasAttribute("data-turbo-stream", this.submitter, this.formElement);
+ }
+ get submitsWith() {
+ var _a;
+ return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("data-turbo-submits-with");
+ }
+ };
+ function buildFormData(formElement, submitter) {
+ const formData = new FormData(formElement);
+ const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("name");
+ const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("value");
+ if (name) {
+ formData.append(name, value || "");
+ }
+ return formData;
+ }
+ function getCookieValue(cookieName) {
+ if (cookieName != null) {
+ const cookies = document.cookie ? document.cookie.split("; ") : [];
+ const cookie = cookies.find((cookie2) => cookie2.startsWith(cookieName));
+ if (cookie) {
+ const value = cookie.split("=").slice(1).join("=");
+ return value ? decodeURIComponent(value) : void 0;
+ }
+ }
+ }
+ function responseSucceededWithoutRedirect(response) {
+ return response.statusCode == 200 && !response.redirected;
+ }
+ function mergeFormDataEntries(url, entries) {
+ const searchParams = new URLSearchParams();
+ for (const [name, value] of entries) {
+ if (value instanceof File)
+ continue;
+ searchParams.append(name, value);
+ }
+ url.search = searchParams.toString();
+ return url;
+ }
+ var Snapshot = class {
+ constructor(element) {
+ this.element = element;
+ }
+ get activeElement() {
+ return this.element.ownerDocument.activeElement;
+ }
+ get children() {
+ return [...this.element.children];
+ }
+ hasAnchor(anchor) {
+ return this.getElementForAnchor(anchor) != null;
+ }
+ getElementForAnchor(anchor) {
+ return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;
+ }
+ get isConnected() {
+ return this.element.isConnected;
+ }
+ get firstAutofocusableElement() {
+ const inertDisabledOrHidden = "[inert], :disabled, [hidden], details:not([open]), dialog:not([open])";
+ for (const element of this.element.querySelectorAll("[autofocus]")) {
+ if (element.closest(inertDisabledOrHidden) == null)
+ return element;
+ else
+ continue;
+ }
+ return null;
+ }
+ get permanentElements() {
+ return queryPermanentElementsAll(this.element);
+ }
+ getPermanentElementById(id2) {
+ return getPermanentElementById(this.element, id2);
+ }
+ getPermanentElementMapForSnapshot(snapshot) {
+ const permanentElementMap = {};
+ for (const currentPermanentElement of this.permanentElements) {
+ const { id: id2 } = currentPermanentElement;
+ const newPermanentElement = snapshot.getPermanentElementById(id2);
+ if (newPermanentElement) {
+ permanentElementMap[id2] = [currentPermanentElement, newPermanentElement];
+ }
+ }
+ return permanentElementMap;
+ }
+ };
+ function getPermanentElementById(node, id2) {
+ return node.querySelector(`#${id2}[data-turbo-permanent]`);
+ }
+ function queryPermanentElementsAll(node) {
+ return node.querySelectorAll("[id][data-turbo-permanent]");
+ }
+ var FormSubmitObserver = class {
+ constructor(delegate, eventTarget) {
+ this.started = false;
+ this.submitCaptured = () => {
+ this.eventTarget.removeEventListener("submit", this.submitBubbled, false);
+ this.eventTarget.addEventListener("submit", this.submitBubbled, false);
+ };
+ this.submitBubbled = (event) => {
+ if (!event.defaultPrevented) {
+ const form = event.target instanceof HTMLFormElement ? event.target : void 0;
+ const submitter = event.submitter || void 0;
+ if (form && submissionDoesNotDismissDialog(form, submitter) && submissionDoesNotTargetIFrame(form, submitter) && this.delegate.willSubmitForm(form, submitter)) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ this.delegate.formSubmitted(form, submitter);
+ }
+ }
+ };
+ this.delegate = delegate;
+ this.eventTarget = eventTarget;
+ }
+ start() {
+ if (!this.started) {
+ this.eventTarget.addEventListener("submit", this.submitCaptured, true);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.eventTarget.removeEventListener("submit", this.submitCaptured, true);
+ this.started = false;
+ }
+ }
+ };
+ function submissionDoesNotDismissDialog(form, submitter) {
+ const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formmethod")) || form.getAttribute("method");
+ return method != "dialog";
+ }
+ function submissionDoesNotTargetIFrame(form, submitter) {
+ if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute("formtarget")) || form.hasAttribute("target")) {
+ const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formtarget")) || form.target;
+ for (const element of document.getElementsByName(target)) {
+ if (element instanceof HTMLIFrameElement)
+ return false;
+ }
+ return true;
+ } else {
+ return true;
+ }
+ }
+ var View = class {
+ constructor(delegate, element) {
+ this.resolveRenderPromise = (_value) => {
+ };
+ this.resolveInterceptionPromise = (_value) => {
+ };
+ this.delegate = delegate;
+ this.element = element;
+ }
+ scrollToAnchor(anchor) {
+ const element = this.snapshot.getElementForAnchor(anchor);
+ if (element) {
+ this.scrollToElement(element);
+ this.focusElement(element);
+ } else {
+ this.scrollToPosition({ x: 0, y: 0 });
+ }
+ }
+ scrollToAnchorFromLocation(location2) {
+ this.scrollToAnchor(getAnchor(location2));
+ }
+ scrollToElement(element) {
+ element.scrollIntoView();
+ }
+ focusElement(element) {
+ if (element instanceof HTMLElement) {
+ if (element.hasAttribute("tabindex")) {
+ element.focus();
+ } else {
+ element.setAttribute("tabindex", "-1");
+ element.focus();
+ element.removeAttribute("tabindex");
+ }
+ }
+ }
+ scrollToPosition({ x, y }) {
+ this.scrollRoot.scrollTo(x, y);
+ }
+ scrollToTop() {
+ this.scrollToPosition({ x: 0, y: 0 });
+ }
+ get scrollRoot() {
+ return window;
+ }
+ async render(renderer) {
+ const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;
+ if (shouldRender) {
+ try {
+ this.renderPromise = new Promise((resolve) => this.resolveRenderPromise = resolve);
+ this.renderer = renderer;
+ await this.prepareToRenderSnapshot(renderer);
+ const renderInterception = new Promise((resolve) => this.resolveInterceptionPromise = resolve);
+ const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };
+ const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);
+ if (!immediateRender)
+ await renderInterception;
+ await this.renderSnapshot(renderer);
+ this.delegate.viewRenderedSnapshot(snapshot, isPreview);
+ this.delegate.preloadOnLoadLinksForView(this.element);
+ this.finishRenderingSnapshot(renderer);
+ } finally {
+ delete this.renderer;
+ this.resolveRenderPromise(void 0);
+ delete this.renderPromise;
+ }
+ } else {
+ this.invalidate(renderer.reloadReason);
+ }
+ }
+ invalidate(reason) {
+ this.delegate.viewInvalidated(reason);
+ }
+ async prepareToRenderSnapshot(renderer) {
+ this.markAsPreview(renderer.isPreview);
+ await renderer.prepareToRender();
+ }
+ markAsPreview(isPreview) {
+ if (isPreview) {
+ this.element.setAttribute("data-turbo-preview", "");
+ } else {
+ this.element.removeAttribute("data-turbo-preview");
+ }
+ }
+ async renderSnapshot(renderer) {
+ await renderer.render();
+ }
+ finishRenderingSnapshot(renderer) {
+ renderer.finishRendering();
+ }
+ };
+ var FrameView = class extends View {
+ missing() {
+ this.element.innerHTML = `Content missing`;
+ }
+ get snapshot() {
+ return new Snapshot(this.element);
+ }
+ };
+ var LinkInterceptor = class {
+ constructor(delegate, element) {
+ this.clickBubbled = (event) => {
+ if (this.respondsToEventTarget(event.target)) {
+ this.clickEvent = event;
+ } else {
+ delete this.clickEvent;
+ }
+ };
+ this.linkClicked = (event) => {
+ if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {
+ if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {
+ this.clickEvent.preventDefault();
+ event.preventDefault();
+ this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);
+ }
+ }
+ delete this.clickEvent;
+ };
+ this.willVisit = (_event) => {
+ delete this.clickEvent;
+ };
+ this.delegate = delegate;
+ this.element = element;
+ }
+ start() {
+ this.element.addEventListener("click", this.clickBubbled);
+ document.addEventListener("turbo:click", this.linkClicked);
+ document.addEventListener("turbo:before-visit", this.willVisit);
+ }
+ stop() {
+ this.element.removeEventListener("click", this.clickBubbled);
+ document.removeEventListener("turbo:click", this.linkClicked);
+ document.removeEventListener("turbo:before-visit", this.willVisit);
+ }
+ respondsToEventTarget(target) {
+ const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
+ return element && element.closest("turbo-frame, html") == this.element;
+ }
+ };
+ var LinkClickObserver = class {
+ constructor(delegate, eventTarget) {
+ this.started = false;
+ this.clickCaptured = () => {
+ this.eventTarget.removeEventListener("click", this.clickBubbled, false);
+ this.eventTarget.addEventListener("click", this.clickBubbled, false);
+ };
+ this.clickBubbled = (event) => {
+ if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {
+ const target = event.composedPath && event.composedPath()[0] || event.target;
+ const link = this.findLinkFromClickTarget(target);
+ if (link && doesNotTargetIFrame(link)) {
+ const location2 = this.getLocationForLink(link);
+ if (this.delegate.willFollowLinkToLocation(link, location2, event)) {
+ event.preventDefault();
+ this.delegate.followedLinkToLocation(link, location2);
+ }
+ }
+ }
+ };
+ this.delegate = delegate;
+ this.eventTarget = eventTarget;
+ }
+ start() {
+ if (!this.started) {
+ this.eventTarget.addEventListener("click", this.clickCaptured, true);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.eventTarget.removeEventListener("click", this.clickCaptured, true);
+ this.started = false;
+ }
+ }
+ clickEventIsSignificant(event) {
+ return !(event.target && event.target.isContentEditable || event.defaultPrevented || event.which > 1 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey);
+ }
+ findLinkFromClickTarget(target) {
+ return findClosestRecursively(target, "a[href]:not([target^=_]):not([download])");
+ }
+ getLocationForLink(link) {
+ return expandURL(link.getAttribute("href") || "");
+ }
+ };
+ function doesNotTargetIFrame(anchor) {
+ if (anchor.hasAttribute("target")) {
+ for (const element of document.getElementsByName(anchor.target)) {
+ if (element instanceof HTMLIFrameElement)
+ return false;
+ }
+ return true;
+ } else {
+ return true;
+ }
+ }
+ var FormLinkClickObserver = class {
+ constructor(delegate, element) {
+ this.delegate = delegate;
+ this.linkInterceptor = new LinkClickObserver(this, element);
+ }
+ start() {
+ this.linkInterceptor.start();
+ }
+ stop() {
+ this.linkInterceptor.stop();
+ }
+ willFollowLinkToLocation(link, location2, originalEvent) {
+ return this.delegate.willSubmitFormLinkToLocation(link, location2, originalEvent) && link.hasAttribute("data-turbo-method");
+ }
+ followedLinkToLocation(link, location2) {
+ const form = document.createElement("form");
+ const type = "hidden";
+ for (const [name, value] of location2.searchParams) {
+ form.append(Object.assign(document.createElement("input"), { type, name, value }));
+ }
+ const action = Object.assign(location2, { search: "" });
+ form.setAttribute("data-turbo", "true");
+ form.setAttribute("action", action.href);
+ form.setAttribute("hidden", "");
+ const method = link.getAttribute("data-turbo-method");
+ if (method)
+ form.setAttribute("method", method);
+ const turboFrame = link.getAttribute("data-turbo-frame");
+ if (turboFrame)
+ form.setAttribute("data-turbo-frame", turboFrame);
+ const turboAction = getVisitAction(link);
+ if (turboAction)
+ form.setAttribute("data-turbo-action", turboAction);
+ const turboConfirm = link.getAttribute("data-turbo-confirm");
+ if (turboConfirm)
+ form.setAttribute("data-turbo-confirm", turboConfirm);
+ const turboStream = link.hasAttribute("data-turbo-stream");
+ if (turboStream)
+ form.setAttribute("data-turbo-stream", "");
+ this.delegate.submittedFormLinkToLocation(link, location2, form);
+ document.body.appendChild(form);
+ form.addEventListener("turbo:submit-end", () => form.remove(), { once: true });
+ requestAnimationFrame(() => form.requestSubmit());
+ }
+ };
+ var Bardo = class {
+ static async preservingPermanentElements(delegate, permanentElementMap, callback) {
+ const bardo = new this(delegate, permanentElementMap);
+ bardo.enter();
+ await callback();
+ bardo.leave();
+ }
+ constructor(delegate, permanentElementMap) {
+ this.delegate = delegate;
+ this.permanentElementMap = permanentElementMap;
+ }
+ enter() {
+ for (const id2 in this.permanentElementMap) {
+ const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id2];
+ this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);
+ this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);
+ }
+ }
+ leave() {
+ for (const id2 in this.permanentElementMap) {
+ const [currentPermanentElement] = this.permanentElementMap[id2];
+ this.replaceCurrentPermanentElementWithClone(currentPermanentElement);
+ this.replacePlaceholderWithPermanentElement(currentPermanentElement);
+ this.delegate.leavingBardo(currentPermanentElement);
+ }
+ }
+ replaceNewPermanentElementWithPlaceholder(permanentElement) {
+ const placeholder = createPlaceholderForPermanentElement(permanentElement);
+ permanentElement.replaceWith(placeholder);
+ }
+ replaceCurrentPermanentElementWithClone(permanentElement) {
+ const clone = permanentElement.cloneNode(true);
+ permanentElement.replaceWith(clone);
+ }
+ replacePlaceholderWithPermanentElement(permanentElement) {
+ const placeholder = this.getPlaceholderById(permanentElement.id);
+ placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);
+ }
+ getPlaceholderById(id2) {
+ return this.placeholders.find((element) => element.content == id2);
+ }
+ get placeholders() {
+ return [...document.querySelectorAll("meta[name=turbo-permanent-placeholder][content]")];
+ }
+ };
+ function createPlaceholderForPermanentElement(permanentElement) {
+ const element = document.createElement("meta");
+ element.setAttribute("name", "turbo-permanent-placeholder");
+ element.setAttribute("content", permanentElement.id);
+ return element;
+ }
+ var Renderer = class {
+ constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {
+ this.activeElement = null;
+ this.currentSnapshot = currentSnapshot;
+ this.newSnapshot = newSnapshot;
+ this.isPreview = isPreview;
+ this.willRender = willRender;
+ this.renderElement = renderElement;
+ this.promise = new Promise((resolve, reject) => this.resolvingFunctions = { resolve, reject });
+ }
+ get shouldRender() {
+ return true;
+ }
+ get reloadReason() {
+ return;
+ }
+ prepareToRender() {
+ return;
+ }
+ finishRendering() {
+ if (this.resolvingFunctions) {
+ this.resolvingFunctions.resolve();
+ delete this.resolvingFunctions;
+ }
+ }
+ async preservingPermanentElements(callback) {
+ await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);
+ }
+ focusFirstAutofocusableElement() {
+ const element = this.connectedSnapshot.firstAutofocusableElement;
+ if (elementIsFocusable(element)) {
+ element.focus();
+ }
+ }
+ enteringBardo(currentPermanentElement) {
+ if (this.activeElement)
+ return;
+ if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {
+ this.activeElement = this.currentSnapshot.activeElement;
+ }
+ }
+ leavingBardo(currentPermanentElement) {
+ if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {
+ this.activeElement.focus();
+ this.activeElement = null;
+ }
+ }
+ get connectedSnapshot() {
+ return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;
+ }
+ get currentElement() {
+ return this.currentSnapshot.element;
+ }
+ get newElement() {
+ return this.newSnapshot.element;
+ }
+ get permanentElementMap() {
+ return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);
+ }
+ };
+ function elementIsFocusable(element) {
+ return element && typeof element.focus == "function";
+ }
+ var FrameRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ var _a;
+ const destinationRange = document.createRange();
+ destinationRange.selectNodeContents(currentElement);
+ destinationRange.deleteContents();
+ const frameElement = newElement;
+ const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();
+ if (sourceRange) {
+ sourceRange.selectNodeContents(frameElement);
+ currentElement.appendChild(sourceRange.extractContents());
+ }
+ }
+ constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {
+ super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);
+ this.delegate = delegate;
+ }
+ get shouldRender() {
+ return true;
+ }
+ async render() {
+ await nextAnimationFrame();
+ this.preservingPermanentElements(() => {
+ this.loadFrameElement();
+ });
+ this.scrollFrameIntoView();
+ await nextAnimationFrame();
+ this.focusFirstAutofocusableElement();
+ await nextAnimationFrame();
+ this.activateScriptElements();
+ }
+ loadFrameElement() {
+ this.delegate.willRenderFrame(this.currentElement, this.newElement);
+ this.renderElement(this.currentElement, this.newElement);
+ }
+ scrollFrameIntoView() {
+ if (this.currentElement.autoscroll || this.newElement.autoscroll) {
+ const element = this.currentElement.firstElementChild;
+ const block = readScrollLogicalPosition(this.currentElement.getAttribute("data-autoscroll-block"), "end");
+ const behavior = readScrollBehavior(this.currentElement.getAttribute("data-autoscroll-behavior"), "auto");
+ if (element) {
+ element.scrollIntoView({ block, behavior });
+ return true;
+ }
+ }
+ return false;
+ }
+ activateScriptElements() {
+ for (const inertScriptElement of this.newScriptElements) {
+ const activatedScriptElement = activateScriptElement(inertScriptElement);
+ inertScriptElement.replaceWith(activatedScriptElement);
+ }
+ }
+ get newScriptElements() {
+ return this.currentElement.querySelectorAll("script");
+ }
+ };
+ function readScrollLogicalPosition(value, defaultValue) {
+ if (value == "end" || value == "start" || value == "center" || value == "nearest") {
+ return value;
+ } else {
+ return defaultValue;
+ }
+ }
+ function readScrollBehavior(value, defaultValue) {
+ if (value == "auto" || value == "smooth") {
+ return value;
+ } else {
+ return defaultValue;
+ }
+ }
+ var ProgressBar = class _ProgressBar {
+ static get defaultCSS() {
+ return unindent`
+ .turbo-progress-bar {
+ position: fixed;
+ display: block;
+ top: 0;
+ left: 0;
+ height: 3px;
+ background: #0076ff;
+ z-index: 2147483647;
+ transition:
+ width ${_ProgressBar.animationDuration}ms ease-out,
+ opacity ${_ProgressBar.animationDuration / 2}ms ${_ProgressBar.animationDuration / 2}ms ease-in;
+ transform: translate3d(0, 0, 0);
+ }
+ `;
+ }
+ constructor() {
+ this.hiding = false;
+ this.value = 0;
+ this.visible = false;
+ this.trickle = () => {
+ this.setValue(this.value + Math.random() / 100);
+ };
+ this.stylesheetElement = this.createStylesheetElement();
+ this.progressElement = this.createProgressElement();
+ this.installStylesheetElement();
+ this.setValue(0);
+ }
+ show() {
+ if (!this.visible) {
+ this.visible = true;
+ this.installProgressElement();
+ this.startTrickling();
+ }
+ }
+ hide() {
+ if (this.visible && !this.hiding) {
+ this.hiding = true;
+ this.fadeProgressElement(() => {
+ this.uninstallProgressElement();
+ this.stopTrickling();
+ this.visible = false;
+ this.hiding = false;
+ });
+ }
+ }
+ setValue(value) {
+ this.value = value;
+ this.refresh();
+ }
+ installStylesheetElement() {
+ document.head.insertBefore(this.stylesheetElement, document.head.firstChild);
+ }
+ installProgressElement() {
+ this.progressElement.style.width = "0";
+ this.progressElement.style.opacity = "1";
+ document.documentElement.insertBefore(this.progressElement, document.body);
+ this.refresh();
+ }
+ fadeProgressElement(callback) {
+ this.progressElement.style.opacity = "0";
+ setTimeout(callback, _ProgressBar.animationDuration * 1.5);
+ }
+ uninstallProgressElement() {
+ if (this.progressElement.parentNode) {
+ document.documentElement.removeChild(this.progressElement);
+ }
+ }
+ startTrickling() {
+ if (!this.trickleInterval) {
+ this.trickleInterval = window.setInterval(this.trickle, _ProgressBar.animationDuration);
+ }
+ }
+ stopTrickling() {
+ window.clearInterval(this.trickleInterval);
+ delete this.trickleInterval;
+ }
+ refresh() {
+ requestAnimationFrame(() => {
+ this.progressElement.style.width = `${10 + this.value * 90}%`;
+ });
+ }
+ createStylesheetElement() {
+ const element = document.createElement("style");
+ element.type = "text/css";
+ element.textContent = _ProgressBar.defaultCSS;
+ if (this.cspNonce) {
+ element.nonce = this.cspNonce;
+ }
+ return element;
+ }
+ createProgressElement() {
+ const element = document.createElement("div");
+ element.className = "turbo-progress-bar";
+ return element;
+ }
+ get cspNonce() {
+ return getMetaContent("csp-nonce");
+ }
+ };
+ ProgressBar.animationDuration = 300;
+ var HeadSnapshot = class extends Snapshot {
+ constructor() {
+ super(...arguments);
+ this.detailsByOuterHTML = this.children.filter((element) => !elementIsNoscript(element)).map((element) => elementWithoutNonce(element)).reduce((result, element) => {
+ const { outerHTML } = element;
+ const details = outerHTML in result ? result[outerHTML] : {
+ type: elementType(element),
+ tracked: elementIsTracked(element),
+ elements: []
+ };
+ return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });
+ }, {});
+ }
+ get trackedElementSignature() {
+ return Object.keys(this.detailsByOuterHTML).filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked).join("");
+ }
+ getScriptElementsNotInSnapshot(snapshot) {
+ return this.getElementsMatchingTypeNotInSnapshot("script", snapshot);
+ }
+ getStylesheetElementsNotInSnapshot(snapshot) {
+ return this.getElementsMatchingTypeNotInSnapshot("stylesheet", snapshot);
+ }
+ getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {
+ return Object.keys(this.detailsByOuterHTML).filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML)).map((outerHTML) => this.detailsByOuterHTML[outerHTML]).filter(({ type }) => type == matchedType).map(({ elements: [element] }) => element);
+ }
+ get provisionalElements() {
+ return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {
+ const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];
+ if (type == null && !tracked) {
+ return [...result, ...elements];
+ } else if (elements.length > 1) {
+ return [...result, ...elements.slice(1)];
+ } else {
+ return result;
+ }
+ }, []);
+ }
+ getMetaValue(name) {
+ const element = this.findMetaElementByName(name);
+ return element ? element.getAttribute("content") : null;
+ }
+ findMetaElementByName(name) {
+ return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {
+ const { elements: [element] } = this.detailsByOuterHTML[outerHTML];
+ return elementIsMetaElementWithName(element, name) ? element : result;
+ }, void 0);
+ }
+ };
+ function elementType(element) {
+ if (elementIsScript(element)) {
+ return "script";
+ } else if (elementIsStylesheet(element)) {
+ return "stylesheet";
+ }
+ }
+ function elementIsTracked(element) {
+ return element.getAttribute("data-turbo-track") == "reload";
+ }
+ function elementIsScript(element) {
+ const tagName = element.localName;
+ return tagName == "script";
+ }
+ function elementIsNoscript(element) {
+ const tagName = element.localName;
+ return tagName == "noscript";
+ }
+ function elementIsStylesheet(element) {
+ const tagName = element.localName;
+ return tagName == "style" || tagName == "link" && element.getAttribute("rel") == "stylesheet";
+ }
+ function elementIsMetaElementWithName(element, name) {
+ const tagName = element.localName;
+ return tagName == "meta" && element.getAttribute("name") == name;
+ }
+ function elementWithoutNonce(element) {
+ if (element.hasAttribute("nonce")) {
+ element.setAttribute("nonce", "");
+ }
+ return element;
+ }
+ var PageSnapshot = class _PageSnapshot extends Snapshot {
+ static fromHTMLString(html = "") {
+ return this.fromDocument(parseHTMLDocument(html));
+ }
+ static fromElement(element) {
+ return this.fromDocument(element.ownerDocument);
+ }
+ static fromDocument({ head, body }) {
+ return new this(body, new HeadSnapshot(head));
+ }
+ constructor(element, headSnapshot) {
+ super(element);
+ this.headSnapshot = headSnapshot;
+ }
+ clone() {
+ const clonedElement = this.element.cloneNode(true);
+ const selectElements = this.element.querySelectorAll("select");
+ const clonedSelectElements = clonedElement.querySelectorAll("select");
+ for (const [index, source] of selectElements.entries()) {
+ const clone = clonedSelectElements[index];
+ for (const option of clone.selectedOptions)
+ option.selected = false;
+ for (const option of source.selectedOptions)
+ clone.options[option.index].selected = true;
+ }
+ for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type="password"]')) {
+ clonedPasswordInput.value = "";
+ }
+ return new _PageSnapshot(clonedElement, this.headSnapshot);
+ }
+ get headElement() {
+ return this.headSnapshot.element;
+ }
+ get rootLocation() {
+ var _a;
+ const root = (_a = this.getSetting("root")) !== null && _a !== void 0 ? _a : "/";
+ return expandURL(root);
+ }
+ get cacheControlValue() {
+ return this.getSetting("cache-control");
+ }
+ get isPreviewable() {
+ return this.cacheControlValue != "no-preview";
+ }
+ get isCacheable() {
+ return this.cacheControlValue != "no-cache";
+ }
+ get isVisitable() {
+ return this.getSetting("visit-control") != "reload";
+ }
+ getSetting(name) {
+ return this.headSnapshot.getMetaValue(`turbo-${name}`);
+ }
+ };
+ var TimingMetric;
+ (function(TimingMetric2) {
+ TimingMetric2["visitStart"] = "visitStart";
+ TimingMetric2["requestStart"] = "requestStart";
+ TimingMetric2["requestEnd"] = "requestEnd";
+ TimingMetric2["visitEnd"] = "visitEnd";
+ })(TimingMetric || (TimingMetric = {}));
+ var VisitState;
+ (function(VisitState2) {
+ VisitState2["initialized"] = "initialized";
+ VisitState2["started"] = "started";
+ VisitState2["canceled"] = "canceled";
+ VisitState2["failed"] = "failed";
+ VisitState2["completed"] = "completed";
+ })(VisitState || (VisitState = {}));
+ var defaultOptions = {
+ action: "advance",
+ historyChanged: false,
+ visitCachedSnapshot: () => {
+ },
+ willRender: true,
+ updateHistory: true,
+ shouldCacheSnapshot: true,
+ acceptsStreamResponse: false
+ };
+ var SystemStatusCode;
+ (function(SystemStatusCode2) {
+ SystemStatusCode2[SystemStatusCode2["networkFailure"] = 0] = "networkFailure";
+ SystemStatusCode2[SystemStatusCode2["timeoutFailure"] = -1] = "timeoutFailure";
+ SystemStatusCode2[SystemStatusCode2["contentTypeMismatch"] = -2] = "contentTypeMismatch";
+ })(SystemStatusCode || (SystemStatusCode = {}));
+ var Visit = class {
+ constructor(delegate, location2, restorationIdentifier, options = {}) {
+ this.identifier = uuid();
+ this.timingMetrics = {};
+ this.followedRedirect = false;
+ this.historyChanged = false;
+ this.scrolled = false;
+ this.shouldCacheSnapshot = true;
+ this.acceptsStreamResponse = false;
+ this.snapshotCached = false;
+ this.state = VisitState.initialized;
+ this.delegate = delegate;
+ this.location = location2;
+ this.restorationIdentifier = restorationIdentifier || uuid();
+ const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse } = Object.assign(Object.assign({}, defaultOptions), options);
+ this.action = action;
+ this.historyChanged = historyChanged;
+ this.referrer = referrer;
+ this.snapshot = snapshot;
+ this.snapshotHTML = snapshotHTML;
+ this.response = response;
+ this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);
+ this.visitCachedSnapshot = visitCachedSnapshot;
+ this.willRender = willRender;
+ this.updateHistory = updateHistory;
+ this.scrolled = !willRender;
+ this.shouldCacheSnapshot = shouldCacheSnapshot;
+ this.acceptsStreamResponse = acceptsStreamResponse;
+ }
+ get adapter() {
+ return this.delegate.adapter;
+ }
+ get view() {
+ return this.delegate.view;
+ }
+ get history() {
+ return this.delegate.history;
+ }
+ get restorationData() {
+ return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);
+ }
+ get silent() {
+ return this.isSamePage;
+ }
+ start() {
+ if (this.state == VisitState.initialized) {
+ this.recordTimingMetric(TimingMetric.visitStart);
+ this.state = VisitState.started;
+ this.adapter.visitStarted(this);
+ this.delegate.visitStarted(this);
+ }
+ }
+ cancel() {
+ if (this.state == VisitState.started) {
+ if (this.request) {
+ this.request.cancel();
+ }
+ this.cancelRender();
+ this.state = VisitState.canceled;
+ }
+ }
+ complete() {
+ if (this.state == VisitState.started) {
+ this.recordTimingMetric(TimingMetric.visitEnd);
+ this.state = VisitState.completed;
+ this.followRedirect();
+ if (!this.followedRedirect) {
+ this.adapter.visitCompleted(this);
+ this.delegate.visitCompleted(this);
+ }
+ }
+ }
+ fail() {
+ if (this.state == VisitState.started) {
+ this.state = VisitState.failed;
+ this.adapter.visitFailed(this);
+ }
+ }
+ changeHistory() {
+ var _a;
+ if (!this.historyChanged && this.updateHistory) {
+ const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? "replace" : this.action;
+ const method = getHistoryMethodForAction(actionForHistory);
+ this.history.update(method, this.location, this.restorationIdentifier);
+ this.historyChanged = true;
+ }
+ }
+ issueRequest() {
+ if (this.hasPreloadedResponse()) {
+ this.simulateRequest();
+ } else if (this.shouldIssueRequest() && !this.request) {
+ this.request = new FetchRequest(this, FetchMethod.get, this.location);
+ this.request.perform();
+ }
+ }
+ simulateRequest() {
+ if (this.response) {
+ this.startRequest();
+ this.recordResponse();
+ this.finishRequest();
+ }
+ }
+ startRequest() {
+ this.recordTimingMetric(TimingMetric.requestStart);
+ this.adapter.visitRequestStarted(this);
+ }
+ recordResponse(response = this.response) {
+ this.response = response;
+ if (response) {
+ const { statusCode } = response;
+ if (isSuccessful(statusCode)) {
+ this.adapter.visitRequestCompleted(this);
+ } else {
+ this.adapter.visitRequestFailedWithStatusCode(this, statusCode);
+ }
+ }
+ }
+ finishRequest() {
+ this.recordTimingMetric(TimingMetric.requestEnd);
+ this.adapter.visitRequestFinished(this);
+ }
+ loadResponse() {
+ if (this.response) {
+ const { statusCode, responseHTML } = this.response;
+ this.render(async () => {
+ if (this.shouldCacheSnapshot)
+ this.cacheSnapshot();
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ if (isSuccessful(statusCode) && responseHTML != null) {
+ await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);
+ this.performScroll();
+ this.adapter.visitRendered(this);
+ this.complete();
+ } else {
+ await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);
+ this.adapter.visitRendered(this);
+ this.fail();
+ }
+ });
+ }
+ }
+ getCachedSnapshot() {
+ const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();
+ if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {
+ if (this.action == "restore" || snapshot.isPreviewable) {
+ return snapshot;
+ }
+ }
+ }
+ getPreloadedSnapshot() {
+ if (this.snapshotHTML) {
+ return PageSnapshot.fromHTMLString(this.snapshotHTML);
+ }
+ }
+ hasCachedSnapshot() {
+ return this.getCachedSnapshot() != null;
+ }
+ loadCachedSnapshot() {
+ const snapshot = this.getCachedSnapshot();
+ if (snapshot) {
+ const isPreview = this.shouldIssueRequest();
+ this.render(async () => {
+ this.cacheSnapshot();
+ if (this.isSamePage) {
+ this.adapter.visitRendered(this);
+ } else {
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ await this.view.renderPage(snapshot, isPreview, this.willRender, this);
+ this.performScroll();
+ this.adapter.visitRendered(this);
+ if (!isPreview) {
+ this.complete();
+ }
+ }
+ });
+ }
+ }
+ followRedirect() {
+ var _a;
+ if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {
+ this.adapter.visitProposedToLocation(this.redirectedToLocation, {
+ action: "replace",
+ response: this.response,
+ shouldCacheSnapshot: false,
+ willRender: false
+ });
+ this.followedRedirect = true;
+ }
+ }
+ goToSamePageAnchor() {
+ if (this.isSamePage) {
+ this.render(async () => {
+ this.cacheSnapshot();
+ this.performScroll();
+ this.changeHistory();
+ this.adapter.visitRendered(this);
+ });
+ }
+ }
+ prepareRequest(request) {
+ if (this.acceptsStreamResponse) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted() {
+ this.startRequest();
+ }
+ requestPreventedHandlingResponse(_request, _response) {
+ }
+ async requestSucceededWithResponse(request, response) {
+ const responseHTML = await response.responseHTML;
+ const { redirected, statusCode } = response;
+ if (responseHTML == void 0) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.contentTypeMismatch,
+ redirected
+ });
+ } else {
+ this.redirectedToLocation = response.redirected ? response.location : void 0;
+ this.recordResponse({ statusCode, responseHTML, redirected });
+ }
+ }
+ async requestFailedWithResponse(request, response) {
+ const responseHTML = await response.responseHTML;
+ const { redirected, statusCode } = response;
+ if (responseHTML == void 0) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.contentTypeMismatch,
+ redirected
+ });
+ } else {
+ this.recordResponse({ statusCode, responseHTML, redirected });
+ }
+ }
+ requestErrored(_request, _error) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.networkFailure,
+ redirected: false
+ });
+ }
+ requestFinished() {
+ this.finishRequest();
+ }
+ performScroll() {
+ if (!this.scrolled && !this.view.forceReloaded) {
+ if (this.action == "restore") {
+ this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();
+ } else {
+ this.scrollToAnchor() || this.view.scrollToTop();
+ }
+ if (this.isSamePage) {
+ this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);
+ }
+ this.scrolled = true;
+ }
+ }
+ scrollToRestoredPosition() {
+ const { scrollPosition } = this.restorationData;
+ if (scrollPosition) {
+ this.view.scrollToPosition(scrollPosition);
+ return true;
+ }
+ }
+ scrollToAnchor() {
+ const anchor = getAnchor(this.location);
+ if (anchor != null) {
+ this.view.scrollToAnchor(anchor);
+ return true;
+ }
+ }
+ recordTimingMetric(metric) {
+ this.timingMetrics[metric] = (/* @__PURE__ */ new Date()).getTime();
+ }
+ getTimingMetrics() {
+ return Object.assign({}, this.timingMetrics);
+ }
+ getHistoryMethodForAction(action) {
+ switch (action) {
+ case "replace":
+ return history.replaceState;
+ case "advance":
+ case "restore":
+ return history.pushState;
+ }
+ }
+ hasPreloadedResponse() {
+ return typeof this.response == "object";
+ }
+ shouldIssueRequest() {
+ if (this.isSamePage) {
+ return false;
+ } else if (this.action == "restore") {
+ return !this.hasCachedSnapshot();
+ } else {
+ return this.willRender;
+ }
+ }
+ cacheSnapshot() {
+ if (!this.snapshotCached) {
+ this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));
+ this.snapshotCached = true;
+ }
+ }
+ async render(callback) {
+ this.cancelRender();
+ await new Promise((resolve) => {
+ this.frame = requestAnimationFrame(() => resolve());
+ });
+ await callback();
+ delete this.frame;
+ }
+ cancelRender() {
+ if (this.frame) {
+ cancelAnimationFrame(this.frame);
+ delete this.frame;
+ }
+ }
+ };
+ function isSuccessful(statusCode) {
+ return statusCode >= 200 && statusCode < 300;
+ }
+ var BrowserAdapter = class {
+ constructor(session2) {
+ this.progressBar = new ProgressBar();
+ this.showProgressBar = () => {
+ this.progressBar.show();
+ };
+ this.session = session2;
+ }
+ visitProposedToLocation(location2, options) {
+ this.navigator.startVisit(location2, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);
+ }
+ visitStarted(visit2) {
+ this.location = visit2.location;
+ visit2.loadCachedSnapshot();
+ visit2.issueRequest();
+ visit2.goToSamePageAnchor();
+ }
+ visitRequestStarted(visit2) {
+ this.progressBar.setValue(0);
+ if (visit2.hasCachedSnapshot() || visit2.action != "restore") {
+ this.showVisitProgressBarAfterDelay();
+ } else {
+ this.showProgressBar();
+ }
+ }
+ visitRequestCompleted(visit2) {
+ visit2.loadResponse();
+ }
+ visitRequestFailedWithStatusCode(visit2, statusCode) {
+ switch (statusCode) {
+ case SystemStatusCode.networkFailure:
+ case SystemStatusCode.timeoutFailure:
+ case SystemStatusCode.contentTypeMismatch:
+ return this.reload({
+ reason: "request_failed",
+ context: {
+ statusCode
+ }
+ });
+ default:
+ return visit2.loadResponse();
+ }
+ }
+ visitRequestFinished(_visit) {
+ this.progressBar.setValue(1);
+ this.hideVisitProgressBar();
+ }
+ visitCompleted(_visit) {
+ }
+ pageInvalidated(reason) {
+ this.reload(reason);
+ }
+ visitFailed(_visit) {
+ }
+ visitRendered(_visit) {
+ }
+ formSubmissionStarted(_formSubmission) {
+ this.progressBar.setValue(0);
+ this.showFormProgressBarAfterDelay();
+ }
+ formSubmissionFinished(_formSubmission) {
+ this.progressBar.setValue(1);
+ this.hideFormProgressBar();
+ }
+ showVisitProgressBarAfterDelay() {
+ this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);
+ }
+ hideVisitProgressBar() {
+ this.progressBar.hide();
+ if (this.visitProgressBarTimeout != null) {
+ window.clearTimeout(this.visitProgressBarTimeout);
+ delete this.visitProgressBarTimeout;
+ }
+ }
+ showFormProgressBarAfterDelay() {
+ if (this.formProgressBarTimeout == null) {
+ this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);
+ }
+ }
+ hideFormProgressBar() {
+ this.progressBar.hide();
+ if (this.formProgressBarTimeout != null) {
+ window.clearTimeout(this.formProgressBarTimeout);
+ delete this.formProgressBarTimeout;
+ }
+ }
+ reload(reason) {
+ var _a;
+ dispatch("turbo:reload", { detail: reason });
+ window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;
+ }
+ get navigator() {
+ return this.session.navigator;
+ }
+ };
+ var CacheObserver = class {
+ constructor() {
+ this.selector = "[data-turbo-temporary]";
+ this.deprecatedSelector = "[data-turbo-cache=false]";
+ this.started = false;
+ this.removeTemporaryElements = (_event) => {
+ for (const element of this.temporaryElements) {
+ element.remove();
+ }
+ };
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ addEventListener("turbo:before-cache", this.removeTemporaryElements, false);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ removeEventListener("turbo:before-cache", this.removeTemporaryElements, false);
+ }
+ }
+ get temporaryElements() {
+ return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];
+ }
+ get temporaryElementsWithDeprecation() {
+ const elements = document.querySelectorAll(this.deprecatedSelector);
+ if (elements.length) {
+ console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);
+ }
+ return [...elements];
+ }
+ };
+ var FrameRedirector = class {
+ constructor(session2, element) {
+ this.session = session2;
+ this.element = element;
+ this.linkInterceptor = new LinkInterceptor(this, element);
+ this.formSubmitObserver = new FormSubmitObserver(this, element);
+ }
+ start() {
+ this.linkInterceptor.start();
+ this.formSubmitObserver.start();
+ }
+ stop() {
+ this.linkInterceptor.stop();
+ this.formSubmitObserver.stop();
+ }
+ shouldInterceptLinkClick(element, _location, _event) {
+ return this.shouldRedirect(element);
+ }
+ linkClickIntercepted(element, url, event) {
+ const frame = this.findFrameElement(element);
+ if (frame) {
+ frame.delegate.linkClickIntercepted(element, url, event);
+ }
+ }
+ willSubmitForm(element, submitter) {
+ return element.closest("turbo-frame") == null && this.shouldSubmit(element, submitter) && this.shouldRedirect(element, submitter);
+ }
+ formSubmitted(element, submitter) {
+ const frame = this.findFrameElement(element, submitter);
+ if (frame) {
+ frame.delegate.formSubmitted(element, submitter);
+ }
+ }
+ shouldSubmit(form, submitter) {
+ var _a;
+ const action = getAction(form, submitter);
+ const meta = this.element.ownerDocument.querySelector(`meta[name="turbo-root"]`);
+ const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : "/");
+ return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);
+ }
+ shouldRedirect(element, submitter) {
+ const isNavigatable = element instanceof HTMLFormElement ? this.session.submissionIsNavigatable(element, submitter) : this.session.elementIsNavigatable(element);
+ if (isNavigatable) {
+ const frame = this.findFrameElement(element, submitter);
+ return frame ? frame != element.closest("turbo-frame") : false;
+ } else {
+ return false;
+ }
+ }
+ findFrameElement(element, submitter) {
+ const id2 = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("data-turbo-frame")) || element.getAttribute("data-turbo-frame");
+ if (id2 && id2 != "_top") {
+ const frame = this.element.querySelector(`#${id2}:not([disabled])`);
+ if (frame instanceof FrameElement) {
+ return frame;
+ }
+ }
+ }
+ };
+ var History = class {
+ constructor(delegate) {
+ this.restorationIdentifier = uuid();
+ this.restorationData = {};
+ this.started = false;
+ this.pageLoaded = false;
+ this.onPopState = (event) => {
+ if (this.shouldHandlePopState()) {
+ const { turbo } = event.state || {};
+ if (turbo) {
+ this.location = new URL(window.location.href);
+ const { restorationIdentifier } = turbo;
+ this.restorationIdentifier = restorationIdentifier;
+ this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);
+ }
+ }
+ };
+ this.onPageLoad = async (_event) => {
+ await nextMicrotask();
+ this.pageLoaded = true;
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ addEventListener("popstate", this.onPopState, false);
+ addEventListener("load", this.onPageLoad, false);
+ this.started = true;
+ this.replace(new URL(window.location.href));
+ }
+ }
+ stop() {
+ if (this.started) {
+ removeEventListener("popstate", this.onPopState, false);
+ removeEventListener("load", this.onPageLoad, false);
+ this.started = false;
+ }
+ }
+ push(location2, restorationIdentifier) {
+ this.update(history.pushState, location2, restorationIdentifier);
+ }
+ replace(location2, restorationIdentifier) {
+ this.update(history.replaceState, location2, restorationIdentifier);
+ }
+ update(method, location2, restorationIdentifier = uuid()) {
+ const state = { turbo: { restorationIdentifier } };
+ method.call(history, state, "", location2.href);
+ this.location = location2;
+ this.restorationIdentifier = restorationIdentifier;
+ }
+ getRestorationDataForIdentifier(restorationIdentifier) {
+ return this.restorationData[restorationIdentifier] || {};
+ }
+ updateRestorationData(additionalData) {
+ const { restorationIdentifier } = this;
+ const restorationData = this.restorationData[restorationIdentifier];
+ this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);
+ }
+ assumeControlOfScrollRestoration() {
+ var _a;
+ if (!this.previousScrollRestoration) {
+ this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : "auto";
+ history.scrollRestoration = "manual";
+ }
+ }
+ relinquishControlOfScrollRestoration() {
+ if (this.previousScrollRestoration) {
+ history.scrollRestoration = this.previousScrollRestoration;
+ delete this.previousScrollRestoration;
+ }
+ }
+ shouldHandlePopState() {
+ return this.pageIsLoaded();
+ }
+ pageIsLoaded() {
+ return this.pageLoaded || document.readyState == "complete";
+ }
+ };
+ var Navigator = class {
+ constructor(delegate) {
+ this.delegate = delegate;
+ }
+ proposeVisit(location2, options = {}) {
+ if (this.delegate.allowsVisitingLocationWithAction(location2, options.action)) {
+ if (locationIsVisitable(location2, this.view.snapshot.rootLocation)) {
+ this.delegate.visitProposedToLocation(location2, options);
+ } else {
+ window.location.href = location2.toString();
+ }
+ }
+ }
+ startVisit(locatable, restorationIdentifier, options = {}) {
+ this.stop();
+ this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));
+ this.currentVisit.start();
+ }
+ submitForm(form, submitter) {
+ this.stop();
+ this.formSubmission = new FormSubmission(this, form, submitter, true);
+ this.formSubmission.start();
+ }
+ stop() {
+ if (this.formSubmission) {
+ this.formSubmission.stop();
+ delete this.formSubmission;
+ }
+ if (this.currentVisit) {
+ this.currentVisit.cancel();
+ delete this.currentVisit;
+ }
+ }
+ get adapter() {
+ return this.delegate.adapter;
+ }
+ get view() {
+ return this.delegate.view;
+ }
+ get history() {
+ return this.delegate.history;
+ }
+ formSubmissionStarted(formSubmission) {
+ if (typeof this.adapter.formSubmissionStarted === "function") {
+ this.adapter.formSubmissionStarted(formSubmission);
+ }
+ }
+ async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {
+ if (formSubmission == this.formSubmission) {
+ const responseHTML = await fetchResponse.responseHTML;
+ if (responseHTML) {
+ const shouldCacheSnapshot = formSubmission.isSafe;
+ if (!shouldCacheSnapshot) {
+ this.view.clearSnapshotCache();
+ }
+ const { statusCode, redirected } = fetchResponse;
+ const action = this.getActionForFormSubmission(formSubmission);
+ const visitOptions = {
+ action,
+ shouldCacheSnapshot,
+ response: { statusCode, responseHTML, redirected }
+ };
+ this.proposeVisit(fetchResponse.location, visitOptions);
+ }
+ }
+ }
+ async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {
+ const responseHTML = await fetchResponse.responseHTML;
+ if (responseHTML) {
+ const snapshot = PageSnapshot.fromHTMLString(responseHTML);
+ if (fetchResponse.serverError) {
+ await this.view.renderError(snapshot, this.currentVisit);
+ } else {
+ await this.view.renderPage(snapshot, false, true, this.currentVisit);
+ }
+ this.view.scrollToTop();
+ this.view.clearSnapshotCache();
+ }
+ }
+ formSubmissionErrored(formSubmission, error2) {
+ console.error(error2);
+ }
+ formSubmissionFinished(formSubmission) {
+ if (typeof this.adapter.formSubmissionFinished === "function") {
+ this.adapter.formSubmissionFinished(formSubmission);
+ }
+ }
+ visitStarted(visit2) {
+ this.delegate.visitStarted(visit2);
+ }
+ visitCompleted(visit2) {
+ this.delegate.visitCompleted(visit2);
+ }
+ locationWithActionIsSamePage(location2, action) {
+ const anchor = getAnchor(location2);
+ const currentAnchor = getAnchor(this.view.lastRenderedLocation);
+ const isRestorationToTop = action === "restore" && typeof anchor === "undefined";
+ return action !== "replace" && getRequestURL(location2) === getRequestURL(this.view.lastRenderedLocation) && (isRestorationToTop || anchor != null && anchor !== currentAnchor);
+ }
+ visitScrolledToSamePageLocation(oldURL, newURL) {
+ this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);
+ }
+ get location() {
+ return this.history.location;
+ }
+ get restorationIdentifier() {
+ return this.history.restorationIdentifier;
+ }
+ getActionForFormSubmission({ submitter, formElement }) {
+ return getVisitAction(submitter, formElement) || "advance";
+ }
+ };
+ var PageStage;
+ (function(PageStage2) {
+ PageStage2[PageStage2["initial"] = 0] = "initial";
+ PageStage2[PageStage2["loading"] = 1] = "loading";
+ PageStage2[PageStage2["interactive"] = 2] = "interactive";
+ PageStage2[PageStage2["complete"] = 3] = "complete";
+ })(PageStage || (PageStage = {}));
+ var PageObserver = class {
+ constructor(delegate) {
+ this.stage = PageStage.initial;
+ this.started = false;
+ this.interpretReadyState = () => {
+ const { readyState } = this;
+ if (readyState == "interactive") {
+ this.pageIsInteractive();
+ } else if (readyState == "complete") {
+ this.pageIsComplete();
+ }
+ };
+ this.pageWillUnload = () => {
+ this.delegate.pageWillUnload();
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ if (this.stage == PageStage.initial) {
+ this.stage = PageStage.loading;
+ }
+ document.addEventListener("readystatechange", this.interpretReadyState, false);
+ addEventListener("pagehide", this.pageWillUnload, false);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ document.removeEventListener("readystatechange", this.interpretReadyState, false);
+ removeEventListener("pagehide", this.pageWillUnload, false);
+ this.started = false;
+ }
+ }
+ pageIsInteractive() {
+ if (this.stage == PageStage.loading) {
+ this.stage = PageStage.interactive;
+ this.delegate.pageBecameInteractive();
+ }
+ }
+ pageIsComplete() {
+ this.pageIsInteractive();
+ if (this.stage == PageStage.interactive) {
+ this.stage = PageStage.complete;
+ this.delegate.pageLoaded();
+ }
+ }
+ get readyState() {
+ return document.readyState;
+ }
+ };
+ var ScrollObserver = class {
+ constructor(delegate) {
+ this.started = false;
+ this.onScroll = () => {
+ this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ addEventListener("scroll", this.onScroll, false);
+ this.onScroll();
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ removeEventListener("scroll", this.onScroll, false);
+ this.started = false;
+ }
+ }
+ updatePosition(position) {
+ this.delegate.scrollPositionChanged(position);
+ }
+ };
+ var StreamMessageRenderer = class {
+ render({ fragment }) {
+ Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));
+ }
+ enteringBardo(currentPermanentElement, newPermanentElement) {
+ newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));
+ }
+ leavingBardo() {
+ }
+ };
+ function getPermanentElementMapForFragment(fragment) {
+ const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);
+ const permanentElementMap = {};
+ for (const permanentElementInDocument of permanentElementsInDocument) {
+ const { id: id2 } = permanentElementInDocument;
+ for (const streamElement of fragment.querySelectorAll("turbo-stream")) {
+ const elementInStream = getPermanentElementById(streamElement.templateElement.content, id2);
+ if (elementInStream) {
+ permanentElementMap[id2] = [permanentElementInDocument, elementInStream];
+ }
+ }
+ }
+ return permanentElementMap;
+ }
+ var StreamObserver = class {
+ constructor(delegate) {
+ this.sources = /* @__PURE__ */ new Set();
+ this.started = false;
+ this.inspectFetchResponse = (event) => {
+ const response = fetchResponseFromEvent(event);
+ if (response && fetchResponseIsStream(response)) {
+ event.preventDefault();
+ this.receiveMessageResponse(response);
+ }
+ };
+ this.receiveMessageEvent = (event) => {
+ if (this.started && typeof event.data == "string") {
+ this.receiveMessageHTML(event.data);
+ }
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ addEventListener("turbo:before-fetch-response", this.inspectFetchResponse, false);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ removeEventListener("turbo:before-fetch-response", this.inspectFetchResponse, false);
+ }
+ }
+ connectStreamSource(source) {
+ if (!this.streamSourceIsConnected(source)) {
+ this.sources.add(source);
+ source.addEventListener("message", this.receiveMessageEvent, false);
+ }
+ }
+ disconnectStreamSource(source) {
+ if (this.streamSourceIsConnected(source)) {
+ this.sources.delete(source);
+ source.removeEventListener("message", this.receiveMessageEvent, false);
+ }
+ }
+ streamSourceIsConnected(source) {
+ return this.sources.has(source);
+ }
+ async receiveMessageResponse(response) {
+ const html = await response.responseHTML;
+ if (html) {
+ this.receiveMessageHTML(html);
+ }
+ }
+ receiveMessageHTML(html) {
+ this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));
+ }
+ };
+ function fetchResponseFromEvent(event) {
+ var _a;
+ const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;
+ if (fetchResponse instanceof FetchResponse) {
+ return fetchResponse;
+ }
+ }
+ function fetchResponseIsStream(response) {
+ var _a;
+ const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : "";
+ return contentType.startsWith(StreamMessage.contentType);
+ }
+ var ErrorRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ const { documentElement, body } = document;
+ documentElement.replaceChild(newElement, body);
+ }
+ async render() {
+ this.replaceHeadAndBody();
+ this.activateScriptElements();
+ }
+ replaceHeadAndBody() {
+ const { documentElement, head } = document;
+ documentElement.replaceChild(this.newHead, head);
+ this.renderElement(this.currentElement, this.newElement);
+ }
+ activateScriptElements() {
+ for (const replaceableElement of this.scriptElements) {
+ const parentNode = replaceableElement.parentNode;
+ if (parentNode) {
+ const element = activateScriptElement(replaceableElement);
+ parentNode.replaceChild(element, replaceableElement);
+ }
+ }
+ }
+ get newHead() {
+ return this.newSnapshot.headSnapshot.element;
+ }
+ get scriptElements() {
+ return document.documentElement.querySelectorAll("script");
+ }
+ };
+ var PageRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ if (document.body && newElement instanceof HTMLBodyElement) {
+ document.body.replaceWith(newElement);
+ } else {
+ document.documentElement.appendChild(newElement);
+ }
+ }
+ get shouldRender() {
+ return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;
+ }
+ get reloadReason() {
+ if (!this.newSnapshot.isVisitable) {
+ return {
+ reason: "turbo_visit_control_is_reload"
+ };
+ }
+ if (!this.trackedElementsAreIdentical) {
+ return {
+ reason: "tracked_element_mismatch"
+ };
+ }
+ }
+ async prepareToRender() {
+ await this.mergeHead();
+ }
+ async render() {
+ if (this.willRender) {
+ await this.replaceBody();
+ }
+ }
+ finishRendering() {
+ super.finishRendering();
+ if (!this.isPreview) {
+ this.focusFirstAutofocusableElement();
+ }
+ }
+ get currentHeadSnapshot() {
+ return this.currentSnapshot.headSnapshot;
+ }
+ get newHeadSnapshot() {
+ return this.newSnapshot.headSnapshot;
+ }
+ get newElement() {
+ return this.newSnapshot.element;
+ }
+ async mergeHead() {
+ const mergedHeadElements = this.mergeProvisionalElements();
+ const newStylesheetElements = this.copyNewHeadStylesheetElements();
+ this.copyNewHeadScriptElements();
+ await mergedHeadElements;
+ await newStylesheetElements;
+ }
+ async replaceBody() {
+ await this.preservingPermanentElements(async () => {
+ this.activateNewBody();
+ await this.assignNewBody();
+ });
+ }
+ get trackedElementsAreIdentical() {
+ return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;
+ }
+ async copyNewHeadStylesheetElements() {
+ const loadingElements = [];
+ for (const element of this.newHeadStylesheetElements) {
+ loadingElements.push(waitForLoad(element));
+ document.head.appendChild(element);
+ }
+ await Promise.all(loadingElements);
+ }
+ copyNewHeadScriptElements() {
+ for (const element of this.newHeadScriptElements) {
+ document.head.appendChild(activateScriptElement(element));
+ }
+ }
+ async mergeProvisionalElements() {
+ const newHeadElements = [...this.newHeadProvisionalElements];
+ for (const element of this.currentHeadProvisionalElements) {
+ if (!this.isCurrentElementInElementList(element, newHeadElements)) {
+ document.head.removeChild(element);
+ }
+ }
+ for (const element of newHeadElements) {
+ document.head.appendChild(element);
+ }
+ }
+ isCurrentElementInElementList(element, elementList) {
+ for (const [index, newElement] of elementList.entries()) {
+ if (element.tagName == "TITLE") {
+ if (newElement.tagName != "TITLE") {
+ continue;
+ }
+ if (element.innerHTML == newElement.innerHTML) {
+ elementList.splice(index, 1);
+ return true;
+ }
+ }
+ if (newElement.isEqualNode(element)) {
+ elementList.splice(index, 1);
+ return true;
+ }
+ }
+ return false;
+ }
+ removeCurrentHeadProvisionalElements() {
+ for (const element of this.currentHeadProvisionalElements) {
+ document.head.removeChild(element);
+ }
+ }
+ copyNewHeadProvisionalElements() {
+ for (const element of this.newHeadProvisionalElements) {
+ document.head.appendChild(element);
+ }
+ }
+ activateNewBody() {
+ document.adoptNode(this.newElement);
+ this.activateNewBodyScriptElements();
+ }
+ activateNewBodyScriptElements() {
+ for (const inertScriptElement of this.newBodyScriptElements) {
+ const activatedScriptElement = activateScriptElement(inertScriptElement);
+ inertScriptElement.replaceWith(activatedScriptElement);
+ }
+ }
+ async assignNewBody() {
+ await this.renderElement(this.currentElement, this.newElement);
+ }
+ get newHeadStylesheetElements() {
+ return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);
+ }
+ get newHeadScriptElements() {
+ return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);
+ }
+ get currentHeadProvisionalElements() {
+ return this.currentHeadSnapshot.provisionalElements;
+ }
+ get newHeadProvisionalElements() {
+ return this.newHeadSnapshot.provisionalElements;
+ }
+ get newBodyScriptElements() {
+ return this.newElement.querySelectorAll("script");
+ }
+ };
+ var SnapshotCache = class {
+ constructor(size) {
+ this.keys = [];
+ this.snapshots = {};
+ this.size = size;
+ }
+ has(location2) {
+ return toCacheKey(location2) in this.snapshots;
+ }
+ get(location2) {
+ if (this.has(location2)) {
+ const snapshot = this.read(location2);
+ this.touch(location2);
+ return snapshot;
+ }
+ }
+ put(location2, snapshot) {
+ this.write(location2, snapshot);
+ this.touch(location2);
+ return snapshot;
+ }
+ clear() {
+ this.snapshots = {};
+ }
+ read(location2) {
+ return this.snapshots[toCacheKey(location2)];
+ }
+ write(location2, snapshot) {
+ this.snapshots[toCacheKey(location2)] = snapshot;
+ }
+ touch(location2) {
+ const key = toCacheKey(location2);
+ const index = this.keys.indexOf(key);
+ if (index > -1)
+ this.keys.splice(index, 1);
+ this.keys.unshift(key);
+ this.trim();
+ }
+ trim() {
+ for (const key of this.keys.splice(this.size)) {
+ delete this.snapshots[key];
+ }
+ }
+ };
+ var PageView = class extends View {
+ constructor() {
+ super(...arguments);
+ this.snapshotCache = new SnapshotCache(10);
+ this.lastRenderedLocation = new URL(location.href);
+ this.forceReloaded = false;
+ }
+ renderPage(snapshot, isPreview = false, willRender = true, visit2) {
+ const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);
+ if (!renderer.shouldRender) {
+ this.forceReloaded = true;
+ } else {
+ visit2 === null || visit2 === void 0 ? void 0 : visit2.changeHistory();
+ }
+ return this.render(renderer);
+ }
+ renderError(snapshot, visit2) {
+ visit2 === null || visit2 === void 0 ? void 0 : visit2.changeHistory();
+ const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);
+ return this.render(renderer);
+ }
+ clearSnapshotCache() {
+ this.snapshotCache.clear();
+ }
+ async cacheSnapshot(snapshot = this.snapshot) {
+ if (snapshot.isCacheable) {
+ this.delegate.viewWillCacheSnapshot();
+ const { lastRenderedLocation: location2 } = this;
+ await nextEventLoopTick();
+ const cachedSnapshot = snapshot.clone();
+ this.snapshotCache.put(location2, cachedSnapshot);
+ return cachedSnapshot;
+ }
+ }
+ getCachedSnapshotForLocation(location2) {
+ return this.snapshotCache.get(location2);
+ }
+ get snapshot() {
+ return PageSnapshot.fromElement(this.element);
+ }
+ };
+ var Preloader = class {
+ constructor(delegate) {
+ this.selector = "a[data-turbo-preload]";
+ this.delegate = delegate;
+ }
+ get snapshotCache() {
+ return this.delegate.navigator.view.snapshotCache;
+ }
+ start() {
+ if (document.readyState === "loading") {
+ return document.addEventListener("DOMContentLoaded", () => {
+ this.preloadOnLoadLinksForView(document.body);
+ });
+ } else {
+ this.preloadOnLoadLinksForView(document.body);
+ }
+ }
+ preloadOnLoadLinksForView(element) {
+ for (const link of element.querySelectorAll(this.selector)) {
+ this.preloadURL(link);
+ }
+ }
+ async preloadURL(link) {
+ const location2 = new URL(link.href);
+ if (this.snapshotCache.has(location2)) {
+ return;
+ }
+ try {
+ const response = await fetch(location2.toString(), { headers: { "VND.PREFETCH": "true", Accept: "text/html" } });
+ const responseText = await response.text();
+ const snapshot = PageSnapshot.fromHTMLString(responseText);
+ this.snapshotCache.put(location2, snapshot);
+ } catch (_) {
+ }
+ }
+ };
+ var Session = class {
+ constructor() {
+ this.navigator = new Navigator(this);
+ this.history = new History(this);
+ this.preloader = new Preloader(this);
+ this.view = new PageView(this, document.documentElement);
+ this.adapter = new BrowserAdapter(this);
+ this.pageObserver = new PageObserver(this);
+ this.cacheObserver = new CacheObserver();
+ this.linkClickObserver = new LinkClickObserver(this, window);
+ this.formSubmitObserver = new FormSubmitObserver(this, document);
+ this.scrollObserver = new ScrollObserver(this);
+ this.streamObserver = new StreamObserver(this);
+ this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);
+ this.frameRedirector = new FrameRedirector(this, document.documentElement);
+ this.streamMessageRenderer = new StreamMessageRenderer();
+ this.drive = true;
+ this.enabled = true;
+ this.progressBarDelay = 500;
+ this.started = false;
+ this.formMode = "on";
+ }
+ start() {
+ if (!this.started) {
+ this.pageObserver.start();
+ this.cacheObserver.start();
+ this.formLinkClickObserver.start();
+ this.linkClickObserver.start();
+ this.formSubmitObserver.start();
+ this.scrollObserver.start();
+ this.streamObserver.start();
+ this.frameRedirector.start();
+ this.history.start();
+ this.preloader.start();
+ this.started = true;
+ this.enabled = true;
+ }
+ }
+ disable() {
+ this.enabled = false;
+ }
+ stop() {
+ if (this.started) {
+ this.pageObserver.stop();
+ this.cacheObserver.stop();
+ this.formLinkClickObserver.stop();
+ this.linkClickObserver.stop();
+ this.formSubmitObserver.stop();
+ this.scrollObserver.stop();
+ this.streamObserver.stop();
+ this.frameRedirector.stop();
+ this.history.stop();
+ this.started = false;
+ }
+ }
+ registerAdapter(adapter) {
+ this.adapter = adapter;
+ }
+ visit(location2, options = {}) {
+ const frameElement = options.frame ? document.getElementById(options.frame) : null;
+ if (frameElement instanceof FrameElement) {
+ frameElement.src = location2.toString();
+ frameElement.loaded;
+ } else {
+ this.navigator.proposeVisit(expandURL(location2), options);
+ }
+ }
+ connectStreamSource(source) {
+ this.streamObserver.connectStreamSource(source);
+ }
+ disconnectStreamSource(source) {
+ this.streamObserver.disconnectStreamSource(source);
+ }
+ renderStreamMessage(message) {
+ this.streamMessageRenderer.render(StreamMessage.wrap(message));
+ }
+ clearCache() {
+ this.view.clearSnapshotCache();
+ }
+ setProgressBarDelay(delay) {
+ this.progressBarDelay = delay;
+ }
+ setFormMode(mode) {
+ this.formMode = mode;
+ }
+ get location() {
+ return this.history.location;
+ }
+ get restorationIdentifier() {
+ return this.history.restorationIdentifier;
+ }
+ historyPoppedToLocationWithRestorationIdentifier(location2, restorationIdentifier) {
+ if (this.enabled) {
+ this.navigator.startVisit(location2, restorationIdentifier, {
+ action: "restore",
+ historyChanged: true
+ });
+ } else {
+ this.adapter.pageInvalidated({
+ reason: "turbo_disabled"
+ });
+ }
+ }
+ scrollPositionChanged(position) {
+ this.history.updateRestorationData({ scrollPosition: position });
+ }
+ willSubmitFormLinkToLocation(link, location2) {
+ return this.elementIsNavigatable(link) && locationIsVisitable(location2, this.snapshot.rootLocation);
+ }
+ submittedFormLinkToLocation() {
+ }
+ willFollowLinkToLocation(link, location2, event) {
+ return this.elementIsNavigatable(link) && locationIsVisitable(location2, this.snapshot.rootLocation) && this.applicationAllowsFollowingLinkToLocation(link, location2, event);
+ }
+ followedLinkToLocation(link, location2) {
+ const action = this.getActionForLink(link);
+ const acceptsStreamResponse = link.hasAttribute("data-turbo-stream");
+ this.visit(location2.href, { action, acceptsStreamResponse });
+ }
+ allowsVisitingLocationWithAction(location2, action) {
+ return this.locationWithActionIsSamePage(location2, action) || this.applicationAllowsVisitingLocation(location2);
+ }
+ visitProposedToLocation(location2, options) {
+ extendURLWithDeprecatedProperties(location2);
+ this.adapter.visitProposedToLocation(location2, options);
+ }
+ visitStarted(visit2) {
+ if (!visit2.acceptsStreamResponse) {
+ markAsBusy(document.documentElement);
+ }
+ extendURLWithDeprecatedProperties(visit2.location);
+ if (!visit2.silent) {
+ this.notifyApplicationAfterVisitingLocation(visit2.location, visit2.action);
+ }
+ }
+ visitCompleted(visit2) {
+ clearBusyState(document.documentElement);
+ this.notifyApplicationAfterPageLoad(visit2.getTimingMetrics());
+ }
+ locationWithActionIsSamePage(location2, action) {
+ return this.navigator.locationWithActionIsSamePage(location2, action);
+ }
+ visitScrolledToSamePageLocation(oldURL, newURL) {
+ this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);
+ }
+ willSubmitForm(form, submitter) {
+ const action = getAction(form, submitter);
+ return this.submissionIsNavigatable(form, submitter) && locationIsVisitable(expandURL(action), this.snapshot.rootLocation);
+ }
+ formSubmitted(form, submitter) {
+ this.navigator.submitForm(form, submitter);
+ }
+ pageBecameInteractive() {
+ this.view.lastRenderedLocation = this.location;
+ this.notifyApplicationAfterPageLoad();
+ }
+ pageLoaded() {
+ this.history.assumeControlOfScrollRestoration();
+ }
+ pageWillUnload() {
+ this.history.relinquishControlOfScrollRestoration();
+ }
+ receivedMessageFromStream(message) {
+ this.renderStreamMessage(message);
+ }
+ viewWillCacheSnapshot() {
+ var _a;
+ if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {
+ this.notifyApplicationBeforeCachingSnapshot();
+ }
+ }
+ allowsImmediateRender({ element }, options) {
+ const event = this.notifyApplicationBeforeRender(element, options);
+ const { defaultPrevented, detail: { render } } = event;
+ if (this.view.renderer && render) {
+ this.view.renderer.renderElement = render;
+ }
+ return !defaultPrevented;
+ }
+ viewRenderedSnapshot(_snapshot, _isPreview) {
+ this.view.lastRenderedLocation = this.history.location;
+ this.notifyApplicationAfterRender();
+ }
+ preloadOnLoadLinksForView(element) {
+ this.preloader.preloadOnLoadLinksForView(element);
+ }
+ viewInvalidated(reason) {
+ this.adapter.pageInvalidated(reason);
+ }
+ frameLoaded(frame) {
+ this.notifyApplicationAfterFrameLoad(frame);
+ }
+ frameRendered(fetchResponse, frame) {
+ this.notifyApplicationAfterFrameRender(fetchResponse, frame);
+ }
+ applicationAllowsFollowingLinkToLocation(link, location2, ev) {
+ const event = this.notifyApplicationAfterClickingLinkToLocation(link, location2, ev);
+ return !event.defaultPrevented;
+ }
+ applicationAllowsVisitingLocation(location2) {
+ const event = this.notifyApplicationBeforeVisitingLocation(location2);
+ return !event.defaultPrevented;
+ }
+ notifyApplicationAfterClickingLinkToLocation(link, location2, event) {
+ return dispatch("turbo:click", {
+ target: link,
+ detail: { url: location2.href, originalEvent: event },
+ cancelable: true
+ });
+ }
+ notifyApplicationBeforeVisitingLocation(location2) {
+ return dispatch("turbo:before-visit", {
+ detail: { url: location2.href },
+ cancelable: true
+ });
+ }
+ notifyApplicationAfterVisitingLocation(location2, action) {
+ return dispatch("turbo:visit", { detail: { url: location2.href, action } });
+ }
+ notifyApplicationBeforeCachingSnapshot() {
+ return dispatch("turbo:before-cache");
+ }
+ notifyApplicationBeforeRender(newBody, options) {
+ return dispatch("turbo:before-render", {
+ detail: Object.assign({ newBody }, options),
+ cancelable: true
+ });
+ }
+ notifyApplicationAfterRender() {
+ return dispatch("turbo:render");
+ }
+ notifyApplicationAfterPageLoad(timing = {}) {
+ return dispatch("turbo:load", {
+ detail: { url: this.location.href, timing }
+ });
+ }
+ notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {
+ dispatchEvent(new HashChangeEvent("hashchange", {
+ oldURL: oldURL.toString(),
+ newURL: newURL.toString()
+ }));
+ }
+ notifyApplicationAfterFrameLoad(frame) {
+ return dispatch("turbo:frame-load", { target: frame });
+ }
+ notifyApplicationAfterFrameRender(fetchResponse, frame) {
+ return dispatch("turbo:frame-render", {
+ detail: { fetchResponse },
+ target: frame,
+ cancelable: true
+ });
+ }
+ submissionIsNavigatable(form, submitter) {
+ if (this.formMode == "off") {
+ return false;
+ } else {
+ const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;
+ if (this.formMode == "optin") {
+ return submitterIsNavigatable && form.closest('[data-turbo="true"]') != null;
+ } else {
+ return submitterIsNavigatable && this.elementIsNavigatable(form);
+ }
+ }
+ }
+ elementIsNavigatable(element) {
+ const container = findClosestRecursively(element, "[data-turbo]");
+ const withinFrame = findClosestRecursively(element, "turbo-frame");
+ if (this.drive || withinFrame) {
+ if (container) {
+ return container.getAttribute("data-turbo") != "false";
+ } else {
+ return true;
+ }
+ } else {
+ if (container) {
+ return container.getAttribute("data-turbo") == "true";
+ } else {
+ return false;
+ }
+ }
+ }
+ getActionForLink(link) {
+ return getVisitAction(link) || "advance";
+ }
+ get snapshot() {
+ return this.view.snapshot;
+ }
+ };
+ function extendURLWithDeprecatedProperties(url) {
+ Object.defineProperties(url, deprecatedLocationPropertyDescriptors);
+ }
+ var deprecatedLocationPropertyDescriptors = {
+ absoluteURL: {
+ get() {
+ return this.toString();
+ }
+ }
+ };
+ var Cache = class {
+ constructor(session2) {
+ this.session = session2;
+ }
+ clear() {
+ this.session.clearCache();
+ }
+ resetCacheControl() {
+ this.setCacheControl("");
+ }
+ exemptPageFromCache() {
+ this.setCacheControl("no-cache");
+ }
+ exemptPageFromPreview() {
+ this.setCacheControl("no-preview");
+ }
+ setCacheControl(value) {
+ setMetaContent("turbo-cache-control", value);
+ }
+ };
+ var StreamActions = {
+ after() {
+ this.targetElements.forEach((e) => {
+ var _a;
+ return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling);
+ });
+ },
+ append() {
+ this.removeDuplicateTargetChildren();
+ this.targetElements.forEach((e) => e.append(this.templateContent));
+ },
+ before() {
+ this.targetElements.forEach((e) => {
+ var _a;
+ return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e);
+ });
+ },
+ prepend() {
+ this.removeDuplicateTargetChildren();
+ this.targetElements.forEach((e) => e.prepend(this.templateContent));
+ },
+ remove() {
+ this.targetElements.forEach((e) => e.remove());
+ },
+ replace() {
+ this.targetElements.forEach((e) => e.replaceWith(this.templateContent));
+ },
+ update() {
+ this.targetElements.forEach((targetElement) => {
+ targetElement.innerHTML = "";
+ targetElement.append(this.templateContent);
+ });
+ }
+ };
+ var session = new Session();
+ var cache = new Cache(session);
+ var { navigator: navigator$1 } = session;
+ function start3() {
+ session.start();
+ }
+ function registerAdapter(adapter) {
+ session.registerAdapter(adapter);
+ }
+ function visit(location2, options) {
+ session.visit(location2, options);
+ }
+ function connectStreamSource(source) {
+ session.connectStreamSource(source);
+ }
+ function disconnectStreamSource(source) {
+ session.disconnectStreamSource(source);
+ }
+ function renderStreamMessage(message) {
+ session.renderStreamMessage(message);
+ }
+ function clearCache() {
+ console.warn("Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`");
+ session.clearCache();
+ }
+ function setProgressBarDelay(delay) {
+ session.setProgressBarDelay(delay);
+ }
+ function setConfirmMethod(confirmMethod) {
+ FormSubmission.confirmMethod = confirmMethod;
+ }
+ function setFormMode(mode) {
+ session.setFormMode(mode);
+ }
+ var Turbo = /* @__PURE__ */ Object.freeze({
+ __proto__: null,
+ navigator: navigator$1,
+ session,
+ cache,
+ PageRenderer,
+ PageSnapshot,
+ FrameRenderer,
+ start: start3,
+ registerAdapter,
+ visit,
+ connectStreamSource,
+ disconnectStreamSource,
+ renderStreamMessage,
+ clearCache,
+ setProgressBarDelay,
+ setConfirmMethod,
+ setFormMode,
+ StreamActions
+ });
+ var TurboFrameMissingError = class extends Error {
+ };
+ var FrameController = class {
+ constructor(element) {
+ this.fetchResponseLoaded = (_fetchResponse) => {
+ };
+ this.currentFetchRequest = null;
+ this.resolveVisitPromise = () => {
+ };
+ this.connected = false;
+ this.hasBeenLoaded = false;
+ this.ignoredAttributes = /* @__PURE__ */ new Set();
+ this.action = null;
+ this.visitCachedSnapshot = ({ element: element2 }) => {
+ const frame = element2.querySelector("#" + this.element.id);
+ if (frame && this.previousFrameElement) {
+ frame.replaceChildren(...this.previousFrameElement.children);
+ }
+ delete this.previousFrameElement;
+ };
+ this.element = element;
+ this.view = new FrameView(this, this.element);
+ this.appearanceObserver = new AppearanceObserver(this, this.element);
+ this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);
+ this.linkInterceptor = new LinkInterceptor(this, this.element);
+ this.restorationIdentifier = uuid();
+ this.formSubmitObserver = new FormSubmitObserver(this, this.element);
+ }
+ connect() {
+ if (!this.connected) {
+ this.connected = true;
+ if (this.loadingStyle == FrameLoadingStyle.lazy) {
+ this.appearanceObserver.start();
+ } else {
+ this.loadSourceURL();
+ }
+ this.formLinkClickObserver.start();
+ this.linkInterceptor.start();
+ this.formSubmitObserver.start();
+ }
+ }
+ disconnect() {
+ if (this.connected) {
+ this.connected = false;
+ this.appearanceObserver.stop();
+ this.formLinkClickObserver.stop();
+ this.linkInterceptor.stop();
+ this.formSubmitObserver.stop();
+ }
+ }
+ disabledChanged() {
+ if (this.loadingStyle == FrameLoadingStyle.eager) {
+ this.loadSourceURL();
+ }
+ }
+ sourceURLChanged() {
+ if (this.isIgnoringChangesTo("src"))
+ return;
+ if (this.element.isConnected) {
+ this.complete = false;
+ }
+ if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {
+ this.loadSourceURL();
+ }
+ }
+ sourceURLReloaded() {
+ const { src } = this.element;
+ this.ignoringChangesToAttribute("complete", () => {
+ this.element.removeAttribute("complete");
+ });
+ this.element.src = null;
+ this.element.src = src;
+ return this.element.loaded;
+ }
+ completeChanged() {
+ if (this.isIgnoringChangesTo("complete"))
+ return;
+ this.loadSourceURL();
+ }
+ loadingStyleChanged() {
+ if (this.loadingStyle == FrameLoadingStyle.lazy) {
+ this.appearanceObserver.start();
+ } else {
+ this.appearanceObserver.stop();
+ this.loadSourceURL();
+ }
+ }
+ async loadSourceURL() {
+ if (this.enabled && this.isActive && !this.complete && this.sourceURL) {
+ this.element.loaded = this.visit(expandURL(this.sourceURL));
+ this.appearanceObserver.stop();
+ await this.element.loaded;
+ this.hasBeenLoaded = true;
+ }
+ }
+ async loadResponse(fetchResponse) {
+ if (fetchResponse.redirected || fetchResponse.succeeded && fetchResponse.isHTML) {
+ this.sourceURL = fetchResponse.response.url;
+ }
+ try {
+ const html = await fetchResponse.responseHTML;
+ if (html) {
+ const document2 = parseHTMLDocument(html);
+ const pageSnapshot = PageSnapshot.fromDocument(document2);
+ if (pageSnapshot.isVisitable) {
+ await this.loadFrameResponse(fetchResponse, document2);
+ } else {
+ await this.handleUnvisitableFrameResponse(fetchResponse);
+ }
+ }
+ } finally {
+ this.fetchResponseLoaded = () => {
+ };
+ }
+ }
+ elementAppearedInViewport(element) {
+ this.proposeVisitIfNavigatedWithAction(element, element);
+ this.loadSourceURL();
+ }
+ willSubmitFormLinkToLocation(link) {
+ return this.shouldInterceptNavigation(link);
+ }
+ submittedFormLinkToLocation(link, _location, form) {
+ const frame = this.findFrameElement(link);
+ if (frame)
+ form.setAttribute("data-turbo-frame", frame.id);
+ }
+ shouldInterceptLinkClick(element, _location, _event) {
+ return this.shouldInterceptNavigation(element);
+ }
+ linkClickIntercepted(element, location2) {
+ this.navigateFrame(element, location2);
+ }
+ willSubmitForm(element, submitter) {
+ return element.closest("turbo-frame") == this.element && this.shouldInterceptNavigation(element, submitter);
+ }
+ formSubmitted(element, submitter) {
+ if (this.formSubmission) {
+ this.formSubmission.stop();
+ }
+ this.formSubmission = new FormSubmission(this, element, submitter);
+ const { fetchRequest } = this.formSubmission;
+ this.prepareRequest(fetchRequest);
+ this.formSubmission.start();
+ }
+ prepareRequest(request) {
+ var _a;
+ request.headers["Turbo-Frame"] = this.id;
+ if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute("data-turbo-stream")) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted(_request) {
+ markAsBusy(this.element);
+ }
+ requestPreventedHandlingResponse(_request, _response) {
+ this.resolveVisitPromise();
+ }
+ async requestSucceededWithResponse(request, response) {
+ await this.loadResponse(response);
+ this.resolveVisitPromise();
+ }
+ async requestFailedWithResponse(request, response) {
+ await this.loadResponse(response);
+ this.resolveVisitPromise();
+ }
+ requestErrored(request, error2) {
+ console.error(error2);
+ this.resolveVisitPromise();
+ }
+ requestFinished(_request) {
+ clearBusyState(this.element);
+ }
+ formSubmissionStarted({ formElement }) {
+ markAsBusy(formElement, this.findFrameElement(formElement));
+ }
+ formSubmissionSucceededWithResponse(formSubmission, response) {
+ const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);
+ frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);
+ frame.delegate.loadResponse(response);
+ if (!formSubmission.isSafe) {
+ session.clearCache();
+ }
+ }
+ formSubmissionFailedWithResponse(formSubmission, fetchResponse) {
+ this.element.delegate.loadResponse(fetchResponse);
+ session.clearCache();
+ }
+ formSubmissionErrored(formSubmission, error2) {
+ console.error(error2);
+ }
+ formSubmissionFinished({ formElement }) {
+ clearBusyState(formElement, this.findFrameElement(formElement));
+ }
+ allowsImmediateRender({ element: newFrame }, options) {
+ const event = dispatch("turbo:before-frame-render", {
+ target: this.element,
+ detail: Object.assign({ newFrame }, options),
+ cancelable: true
+ });
+ const { defaultPrevented, detail: { render } } = event;
+ if (this.view.renderer && render) {
+ this.view.renderer.renderElement = render;
+ }
+ return !defaultPrevented;
+ }
+ viewRenderedSnapshot(_snapshot, _isPreview) {
+ }
+ preloadOnLoadLinksForView(element) {
+ session.preloadOnLoadLinksForView(element);
+ }
+ viewInvalidated() {
+ }
+ willRenderFrame(currentElement, _newElement) {
+ this.previousFrameElement = currentElement.cloneNode(true);
+ }
+ async loadFrameResponse(fetchResponse, document2) {
+ const newFrameElement = await this.extractForeignFrameElement(document2.body);
+ if (newFrameElement) {
+ const snapshot = new Snapshot(newFrameElement);
+ const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ this.changeHistory();
+ await this.view.render(renderer);
+ this.complete = true;
+ session.frameRendered(fetchResponse, this.element);
+ session.frameLoaded(this.element);
+ this.fetchResponseLoaded(fetchResponse);
+ } else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {
+ this.handleFrameMissingFromResponse(fetchResponse);
+ }
+ }
+ async visit(url) {
+ var _a;
+ const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);
+ (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();
+ this.currentFetchRequest = request;
+ return new Promise((resolve) => {
+ this.resolveVisitPromise = () => {
+ this.resolveVisitPromise = () => {
+ };
+ this.currentFetchRequest = null;
+ resolve();
+ };
+ request.perform();
+ });
+ }
+ navigateFrame(element, url, submitter) {
+ const frame = this.findFrameElement(element, submitter);
+ frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);
+ this.withCurrentNavigationElement(element, () => {
+ frame.src = url;
+ });
+ }
+ proposeVisitIfNavigatedWithAction(frame, element, submitter) {
+ this.action = getVisitAction(submitter, element, frame);
+ if (this.action) {
+ const pageSnapshot = PageSnapshot.fromElement(frame).clone();
+ const { visitCachedSnapshot } = frame.delegate;
+ frame.delegate.fetchResponseLoaded = (fetchResponse) => {
+ if (frame.src) {
+ const { statusCode, redirected } = fetchResponse;
+ const responseHTML = frame.ownerDocument.documentElement.outerHTML;
+ const response = { statusCode, redirected, responseHTML };
+ const options = {
+ response,
+ visitCachedSnapshot,
+ willRender: false,
+ updateHistory: false,
+ restorationIdentifier: this.restorationIdentifier,
+ snapshot: pageSnapshot
+ };
+ if (this.action)
+ options.action = this.action;
+ session.visit(frame.src, options);
+ }
+ };
+ }
+ }
+ changeHistory() {
+ if (this.action) {
+ const method = getHistoryMethodForAction(this.action);
+ session.history.update(method, expandURL(this.element.src || ""), this.restorationIdentifier);
+ }
+ }
+ async handleUnvisitableFrameResponse(fetchResponse) {
+ console.warn(`The response (${fetchResponse.statusCode}) from is performing a full page visit due to turbo-visit-control.`);
+ await this.visitResponse(fetchResponse.response);
+ }
+ willHandleFrameMissingFromResponse(fetchResponse) {
+ this.element.setAttribute("complete", "");
+ const response = fetchResponse.response;
+ const visit2 = async (url, options = {}) => {
+ if (url instanceof Response) {
+ this.visitResponse(url);
+ } else {
+ session.visit(url, options);
+ }
+ };
+ const event = dispatch("turbo:frame-missing", {
+ target: this.element,
+ detail: { response, visit: visit2 },
+ cancelable: true
+ });
+ return !event.defaultPrevented;
+ }
+ handleFrameMissingFromResponse(fetchResponse) {
+ this.view.missing();
+ this.throwFrameMissingError(fetchResponse);
+ }
+ throwFrameMissingError(fetchResponse) {
+ const message = `The response (${fetchResponse.statusCode}) did not contain the expected and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;
+ throw new TurboFrameMissingError(message);
+ }
+ async visitResponse(response) {
+ const wrapped = new FetchResponse(response);
+ const responseHTML = await wrapped.responseHTML;
+ const { location: location2, redirected, statusCode } = wrapped;
+ return session.visit(location2, { response: { redirected, statusCode, responseHTML } });
+ }
+ findFrameElement(element, submitter) {
+ var _a;
+ const id2 = getAttribute("data-turbo-frame", submitter, element) || this.element.getAttribute("target");
+ return (_a = getFrameElementById(id2)) !== null && _a !== void 0 ? _a : this.element;
+ }
+ async extractForeignFrameElement(container) {
+ let element;
+ const id2 = CSS.escape(this.id);
+ try {
+ element = activateElement(container.querySelector(`turbo-frame#${id2}`), this.sourceURL);
+ if (element) {
+ return element;
+ }
+ element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id2}]`), this.sourceURL);
+ if (element) {
+ await element.loaded;
+ return await this.extractForeignFrameElement(element);
+ }
+ } catch (error2) {
+ console.error(error2);
+ return new FrameElement();
+ }
+ return null;
+ }
+ formActionIsVisitable(form, submitter) {
+ const action = getAction(form, submitter);
+ return locationIsVisitable(expandURL(action), this.rootLocation);
+ }
+ shouldInterceptNavigation(element, submitter) {
+ const id2 = getAttribute("data-turbo-frame", submitter, element) || this.element.getAttribute("target");
+ if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {
+ return false;
+ }
+ if (!this.enabled || id2 == "_top") {
+ return false;
+ }
+ if (id2) {
+ const frameElement = getFrameElementById(id2);
+ if (frameElement) {
+ return !frameElement.disabled;
+ }
+ }
+ if (!session.elementIsNavigatable(element)) {
+ return false;
+ }
+ if (submitter && !session.elementIsNavigatable(submitter)) {
+ return false;
+ }
+ return true;
+ }
+ get id() {
+ return this.element.id;
+ }
+ get enabled() {
+ return !this.element.disabled;
+ }
+ get sourceURL() {
+ if (this.element.src) {
+ return this.element.src;
+ }
+ }
+ set sourceURL(sourceURL) {
+ this.ignoringChangesToAttribute("src", () => {
+ this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;
+ });
+ }
+ get loadingStyle() {
+ return this.element.loading;
+ }
+ get isLoading() {
+ return this.formSubmission !== void 0 || this.resolveVisitPromise() !== void 0;
+ }
+ get complete() {
+ return this.element.hasAttribute("complete");
+ }
+ set complete(value) {
+ this.ignoringChangesToAttribute("complete", () => {
+ if (value) {
+ this.element.setAttribute("complete", "");
+ } else {
+ this.element.removeAttribute("complete");
+ }
+ });
+ }
+ get isActive() {
+ return this.element.isActive && this.connected;
+ }
+ get rootLocation() {
+ var _a;
+ const meta = this.element.ownerDocument.querySelector(`meta[name="turbo-root"]`);
+ const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : "/";
+ return expandURL(root);
+ }
+ isIgnoringChangesTo(attributeName) {
+ return this.ignoredAttributes.has(attributeName);
+ }
+ ignoringChangesToAttribute(attributeName, callback) {
+ this.ignoredAttributes.add(attributeName);
+ callback();
+ this.ignoredAttributes.delete(attributeName);
+ }
+ withCurrentNavigationElement(element, callback) {
+ this.currentNavigationElement = element;
+ callback();
+ delete this.currentNavigationElement;
+ }
+ };
+ function getFrameElementById(id2) {
+ if (id2 != null) {
+ const element = document.getElementById(id2);
+ if (element instanceof FrameElement) {
+ return element;
+ }
+ }
+ }
+ function activateElement(element, currentURL) {
+ if (element) {
+ const src = element.getAttribute("src");
+ if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {
+ throw new Error(`Matching element has a source URL which references itself`);
+ }
+ if (element.ownerDocument !== document) {
+ element = document.importNode(element, true);
+ }
+ if (element instanceof FrameElement) {
+ element.connectedCallback();
+ element.disconnectedCallback();
+ return element;
+ }
+ }
+ }
+ var StreamElement = class _StreamElement extends HTMLElement {
+ static async renderElement(newElement) {
+ await newElement.performAction();
+ }
+ async connectedCallback() {
+ try {
+ await this.render();
+ } catch (error2) {
+ console.error(error2);
+ } finally {
+ this.disconnect();
+ }
+ }
+ async render() {
+ var _a;
+ return (_a = this.renderPromise) !== null && _a !== void 0 ? _a : this.renderPromise = (async () => {
+ const event = this.beforeRenderEvent;
+ if (this.dispatchEvent(event)) {
+ await nextAnimationFrame();
+ await event.detail.render(this);
+ }
+ })();
+ }
+ disconnect() {
+ try {
+ this.remove();
+ } catch (_a) {
+ }
+ }
+ removeDuplicateTargetChildren() {
+ this.duplicateChildren.forEach((c) => c.remove());
+ }
+ get duplicateChildren() {
+ var _a;
+ const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);
+ const newChildrenIds = [...((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || []].filter((c) => !!c.id).map((c) => c.id);
+ return existingChildren.filter((c) => newChildrenIds.includes(c.id));
+ }
+ get performAction() {
+ if (this.action) {
+ const actionFunction = StreamActions[this.action];
+ if (actionFunction) {
+ return actionFunction;
+ }
+ this.raise("unknown action");
+ }
+ this.raise("action attribute is missing");
+ }
+ get targetElements() {
+ if (this.target) {
+ return this.targetElementsById;
+ } else if (this.targets) {
+ return this.targetElementsByQuery;
+ } else {
+ this.raise("target or targets attribute is missing");
+ }
+ }
+ get templateContent() {
+ return this.templateElement.content.cloneNode(true);
+ }
+ get templateElement() {
+ if (this.firstElementChild === null) {
+ const template = this.ownerDocument.createElement("template");
+ this.appendChild(template);
+ return template;
+ } else if (this.firstElementChild instanceof HTMLTemplateElement) {
+ return this.firstElementChild;
+ }
+ this.raise("first child element must be a element");
+ }
+ get action() {
+ return this.getAttribute("action");
+ }
+ get target() {
+ return this.getAttribute("target");
+ }
+ get targets() {
+ return this.getAttribute("targets");
+ }
+ raise(message) {
+ throw new Error(`${this.description}: ${message}`);
+ }
+ get description() {
+ var _a, _b;
+ return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : "";
+ }
+ get beforeRenderEvent() {
+ return new CustomEvent("turbo:before-stream-render", {
+ bubbles: true,
+ cancelable: true,
+ detail: { newStream: this, render: _StreamElement.renderElement }
+ });
+ }
+ get targetElementsById() {
+ var _a;
+ const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);
+ if (element !== null) {
+ return [element];
+ } else {
+ return [];
+ }
+ }
+ get targetElementsByQuery() {
+ var _a;
+ const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);
+ if (elements.length !== 0) {
+ return Array.prototype.slice.call(elements);
+ } else {
+ return [];
+ }
+ }
+ };
+ var StreamSourceElement = class extends HTMLElement {
+ constructor() {
+ super(...arguments);
+ this.streamSource = null;
+ }
+ connectedCallback() {
+ this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);
+ connectStreamSource(this.streamSource);
+ }
+ disconnectedCallback() {
+ if (this.streamSource) {
+ disconnectStreamSource(this.streamSource);
+ }
+ }
+ get src() {
+ return this.getAttribute("src") || "";
+ }
+ };
+ FrameElement.delegateConstructor = FrameController;
+ if (customElements.get("turbo-frame") === void 0) {
+ customElements.define("turbo-frame", FrameElement);
+ }
+ if (customElements.get("turbo-stream") === void 0) {
+ customElements.define("turbo-stream", StreamElement);
+ }
+ if (customElements.get("turbo-stream-source") === void 0) {
+ customElements.define("turbo-stream-source", StreamSourceElement);
+ }
+ (() => {
+ let element = document.currentScript;
+ if (!element)
+ return;
+ if (element.hasAttribute("data-turbo-suppress-warning"))
+ return;
+ element = element.parentElement;
+ while (element) {
+ if (element == document.body) {
+ return console.warn(unindent`
+ You are loading Turbo from a
+
diff --git a/app/views/layouts/dashboard/_header.html.erb b/app/views/layouts/dashboard/_header.html.erb
new file mode 100644
index 0000000..d23e73c
--- /dev/null
+++ b/app/views/layouts/dashboard/_header.html.erb
@@ -0,0 +1,42 @@
+
diff --git a/app/views/layouts/dashboard/application.html.erb b/app/views/layouts/dashboard/application.html.erb
index fd272f1..40fc4bf 100644
--- a/app/views/layouts/dashboard/application.html.erb
+++ b/app/views/layouts/dashboard/application.html.erb
@@ -1,11 +1,24 @@
- Dashboard
- <%= csrf_meta_tags %>
- <%= csp_meta_tag %>
+ Dashboard
+
+
+
- <%= stylesheet_link_tag "application", media: "all" %>
+
+
+
+
+
+
+
+
+ <%= stylesheet_link_tag 'dashboard/sqm', media: 'all', 'data-turbo-track': 'reload' %>
+ <%= stylesheet_link_tag 'dashboard/welcome', media: 'all', 'data-turbo-track': 'reload' %>
+
+ <%= javascript_include_tag 'application', 'data-turbo-track': 'reload' %>
+ <%= render partial: 'layouts/google_analytics', locals: { google_analytics_id: @google_analytics_id } %>
diff --git a/app/views/layouts/dashboard/home.html.erb b/app/views/layouts/dashboard/home.html.erb
new file mode 100644
index 0000000..5fb4d0d
--- /dev/null
+++ b/app/views/layouts/dashboard/home.html.erb
@@ -0,0 +1,42 @@
+
+
+
+ ECP
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= stylesheet_link_tag 'dashboard/sqm', media: 'all', 'data-turbo-track': 'reload' %>
+ <%= stylesheet_link_tag 'dashboard/welcome', media: 'all', 'data-turbo-track': 'reload' %>
+
+ <%= javascript_include_tag 'application', 'data-turbo-track': 'reload' %>
+ <%= render partial: 'layouts/dashboard/google_analytics', locals: { google_analytics_id: @google_analytics_id } %>
+
+
+
+
+
+
+
+ <%= link_to image_tag('dashboard/logo.svg', alt: 'School Quality Measures Dashboard', size: "100x100"), welcome_path, class: 'me-7' %>
+
+
+
+
+
+ <%= yield %>
+
+
+ <%= render partial: 'layouts/dashboard/footer' %>
+
+
+
+
diff --git a/app/views/layouts/dashboard/reports.html.erb b/app/views/layouts/dashboard/reports.html.erb
new file mode 100644
index 0000000..bde3a00
--- /dev/null
+++ b/app/views/layouts/dashboard/reports.html.erb
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ HALS
+ <%= csp_meta_tag %>
+ <%= stylesheet_link_tag '', media: 'all', 'data-turbo-track': 'reload' %>
+ <%= javascript_include_tag 'application', 'data-turbo-track': 'reload' %>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity
new file mode 100644
index 0000000..ae93109
--- /dev/null
+++ b/node_modules/.yarn-integrity
@@ -0,0 +1,10 @@
+{
+ "systemParams": "linux-x64-108",
+ "modulesFolders": [],
+ "flags": [],
+ "linkedModules": [],
+ "topLevelPatterns": [],
+ "lockfileEntries": {},
+ "files": [],
+ "artifacts": {}
+}
\ No newline at end of file
diff --git a/spec/dummy/app/assets/builds/application.css b/spec/dummy/app/assets/builds/application.css
deleted file mode 100644
index e03885b..0000000
--- a/spec/dummy/app/assets/builds/application.css
+++ /dev/null
@@ -1,20204 +0,0 @@
-@charset "UTF-8";
-/*!
- * Bootstrap v5.3.2 (https://getbootstrap.com/)
- * Copyright 2011-2023 The Bootstrap Authors
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */
-:root,
-[data-bs-theme=light] {
- --bs-blue: #0d6efd;
- --bs-indigo: #6610f2;
- --bs-purple: #6f42c1;
- --bs-pink: #d63384;
- --bs-red: #dc3545;
- --bs-orange: #fd7e14;
- --bs-yellow: #ffc107;
- --bs-green: #198754;
- --bs-teal: #20c997;
- --bs-cyan: #0dcaf0;
- --bs-black: #000;
- --bs-white: #fff;
- --bs-gray: #6c757d;
- --bs-gray-dark: #343a40;
- --bs-gray-100: #f8f9fa;
- --bs-gray-200: #e9ecef;
- --bs-gray-300: #dee2e6;
- --bs-gray-400: #ced4da;
- --bs-gray-500: #adb5bd;
- --bs-gray-600: #6c757d;
- --bs-gray-700: #495057;
- --bs-gray-800: #343a40;
- --bs-gray-900: #212529;
- --bs-primary: #0d6efd;
- --bs-secondary: #6c757d;
- --bs-success: #198754;
- --bs-info: #0dcaf0;
- --bs-warning: #ffc107;
- --bs-danger: #dc3545;
- --bs-light: #f8f9fa;
- --bs-dark: #212529;
- --bs-primary-rgb: 13, 110, 253;
- --bs-secondary-rgb: 108, 117, 125;
- --bs-success-rgb: 25, 135, 84;
- --bs-info-rgb: 13, 202, 240;
- --bs-warning-rgb: 255, 193, 7;
- --bs-danger-rgb: 220, 53, 69;
- --bs-light-rgb: 248, 249, 250;
- --bs-dark-rgb: 33, 37, 41;
- --bs-primary-text-emphasis: #052c65;
- --bs-secondary-text-emphasis: #2b2f32;
- --bs-success-text-emphasis: #0a3622;
- --bs-info-text-emphasis: #055160;
- --bs-warning-text-emphasis: #664d03;
- --bs-danger-text-emphasis: #58151c;
- --bs-light-text-emphasis: #495057;
- --bs-dark-text-emphasis: #495057;
- --bs-primary-bg-subtle: #cfe2ff;
- --bs-secondary-bg-subtle: #e2e3e5;
- --bs-success-bg-subtle: #d1e7dd;
- --bs-info-bg-subtle: #cff4fc;
- --bs-warning-bg-subtle: #fff3cd;
- --bs-danger-bg-subtle: #f8d7da;
- --bs-light-bg-subtle: #fcfcfd;
- --bs-dark-bg-subtle: #ced4da;
- --bs-primary-border-subtle: #9ec5fe;
- --bs-secondary-border-subtle: #c4c8cb;
- --bs-success-border-subtle: #a3cfbb;
- --bs-info-border-subtle: #9eeaf9;
- --bs-warning-border-subtle: #ffe69c;
- --bs-danger-border-subtle: #f1aeb5;
- --bs-light-border-subtle: #e9ecef;
- --bs-dark-border-subtle: #adb5bd;
- --bs-white-rgb: 255, 255, 255;
- --bs-black-rgb: 0, 0, 0;
- --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, 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));
- --bs-body-font-family: var(--bs-font-sans-serif);
- --bs-body-font-size: 1rem;
- --bs-body-font-weight: 400;
- --bs-body-line-height: 1.5;
- --bs-body-color: #212529;
- --bs-body-color-rgb: 33, 37, 41;
- --bs-body-bg: #fff;
- --bs-body-bg-rgb: 255, 255, 255;
- --bs-emphasis-color: #000;
- --bs-emphasis-color-rgb: 0, 0, 0;
- --bs-secondary-color: rgba(33, 37, 41, 0.75);
- --bs-secondary-color-rgb: 33, 37, 41;
- --bs-secondary-bg: #e9ecef;
- --bs-secondary-bg-rgb: 233, 236, 239;
- --bs-tertiary-color: rgba(33, 37, 41, 0.5);
- --bs-tertiary-color-rgb: 33, 37, 41;
- --bs-tertiary-bg: #f8f9fa;
- --bs-tertiary-bg-rgb: 248, 249, 250;
- --bs-heading-color: inherit;
- --bs-link-color: #0d6efd;
- --bs-link-color-rgb: 13, 110, 253;
- --bs-link-decoration: underline;
- --bs-link-hover-color: #0a58ca;
- --bs-link-hover-color-rgb: 10, 88, 202;
- --bs-code-color: #d63384;
- --bs-highlight-color: #212529;
- --bs-highlight-bg: #fff3cd;
- --bs-border-width: 1px;
- --bs-border-style: solid;
- --bs-border-color: #dee2e6;
- --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
- --bs-border-radius: 0.375rem;
- --bs-border-radius-sm: 0.25rem;
- --bs-border-radius-lg: 0.5rem;
- --bs-border-radius-xl: 1rem;
- --bs-border-radius-xxl: 2rem;
- --bs-border-radius-2xl: var(--bs-border-radius-xxl);
- --bs-border-radius-pill: 50rem;
- --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
- --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
- --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
- --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
- --bs-focus-ring-width: 0.25rem;
- --bs-focus-ring-opacity: 0.25;
- --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
- --bs-form-valid-color: #198754;
- --bs-form-valid-border-color: #198754;
- --bs-form-invalid-color: #dc3545;
- --bs-form-invalid-border-color: #dc3545;
-}
-
-[data-bs-theme=dark] {
- color-scheme: dark;
- --bs-body-color: #dee2e6;
- --bs-body-color-rgb: 222, 226, 230;
- --bs-body-bg: #212529;
- --bs-body-bg-rgb: 33, 37, 41;
- --bs-emphasis-color: #fff;
- --bs-emphasis-color-rgb: 255, 255, 255;
- --bs-secondary-color: rgba(222, 226, 230, 0.75);
- --bs-secondary-color-rgb: 222, 226, 230;
- --bs-secondary-bg: #343a40;
- --bs-secondary-bg-rgb: 52, 58, 64;
- --bs-tertiary-color: rgba(222, 226, 230, 0.5);
- --bs-tertiary-color-rgb: 222, 226, 230;
- --bs-tertiary-bg: #2b3035;
- --bs-tertiary-bg-rgb: 43, 48, 53;
- --bs-primary-text-emphasis: #6ea8fe;
- --bs-secondary-text-emphasis: #a7acb1;
- --bs-success-text-emphasis: #75b798;
- --bs-info-text-emphasis: #6edff6;
- --bs-warning-text-emphasis: #ffda6a;
- --bs-danger-text-emphasis: #ea868f;
- --bs-light-text-emphasis: #f8f9fa;
- --bs-dark-text-emphasis: #dee2e6;
- --bs-primary-bg-subtle: #031633;
- --bs-secondary-bg-subtle: #161719;
- --bs-success-bg-subtle: #051b11;
- --bs-info-bg-subtle: #032830;
- --bs-warning-bg-subtle: #332701;
- --bs-danger-bg-subtle: #2c0b0e;
- --bs-light-bg-subtle: #343a40;
- --bs-dark-bg-subtle: #1a1d20;
- --bs-primary-border-subtle: #084298;
- --bs-secondary-border-subtle: #41464b;
- --bs-success-border-subtle: #0f5132;
- --bs-info-border-subtle: #087990;
- --bs-warning-border-subtle: #997404;
- --bs-danger-border-subtle: #842029;
- --bs-light-border-subtle: #495057;
- --bs-dark-border-subtle: #343a40;
- --bs-heading-color: inherit;
- --bs-link-color: #6ea8fe;
- --bs-link-hover-color: #8bb9fe;
- --bs-link-color-rgb: 110, 168, 254;
- --bs-link-hover-color-rgb: 139, 185, 254;
- --bs-code-color: #e685b5;
- --bs-highlight-color: #dee2e6;
- --bs-highlight-bg: #664d03;
- --bs-border-color: #495057;
- --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
- --bs-form-valid-color: #75b798;
- --bs-form-valid-border-color: #75b798;
- --bs-form-invalid-color: #ea868f;
- --bs-form-invalid-border-color: #ea868f;
-}
-
-*,
-*::before,
-*::after {
- box-sizing: border-box;
-}
-
-@media (prefers-reduced-motion: no-preference) {
- :root {
- scroll-behavior: smooth;
- }
-}
-
-body {
- margin: 0;
- font-family: var(--bs-body-font-family);
- font-size: var(--bs-body-font-size);
- font-weight: var(--bs-body-font-weight);
- line-height: var(--bs-body-line-height);
- color: var(--bs-body-color);
- text-align: var(--bs-body-text-align);
- background-color: var(--bs-body-bg);
- -webkit-text-size-adjust: 100%;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-
-hr {
- margin: 1rem 0;
- color: inherit;
- border: 0;
- border-top: var(--bs-border-width) solid;
- opacity: 0.25;
-}
-
-h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
- margin-top: 0;
- margin-bottom: 0.5rem;
- font-weight: 500;
- line-height: 1.2;
- color: var(--bs-heading-color);
-}
-
-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] {
- -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: 0.5rem;
- margin-left: 0;
-}
-
-blockquote {
- margin: 0 0 1rem;
-}
-
-b,
-strong {
- font-weight: bolder;
-}
-
-small, .small {
- font-size: 0.875em;
-}
-
-mark, .mark {
- padding: 0.1875em;
- color: var(--bs-highlight-color);
- background-color: var(--bs-highlight-bg);
-}
-
-sub,
-sup {
- position: relative;
- font-size: 0.75em;
- line-height: 0;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-a {
- color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
- text-decoration: underline;
-}
-a:hover {
- --bs-link-color-rgb: var(--bs-link-hover-color-rgb);
-}
-
-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;
-}
-
-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: var(--bs-code-color);
- word-wrap: break-word;
-}
-a > code {
- color: inherit;
-}
-
-kbd {
- padding: 0.1875rem 0.375rem;
- font-size: 0.875em;
- color: var(--bs-body-bg);
- background-color: var(--bs-body-color);
- border-radius: 0.25rem;
-}
-kbd kbd {
- padding: 0;
- font-size: 1em;
-}
-
-figure {
- margin: 0 0 1rem;
-}
-
-img,
-svg {
- vertical-align: middle;
-}
-
-table {
- caption-side: bottom;
- border-collapse: collapse;
-}
-
-caption {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- color: var(--bs-secondary-color);
- 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;
-}
-select:disabled {
- opacity: 1;
-}
-
-[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
- display: none !important;
-}
-
-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] {
- -webkit-appearance: textfield;
- outline-offset: -2px;
-}
-
-/* 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-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: "— ";
-}
-
-.img-fluid {
- max-width: 100%;
- height: auto;
-}
-
-.img-thumbnail {
- padding: 0.25rem;
- background-color: var(--bs-body-bg);
- border: var(--bs-border-width) solid var(--bs-border-color);
- border-radius: var(--bs-border-radius);
- max-width: 100%;
- height: auto;
-}
-
-.figure {
- display: inline-block;
-}
-
-.figure-img {
- margin-bottom: 0.5rem;
- line-height: 1;
-}
-
-.figure-caption {
- font-size: 0.875em;
- color: var(--bs-secondary-color);
-}
-
-.container,
-.container-fluid,
-.container-xxl,
-.container-xl,
-.container-lg,
-.container-md,
-.container-sm {
- --bs-gutter-x: 1.5rem;
- --bs-gutter-y: 0;
- width: 100%;
- padding-right: calc(var(--bs-gutter-x) * 0.5);
- padding-left: calc(var(--bs-gutter-x) * 0.5);
- margin-right: auto;
- margin-left: auto;
-}
-
-@media (min-width: 576px) {
- .container-sm, .container {
- max-width: 540px;
- }
-}
-@media (min-width: 768px) {
- .container-md, .container-sm, .container {
- max-width: 720px;
- }
-}
-@media (min-width: 992px) {
- .container-lg, .container-md, .container-sm, .container {
- max-width: 960px;
- }
-}
-@media (min-width: 1200px) {
- .container-xl, .container-lg, .container-md, .container-sm, .container {
- max-width: 1140px;
- }
-}
-@media (min-width: 1400px) {
- .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {
- max-width: 1320px;
- }
-}
-:root {
- --bs-breakpoint-xs: 0;
- --bs-breakpoint-sm: 576px;
- --bs-breakpoint-md: 768px;
- --bs-breakpoint-lg: 992px;
- --bs-breakpoint-xl: 1200px;
- --bs-breakpoint-xxl: 1400px;
-}
-
-.row {
- --bs-gutter-x: 1.5rem;
- --bs-gutter-y: 0;
- display: flex;
- flex-wrap: wrap;
- margin-top: calc(-1 * var(--bs-gutter-y));
- margin-right: calc(-0.5 * var(--bs-gutter-x));
- margin-left: calc(-0.5 * var(--bs-gutter-x));
-}
-.row > * {
- flex-shrink: 0;
- width: 100%;
- max-width: 100%;
- padding-right: calc(var(--bs-gutter-x) * 0.5);
- padding-left: calc(var(--bs-gutter-x) * 0.5);
- margin-top: var(--bs-gutter-y);
-}
-
-.col {
- flex: 1 0 0%;
-}
-
-.row-cols-auto > * {
- flex: 0 0 auto;
- width: auto;
-}
-
-.row-cols-1 > * {
- flex: 0 0 auto;
- width: 100%;
-}
-
-.row-cols-2 > * {
- flex: 0 0 auto;
- width: 50%;
-}
-
-.row-cols-3 > * {
- flex: 0 0 auto;
- width: 33.33333333%;
-}
-
-.row-cols-4 > * {
- flex: 0 0 auto;
- width: 25%;
-}
-
-.row-cols-5 > * {
- flex: 0 0 auto;
- width: 20%;
-}
-
-.row-cols-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
-}
-
-.col-auto {
- flex: 0 0 auto;
- width: auto;
-}
-
-.col-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
-}
-
-.col-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
-}
-
-.col-3 {
- flex: 0 0 auto;
- width: 25%;
-}
-
-.col-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
-}
-
-.col-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
-}
-
-.col-6 {
- flex: 0 0 auto;
- width: 50%;
-}
-
-.col-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
-}
-
-.col-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
-}
-
-.col-9 {
- flex: 0 0 auto;
- width: 75%;
-}
-
-.col-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
-}
-
-.col-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
-}
-
-.col-12 {
- flex: 0 0 auto;
- width: 100%;
-}
-
-.offset-1 {
- margin-left: 8.33333333%;
-}
-
-.offset-2 {
- margin-left: 16.66666667%;
-}
-
-.offset-3 {
- margin-left: 25%;
-}
-
-.offset-4 {
- margin-left: 33.33333333%;
-}
-
-.offset-5 {
- margin-left: 41.66666667%;
-}
-
-.offset-6 {
- margin-left: 50%;
-}
-
-.offset-7 {
- margin-left: 58.33333333%;
-}
-
-.offset-8 {
- margin-left: 66.66666667%;
-}
-
-.offset-9 {
- margin-left: 75%;
-}
-
-.offset-10 {
- margin-left: 83.33333333%;
-}
-
-.offset-11 {
- margin-left: 91.66666667%;
-}
-
-.g-0,
-.gx-0 {
- --bs-gutter-x: 0;
-}
-
-.g-0,
-.gy-0 {
- --bs-gutter-y: 0;
-}
-
-.g-1,
-.gx-1 {
- --bs-gutter-x: 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.33333333%;
- }
- .row-cols-sm-4 > * {
- flex: 0 0 auto;
- width: 25%;
- }
- .row-cols-sm-5 > * {
- flex: 0 0 auto;
- width: 20%;
- }
- .row-cols-sm-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-sm-auto {
- flex: 0 0 auto;
- width: auto;
- }
- .col-sm-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
- }
- .col-sm-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-sm-3 {
- flex: 0 0 auto;
- width: 25%;
- }
- .col-sm-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
- }
- .col-sm-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
- }
- .col-sm-6 {
- flex: 0 0 auto;
- width: 50%;
- }
- .col-sm-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
- }
- .col-sm-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
- }
- .col-sm-9 {
- flex: 0 0 auto;
- width: 75%;
- }
- .col-sm-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
- }
- .col-sm-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
- }
- .col-sm-12 {
- flex: 0 0 auto;
- width: 100%;
- }
- .offset-sm-0 {
- margin-left: 0;
- }
- .offset-sm-1 {
- margin-left: 8.33333333%;
- }
- .offset-sm-2 {
- margin-left: 16.66666667%;
- }
- .offset-sm-3 {
- margin-left: 25%;
- }
- .offset-sm-4 {
- margin-left: 33.33333333%;
- }
- .offset-sm-5 {
- margin-left: 41.66666667%;
- }
- .offset-sm-6 {
- margin-left: 50%;
- }
- .offset-sm-7 {
- margin-left: 58.33333333%;
- }
- .offset-sm-8 {
- margin-left: 66.66666667%;
- }
- .offset-sm-9 {
- margin-left: 75%;
- }
- .offset-sm-10 {
- margin-left: 83.33333333%;
- }
- .offset-sm-11 {
- margin-left: 91.66666667%;
- }
- .g-sm-0,
- .gx-sm-0 {
- --bs-gutter-x: 0;
- }
- .g-sm-0,
- .gy-sm-0 {
- --bs-gutter-y: 0;
- }
- .g-sm-1,
- .gx-sm-1 {
- --bs-gutter-x: 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.33333333%;
- }
- .row-cols-md-4 > * {
- flex: 0 0 auto;
- width: 25%;
- }
- .row-cols-md-5 > * {
- flex: 0 0 auto;
- width: 20%;
- }
- .row-cols-md-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-md-auto {
- flex: 0 0 auto;
- width: auto;
- }
- .col-md-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
- }
- .col-md-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-md-3 {
- flex: 0 0 auto;
- width: 25%;
- }
- .col-md-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
- }
- .col-md-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
- }
- .col-md-6 {
- flex: 0 0 auto;
- width: 50%;
- }
- .col-md-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
- }
- .col-md-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
- }
- .col-md-9 {
- flex: 0 0 auto;
- width: 75%;
- }
- .col-md-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
- }
- .col-md-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
- }
- .col-md-12 {
- flex: 0 0 auto;
- width: 100%;
- }
- .offset-md-0 {
- margin-left: 0;
- }
- .offset-md-1 {
- margin-left: 8.33333333%;
- }
- .offset-md-2 {
- margin-left: 16.66666667%;
- }
- .offset-md-3 {
- margin-left: 25%;
- }
- .offset-md-4 {
- margin-left: 33.33333333%;
- }
- .offset-md-5 {
- margin-left: 41.66666667%;
- }
- .offset-md-6 {
- margin-left: 50%;
- }
- .offset-md-7 {
- margin-left: 58.33333333%;
- }
- .offset-md-8 {
- margin-left: 66.66666667%;
- }
- .offset-md-9 {
- margin-left: 75%;
- }
- .offset-md-10 {
- margin-left: 83.33333333%;
- }
- .offset-md-11 {
- margin-left: 91.66666667%;
- }
- .g-md-0,
- .gx-md-0 {
- --bs-gutter-x: 0;
- }
- .g-md-0,
- .gy-md-0 {
- --bs-gutter-y: 0;
- }
- .g-md-1,
- .gx-md-1 {
- --bs-gutter-x: 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.33333333%;
- }
- .row-cols-lg-4 > * {
- flex: 0 0 auto;
- width: 25%;
- }
- .row-cols-lg-5 > * {
- flex: 0 0 auto;
- width: 20%;
- }
- .row-cols-lg-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-lg-auto {
- flex: 0 0 auto;
- width: auto;
- }
- .col-lg-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
- }
- .col-lg-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-lg-3 {
- flex: 0 0 auto;
- width: 25%;
- }
- .col-lg-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
- }
- .col-lg-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
- }
- .col-lg-6 {
- flex: 0 0 auto;
- width: 50%;
- }
- .col-lg-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
- }
- .col-lg-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
- }
- .col-lg-9 {
- flex: 0 0 auto;
- width: 75%;
- }
- .col-lg-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
- }
- .col-lg-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
- }
- .col-lg-12 {
- flex: 0 0 auto;
- width: 100%;
- }
- .offset-lg-0 {
- margin-left: 0;
- }
- .offset-lg-1 {
- margin-left: 8.33333333%;
- }
- .offset-lg-2 {
- margin-left: 16.66666667%;
- }
- .offset-lg-3 {
- margin-left: 25%;
- }
- .offset-lg-4 {
- margin-left: 33.33333333%;
- }
- .offset-lg-5 {
- margin-left: 41.66666667%;
- }
- .offset-lg-6 {
- margin-left: 50%;
- }
- .offset-lg-7 {
- margin-left: 58.33333333%;
- }
- .offset-lg-8 {
- margin-left: 66.66666667%;
- }
- .offset-lg-9 {
- margin-left: 75%;
- }
- .offset-lg-10 {
- margin-left: 83.33333333%;
- }
- .offset-lg-11 {
- margin-left: 91.66666667%;
- }
- .g-lg-0,
- .gx-lg-0 {
- --bs-gutter-x: 0;
- }
- .g-lg-0,
- .gy-lg-0 {
- --bs-gutter-y: 0;
- }
- .g-lg-1,
- .gx-lg-1 {
- --bs-gutter-x: 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.33333333%;
- }
- .row-cols-xl-4 > * {
- flex: 0 0 auto;
- width: 25%;
- }
- .row-cols-xl-5 > * {
- flex: 0 0 auto;
- width: 20%;
- }
- .row-cols-xl-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-xl-auto {
- flex: 0 0 auto;
- width: auto;
- }
- .col-xl-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
- }
- .col-xl-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-xl-3 {
- flex: 0 0 auto;
- width: 25%;
- }
- .col-xl-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
- }
- .col-xl-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
- }
- .col-xl-6 {
- flex: 0 0 auto;
- width: 50%;
- }
- .col-xl-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
- }
- .col-xl-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
- }
- .col-xl-9 {
- flex: 0 0 auto;
- width: 75%;
- }
- .col-xl-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
- }
- .col-xl-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
- }
- .col-xl-12 {
- flex: 0 0 auto;
- width: 100%;
- }
- .offset-xl-0 {
- margin-left: 0;
- }
- .offset-xl-1 {
- margin-left: 8.33333333%;
- }
- .offset-xl-2 {
- margin-left: 16.66666667%;
- }
- .offset-xl-3 {
- margin-left: 25%;
- }
- .offset-xl-4 {
- margin-left: 33.33333333%;
- }
- .offset-xl-5 {
- margin-left: 41.66666667%;
- }
- .offset-xl-6 {
- margin-left: 50%;
- }
- .offset-xl-7 {
- margin-left: 58.33333333%;
- }
- .offset-xl-8 {
- margin-left: 66.66666667%;
- }
- .offset-xl-9 {
- margin-left: 75%;
- }
- .offset-xl-10 {
- margin-left: 83.33333333%;
- }
- .offset-xl-11 {
- margin-left: 91.66666667%;
- }
- .g-xl-0,
- .gx-xl-0 {
- --bs-gutter-x: 0;
- }
- .g-xl-0,
- .gy-xl-0 {
- --bs-gutter-y: 0;
- }
- .g-xl-1,
- .gx-xl-1 {
- --bs-gutter-x: 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.33333333%;
- }
- .row-cols-xxl-4 > * {
- flex: 0 0 auto;
- width: 25%;
- }
- .row-cols-xxl-5 > * {
- flex: 0 0 auto;
- width: 20%;
- }
- .row-cols-xxl-6 > * {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-xxl-auto {
- flex: 0 0 auto;
- width: auto;
- }
- .col-xxl-1 {
- flex: 0 0 auto;
- width: 8.33333333%;
- }
- .col-xxl-2 {
- flex: 0 0 auto;
- width: 16.66666667%;
- }
- .col-xxl-3 {
- flex: 0 0 auto;
- width: 25%;
- }
- .col-xxl-4 {
- flex: 0 0 auto;
- width: 33.33333333%;
- }
- .col-xxl-5 {
- flex: 0 0 auto;
- width: 41.66666667%;
- }
- .col-xxl-6 {
- flex: 0 0 auto;
- width: 50%;
- }
- .col-xxl-7 {
- flex: 0 0 auto;
- width: 58.33333333%;
- }
- .col-xxl-8 {
- flex: 0 0 auto;
- width: 66.66666667%;
- }
- .col-xxl-9 {
- flex: 0 0 auto;
- width: 75%;
- }
- .col-xxl-10 {
- flex: 0 0 auto;
- width: 83.33333333%;
- }
- .col-xxl-11 {
- flex: 0 0 auto;
- width: 91.66666667%;
- }
- .col-xxl-12 {
- flex: 0 0 auto;
- width: 100%;
- }
- .offset-xxl-0 {
- margin-left: 0;
- }
- .offset-xxl-1 {
- margin-left: 8.33333333%;
- }
- .offset-xxl-2 {
- margin-left: 16.66666667%;
- }
- .offset-xxl-3 {
- margin-left: 25%;
- }
- .offset-xxl-4 {
- margin-left: 33.33333333%;
- }
- .offset-xxl-5 {
- margin-left: 41.66666667%;
- }
- .offset-xxl-6 {
- margin-left: 50%;
- }
- .offset-xxl-7 {
- margin-left: 58.33333333%;
- }
- .offset-xxl-8 {
- margin-left: 66.66666667%;
- }
- .offset-xxl-9 {
- margin-left: 75%;
- }
- .offset-xxl-10 {
- margin-left: 83.33333333%;
- }
- .offset-xxl-11 {
- margin-left: 91.66666667%;
- }
- .g-xxl-0,
- .gx-xxl-0 {
- --bs-gutter-x: 0;
- }
- .g-xxl-0,
- .gy-xxl-0 {
- --bs-gutter-y: 0;
- }
- .g-xxl-1,
- .gx-xxl-1 {
- --bs-gutter-x: 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-color-type: initial;
- --bs-table-bg-type: initial;
- --bs-table-color-state: initial;
- --bs-table-bg-state: initial;
- --bs-table-color: var(--bs-emphasis-color);
- --bs-table-bg: var(--bs-body-bg);
- --bs-table-border-color: var(--bs-border-color);
- --bs-table-accent-bg: transparent;
- --bs-table-striped-color: var(--bs-emphasis-color);
- --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);
- --bs-table-active-color: var(--bs-emphasis-color);
- --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);
- --bs-table-hover-color: var(--bs-emphasis-color);
- --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);
- width: 100%;
- margin-bottom: 1rem;
- vertical-align: top;
- border-color: var(--bs-table-border-color);
-}
-.table > :not(caption) > * > * {
- padding: 0.5rem 0.5rem;
- color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
- background-color: var(--bs-table-bg);
- border-bottom-width: var(--bs-border-width);
- box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
-}
-.table > tbody {
- vertical-align: inherit;
-}
-.table > thead {
- vertical-align: bottom;
-}
-
-.table-group-divider {
- border-top: calc(var(--bs-border-width) * 2) solid currentcolor;
-}
-
-.caption-top {
- caption-side: top;
-}
-
-.table-sm > :not(caption) > * > * {
- padding: 0.25rem 0.25rem;
-}
-
-.table-bordered > :not(caption) > * {
- border-width: var(--bs-border-width) 0;
-}
-.table-bordered > :not(caption) > * > * {
- border-width: 0 var(--bs-border-width);
-}
-
-.table-borderless > :not(caption) > * > * {
- border-bottom-width: 0;
-}
-.table-borderless > :not(:first-child) {
- border-top-width: 0;
-}
-
-.table-striped > tbody > tr:nth-of-type(odd) > * {
- --bs-table-color-type: var(--bs-table-striped-color);
- --bs-table-bg-type: var(--bs-table-striped-bg);
-}
-
-.table-striped-columns > :not(caption) > tr > :nth-child(even) {
- --bs-table-color-type: var(--bs-table-striped-color);
- --bs-table-bg-type: var(--bs-table-striped-bg);
-}
-
-.table-active {
- --bs-table-color-state: var(--bs-table-active-color);
- --bs-table-bg-state: var(--bs-table-active-bg);
-}
-
-.table-hover > tbody > tr:hover > * {
- --bs-table-color-state: var(--bs-table-hover-color);
- --bs-table-bg-state: var(--bs-table-hover-bg);
-}
-
-.table-primary {
- --bs-table-color: #000;
- --bs-table-bg: #cfe2ff;
- --bs-table-border-color: #a6b5cc;
- --bs-table-striped-bg: #c5d7f2;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #bacbe6;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #bfd1ec;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-secondary {
- --bs-table-color: #000;
- --bs-table-bg: #e2e3e5;
- --bs-table-border-color: #b5b6b7;
- --bs-table-striped-bg: #d7d8da;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #cbccce;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #d1d2d4;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-success {
- --bs-table-color: #000;
- --bs-table-bg: #d1e7dd;
- --bs-table-border-color: #a7b9b1;
- --bs-table-striped-bg: #c7dbd2;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #bcd0c7;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #c1d6cc;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-info {
- --bs-table-color: #000;
- --bs-table-bg: #cff4fc;
- --bs-table-border-color: #a6c3ca;
- --bs-table-striped-bg: #c5e8ef;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #badce3;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #bfe2e9;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-warning {
- --bs-table-color: #000;
- --bs-table-bg: #fff3cd;
- --bs-table-border-color: #ccc2a4;
- --bs-table-striped-bg: #f2e7c3;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #e6dbb9;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #ece1be;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-danger {
- --bs-table-color: #000;
- --bs-table-bg: #f8d7da;
- --bs-table-border-color: #c6acae;
- --bs-table-striped-bg: #eccccf;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #dfc2c4;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #e5c7ca;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-light {
- --bs-table-color: #000;
- --bs-table-bg: #f8f9fa;
- --bs-table-border-color: #c6c7c8;
- --bs-table-striped-bg: #ecedee;
- --bs-table-striped-color: #000;
- --bs-table-active-bg: #dfe0e1;
- --bs-table-active-color: #000;
- --bs-table-hover-bg: #e5e6e7;
- --bs-table-hover-color: #000;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-dark {
- --bs-table-color: #fff;
- --bs-table-bg: #212529;
- --bs-table-border-color: #4d5154;
- --bs-table-striped-bg: #2c3034;
- --bs-table-striped-color: #fff;
- --bs-table-active-bg: #373b3e;
- --bs-table-active-color: #fff;
- --bs-table-hover-bg: #323539;
- --bs-table-hover-color: #fff;
- color: var(--bs-table-color);
- border-color: var(--bs-table-border-color);
-}
-
-.table-responsive {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-@media (max-width: 575.98px) {
- .table-responsive-sm {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-}
-@media (max-width: 767.98px) {
- .table-responsive-md {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-}
-@media (max-width: 991.98px) {
- .table-responsive-lg {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-}
-@media (max-width: 1199.98px) {
- .table-responsive-xl {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-}
-@media (max-width: 1399.98px) {
- .table-responsive-xxl {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
-}
-.form-label {
- margin-bottom: 0.5rem;
-}
-
-.col-form-label {
- padding-top: calc(0.375rem + var(--bs-border-width));
- padding-bottom: calc(0.375rem + var(--bs-border-width));
- margin-bottom: 0;
- font-size: inherit;
- line-height: 1.5;
-}
-
-.col-form-label-lg {
- padding-top: calc(0.5rem + var(--bs-border-width));
- padding-bottom: calc(0.5rem + var(--bs-border-width));
- font-size: 1.25rem;
-}
-
-.col-form-label-sm {
- padding-top: calc(0.25rem + var(--bs-border-width));
- padding-bottom: calc(0.25rem + var(--bs-border-width));
- font-size: 0.875rem;
-}
-
-.form-text {
- margin-top: 0.25rem;
- font-size: 0.875em;
- color: var(--bs-secondary-color);
-}
-
-.form-control {
- display: block;
- width: 100%;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: var(--bs-body-color);
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: var(--bs-body-bg);
- background-clip: padding-box;
- border: var(--bs-border-width) solid var(--bs-border-color);
- border-radius: var(--bs-border-radius);
- transition: border-color 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: var(--bs-body-color);
- background-color: var(--bs-body-bg);
- 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 {
- min-width: 85px;
- height: 1.5em;
- margin: 0;
-}
-.form-control::-webkit-datetime-edit {
- display: block;
- padding: 0;
-}
-.form-control::-moz-placeholder {
- color: var(--bs-secondary-color);
- opacity: 1;
-}
-.form-control::placeholder {
- color: var(--bs-secondary-color);
- opacity: 1;
-}
-.form-control:disabled {
- background-color: var(--bs-secondary-bg);
- opacity: 1;
-}
-.form-control::file-selector-button {
- padding: 0.375rem 0.75rem;
- margin: -0.375rem -0.75rem;
- margin-inline-end: 0.75rem;
- color: var(--bs-body-color);
- background-color: var(--bs-tertiary-bg);
- pointer-events: none;
- border-color: inherit;
- border-style: solid;
- border-width: 0;
- border-inline-end-width: var(--bs-border-width);
- border-radius: 0;
- transition: color 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: var(--bs-secondary-bg);
-}
-
-.form-control-plaintext {
- display: block;
- width: 100%;
- padding: 0.375rem 0;
- margin-bottom: 0;
- line-height: 1.5;
- color: var(--bs-body-color);
- background-color: transparent;
- border: solid transparent;
- border-width: var(--bs-border-width) 0;
-}
-.form-control-plaintext:focus {
- outline: 0;
-}
-.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
- padding-right: 0;
- padding-left: 0;
-}
-
-.form-control-sm {
- min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- border-radius: var(--bs-border-radius-sm);
-}
-.form-control-sm::file-selector-button {
- padding: 0.25rem 0.5rem;
- margin: -0.25rem -0.5rem;
- margin-inline-end: 0.5rem;
-}
-
-.form-control-lg {
- min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- border-radius: var(--bs-border-radius-lg);
-}
-.form-control-lg::file-selector-button {
- padding: 0.5rem 1rem;
- margin: -0.5rem -1rem;
- margin-inline-end: 1rem;
-}
-
-textarea.form-control {
- min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
-}
-textarea.form-control-sm {
- min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
-}
-textarea.form-control-lg {
- min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
-}
-
-.form-control-color {
- width: 3rem;
- height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
- padding: 0.375rem;
-}
-.form-control-color:not(:disabled):not([readonly]) {
- cursor: pointer;
-}
-.form-control-color::-moz-color-swatch {
- border: 0 !important;
- border-radius: var(--bs-border-radius);
-}
-.form-control-color::-webkit-color-swatch {
- border: 0 !important;
- border-radius: var(--bs-border-radius);
-}
-.form-control-color.form-control-sm {
- height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
-}
-.form-control-color.form-control-lg {
- height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
-}
-
-.form-select {
- --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
- display: block;
- width: 100%;
- padding: 0.375rem 2.25rem 0.375rem 0.75rem;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: var(--bs-body-color);
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: var(--bs-body-bg);
- background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
- background-repeat: no-repeat;
- background-position: right 0.75rem center;
- background-size: 16px 12px;
- border: var(--bs-border-width) solid var(--bs-border-color);
- border-radius: var(--bs-border-radius);
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-}
-@media (prefers-reduced-motion: reduce) {
- .form-select {
- transition: none;
- }
-}
-.form-select:focus {
- border-color: #86b7fe;
- outline: 0;
- box-shadow: 0 0 0 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 {
- background-color: var(--bs-secondary-bg);
-}
-.form-select:-moz-focusring {
- color: transparent;
- text-shadow: 0 0 0 var(--bs-body-color);
-}
-
-.form-select-sm {
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
- padding-left: 0.5rem;
- font-size: 0.875rem;
- border-radius: var(--bs-border-radius-sm);
-}
-
-.form-select-lg {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- padding-left: 1rem;
- font-size: 1.25rem;
- border-radius: var(--bs-border-radius-lg);
-}
-
-[data-bs-theme=dark] .form-select {
- --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
-}
-
-.form-check {
- display: block;
- min-height: 1.5rem;
- padding-left: 1.5em;
- margin-bottom: 0.125rem;
-}
-.form-check .form-check-input {
- float: left;
- margin-left: -1.5em;
-}
-
-.form-check-reverse {
- padding-right: 1.5em;
- padding-left: 0;
- text-align: right;
-}
-.form-check-reverse .form-check-input {
- float: right;
- margin-right: -1.5em;
- margin-left: 0;
-}
-
-.form-check-input {
- --bs-form-check-bg: var(--bs-body-bg);
- flex-shrink: 0;
- width: 1em;
- height: 1em;
- margin-top: 0.25em;
- vertical-align: top;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: var(--bs-form-check-bg);
- background-image: var(--bs-form-check-bg-image);
- background-repeat: no-repeat;
- background-position: center;
- background-size: contain;
- border: var(--bs-border-width) solid var(--bs-border-color);
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
-}
-.form-check-input[type=checkbox] {
- border-radius: 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] {
- --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
-}
-.form-check-input:checked[type=radio] {
- --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
-}
-.form-check-input[type=checkbox]:indeterminate {
- background-color: #0d6efd;
- border-color: #0d6efd;
- --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
-}
-.form-check-input:disabled {
- pointer-events: none;
- filter: none;
- opacity: 0.5;
-}
-.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
- cursor: default;
- opacity: 0.5;
-}
-
-.form-switch {
- padding-left: 2.5em;
-}
-.form-switch .form-check-input {
- --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
- width: 2em;
- margin-left: -2.5em;
- background-image: var(--bs-form-switch-bg);
- background-position: left center;
- border-radius: 2em;
- transition: background-position 0.15s ease-in-out;
-}
-@media (prefers-reduced-motion: reduce) {
- .form-switch .form-check-input {
- transition: none;
- }
-}
-.form-switch .form-check-input:focus {
- --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e");
-}
-.form-switch .form-check-input:checked {
- background-position: right center;
- --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
-}
-.form-switch.form-check-reverse {
- padding-right: 2.5em;
- padding-left: 0;
-}
-.form-switch.form-check-reverse .form-check-input {
- margin-right: -2.5em;
- margin-left: 0;
-}
-
-.form-check-inline {
- display: inline-block;
- margin-right: 1rem;
-}
-
-.btn-check {
- position: absolute;
- clip: rect(0, 0, 0, 0);
- pointer-events: none;
-}
-.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
- pointer-events: none;
- filter: none;
- opacity: 0.65;
-}
-
-[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {
- --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
-}
-
-.form-range {
- width: 100%;
- height: 1.5rem;
- padding: 0;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: transparent;
-}
-.form-range:focus {
- outline: 0;
-}
-.form-range:focus::-webkit-slider-thumb {
- box-shadow: 0 0 0 1px #fff, 0 0 0 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;
- -webkit-appearance: none;
- appearance: none;
- 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;
-}
-@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: var(--bs-secondary-bg);
- border-color: transparent;
- border-radius: 1rem;
-}
-.form-range::-moz-range-thumb {
- width: 1rem;
- height: 1rem;
- -moz-appearance: none;
- appearance: none;
- 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;
-}
-@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: var(--bs-secondary-bg);
- border-color: transparent;
- border-radius: 1rem;
-}
-.form-range:disabled {
- pointer-events: none;
-}
-.form-range:disabled::-webkit-slider-thumb {
- background-color: var(--bs-secondary-color);
-}
-.form-range:disabled::-moz-range-thumb {
- background-color: var(--bs-secondary-color);
-}
-
-.form-floating {
- position: relative;
-}
-.form-floating > .form-control,
-.form-floating > .form-control-plaintext,
-.form-floating > .form-select {
- height: calc(3.5rem + calc(var(--bs-border-width) * 2));
- min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
- line-height: 1.25;
-}
-.form-floating > label {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 2;
- height: 100%;
- padding: 1rem 0.75rem;
- overflow: hidden;
- text-align: start;
- text-overflow: ellipsis;
- white-space: nowrap;
- pointer-events: none;
- border: var(--bs-border-width) solid transparent;
- transform-origin: 0 0;
- transition: opacity 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,
-.form-floating > .form-control-plaintext {
- padding: 1rem 0.75rem;
-}
-.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder {
- color: transparent;
-}
-.form-floating > .form-control::placeholder,
-.form-floating > .form-control-plaintext::placeholder {
- color: transparent;
-}
-.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) {
- padding-top: 1.625rem;
- padding-bottom: 0.625rem;
-}
-.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
-.form-floating > .form-control-plaintext:focus,
-.form-floating > .form-control-plaintext:not(:placeholder-shown) {
- padding-top: 1.625rem;
- padding-bottom: 0.625rem;
-}
-.form-floating > .form-control:-webkit-autofill,
-.form-floating > .form-control-plaintext:-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 {
- color: rgba(var(--bs-body-color-rgb), 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-control-plaintext ~ label,
-.form-floating > .form-select ~ label {
- color: rgba(var(--bs-body-color-rgb), 0.65);
- transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
-}
-.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after {
- position: absolute;
- inset: 1rem 0.375rem;
- z-index: -1;
- height: 1.5em;
- content: "";
- background-color: var(--bs-body-bg);
- border-radius: var(--bs-border-radius);
-}
-.form-floating > .form-control:focus ~ label::after,
-.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
-.form-floating > .form-control-plaintext ~ label::after,
-.form-floating > .form-select ~ label::after {
- position: absolute;
- inset: 1rem 0.375rem;
- z-index: -1;
- height: 1.5em;
- content: "";
- background-color: var(--bs-body-bg);
- border-radius: var(--bs-border-radius);
-}
-.form-floating > .form-control:-webkit-autofill ~ label {
- color: rgba(var(--bs-body-color-rgb), 0.65);
- transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
-}
-.form-floating > .form-control-plaintext ~ label {
- border-width: var(--bs-border-width) 0;
-}
-.form-floating > :disabled ~ label,
-.form-floating > .form-control:disabled ~ label {
- color: #6c757d;
-}
-.form-floating > :disabled ~ label::after,
-.form-floating > .form-control:disabled ~ label::after {
- background-color: var(--bs-secondary-bg);
-}
-
-.input-group {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- align-items: stretch;
- width: 100%;
-}
-.input-group > .form-control,
-.input-group > .form-select,
-.input-group > .form-floating {
- position: relative;
- flex: 1 1 auto;
- width: 1%;
- min-width: 0;
-}
-.input-group > .form-control:focus,
-.input-group > .form-select:focus,
-.input-group > .form-floating:focus-within {
- z-index: 5;
-}
-.input-group .btn {
- position: relative;
- z-index: 2;
-}
-.input-group .btn:focus {
- z-index: 5;
-}
-
-.input-group-text {
- display: flex;
- align-items: center;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: var(--bs-body-color);
- text-align: center;
- white-space: nowrap;
- background-color: var(--bs-tertiary-bg);
- border: var(--bs-border-width) solid var(--bs-border-color);
- border-radius: var(--bs-border-radius);
-}
-
-.input-group-lg > .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: var(--bs-border-radius-lg);
-}
-
-.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: var(--bs-border-radius-sm);
-}
-
-.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):not(.form-floating),
-.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),
-.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
-.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
- 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):not(.form-floating),
-.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),
-.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,
-.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
- margin-left: calc(var(--bs-border-width) * -1);
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.input-group > .form-floating:not(:first-child) > .form-control,
-.input-group > .form-floating:not(:first-child) > .form-select {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.valid-feedback {
- display: none;
- width: 100%;
- margin-top: 0.25rem;
- font-size: 0.875em;
- color: var(--bs-form-valid-color);
-}
-
-.valid-tooltip {
- position: absolute;
- top: 100%;
- z-index: 5;
- display: none;
- max-width: 100%;
- padding: 0.25rem 0.5rem;
- margin-top: 0.1rem;
- font-size: 0.875rem;
- color: #fff;
- background-color: var(--bs-success);
- border-radius: var(--bs-border-radius);
-}
-
-.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: var(--bs-form-valid-border-color);
- 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='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
- background-repeat: no-repeat;
- background-position: right calc(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: var(--bs-form-valid-border-color);
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 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: var(--bs-form-valid-border-color);
-}
-.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
- --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
- padding-right: 4.125rem;
- background-position: right 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: var(--bs-form-valid-border-color);
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
-}
-
-.was-validated .form-control-color:valid, .form-control-color.is-valid {
- width: calc(3rem + calc(1.5em + 0.75rem));
-}
-
-.was-validated .form-check-input:valid, .form-check-input.is-valid {
- border-color: var(--bs-form-valid-border-color);
-}
-.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
- background-color: var(--bs-form-valid-color);
-}
-.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
-}
-.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
- color: var(--bs-form-valid-color);
-}
-
-.form-check-inline .form-check-input ~ .valid-feedback {
- margin-left: 0.5em;
-}
-
-.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
-.was-validated .input-group > .form-select:not(:focus):valid,
-.input-group > .form-select:not(:focus).is-valid,
-.was-validated .input-group > .form-floating:not(:focus-within):valid,
-.input-group > .form-floating:not(:focus-within).is-valid {
- z-index: 3;
-}
-
-.invalid-feedback {
- display: none;
- width: 100%;
- margin-top: 0.25rem;
- font-size: 0.875em;
- color: var(--bs-form-invalid-color);
-}
-
-.invalid-tooltip {
- position: absolute;
- top: 100%;
- z-index: 5;
- display: none;
- max-width: 100%;
- padding: 0.25rem 0.5rem;
- margin-top: 0.1rem;
- font-size: 0.875rem;
- color: #fff;
- background-color: var(--bs-danger);
- border-radius: var(--bs-border-radius);
-}
-
-.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: var(--bs-form-invalid-border-color);
- 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='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
- background-repeat: no-repeat;
- background-position: right calc(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: var(--bs-form-invalid-border-color);
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 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: var(--bs-form-invalid-border-color);
-}
-.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
- --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
- padding-right: 4.125rem;
- background-position: right 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: var(--bs-form-invalid-border-color);
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
-}
-
-.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
- width: calc(3rem + calc(1.5em + 0.75rem));
-}
-
-.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
- border-color: var(--bs-form-invalid-border-color);
-}
-.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
- background-color: var(--bs-form-invalid-color);
-}
-.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
- box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
-}
-.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
- color: var(--bs-form-invalid-color);
-}
-
-.form-check-inline .form-check-input ~ .invalid-feedback {
- margin-left: 0.5em;
-}
-
-.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
-.was-validated .input-group > .form-select:not(:focus):invalid,
-.input-group > .form-select:not(:focus).is-invalid,
-.was-validated .input-group > .form-floating:not(:focus-within):invalid,
-.input-group > .form-floating:not(:focus-within).is-invalid {
- z-index: 4;
-}
-
-.btn {
- --bs-btn-padding-x: 0.75rem;
- --bs-btn-padding-y: 0.375rem;
- --bs-btn-font-family: ;
- --bs-btn-font-size: 1rem;
- --bs-btn-font-weight: 400;
- --bs-btn-line-height: 1.5;
- --bs-btn-color: var(--bs-body-color);
- --bs-btn-bg: transparent;
- --bs-btn-border-width: var(--bs-border-width);
- --bs-btn-border-color: transparent;
- --bs-btn-border-radius: var(--bs-border-radius);
- --bs-btn-hover-border-color: transparent;
- --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
- --bs-btn-disabled-opacity: 0.65;
- --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
- display: inline-block;
- padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
- font-family: var(--bs-btn-font-family);
- font-size: var(--bs-btn-font-size);
- font-weight: var(--bs-btn-font-weight);
- line-height: var(--bs-btn-line-height);
- color: var(--bs-btn-color);
- text-align: center;
- text-decoration: none;
- vertical-align: middle;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
- border-radius: var(--bs-btn-border-radius);
- background-color: var(--bs-btn-bg);
- transition: color 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: var(--bs-btn-hover-color);
- background-color: var(--bs-btn-hover-bg);
- border-color: var(--bs-btn-hover-border-color);
-}
-.btn-check + .btn:hover {
- color: var(--bs-btn-color);
- background-color: var(--bs-btn-bg);
- border-color: var(--bs-btn-border-color);
-}
-.btn:focus-visible {
- color: var(--bs-btn-hover-color);
- background-color: var(--bs-btn-hover-bg);
- border-color: var(--bs-btn-hover-border-color);
- outline: 0;
- box-shadow: var(--bs-btn-focus-box-shadow);
-}
-.btn-check:focus-visible + .btn {
- border-color: var(--bs-btn-hover-border-color);
- outline: 0;
- box-shadow: var(--bs-btn-focus-box-shadow);
-}
-.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
- color: var(--bs-btn-active-color);
- background-color: var(--bs-btn-active-bg);
- border-color: var(--bs-btn-active-border-color);
-}
-.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
- box-shadow: var(--bs-btn-focus-box-shadow);
-}
-.btn:disabled, .btn.disabled, fieldset:disabled .btn {
- color: var(--bs-btn-disabled-color);
- pointer-events: none;
- background-color: var(--bs-btn-disabled-bg);
- border-color: var(--bs-btn-disabled-border-color);
- opacity: var(--bs-btn-disabled-opacity);
-}
-
-.btn-primary {
- --bs-btn-color: #fff;
- --bs-btn-bg: #0d6efd;
- --bs-btn-border-color: #0d6efd;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #0b5ed7;
- --bs-btn-hover-border-color: #0a58ca;
- --bs-btn-focus-shadow-rgb: 49, 132, 253;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #0a58ca;
- --bs-btn-active-border-color: #0a53be;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #fff;
- --bs-btn-disabled-bg: #0d6efd;
- --bs-btn-disabled-border-color: #0d6efd;
-}
-
-.btn-secondary {
- --bs-btn-color: #fff;
- --bs-btn-bg: #6c757d;
- --bs-btn-border-color: #6c757d;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #5c636a;
- --bs-btn-hover-border-color: #565e64;
- --bs-btn-focus-shadow-rgb: 130, 138, 145;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #565e64;
- --bs-btn-active-border-color: #51585e;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #fff;
- --bs-btn-disabled-bg: #6c757d;
- --bs-btn-disabled-border-color: #6c757d;
-}
-
-.btn-success {
- --bs-btn-color: #fff;
- --bs-btn-bg: #198754;
- --bs-btn-border-color: #198754;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #157347;
- --bs-btn-hover-border-color: #146c43;
- --bs-btn-focus-shadow-rgb: 60, 153, 110;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #146c43;
- --bs-btn-active-border-color: #13653f;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #fff;
- --bs-btn-disabled-bg: #198754;
- --bs-btn-disabled-border-color: #198754;
-}
-
-.btn-info {
- --bs-btn-color: #000;
- --bs-btn-bg: #0dcaf0;
- --bs-btn-border-color: #0dcaf0;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #31d2f2;
- --bs-btn-hover-border-color: #25cff2;
- --bs-btn-focus-shadow-rgb: 11, 172, 204;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #3dd5f3;
- --bs-btn-active-border-color: #25cff2;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #000;
- --bs-btn-disabled-bg: #0dcaf0;
- --bs-btn-disabled-border-color: #0dcaf0;
-}
-
-.btn-warning {
- --bs-btn-color: #000;
- --bs-btn-bg: #ffc107;
- --bs-btn-border-color: #ffc107;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #ffca2c;
- --bs-btn-hover-border-color: #ffc720;
- --bs-btn-focus-shadow-rgb: 217, 164, 6;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #ffcd39;
- --bs-btn-active-border-color: #ffc720;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #000;
- --bs-btn-disabled-bg: #ffc107;
- --bs-btn-disabled-border-color: #ffc107;
-}
-
-.btn-danger {
- --bs-btn-color: #fff;
- --bs-btn-bg: #dc3545;
- --bs-btn-border-color: #dc3545;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #bb2d3b;
- --bs-btn-hover-border-color: #b02a37;
- --bs-btn-focus-shadow-rgb: 225, 83, 97;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #b02a37;
- --bs-btn-active-border-color: #a52834;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #fff;
- --bs-btn-disabled-bg: #dc3545;
- --bs-btn-disabled-border-color: #dc3545;
-}
-
-.btn-light {
- --bs-btn-color: #000;
- --bs-btn-bg: #f8f9fa;
- --bs-btn-border-color: #f8f9fa;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #d3d4d5;
- --bs-btn-hover-border-color: #c6c7c8;
- --bs-btn-focus-shadow-rgb: 211, 212, 213;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #c6c7c8;
- --bs-btn-active-border-color: #babbbc;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #000;
- --bs-btn-disabled-bg: #f8f9fa;
- --bs-btn-disabled-border-color: #f8f9fa;
-}
-
-.btn-dark {
- --bs-btn-color: #fff;
- --bs-btn-bg: #212529;
- --bs-btn-border-color: #212529;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #424649;
- --bs-btn-hover-border-color: #373b3e;
- --bs-btn-focus-shadow-rgb: 66, 70, 73;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #4d5154;
- --bs-btn-active-border-color: #373b3e;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #fff;
- --bs-btn-disabled-bg: #212529;
- --bs-btn-disabled-border-color: #212529;
-}
-
-.btn-outline-primary {
- --bs-btn-color: #0d6efd;
- --bs-btn-border-color: #0d6efd;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #0d6efd;
- --bs-btn-hover-border-color: #0d6efd;
- --bs-btn-focus-shadow-rgb: 13, 110, 253;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #0d6efd;
- --bs-btn-active-border-color: #0d6efd;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #0d6efd;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #0d6efd;
- --bs-gradient: none;
-}
-
-.btn-outline-secondary {
- --bs-btn-color: #6c757d;
- --bs-btn-border-color: #6c757d;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #6c757d;
- --bs-btn-hover-border-color: #6c757d;
- --bs-btn-focus-shadow-rgb: 108, 117, 125;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #6c757d;
- --bs-btn-active-border-color: #6c757d;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #6c757d;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #6c757d;
- --bs-gradient: none;
-}
-
-.btn-outline-success {
- --bs-btn-color: #198754;
- --bs-btn-border-color: #198754;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #198754;
- --bs-btn-hover-border-color: #198754;
- --bs-btn-focus-shadow-rgb: 25, 135, 84;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #198754;
- --bs-btn-active-border-color: #198754;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #198754;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #198754;
- --bs-gradient: none;
-}
-
-.btn-outline-info {
- --bs-btn-color: #0dcaf0;
- --bs-btn-border-color: #0dcaf0;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #0dcaf0;
- --bs-btn-hover-border-color: #0dcaf0;
- --bs-btn-focus-shadow-rgb: 13, 202, 240;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #0dcaf0;
- --bs-btn-active-border-color: #0dcaf0;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #0dcaf0;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #0dcaf0;
- --bs-gradient: none;
-}
-
-.btn-outline-warning {
- --bs-btn-color: #ffc107;
- --bs-btn-border-color: #ffc107;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #ffc107;
- --bs-btn-hover-border-color: #ffc107;
- --bs-btn-focus-shadow-rgb: 255, 193, 7;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #ffc107;
- --bs-btn-active-border-color: #ffc107;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #ffc107;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #ffc107;
- --bs-gradient: none;
-}
-
-.btn-outline-danger {
- --bs-btn-color: #dc3545;
- --bs-btn-border-color: #dc3545;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #dc3545;
- --bs-btn-hover-border-color: #dc3545;
- --bs-btn-focus-shadow-rgb: 220, 53, 69;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #dc3545;
- --bs-btn-active-border-color: #dc3545;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #dc3545;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #dc3545;
- --bs-gradient: none;
-}
-
-.btn-outline-light {
- --bs-btn-color: #f8f9fa;
- --bs-btn-border-color: #f8f9fa;
- --bs-btn-hover-color: #000;
- --bs-btn-hover-bg: #f8f9fa;
- --bs-btn-hover-border-color: #f8f9fa;
- --bs-btn-focus-shadow-rgb: 248, 249, 250;
- --bs-btn-active-color: #000;
- --bs-btn-active-bg: #f8f9fa;
- --bs-btn-active-border-color: #f8f9fa;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #f8f9fa;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #f8f9fa;
- --bs-gradient: none;
-}
-
-.btn-outline-dark {
- --bs-btn-color: #212529;
- --bs-btn-border-color: #212529;
- --bs-btn-hover-color: #fff;
- --bs-btn-hover-bg: #212529;
- --bs-btn-hover-border-color: #212529;
- --bs-btn-focus-shadow-rgb: 33, 37, 41;
- --bs-btn-active-color: #fff;
- --bs-btn-active-bg: #212529;
- --bs-btn-active-border-color: #212529;
- --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- --bs-btn-disabled-color: #212529;
- --bs-btn-disabled-bg: transparent;
- --bs-btn-disabled-border-color: #212529;
- --bs-gradient: none;
-}
-
-.btn-link {
- --bs-btn-font-weight: 400;
- --bs-btn-color: var(--bs-link-color);
- --bs-btn-bg: transparent;
- --bs-btn-border-color: transparent;
- --bs-btn-hover-color: var(--bs-link-hover-color);
- --bs-btn-hover-border-color: transparent;
- --bs-btn-active-color: var(--bs-link-hover-color);
- --bs-btn-active-border-color: transparent;
- --bs-btn-disabled-color: #6c757d;
- --bs-btn-disabled-border-color: transparent;
- --bs-btn-box-shadow: 0 0 0 #000;
- --bs-btn-focus-shadow-rgb: 49, 132, 253;
- text-decoration: underline;
-}
-.btn-link:focus-visible {
- color: var(--bs-btn-color);
-}
-.btn-link:hover {
- color: var(--bs-btn-hover-color);
-}
-
-.btn-lg, .btn-group-lg > .btn {
- --bs-btn-padding-y: 0.5rem;
- --bs-btn-padding-x: 1rem;
- --bs-btn-font-size: 1.25rem;
- --bs-btn-border-radius: var(--bs-border-radius-lg);
-}
-
-.btn-sm, .btn-group-sm > .btn {
- --bs-btn-padding-y: 0.25rem;
- --bs-btn-padding-x: 0.5rem;
- --bs-btn-font-size: 0.875rem;
- --bs-btn-border-radius: var(--bs-border-radius-sm);
-}
-
-.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;
- }
-}
-.collapsing.collapse-horizontal {
- width: 0;
- height: auto;
- transition: width 0.35s ease;
-}
-@media (prefers-reduced-motion: reduce) {
- .collapsing.collapse-horizontal {
- transition: none;
- }
-}
-
-.dropup,
-.dropend,
-.dropdown,
-.dropstart,
-.dropup-center,
-.dropdown-center {
- 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 {
- --bs-dropdown-zindex: 1000;
- --bs-dropdown-min-width: 10rem;
- --bs-dropdown-padding-x: 0;
- --bs-dropdown-padding-y: 0.5rem;
- --bs-dropdown-spacer: 0.125rem;
- --bs-dropdown-font-size: 1rem;
- --bs-dropdown-color: var(--bs-body-color);
- --bs-dropdown-bg: var(--bs-body-bg);
- --bs-dropdown-border-color: var(--bs-border-color-translucent);
- --bs-dropdown-border-radius: var(--bs-border-radius);
- --bs-dropdown-border-width: var(--bs-border-width);
- --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
- --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
- --bs-dropdown-divider-margin-y: 0.5rem;
- --bs-dropdown-box-shadow: var(--bs-box-shadow);
- --bs-dropdown-link-color: var(--bs-body-color);
- --bs-dropdown-link-hover-color: var(--bs-body-color);
- --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
- --bs-dropdown-link-active-color: #fff;
- --bs-dropdown-link-active-bg: #0d6efd;
- --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
- --bs-dropdown-item-padding-x: 1rem;
- --bs-dropdown-item-padding-y: 0.25rem;
- --bs-dropdown-header-color: #6c757d;
- --bs-dropdown-header-padding-x: 1rem;
- --bs-dropdown-header-padding-y: 0.5rem;
- position: absolute;
- z-index: var(--bs-dropdown-zindex);
- display: none;
- min-width: var(--bs-dropdown-min-width);
- padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
- margin: 0;
- font-size: var(--bs-dropdown-font-size);
- color: var(--bs-dropdown-color);
- text-align: left;
- list-style: none;
- background-color: var(--bs-dropdown-bg);
- background-clip: padding-box;
- border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
- border-radius: var(--bs-dropdown-border-radius);
-}
-.dropdown-menu[data-bs-popper] {
- top: 100%;
- left: 0;
- margin-top: var(--bs-dropdown-spacer);
-}
-
-.dropdown-menu-start {
- --bs-position: start;
-}
-.dropdown-menu-start[data-bs-popper] {
- right: auto;
- left: 0;
-}
-
-.dropdown-menu-end {
- --bs-position: end;
-}
-.dropdown-menu-end[data-bs-popper] {
- right: 0;
- left: auto;
-}
-
-@media (min-width: 576px) {
- .dropdown-menu-sm-start {
- --bs-position: start;
- }
- .dropdown-menu-sm-start[data-bs-popper] {
- right: auto;
- left: 0;
- }
- .dropdown-menu-sm-end {
- --bs-position: end;
- }
- .dropdown-menu-sm-end[data-bs-popper] {
- right: 0;
- left: auto;
- }
-}
-@media (min-width: 768px) {
- .dropdown-menu-md-start {
- --bs-position: start;
- }
- .dropdown-menu-md-start[data-bs-popper] {
- right: auto;
- left: 0;
- }
- .dropdown-menu-md-end {
- --bs-position: end;
- }
- .dropdown-menu-md-end[data-bs-popper] {
- right: 0;
- left: auto;
- }
-}
-@media (min-width: 992px) {
- .dropdown-menu-lg-start {
- --bs-position: start;
- }
- .dropdown-menu-lg-start[data-bs-popper] {
- right: auto;
- left: 0;
- }
- .dropdown-menu-lg-end {
- --bs-position: end;
- }
- .dropdown-menu-lg-end[data-bs-popper] {
- right: 0;
- left: auto;
- }
-}
-@media (min-width: 1200px) {
- .dropdown-menu-xl-start {
- --bs-position: start;
- }
- .dropdown-menu-xl-start[data-bs-popper] {
- right: auto;
- left: 0;
- }
- .dropdown-menu-xl-end {
- --bs-position: end;
- }
- .dropdown-menu-xl-end[data-bs-popper] {
- right: 0;
- left: auto;
- }
-}
-@media (min-width: 1400px) {
- .dropdown-menu-xxl-start {
- --bs-position: start;
- }
- .dropdown-menu-xxl-start[data-bs-popper] {
- right: auto;
- left: 0;
- }
- .dropdown-menu-xxl-end {
- --bs-position: end;
- }
- .dropdown-menu-xxl-end[data-bs-popper] {
- right: 0;
- left: auto;
- }
-}
-.dropup .dropdown-menu[data-bs-popper] {
- top: auto;
- bottom: 100%;
- margin-top: 0;
- margin-bottom: var(--bs-dropdown-spacer);
-}
-.dropup .dropdown-toggle::after {
- display: inline-block;
- margin-left: 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[data-bs-popper] {
- top: 0;
- right: auto;
- left: 100%;
- margin-top: 0;
- margin-left: var(--bs-dropdown-spacer);
-}
-.dropend .dropdown-toggle::after {
- display: inline-block;
- margin-left: 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[data-bs-popper] {
- top: 0;
- right: 100%;
- left: auto;
- margin-top: 0;
- margin-right: var(--bs-dropdown-spacer);
-}
-.dropstart .dropdown-toggle::after {
- display: inline-block;
- margin-left: 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: var(--bs-dropdown-divider-margin-y) 0;
- overflow: hidden;
- border-top: 1px solid var(--bs-dropdown-divider-bg);
- opacity: 1;
-}
-
-.dropdown-item {
- display: block;
- width: 100%;
- padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
- clear: both;
- font-weight: 400;
- color: var(--bs-dropdown-link-color);
- text-align: inherit;
- text-decoration: none;
- white-space: nowrap;
- background-color: transparent;
- border: 0;
- border-radius: var(--bs-dropdown-item-border-radius, 0);
-}
-.dropdown-item:hover, .dropdown-item:focus {
- color: var(--bs-dropdown-link-hover-color);
- background-color: var(--bs-dropdown-link-hover-bg);
-}
-.dropdown-item.active, .dropdown-item:active {
- color: var(--bs-dropdown-link-active-color);
- text-decoration: none;
- background-color: var(--bs-dropdown-link-active-bg);
-}
-.dropdown-item.disabled, .dropdown-item:disabled {
- color: var(--bs-dropdown-link-disabled-color);
- pointer-events: none;
- background-color: transparent;
-}
-
-.dropdown-menu.show {
- display: block;
-}
-
-.dropdown-header {
- display: block;
- padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
- margin-bottom: 0;
- font-size: 0.875rem;
- color: var(--bs-dropdown-header-color);
- white-space: nowrap;
-}
-
-.dropdown-item-text {
- display: block;
- padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
- color: var(--bs-dropdown-link-color);
-}
-
-.dropdown-menu-dark {
- --bs-dropdown-color: #dee2e6;
- --bs-dropdown-bg: #343a40;
- --bs-dropdown-border-color: var(--bs-border-color-translucent);
- --bs-dropdown-box-shadow: ;
- --bs-dropdown-link-color: #dee2e6;
- --bs-dropdown-link-hover-color: #fff;
- --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
- --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
- --bs-dropdown-link-active-color: #fff;
- --bs-dropdown-link-active-bg: #0d6efd;
- --bs-dropdown-link-disabled-color: #adb5bd;
- --bs-dropdown-header-color: #adb5bd;
-}
-
-.btn-group,
-.btn-group-vertical {
- position: relative;
- display: inline-flex;
- vertical-align: middle;
-}
-.btn-group > .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 {
- border-radius: var(--bs-border-radius);
-}
-.btn-group > :not(.btn-check:first-child) + .btn,
-.btn-group > .btn-group:not(:first-child) {
- margin-left: calc(var(--bs-border-width) * -1);
-}
-.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
-.btn-group > .btn.dropdown-toggle-split:first-child,
-.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: calc(var(--bs-border-width) * -1);
-}
-.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 {
- --bs-nav-link-padding-x: 1rem;
- --bs-nav-link-padding-y: 0.5rem;
- --bs-nav-link-font-weight: ;
- --bs-nav-link-color: var(--bs-link-color);
- --bs-nav-link-hover-color: var(--bs-link-hover-color);
- --bs-nav-link-disabled-color: var(--bs-secondary-color);
- display: flex;
- flex-wrap: wrap;
- padding-left: 0;
- margin-bottom: 0;
- list-style: none;
-}
-
-.nav-link {
- display: block;
- padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
- font-size: var(--bs-nav-link-font-size);
- font-weight: var(--bs-nav-link-font-weight);
- color: var(--bs-nav-link-color);
- text-decoration: none;
- background: none;
- border: 0;
- 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:hover, .nav-link:focus {
- color: var(--bs-nav-link-hover-color);
-}
-.nav-link:focus-visible {
- outline: 0;
- box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
-}
-.nav-link.disabled, .nav-link:disabled {
- color: var(--bs-nav-link-disabled-color);
- pointer-events: none;
- cursor: default;
-}
-
-.nav-tabs {
- --bs-nav-tabs-border-width: var(--bs-border-width);
- --bs-nav-tabs-border-color: var(--bs-border-color);
- --bs-nav-tabs-border-radius: var(--bs-border-radius);
- --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
- --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
- --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
- --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
- border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
-}
-.nav-tabs .nav-link {
- margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
- border: var(--bs-nav-tabs-border-width) solid transparent;
- border-top-left-radius: var(--bs-nav-tabs-border-radius);
- border-top-right-radius: var(--bs-nav-tabs-border-radius);
-}
-.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
- isolation: isolate;
- border-color: var(--bs-nav-tabs-link-hover-border-color);
-}
-.nav-tabs .nav-link.active,
-.nav-tabs .nav-item.show .nav-link {
- color: var(--bs-nav-tabs-link-active-color);
- background-color: var(--bs-nav-tabs-link-active-bg);
- border-color: var(--bs-nav-tabs-link-active-border-color);
-}
-.nav-tabs .dropdown-menu {
- margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-
-.nav-pills {
- --bs-nav-pills-border-radius: var(--bs-border-radius);
- --bs-nav-pills-link-active-color: #fff;
- --bs-nav-pills-link-active-bg: #0d6efd;
-}
-.nav-pills .nav-link {
- border-radius: var(--bs-nav-pills-border-radius);
-}
-.nav-pills .nav-link.active,
-.nav-pills .show > .nav-link {
- color: var(--bs-nav-pills-link-active-color);
- background-color: var(--bs-nav-pills-link-active-bg);
-}
-
-.nav-underline {
- --bs-nav-underline-gap: 1rem;
- --bs-nav-underline-border-width: 0.125rem;
- --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
- gap: var(--bs-nav-underline-gap);
-}
-.nav-underline .nav-link {
- padding-right: 0;
- padding-left: 0;
- border-bottom: var(--bs-nav-underline-border-width) solid transparent;
-}
-.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {
- border-bottom-color: currentcolor;
-}
-.nav-underline .nav-link.active,
-.nav-underline .show > .nav-link {
- font-weight: 700;
- color: var(--bs-nav-underline-link-active-color);
- border-bottom-color: currentcolor;
-}
-
-.nav-fill > .nav-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;
-}
-
-.nav-fill .nav-item .nav-link,
-.nav-justified .nav-item .nav-link {
- width: 100%;
-}
-
-.tab-content > .tab-pane {
- display: none;
-}
-.tab-content > .active {
- display: block;
-}
-
-.navbar {
- --bs-navbar-padding-x: 0;
- --bs-navbar-padding-y: 0.5rem;
- --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
- --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
- --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
- --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
- --bs-navbar-brand-padding-y: 0.3125rem;
- --bs-navbar-brand-margin-end: 1rem;
- --bs-navbar-brand-font-size: 1.25rem;
- --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
- --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
- --bs-navbar-nav-link-padding-x: 0.5rem;
- --bs-navbar-toggler-padding-y: 0.25rem;
- --bs-navbar-toggler-padding-x: 0.75rem;
- --bs-navbar-toggler-font-size: 1.25rem;
- --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
- --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
- --bs-navbar-toggler-border-radius: var(--bs-border-radius);
- --bs-navbar-toggler-focus-width: 0.25rem;
- --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
- position: relative;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
- padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
-}
-.navbar > .container,
-.navbar > .container-fluid,
-.navbar > .container-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: var(--bs-navbar-brand-padding-y);
- padding-bottom: var(--bs-navbar-brand-padding-y);
- margin-right: var(--bs-navbar-brand-margin-end);
- font-size: var(--bs-navbar-brand-font-size);
- color: var(--bs-navbar-brand-color);
- text-decoration: none;
- white-space: nowrap;
-}
-.navbar-brand:hover, .navbar-brand:focus {
- color: var(--bs-navbar-brand-hover-color);
-}
-
-.navbar-nav {
- --bs-nav-link-padding-x: 0;
- --bs-nav-link-padding-y: 0.5rem;
- --bs-nav-link-font-weight: ;
- --bs-nav-link-color: var(--bs-navbar-color);
- --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
- --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
- display: flex;
- flex-direction: column;
- padding-left: 0;
- margin-bottom: 0;
- list-style: none;
-}
-.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
- color: var(--bs-navbar-active-color);
-}
-.navbar-nav .dropdown-menu {
- position: static;
-}
-
-.navbar-text {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- color: var(--bs-navbar-color);
-}
-.navbar-text a,
-.navbar-text a:hover,
-.navbar-text a:focus {
- color: var(--bs-navbar-active-color);
-}
-
-.navbar-collapse {
- flex-basis: 100%;
- flex-grow: 1;
- align-items: center;
-}
-
-.navbar-toggler {
- padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
- font-size: var(--bs-navbar-toggler-font-size);
- line-height: 1;
- color: var(--bs-navbar-color);
- background-color: transparent;
- border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
- border-radius: var(--bs-navbar-toggler-border-radius);
- transition: var(--bs-navbar-toggler-transition);
-}
-@media (prefers-reduced-motion: reduce) {
- .navbar-toggler {
- transition: none;
- }
-}
-.navbar-toggler:hover {
- text-decoration: none;
-}
-.navbar-toggler:focus {
- text-decoration: none;
- outline: 0;
- box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
-}
-
-.navbar-toggler-icon {
- display: inline-block;
- width: 1.5em;
- height: 1.5em;
- vertical-align: middle;
- background-image: var(--bs-navbar-toggler-icon-bg);
- background-repeat: no-repeat;
- background-position: center;
- background-size: 100%;
-}
-
-.navbar-nav-scroll {
- max-height: var(--bs-scroll-height, 75vh);
- overflow-y: auto;
-}
-
-@media (min-width: 576px) {
- .navbar-expand-sm {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-sm .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-sm .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-sm .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
- }
- .navbar-expand-sm .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-sm .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-sm .navbar-toggler {
- display: none;
- }
- .navbar-expand-sm .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
- }
- .navbar-expand-sm .offcanvas .offcanvas-header {
- display: none;
- }
- .navbar-expand-sm .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 768px) {
- .navbar-expand-md {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-md .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-md .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-md .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
- }
- .navbar-expand-md .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-md .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-md .navbar-toggler {
- display: none;
- }
- .navbar-expand-md .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
- }
- .navbar-expand-md .offcanvas .offcanvas-header {
- display: none;
- }
- .navbar-expand-md .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 992px) {
- .navbar-expand-lg {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-lg .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-lg .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-lg .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
- }
- .navbar-expand-lg .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-lg .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-lg .navbar-toggler {
- display: none;
- }
- .navbar-expand-lg .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
- }
- .navbar-expand-lg .offcanvas .offcanvas-header {
- display: none;
- }
- .navbar-expand-lg .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 1200px) {
- .navbar-expand-xl {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-xl .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-xl .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-xl .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
- }
- .navbar-expand-xl .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-xl .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-xl .navbar-toggler {
- display: none;
- }
- .navbar-expand-xl .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
- }
- .navbar-expand-xl .offcanvas .offcanvas-header {
- display: none;
- }
- .navbar-expand-xl .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 1400px) {
- .navbar-expand-xxl {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-xxl .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-xxl .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-xxl .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
- }
- .navbar-expand-xxl .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-xxl .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-xxl .navbar-toggler {
- display: none;
- }
- .navbar-expand-xxl .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
- }
- .navbar-expand-xxl .offcanvas .offcanvas-header {
- display: none;
- }
- .navbar-expand-xxl .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-.navbar-expand {
- flex-wrap: nowrap;
- justify-content: flex-start;
-}
-.navbar-expand .navbar-nav {
- flex-direction: row;
-}
-.navbar-expand .navbar-nav .dropdown-menu {
- position: absolute;
-}
-.navbar-expand .navbar-nav .nav-link {
- padding-right: var(--bs-navbar-nav-link-padding-x);
- padding-left: var(--bs-navbar-nav-link-padding-x);
-}
-.navbar-expand .navbar-nav-scroll {
- overflow: visible;
-}
-.navbar-expand .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
-}
-.navbar-expand .navbar-toggler {
- display: none;
-}
-.navbar-expand .offcanvas {
- position: static;
- z-index: auto;
- flex-grow: 1;
- width: auto !important;
- height: auto !important;
- visibility: visible !important;
- background-color: transparent !important;
- border: 0 !important;
- transform: none !important;
- transition: none;
-}
-.navbar-expand .offcanvas .offcanvas-header {
- display: none;
-}
-.navbar-expand .offcanvas .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
-}
-
-.navbar-dark,
-.navbar[data-bs-theme=dark] {
- --bs-navbar-color: rgba(255, 255, 255, 0.55);
- --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
- --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
- --bs-navbar-active-color: #fff;
- --bs-navbar-brand-color: #fff;
- --bs-navbar-brand-hover-color: #fff;
- --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
- --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
-}
-
-[data-bs-theme=dark] .navbar-toggler-icon {
- --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
-}
-
-.card {
- --bs-card-spacer-y: 1rem;
- --bs-card-spacer-x: 1rem;
- --bs-card-title-spacer-y: 0.5rem;
- --bs-card-title-color: ;
- --bs-card-subtitle-color: ;
- --bs-card-border-width: var(--bs-border-width);
- --bs-card-border-color: var(--bs-border-color-translucent);
- --bs-card-border-radius: var(--bs-border-radius);
- --bs-card-box-shadow: ;
- --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
- --bs-card-cap-padding-y: 0.5rem;
- --bs-card-cap-padding-x: 1rem;
- --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
- --bs-card-cap-color: ;
- --bs-card-height: ;
- --bs-card-color: ;
- --bs-card-bg: var(--bs-body-bg);
- --bs-card-img-overlay-padding: 1rem;
- --bs-card-group-margin: 0.75rem;
- position: relative;
- display: flex;
- flex-direction: column;
- min-width: 0;
- height: var(--bs-card-height);
- color: var(--bs-body-color);
- word-wrap: break-word;
- background-color: var(--bs-card-bg);
- background-clip: border-box;
- border: var(--bs-card-border-width) solid var(--bs-card-border-color);
- border-radius: var(--bs-card-border-radius);
-}
-.card > hr {
- margin-right: 0;
- margin-left: 0;
-}
-.card > .list-group {
- border-top: inherit;
- border-bottom: inherit;
-}
-.card > .list-group:first-child {
- border-top-width: 0;
- border-top-left-radius: var(--bs-card-inner-border-radius);
- border-top-right-radius: var(--bs-card-inner-border-radius);
-}
-.card > .list-group:last-child {
- border-bottom-width: 0;
- border-bottom-right-radius: var(--bs-card-inner-border-radius);
- border-bottom-left-radius: var(--bs-card-inner-border-radius);
-}
-.card > .card-header + .list-group,
-.card > .list-group + .card-footer {
- border-top: 0;
-}
-
-.card-body {
- flex: 1 1 auto;
- padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
- color: var(--bs-card-color);
-}
-
-.card-title {
- margin-bottom: var(--bs-card-title-spacer-y);
- color: var(--bs-card-title-color);
-}
-
-.card-subtitle {
- margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
- margin-bottom: 0;
- color: var(--bs-card-subtitle-color);
-}
-
-.card-text:last-child {
- margin-bottom: 0;
-}
-
-.card-link + .card-link {
- margin-left: var(--bs-card-spacer-x);
-}
-
-.card-header {
- padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
- margin-bottom: 0;
- color: var(--bs-card-cap-color);
- background-color: var(--bs-card-cap-bg);
- border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
-}
-.card-header:first-child {
- border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
-}
-
-.card-footer {
- padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
- color: var(--bs-card-cap-color);
- background-color: var(--bs-card-cap-bg);
- border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
-}
-.card-footer:last-child {
- border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
-}
-
-.card-header-tabs {
- margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
- margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
- margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
- border-bottom: 0;
-}
-.card-header-tabs .nav-link.active {
- background-color: var(--bs-card-bg);
- border-bottom-color: var(--bs-card-bg);
-}
-
-.card-header-pills {
- margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
- margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
-}
-
-.card-img-overlay {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- padding: var(--bs-card-img-overlay-padding);
- border-radius: var(--bs-card-inner-border-radius);
-}
-
-.card-img,
-.card-img-top,
-.card-img-bottom {
- width: 100%;
-}
-
-.card-img,
-.card-img-top {
- border-top-left-radius: var(--bs-card-inner-border-radius);
- border-top-right-radius: var(--bs-card-inner-border-radius);
-}
-
-.card-img,
-.card-img-bottom {
- border-bottom-right-radius: var(--bs-card-inner-border-radius);
- border-bottom-left-radius: var(--bs-card-inner-border-radius);
-}
-
-.card-group > .card {
- margin-bottom: var(--bs-card-group-margin);
-}
-@media (min-width: 576px) {
- .card-group {
- display: flex;
- flex-flow: row wrap;
- }
- .card-group > .card {
- flex: 1 0 0%;
- margin-bottom: 0;
- }
- .card-group > .card + .card {
- margin-left: 0;
- border-left: 0;
- }
- .card-group > .card:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- }
- .card-group > .card:not(:last-child) .card-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;
- }
-}
-
-.accordion {
- --bs-accordion-color: var(--bs-body-color);
- --bs-accordion-bg: var(--bs-body-bg);
- --bs-accordion-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, border-radius 0.15s ease;
- --bs-accordion-border-color: var(--bs-border-color);
- --bs-accordion-border-width: var(--bs-border-width);
- --bs-accordion-border-radius: var(--bs-border-radius);
- --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
- --bs-accordion-btn-padding-x: 1.25rem;
- --bs-accordion-btn-padding-y: 1rem;
- --bs-accordion-btn-color: var(--bs-body-color);
- --bs-accordion-btn-bg: var(--bs-accordion-bg);
- --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
- --bs-accordion-btn-icon-width: 1.25rem;
- --bs-accordion-btn-icon-transform: rotate(-180deg);
- --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
- --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
- --bs-accordion-btn-focus-border-color: #86b7fe;
- --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
- --bs-accordion-body-padding-x: 1.25rem;
- --bs-accordion-body-padding-y: 1rem;
- --bs-accordion-active-color: var(--bs-primary-text-emphasis);
- --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
-}
-
-.accordion-button {
- position: relative;
- display: flex;
- align-items: center;
- width: 100%;
- padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
- font-size: 1rem;
- color: var(--bs-accordion-btn-color);
- text-align: left;
- background-color: var(--bs-accordion-btn-bg);
- border: 0;
- border-radius: 0;
- overflow-anchor: none;
- transition: var(--bs-accordion-transition);
-}
-@media (prefers-reduced-motion: reduce) {
- .accordion-button {
- transition: none;
- }
-}
-.accordion-button:not(.collapsed) {
- color: var(--bs-accordion-active-color);
- background-color: var(--bs-accordion-active-bg);
- box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
-}
-.accordion-button:not(.collapsed)::after {
- background-image: var(--bs-accordion-btn-active-icon);
- transform: var(--bs-accordion-btn-icon-transform);
-}
-.accordion-button::after {
- flex-shrink: 0;
- width: var(--bs-accordion-btn-icon-width);
- height: var(--bs-accordion-btn-icon-width);
- margin-left: auto;
- content: "";
- background-image: var(--bs-accordion-btn-icon);
- background-repeat: no-repeat;
- background-size: var(--bs-accordion-btn-icon-width);
- transition: var(--bs-accordion-btn-icon-transition);
-}
-@media (prefers-reduced-motion: reduce) {
- .accordion-button::after {
- transition: none;
- }
-}
-.accordion-button:hover {
- z-index: 2;
-}
-.accordion-button:focus {
- z-index: 3;
- border-color: var(--bs-accordion-btn-focus-border-color);
- outline: 0;
- box-shadow: var(--bs-accordion-btn-focus-box-shadow);
-}
-
-.accordion-header {
- margin-bottom: 0;
-}
-
-.accordion-item {
- color: var(--bs-accordion-color);
- background-color: var(--bs-accordion-bg);
- border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
-}
-.accordion-item:first-of-type {
- border-top-left-radius: var(--bs-accordion-border-radius);
- border-top-right-radius: var(--bs-accordion-border-radius);
-}
-.accordion-item:first-of-type .accordion-button {
- border-top-left-radius: var(--bs-accordion-inner-border-radius);
- border-top-right-radius: var(--bs-accordion-inner-border-radius);
-}
-.accordion-item:not(:first-of-type) {
- border-top: 0;
-}
-.accordion-item:last-of-type {
- border-bottom-right-radius: var(--bs-accordion-border-radius);
- border-bottom-left-radius: var(--bs-accordion-border-radius);
-}
-.accordion-item:last-of-type .accordion-button.collapsed {
- border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
- border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
-}
-.accordion-item:last-of-type .accordion-collapse {
- border-bottom-right-radius: var(--bs-accordion-border-radius);
- border-bottom-left-radius: var(--bs-accordion-border-radius);
-}
-
-.accordion-body {
- padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
-}
-
-.accordion-flush .accordion-collapse {
- border-width: 0;
-}
-.accordion-flush .accordion-item {
- border-right: 0;
- border-left: 0;
- border-radius: 0;
-}
-.accordion-flush .accordion-item:first-child {
- border-top: 0;
-}
-.accordion-flush .accordion-item:last-child {
- border-bottom: 0;
-}
-.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
- border-radius: 0;
-}
-
-[data-bs-theme=dark] .accordion-button::after {
- --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
- --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
-}
-
-.breadcrumb {
- --bs-breadcrumb-padding-x: 0;
- --bs-breadcrumb-padding-y: 0;
- --bs-breadcrumb-margin-bottom: 1rem;
- --bs-breadcrumb-bg: ;
- --bs-breadcrumb-border-radius: ;
- --bs-breadcrumb-divider-color: var(--bs-secondary-color);
- --bs-breadcrumb-item-padding-x: 0.5rem;
- --bs-breadcrumb-item-active-color: var(--bs-secondary-color);
- display: flex;
- flex-wrap: wrap;
- padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
- margin-bottom: var(--bs-breadcrumb-margin-bottom);
- font-size: var(--bs-breadcrumb-font-size);
- list-style: none;
- background-color: var(--bs-breadcrumb-bg);
- border-radius: var(--bs-breadcrumb-border-radius);
-}
-
-.breadcrumb-item + .breadcrumb-item {
- padding-left: var(--bs-breadcrumb-item-padding-x);
-}
-.breadcrumb-item + .breadcrumb-item::before {
- float: left;
- padding-right: var(--bs-breadcrumb-item-padding-x);
- color: var(--bs-breadcrumb-divider-color);
- content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
-}
-.breadcrumb-item.active {
- color: var(--bs-breadcrumb-item-active-color);
-}
-
-.pagination {
- --bs-pagination-padding-x: 0.75rem;
- --bs-pagination-padding-y: 0.375rem;
- --bs-pagination-font-size: 1rem;
- --bs-pagination-color: var(--bs-link-color);
- --bs-pagination-bg: var(--bs-body-bg);
- --bs-pagination-border-width: var(--bs-border-width);
- --bs-pagination-border-color: var(--bs-border-color);
- --bs-pagination-border-radius: var(--bs-border-radius);
- --bs-pagination-hover-color: var(--bs-link-hover-color);
- --bs-pagination-hover-bg: var(--bs-tertiary-bg);
- --bs-pagination-hover-border-color: var(--bs-border-color);
- --bs-pagination-focus-color: var(--bs-link-hover-color);
- --bs-pagination-focus-bg: var(--bs-secondary-bg);
- --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
- --bs-pagination-active-color: #fff;
- --bs-pagination-active-bg: #0d6efd;
- --bs-pagination-active-border-color: #0d6efd;
- --bs-pagination-disabled-color: var(--bs-secondary-color);
- --bs-pagination-disabled-bg: var(--bs-secondary-bg);
- --bs-pagination-disabled-border-color: var(--bs-border-color);
- display: flex;
- padding-left: 0;
- list-style: none;
-}
-
-.page-link {
- position: relative;
- display: block;
- padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
- font-size: var(--bs-pagination-font-size);
- color: var(--bs-pagination-color);
- text-decoration: none;
- background-color: var(--bs-pagination-bg);
- border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
- transition: color 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: var(--bs-pagination-hover-color);
- background-color: var(--bs-pagination-hover-bg);
- border-color: var(--bs-pagination-hover-border-color);
-}
-.page-link:focus {
- z-index: 3;
- color: var(--bs-pagination-focus-color);
- background-color: var(--bs-pagination-focus-bg);
- outline: 0;
- box-shadow: var(--bs-pagination-focus-box-shadow);
-}
-.page-link.active, .active > .page-link {
- z-index: 3;
- color: var(--bs-pagination-active-color);
- background-color: var(--bs-pagination-active-bg);
- border-color: var(--bs-pagination-active-border-color);
-}
-.page-link.disabled, .disabled > .page-link {
- color: var(--bs-pagination-disabled-color);
- pointer-events: none;
- background-color: var(--bs-pagination-disabled-bg);
- border-color: var(--bs-pagination-disabled-border-color);
-}
-
-.page-item:not(:first-child) .page-link {
- margin-left: calc(var(--bs-border-width) * -1);
-}
-.page-item:first-child .page-link {
- border-top-left-radius: var(--bs-pagination-border-radius);
- border-bottom-left-radius: var(--bs-pagination-border-radius);
-}
-.page-item:last-child .page-link {
- border-top-right-radius: var(--bs-pagination-border-radius);
- border-bottom-right-radius: var(--bs-pagination-border-radius);
-}
-
-.pagination-lg {
- --bs-pagination-padding-x: 1.5rem;
- --bs-pagination-padding-y: 0.75rem;
- --bs-pagination-font-size: 1.25rem;
- --bs-pagination-border-radius: var(--bs-border-radius-lg);
-}
-
-.pagination-sm {
- --bs-pagination-padding-x: 0.5rem;
- --bs-pagination-padding-y: 0.25rem;
- --bs-pagination-font-size: 0.875rem;
- --bs-pagination-border-radius: var(--bs-border-radius-sm);
-}
-
-.badge {
- --bs-badge-padding-x: 0.65em;
- --bs-badge-padding-y: 0.35em;
- --bs-badge-font-size: 0.75em;
- --bs-badge-font-weight: 700;
- --bs-badge-color: #fff;
- --bs-badge-border-radius: var(--bs-border-radius);
- display: inline-block;
- padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
- font-size: var(--bs-badge-font-size);
- font-weight: var(--bs-badge-font-weight);
- line-height: 1;
- color: var(--bs-badge-color);
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: var(--bs-badge-border-radius);
-}
-.badge:empty {
- display: none;
-}
-
-.btn .badge {
- position: relative;
- top: -1px;
-}
-
-.alert {
- --bs-alert-bg: transparent;
- --bs-alert-padding-x: 1rem;
- --bs-alert-padding-y: 1rem;
- --bs-alert-margin-bottom: 1rem;
- --bs-alert-color: inherit;
- --bs-alert-border-color: transparent;
- --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
- --bs-alert-border-radius: var(--bs-border-radius);
- --bs-alert-link-color: inherit;
- position: relative;
- padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
- margin-bottom: var(--bs-alert-margin-bottom);
- color: var(--bs-alert-color);
- background-color: var(--bs-alert-bg);
- border: var(--bs-alert-border);
- border-radius: var(--bs-alert-border-radius);
-}
-
-.alert-heading {
- color: inherit;
-}
-
-.alert-link {
- font-weight: 700;
- color: var(--bs-alert-link-color);
-}
-
-.alert-dismissible {
- padding-right: 3rem;
-}
-.alert-dismissible .btn-close {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2;
- padding: 1.25rem 1rem;
-}
-
-.alert-primary {
- --bs-alert-color: var(--bs-primary-text-emphasis);
- --bs-alert-bg: var(--bs-primary-bg-subtle);
- --bs-alert-border-color: var(--bs-primary-border-subtle);
- --bs-alert-link-color: var(--bs-primary-text-emphasis);
-}
-
-.alert-secondary {
- --bs-alert-color: var(--bs-secondary-text-emphasis);
- --bs-alert-bg: var(--bs-secondary-bg-subtle);
- --bs-alert-border-color: var(--bs-secondary-border-subtle);
- --bs-alert-link-color: var(--bs-secondary-text-emphasis);
-}
-
-.alert-success {
- --bs-alert-color: var(--bs-success-text-emphasis);
- --bs-alert-bg: var(--bs-success-bg-subtle);
- --bs-alert-border-color: var(--bs-success-border-subtle);
- --bs-alert-link-color: var(--bs-success-text-emphasis);
-}
-
-.alert-info {
- --bs-alert-color: var(--bs-info-text-emphasis);
- --bs-alert-bg: var(--bs-info-bg-subtle);
- --bs-alert-border-color: var(--bs-info-border-subtle);
- --bs-alert-link-color: var(--bs-info-text-emphasis);
-}
-
-.alert-warning {
- --bs-alert-color: var(--bs-warning-text-emphasis);
- --bs-alert-bg: var(--bs-warning-bg-subtle);
- --bs-alert-border-color: var(--bs-warning-border-subtle);
- --bs-alert-link-color: var(--bs-warning-text-emphasis);
-}
-
-.alert-danger {
- --bs-alert-color: var(--bs-danger-text-emphasis);
- --bs-alert-bg: var(--bs-danger-bg-subtle);
- --bs-alert-border-color: var(--bs-danger-border-subtle);
- --bs-alert-link-color: var(--bs-danger-text-emphasis);
-}
-
-.alert-light {
- --bs-alert-color: var(--bs-light-text-emphasis);
- --bs-alert-bg: var(--bs-light-bg-subtle);
- --bs-alert-border-color: var(--bs-light-border-subtle);
- --bs-alert-link-color: var(--bs-light-text-emphasis);
-}
-
-.alert-dark {
- --bs-alert-color: var(--bs-dark-text-emphasis);
- --bs-alert-bg: var(--bs-dark-bg-subtle);
- --bs-alert-border-color: var(--bs-dark-border-subtle);
- --bs-alert-link-color: var(--bs-dark-text-emphasis);
-}
-
-@keyframes progress-bar-stripes {
- 0% {
- background-position-x: 1rem;
- }
-}
-.progress,
-.progress-stacked {
- --bs-progress-height: 1rem;
- --bs-progress-font-size: 0.75rem;
- --bs-progress-bg: var(--bs-secondary-bg);
- --bs-progress-border-radius: var(--bs-border-radius);
- --bs-progress-box-shadow: var(--bs-box-shadow-inset);
- --bs-progress-bar-color: #fff;
- --bs-progress-bar-bg: #0d6efd;
- --bs-progress-bar-transition: width 0.6s ease;
- display: flex;
- height: var(--bs-progress-height);
- overflow: hidden;
- font-size: var(--bs-progress-font-size);
- background-color: var(--bs-progress-bg);
- border-radius: var(--bs-progress-border-radius);
-}
-
-.progress-bar {
- display: flex;
- flex-direction: column;
- justify-content: center;
- overflow: hidden;
- color: var(--bs-progress-bar-color);
- text-align: center;
- white-space: nowrap;
- background-color: var(--bs-progress-bar-bg);
- transition: var(--bs-progress-bar-transition);
-}
-@media (prefers-reduced-motion: reduce) {
- .progress-bar {
- transition: none;
- }
-}
-
-.progress-bar-striped {
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 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: var(--bs-progress-height) var(--bs-progress-height);
-}
-
-.progress-stacked > .progress {
- overflow: visible;
-}
-
-.progress-stacked > .progress > .progress-bar {
- width: 100%;
-}
-
-.progress-bar-animated {
- animation: 1s linear infinite progress-bar-stripes;
-}
-@media (prefers-reduced-motion: reduce) {
- .progress-bar-animated {
- animation: none;
- }
-}
-
-.list-group {
- --bs-list-group-color: var(--bs-body-color);
- --bs-list-group-bg: var(--bs-body-bg);
- --bs-list-group-border-color: var(--bs-border-color);
- --bs-list-group-border-width: var(--bs-border-width);
- --bs-list-group-border-radius: var(--bs-border-radius);
- --bs-list-group-item-padding-x: 1rem;
- --bs-list-group-item-padding-y: 0.5rem;
- --bs-list-group-action-color: var(--bs-secondary-color);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);
- --bs-list-group-action-active-color: var(--bs-body-color);
- --bs-list-group-action-active-bg: var(--bs-secondary-bg);
- --bs-list-group-disabled-color: var(--bs-secondary-color);
- --bs-list-group-disabled-bg: var(--bs-body-bg);
- --bs-list-group-active-color: #fff;
- --bs-list-group-active-bg: #0d6efd;
- --bs-list-group-active-border-color: #0d6efd;
- display: flex;
- flex-direction: column;
- padding-left: 0;
- margin-bottom: 0;
- border-radius: var(--bs-list-group-border-radius);
-}
-
-.list-group-numbered {
- list-style-type: none;
- counter-reset: section;
-}
-.list-group-numbered > .list-group-item::before {
- content: counters(section, ".") ". ";
- counter-increment: section;
-}
-
-.list-group-item-action {
- width: 100%;
- color: var(--bs-list-group-action-color);
- text-align: inherit;
-}
-.list-group-item-action:hover, .list-group-item-action:focus {
- z-index: 1;
- color: var(--bs-list-group-action-hover-color);
- text-decoration: none;
- background-color: var(--bs-list-group-action-hover-bg);
-}
-.list-group-item-action:active {
- color: var(--bs-list-group-action-active-color);
- background-color: var(--bs-list-group-action-active-bg);
-}
-
-.list-group-item {
- position: relative;
- display: block;
- padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
- color: var(--bs-list-group-color);
- text-decoration: none;
- background-color: var(--bs-list-group-bg);
- border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
-}
-.list-group-item:first-child {
- border-top-left-radius: inherit;
- border-top-right-radius: inherit;
-}
-.list-group-item:last-child {
- border-bottom-right-radius: inherit;
- border-bottom-left-radius: inherit;
-}
-.list-group-item.disabled, .list-group-item:disabled {
- color: var(--bs-list-group-disabled-color);
- pointer-events: none;
- background-color: var(--bs-list-group-disabled-bg);
-}
-.list-group-item.active {
- z-index: 2;
- color: var(--bs-list-group-active-color);
- background-color: var(--bs-list-group-active-bg);
- border-color: var(--bs-list-group-active-border-color);
-}
-.list-group-item + .list-group-item {
- border-top-width: 0;
-}
-.list-group-item + .list-group-item.active {
- margin-top: calc(-1 * var(--bs-list-group-border-width));
- border-top-width: var(--bs-list-group-border-width);
-}
-
-.list-group-horizontal {
- flex-direction: row;
-}
-.list-group-horizontal > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
-}
-.list-group-horizontal > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
-}
-.list-group-horizontal > .list-group-item.active {
- margin-top: 0;
-}
-.list-group-horizontal > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
-}
-.list-group-horizontal > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
-}
-
-@media (min-width: 576px) {
- .list-group-horizontal-sm {
- flex-direction: row;
- }
- .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
- }
- .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
- }
- .list-group-horizontal-sm > .list-group-item.active {
- margin-top: 0;
- }
- .list-group-horizontal-sm > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
- }
- .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
- }
-}
-@media (min-width: 768px) {
- .list-group-horizontal-md {
- flex-direction: row;
- }
- .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
- }
- .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
- }
- .list-group-horizontal-md > .list-group-item.active {
- margin-top: 0;
- }
- .list-group-horizontal-md > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
- }
- .list-group-horizontal-md > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
- }
-}
-@media (min-width: 992px) {
- .list-group-horizontal-lg {
- flex-direction: row;
- }
- .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
- }
- .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
- }
- .list-group-horizontal-lg > .list-group-item.active {
- margin-top: 0;
- }
- .list-group-horizontal-lg > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
- }
- .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
- }
-}
-@media (min-width: 1200px) {
- .list-group-horizontal-xl {
- flex-direction: row;
- }
- .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
- }
- .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
- }
- .list-group-horizontal-xl > .list-group-item.active {
- margin-top: 0;
- }
- .list-group-horizontal-xl > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
- }
- .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
- }
-}
-@media (min-width: 1400px) {
- .list-group-horizontal-xxl {
- flex-direction: row;
- }
- .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
- border-bottom-left-radius: var(--bs-list-group-border-radius);
- border-top-right-radius: 0;
- }
- .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
- border-top-right-radius: var(--bs-list-group-border-radius);
- border-bottom-left-radius: 0;
- }
- .list-group-horizontal-xxl > .list-group-item.active {
- margin-top: 0;
- }
- .list-group-horizontal-xxl > .list-group-item + .list-group-item {
- border-top-width: var(--bs-list-group-border-width);
- border-left-width: 0;
- }
- .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
- margin-left: calc(-1 * var(--bs-list-group-border-width));
- border-left-width: var(--bs-list-group-border-width);
- }
-}
-.list-group-flush {
- border-radius: 0;
-}
-.list-group-flush > .list-group-item {
- border-width: 0 0 var(--bs-list-group-border-width);
-}
-.list-group-flush > .list-group-item:last-child {
- border-bottom-width: 0;
-}
-
-.list-group-item-primary {
- --bs-list-group-color: var(--bs-primary-text-emphasis);
- --bs-list-group-bg: var(--bs-primary-bg-subtle);
- --bs-list-group-border-color: var(--bs-primary-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);
- --bs-list-group-active-color: var(--bs-primary-bg-subtle);
- --bs-list-group-active-bg: var(--bs-primary-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);
-}
-
-.list-group-item-secondary {
- --bs-list-group-color: var(--bs-secondary-text-emphasis);
- --bs-list-group-bg: var(--bs-secondary-bg-subtle);
- --bs-list-group-border-color: var(--bs-secondary-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);
- --bs-list-group-active-color: var(--bs-secondary-bg-subtle);
- --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);
-}
-
-.list-group-item-success {
- --bs-list-group-color: var(--bs-success-text-emphasis);
- --bs-list-group-bg: var(--bs-success-bg-subtle);
- --bs-list-group-border-color: var(--bs-success-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-success-border-subtle);
- --bs-list-group-active-color: var(--bs-success-bg-subtle);
- --bs-list-group-active-bg: var(--bs-success-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-success-text-emphasis);
-}
-
-.list-group-item-info {
- --bs-list-group-color: var(--bs-info-text-emphasis);
- --bs-list-group-bg: var(--bs-info-bg-subtle);
- --bs-list-group-border-color: var(--bs-info-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-info-border-subtle);
- --bs-list-group-active-color: var(--bs-info-bg-subtle);
- --bs-list-group-active-bg: var(--bs-info-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-info-text-emphasis);
-}
-
-.list-group-item-warning {
- --bs-list-group-color: var(--bs-warning-text-emphasis);
- --bs-list-group-bg: var(--bs-warning-bg-subtle);
- --bs-list-group-border-color: var(--bs-warning-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);
- --bs-list-group-active-color: var(--bs-warning-bg-subtle);
- --bs-list-group-active-bg: var(--bs-warning-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);
-}
-
-.list-group-item-danger {
- --bs-list-group-color: var(--bs-danger-text-emphasis);
- --bs-list-group-bg: var(--bs-danger-bg-subtle);
- --bs-list-group-border-color: var(--bs-danger-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);
- --bs-list-group-active-color: var(--bs-danger-bg-subtle);
- --bs-list-group-active-bg: var(--bs-danger-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);
-}
-
-.list-group-item-light {
- --bs-list-group-color: var(--bs-light-text-emphasis);
- --bs-list-group-bg: var(--bs-light-bg-subtle);
- --bs-list-group-border-color: var(--bs-light-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-light-border-subtle);
- --bs-list-group-active-color: var(--bs-light-bg-subtle);
- --bs-list-group-active-bg: var(--bs-light-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-light-text-emphasis);
-}
-
-.list-group-item-dark {
- --bs-list-group-color: var(--bs-dark-text-emphasis);
- --bs-list-group-bg: var(--bs-dark-bg-subtle);
- --bs-list-group-border-color: var(--bs-dark-border-subtle);
- --bs-list-group-action-hover-color: var(--bs-emphasis-color);
- --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);
- --bs-list-group-action-active-color: var(--bs-emphasis-color);
- --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);
- --bs-list-group-active-color: var(--bs-dark-bg-subtle);
- --bs-list-group-active-bg: var(--bs-dark-text-emphasis);
- --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);
-}
-
-.btn-close {
- --bs-btn-close-color: #000;
- --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
- --bs-btn-close-opacity: 0.5;
- --bs-btn-close-hover-opacity: 0.75;
- --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
- --bs-btn-close-focus-opacity: 1;
- --bs-btn-close-disabled-opacity: 0.25;
- --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
- box-sizing: content-box;
- width: 1em;
- height: 1em;
- padding: 0.25em 0.25em;
- color: var(--bs-btn-close-color);
- background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
- border: 0;
- border-radius: 0.375rem;
- opacity: var(--bs-btn-close-opacity);
-}
-.btn-close:hover {
- color: var(--bs-btn-close-color);
- text-decoration: none;
- opacity: var(--bs-btn-close-hover-opacity);
-}
-.btn-close:focus {
- outline: 0;
- box-shadow: var(--bs-btn-close-focus-shadow);
- opacity: var(--bs-btn-close-focus-opacity);
-}
-.btn-close:disabled, .btn-close.disabled {
- pointer-events: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- opacity: var(--bs-btn-close-disabled-opacity);
-}
-
-.btn-close-white {
- filter: var(--bs-btn-close-white-filter);
-}
-
-[data-bs-theme=dark] .btn-close {
- filter: var(--bs-btn-close-white-filter);
-}
-
-.toast {
- --bs-toast-zindex: 1090;
- --bs-toast-padding-x: 0.75rem;
- --bs-toast-padding-y: 0.5rem;
- --bs-toast-spacing: 1.5rem;
- --bs-toast-max-width: 350px;
- --bs-toast-font-size: 0.875rem;
- --bs-toast-color: ;
- --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);
- --bs-toast-border-width: var(--bs-border-width);
- --bs-toast-border-color: var(--bs-border-color-translucent);
- --bs-toast-border-radius: var(--bs-border-radius);
- --bs-toast-box-shadow: var(--bs-box-shadow);
- --bs-toast-header-color: var(--bs-secondary-color);
- --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);
- --bs-toast-header-border-color: var(--bs-border-color-translucent);
- width: var(--bs-toast-max-width);
- max-width: 100%;
- font-size: var(--bs-toast-font-size);
- color: var(--bs-toast-color);
- pointer-events: auto;
- background-color: var(--bs-toast-bg);
- background-clip: padding-box;
- border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
- box-shadow: var(--bs-toast-box-shadow);
- border-radius: var(--bs-toast-border-radius);
-}
-.toast.showing {
- opacity: 0;
-}
-.toast:not(.show) {
- display: none;
-}
-
-.toast-container {
- --bs-toast-zindex: 1090;
- position: absolute;
- z-index: var(--bs-toast-zindex);
- width: -moz-max-content;
- width: max-content;
- max-width: 100%;
- pointer-events: none;
-}
-.toast-container > :not(:last-child) {
- margin-bottom: var(--bs-toast-spacing);
-}
-
-.toast-header {
- display: flex;
- align-items: center;
- padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
- color: var(--bs-toast-header-color);
- background-color: var(--bs-toast-header-bg);
- background-clip: padding-box;
- border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
- border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
- border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
-}
-.toast-header .btn-close {
- margin-right: calc(-0.5 * var(--bs-toast-padding-x));
- margin-left: var(--bs-toast-padding-x);
-}
-
-.toast-body {
- padding: var(--bs-toast-padding-x);
- word-wrap: break-word;
-}
-
-.modal {
- --bs-modal-zindex: 1055;
- --bs-modal-width: 500px;
- --bs-modal-padding: 1rem;
- --bs-modal-margin: 0.5rem;
- --bs-modal-color: ;
- --bs-modal-bg: var(--bs-body-bg);
- --bs-modal-border-color: var(--bs-border-color-translucent);
- --bs-modal-border-width: var(--bs-border-width);
- --bs-modal-border-radius: var(--bs-border-radius-lg);
- --bs-modal-box-shadow: var(--bs-box-shadow-sm);
- --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
- --bs-modal-header-padding-x: 1rem;
- --bs-modal-header-padding-y: 1rem;
- --bs-modal-header-padding: 1rem 1rem;
- --bs-modal-header-border-color: var(--bs-border-color);
- --bs-modal-header-border-width: var(--bs-border-width);
- --bs-modal-title-line-height: 1.5;
- --bs-modal-footer-gap: 0.5rem;
- --bs-modal-footer-bg: ;
- --bs-modal-footer-border-color: var(--bs-border-color);
- --bs-modal-footer-border-width: var(--bs-border-width);
- position: fixed;
- top: 0;
- left: 0;
- z-index: var(--bs-modal-zindex);
- display: none;
- width: 100%;
- height: 100%;
- overflow-x: hidden;
- overflow-y: auto;
- outline: 0;
-}
-
-.modal-dialog {
- position: relative;
- width: auto;
- margin: var(--bs-modal-margin);
- pointer-events: none;
-}
-.modal.fade .modal-dialog {
- transition: transform 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% - var(--bs-modal-margin) * 2);
-}
-.modal-dialog-scrollable .modal-content {
- max-height: 100%;
- overflow: hidden;
-}
-.modal-dialog-scrollable .modal-body {
- overflow-y: auto;
-}
-
-.modal-dialog-centered {
- display: flex;
- align-items: center;
- min-height: calc(100% - var(--bs-modal-margin) * 2);
-}
-
-.modal-content {
- position: relative;
- display: flex;
- flex-direction: column;
- width: 100%;
- color: var(--bs-modal-color);
- pointer-events: auto;
- background-color: var(--bs-modal-bg);
- background-clip: padding-box;
- border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
- border-radius: var(--bs-modal-border-radius);
- outline: 0;
-}
-
-.modal-backdrop {
- --bs-backdrop-zindex: 1050;
- --bs-backdrop-bg: #000;
- --bs-backdrop-opacity: 0.5;
- position: fixed;
- top: 0;
- left: 0;
- z-index: var(--bs-backdrop-zindex);
- width: 100vw;
- height: 100vh;
- background-color: var(--bs-backdrop-bg);
-}
-.modal-backdrop.fade {
- opacity: 0;
-}
-.modal-backdrop.show {
- opacity: var(--bs-backdrop-opacity);
-}
-
-.modal-header {
- display: flex;
- flex-shrink: 0;
- align-items: center;
- justify-content: space-between;
- padding: var(--bs-modal-header-padding);
- border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
- border-top-left-radius: var(--bs-modal-inner-border-radius);
- border-top-right-radius: var(--bs-modal-inner-border-radius);
-}
-.modal-header .btn-close {
- padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
- margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
-}
-
-.modal-title {
- margin-bottom: 0;
- line-height: var(--bs-modal-title-line-height);
-}
-
-.modal-body {
- position: relative;
- flex: 1 1 auto;
- padding: var(--bs-modal-padding);
-}
-
-.modal-footer {
- display: flex;
- flex-shrink: 0;
- flex-wrap: wrap;
- align-items: center;
- justify-content: flex-end;
- padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
- background-color: var(--bs-modal-footer-bg);
- border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
- border-bottom-right-radius: var(--bs-modal-inner-border-radius);
- border-bottom-left-radius: var(--bs-modal-inner-border-radius);
-}
-.modal-footer > * {
- margin: calc(var(--bs-modal-footer-gap) * 0.5);
-}
-
-@media (min-width: 576px) {
- .modal {
- --bs-modal-margin: 1.75rem;
- --bs-modal-box-shadow: var(--bs-box-shadow);
- }
- .modal-dialog {
- max-width: var(--bs-modal-width);
- margin-right: auto;
- margin-left: auto;
- }
- .modal-sm {
- --bs-modal-width: 300px;
- }
-}
-@media (min-width: 992px) {
- .modal-lg,
- .modal-xl {
- --bs-modal-width: 800px;
- }
-}
-@media (min-width: 1200px) {
- .modal-xl {
- --bs-modal-width: 1140px;
- }
-}
-.modal-fullscreen {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
-}
-.modal-fullscreen .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
-}
-.modal-fullscreen .modal-header,
-.modal-fullscreen .modal-footer {
- border-radius: 0;
-}
-.modal-fullscreen .modal-body {
- overflow-y: auto;
-}
-
-@media (max-width: 575.98px) {
- .modal-fullscreen-sm-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
- .modal-fullscreen-sm-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
- .modal-fullscreen-sm-down .modal-header,
- .modal-fullscreen-sm-down .modal-footer {
- border-radius: 0;
- }
- .modal-fullscreen-sm-down .modal-body {
- overflow-y: auto;
- }
-}
-@media (max-width: 767.98px) {
- .modal-fullscreen-md-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
- .modal-fullscreen-md-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
- .modal-fullscreen-md-down .modal-header,
- .modal-fullscreen-md-down .modal-footer {
- border-radius: 0;
- }
- .modal-fullscreen-md-down .modal-body {
- overflow-y: auto;
- }
-}
-@media (max-width: 991.98px) {
- .modal-fullscreen-lg-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
- .modal-fullscreen-lg-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
- .modal-fullscreen-lg-down .modal-header,
- .modal-fullscreen-lg-down .modal-footer {
- border-radius: 0;
- }
- .modal-fullscreen-lg-down .modal-body {
- overflow-y: auto;
- }
-}
-@media (max-width: 1199.98px) {
- .modal-fullscreen-xl-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
- .modal-fullscreen-xl-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
- .modal-fullscreen-xl-down .modal-header,
- .modal-fullscreen-xl-down .modal-footer {
- border-radius: 0;
- }
- .modal-fullscreen-xl-down .modal-body {
- overflow-y: auto;
- }
-}
-@media (max-width: 1399.98px) {
- .modal-fullscreen-xxl-down {
- width: 100vw;
- max-width: none;
- height: 100%;
- margin: 0;
- }
- .modal-fullscreen-xxl-down .modal-content {
- height: 100%;
- border: 0;
- border-radius: 0;
- }
- .modal-fullscreen-xxl-down .modal-header,
- .modal-fullscreen-xxl-down .modal-footer {
- border-radius: 0;
- }
- .modal-fullscreen-xxl-down .modal-body {
- overflow-y: auto;
- }
-}
-.tooltip {
- --bs-tooltip-zindex: 1080;
- --bs-tooltip-max-width: 200px;
- --bs-tooltip-padding-x: 0.5rem;
- --bs-tooltip-padding-y: 0.25rem;
- --bs-tooltip-margin: ;
- --bs-tooltip-font-size: 0.875rem;
- --bs-tooltip-color: var(--bs-body-bg);
- --bs-tooltip-bg: var(--bs-emphasis-color);
- --bs-tooltip-border-radius: var(--bs-border-radius);
- --bs-tooltip-opacity: 0.9;
- --bs-tooltip-arrow-width: 0.8rem;
- --bs-tooltip-arrow-height: 0.4rem;
- z-index: var(--bs-tooltip-zindex);
- display: block;
- margin: var(--bs-tooltip-margin);
- font-family: var(--bs-font-sans-serif);
- font-style: normal;
- font-weight: 400;
- line-height: 1.5;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- letter-spacing: normal;
- word-break: normal;
- white-space: normal;
- word-spacing: normal;
- line-break: auto;
- font-size: var(--bs-tooltip-font-size);
- word-wrap: break-word;
- opacity: 0;
-}
-.tooltip.show {
- opacity: var(--bs-tooltip-opacity);
-}
-.tooltip .tooltip-arrow {
- display: block;
- width: var(--bs-tooltip-arrow-width);
- height: var(--bs-tooltip-arrow-height);
-}
-.tooltip .tooltip-arrow::before {
- position: absolute;
- content: "";
- border-color: transparent;
- border-style: solid;
-}
-
-.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
- bottom: calc(-1 * var(--bs-tooltip-arrow-height));
-}
-.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
- top: -1px;
- border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
- border-top-color: var(--bs-tooltip-bg);
-}
-
-/* rtl:begin:ignore */
-.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
- left: calc(-1 * var(--bs-tooltip-arrow-height));
- width: var(--bs-tooltip-arrow-height);
- height: var(--bs-tooltip-arrow-width);
-}
-.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
- right: -1px;
- border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
- border-right-color: var(--bs-tooltip-bg);
-}
-
-/* rtl:end:ignore */
-.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
- top: calc(-1 * var(--bs-tooltip-arrow-height));
-}
-.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
- bottom: -1px;
- border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
- border-bottom-color: var(--bs-tooltip-bg);
-}
-
-/* rtl:begin:ignore */
-.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
- right: calc(-1 * var(--bs-tooltip-arrow-height));
- width: var(--bs-tooltip-arrow-height);
- height: var(--bs-tooltip-arrow-width);
-}
-.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
- left: -1px;
- border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
- border-left-color: var(--bs-tooltip-bg);
-}
-
-/* rtl:end:ignore */
-.tooltip-inner {
- max-width: var(--bs-tooltip-max-width);
- padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
- color: var(--bs-tooltip-color);
- text-align: center;
- background-color: var(--bs-tooltip-bg);
- border-radius: var(--bs-tooltip-border-radius);
-}
-
-.popover {
- --bs-popover-zindex: 1070;
- --bs-popover-max-width: 276px;
- --bs-popover-font-size: 0.875rem;
- --bs-popover-bg: var(--bs-body-bg);
- --bs-popover-border-width: var(--bs-border-width);
- --bs-popover-border-color: var(--bs-border-color-translucent);
- --bs-popover-border-radius: var(--bs-border-radius-lg);
- --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));
- --bs-popover-box-shadow: var(--bs-box-shadow);
- --bs-popover-header-padding-x: 1rem;
- --bs-popover-header-padding-y: 0.5rem;
- --bs-popover-header-font-size: 1rem;
- --bs-popover-header-color: inherit;
- --bs-popover-header-bg: var(--bs-secondary-bg);
- --bs-popover-body-padding-x: 1rem;
- --bs-popover-body-padding-y: 1rem;
- --bs-popover-body-color: var(--bs-body-color);
- --bs-popover-arrow-width: 1rem;
- --bs-popover-arrow-height: 0.5rem;
- --bs-popover-arrow-border: var(--bs-popover-border-color);
- z-index: var(--bs-popover-zindex);
- display: block;
- max-width: var(--bs-popover-max-width);
- font-family: var(--bs-font-sans-serif);
- font-style: normal;
- font-weight: 400;
- line-height: 1.5;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- letter-spacing: normal;
- word-break: normal;
- white-space: normal;
- word-spacing: normal;
- line-break: auto;
- font-size: var(--bs-popover-font-size);
- word-wrap: break-word;
- background-color: var(--bs-popover-bg);
- background-clip: padding-box;
- border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
- border-radius: var(--bs-popover-border-radius);
-}
-.popover .popover-arrow {
- display: block;
- width: var(--bs-popover-arrow-width);
- height: var(--bs-popover-arrow-height);
-}
-.popover .popover-arrow::before, .popover .popover-arrow::after {
- position: absolute;
- display: block;
- content: "";
- border-color: transparent;
- border-style: solid;
- border-width: 0;
-}
-
-.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
- bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
-}
-.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
- border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
-}
-.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
- bottom: 0;
- border-top-color: var(--bs-popover-arrow-border);
-}
-.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
- bottom: var(--bs-popover-border-width);
- border-top-color: var(--bs-popover-bg);
-}
-
-/* rtl:begin:ignore */
-.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
- left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
- width: var(--bs-popover-arrow-height);
- height: var(--bs-popover-arrow-width);
-}
-.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
- border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
-}
-.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
- left: 0;
- border-right-color: var(--bs-popover-arrow-border);
-}
-.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
- left: var(--bs-popover-border-width);
- border-right-color: var(--bs-popover-bg);
-}
-
-/* rtl:end:ignore */
-.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
- top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
-}
-.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
- border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
-}
-.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
- top: 0;
- border-bottom-color: var(--bs-popover-arrow-border);
-}
-.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
- top: var(--bs-popover-border-width);
- border-bottom-color: var(--bs-popover-bg);
-}
-.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: var(--bs-popover-arrow-width);
- margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
- content: "";
- border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
-}
-
-/* rtl:begin:ignore */
-.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
- right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
- width: var(--bs-popover-arrow-height);
- height: var(--bs-popover-arrow-width);
-}
-.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
- border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
-}
-.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
- right: 0;
- border-left-color: var(--bs-popover-arrow-border);
-}
-.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
- right: var(--bs-popover-border-width);
- border-left-color: var(--bs-popover-bg);
-}
-
-/* rtl:end:ignore */
-.popover-header {
- padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
- margin-bottom: 0;
- font-size: var(--bs-popover-header-font-size);
- color: var(--bs-popover-header-color);
- background-color: var(--bs-popover-header-bg);
- border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
- border-top-left-radius: var(--bs-popover-inner-border-radius);
- border-top-right-radius: var(--bs-popover-inner-border-radius);
-}
-.popover-header:empty {
- display: none;
-}
-
-.popover-body {
- padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
- color: var(--bs-popover-body-color);
-}
-
-.carousel {
- position: relative;
-}
-
-.carousel.pointer-event {
- touch-action: pan-y;
-}
-
-.carousel-inner {
- position: relative;
- width: 100%;
- overflow: hidden;
-}
-.carousel-inner::after {
- display: block;
- clear: both;
- content: "";
-}
-
-.carousel-item {
- position: relative;
- display: none;
- float: left;
- width: 100%;
- margin-right: -100%;
- backface-visibility: hidden;
- transition: transform 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;
-}
-
-.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%);
-}
-
-.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%;
-}
-.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;
-}
-
-[data-bs-theme=dark] .carousel .carousel-control-prev-icon,
-[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,
-[data-bs-theme=dark].carousel .carousel-control-next-icon {
- filter: invert(1) grayscale(100);
-}
-[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
- background-color: #000;
-}
-[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {
- color: #000;
-}
-
-.spinner-grow,
-.spinner-border {
- display: inline-block;
- width: var(--bs-spinner-width);
- height: var(--bs-spinner-height);
- vertical-align: var(--bs-spinner-vertical-align);
- border-radius: 50%;
- animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
-}
-
-@keyframes spinner-border {
- to {
- transform: rotate(360deg) /* rtl:ignore */;
- }
-}
-.spinner-border {
- --bs-spinner-width: 2rem;
- --bs-spinner-height: 2rem;
- --bs-spinner-vertical-align: -0.125em;
- --bs-spinner-border-width: 0.25em;
- --bs-spinner-animation-speed: 0.75s;
- --bs-spinner-animation-name: spinner-border;
- border: var(--bs-spinner-border-width) solid currentcolor;
- border-right-color: transparent;
-}
-
-.spinner-border-sm {
- --bs-spinner-width: 1rem;
- --bs-spinner-height: 1rem;
- --bs-spinner-border-width: 0.2em;
-}
-
-@keyframes spinner-grow {
- 0% {
- transform: scale(0);
- }
- 50% {
- opacity: 1;
- transform: none;
- }
-}
-.spinner-grow {
- --bs-spinner-width: 2rem;
- --bs-spinner-height: 2rem;
- --bs-spinner-vertical-align: -0.125em;
- --bs-spinner-animation-speed: 0.75s;
- --bs-spinner-animation-name: spinner-grow;
- background-color: currentcolor;
- opacity: 0;
-}
-
-.spinner-grow-sm {
- --bs-spinner-width: 1rem;
- --bs-spinner-height: 1rem;
-}
-
-@media (prefers-reduced-motion: reduce) {
- .spinner-border,
- .spinner-grow {
- --bs-spinner-animation-speed: 1.5s;
- }
-}
-.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
- --bs-offcanvas-zindex: 1045;
- --bs-offcanvas-width: 400px;
- --bs-offcanvas-height: 30vh;
- --bs-offcanvas-padding-x: 1rem;
- --bs-offcanvas-padding-y: 1rem;
- --bs-offcanvas-color: var(--bs-body-color);
- --bs-offcanvas-bg: var(--bs-body-bg);
- --bs-offcanvas-border-width: var(--bs-border-width);
- --bs-offcanvas-border-color: var(--bs-border-color-translucent);
- --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);
- --bs-offcanvas-transition: transform 0.3s ease-in-out;
- --bs-offcanvas-title-line-height: 1.5;
-}
-
-@media (max-width: 575.98px) {
- .offcanvas-sm {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
- }
-}
-@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
- .offcanvas-sm {
- transition: none;
- }
-}
-@media (max-width: 575.98px) {
- .offcanvas-sm.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
- }
- .offcanvas-sm.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
- }
- .offcanvas-sm.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
- }
- .offcanvas-sm.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
- }
- .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
- transform: none;
- }
- .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
- visibility: visible;
- }
-}
-@media (min-width: 576px) {
- .offcanvas-sm {
- --bs-offcanvas-height: auto;
- --bs-offcanvas-border-width: 0;
- background-color: transparent !important;
- }
- .offcanvas-sm .offcanvas-header {
- display: none;
- }
- .offcanvas-sm .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- background-color: transparent !important;
- }
-}
-
-@media (max-width: 767.98px) {
- .offcanvas-md {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
- }
-}
-@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
- .offcanvas-md {
- transition: none;
- }
-}
-@media (max-width: 767.98px) {
- .offcanvas-md.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
- }
- .offcanvas-md.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
- }
- .offcanvas-md.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
- }
- .offcanvas-md.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
- }
- .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
- transform: none;
- }
- .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
- visibility: visible;
- }
-}
-@media (min-width: 768px) {
- .offcanvas-md {
- --bs-offcanvas-height: auto;
- --bs-offcanvas-border-width: 0;
- background-color: transparent !important;
- }
- .offcanvas-md .offcanvas-header {
- display: none;
- }
- .offcanvas-md .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- background-color: transparent !important;
- }
-}
-
-@media (max-width: 991.98px) {
- .offcanvas-lg {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
- }
-}
-@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
- .offcanvas-lg {
- transition: none;
- }
-}
-@media (max-width: 991.98px) {
- .offcanvas-lg.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
- }
- .offcanvas-lg.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
- }
- .offcanvas-lg.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
- }
- .offcanvas-lg.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
- }
- .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
- transform: none;
- }
- .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
- visibility: visible;
- }
-}
-@media (min-width: 992px) {
- .offcanvas-lg {
- --bs-offcanvas-height: auto;
- --bs-offcanvas-border-width: 0;
- background-color: transparent !important;
- }
- .offcanvas-lg .offcanvas-header {
- display: none;
- }
- .offcanvas-lg .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- background-color: transparent !important;
- }
-}
-
-@media (max-width: 1199.98px) {
- .offcanvas-xl {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
- }
-}
-@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
- .offcanvas-xl {
- transition: none;
- }
-}
-@media (max-width: 1199.98px) {
- .offcanvas-xl.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
- }
- .offcanvas-xl.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
- }
- .offcanvas-xl.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
- }
- .offcanvas-xl.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
- }
- .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
- transform: none;
- }
- .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
- visibility: visible;
- }
-}
-@media (min-width: 1200px) {
- .offcanvas-xl {
- --bs-offcanvas-height: auto;
- --bs-offcanvas-border-width: 0;
- background-color: transparent !important;
- }
- .offcanvas-xl .offcanvas-header {
- display: none;
- }
- .offcanvas-xl .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- background-color: transparent !important;
- }
-}
-
-@media (max-width: 1399.98px) {
- .offcanvas-xxl {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
- }
-}
-@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
- .offcanvas-xxl {
- transition: none;
- }
-}
-@media (max-width: 1399.98px) {
- .offcanvas-xxl.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
- }
- .offcanvas-xxl.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
- }
- .offcanvas-xxl.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
- }
- .offcanvas-xxl.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
- }
- .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
- transform: none;
- }
- .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
- visibility: visible;
- }
-}
-@media (min-width: 1400px) {
- .offcanvas-xxl {
- --bs-offcanvas-height: auto;
- --bs-offcanvas-border-width: 0;
- background-color: transparent !important;
- }
- .offcanvas-xxl .offcanvas-header {
- display: none;
- }
- .offcanvas-xxl .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- background-color: transparent !important;
- }
-}
-
-.offcanvas {
- position: fixed;
- bottom: 0;
- z-index: var(--bs-offcanvas-zindex);
- display: flex;
- flex-direction: column;
- max-width: 100%;
- color: var(--bs-offcanvas-color);
- visibility: hidden;
- background-color: var(--bs-offcanvas-bg);
- background-clip: padding-box;
- outline: 0;
- transition: var(--bs-offcanvas-transition);
-}
-@media (prefers-reduced-motion: reduce) {
- .offcanvas {
- transition: none;
- }
-}
-.offcanvas.offcanvas-start {
- top: 0;
- left: 0;
- width: var(--bs-offcanvas-width);
- border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(-100%);
-}
-.offcanvas.offcanvas-end {
- top: 0;
- right: 0;
- width: var(--bs-offcanvas-width);
- border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateX(100%);
-}
-.offcanvas.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(-100%);
-}
-.offcanvas.offcanvas-bottom {
- right: 0;
- left: 0;
- height: var(--bs-offcanvas-height);
- max-height: 100%;
- border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
- transform: translateY(100%);
-}
-.offcanvas.showing, .offcanvas.show:not(.hiding) {
- transform: none;
-}
-.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
- visibility: visible;
-}
-
-.offcanvas-backdrop {
- position: fixed;
- top: 0;
- left: 0;
- z-index: 1040;
- width: 100vw;
- height: 100vh;
- background-color: #000;
-}
-.offcanvas-backdrop.fade {
- opacity: 0;
-}
-.offcanvas-backdrop.show {
- opacity: 0.5;
-}
-
-.offcanvas-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
-}
-.offcanvas-header .btn-close {
- padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
- margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
- margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
- margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
-}
-
-.offcanvas-title {
- margin-bottom: 0;
- line-height: var(--bs-offcanvas-title-line-height);
-}
-
-.offcanvas-body {
- flex-grow: 1;
- padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
- overflow-y: auto;
-}
-
-.placeholder {
- display: inline-block;
- min-height: 1em;
- vertical-align: middle;
- cursor: wait;
- background-color: currentcolor;
- opacity: 0.5;
-}
-.placeholder.btn::before {
- display: inline-block;
- content: "";
-}
-
-.placeholder-xs {
- min-height: 0.6em;
-}
-
-.placeholder-sm {
- min-height: 0.8em;
-}
-
-.placeholder-lg {
- min-height: 1.2em;
-}
-
-.placeholder-glow .placeholder {
- animation: placeholder-glow 2s ease-in-out infinite;
-}
-
-@keyframes placeholder-glow {
- 50% {
- opacity: 0.2;
- }
-}
-.placeholder-wave {
- -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
- mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
- -webkit-mask-size: 200% 100%;
- mask-size: 200% 100%;
- animation: placeholder-wave 2s linear infinite;
-}
-
-@keyframes placeholder-wave {
- 100% {
- -webkit-mask-position: -200% 0%;
- mask-position: -200% 0%;
- }
-}
-.clearfix::after {
- display: block;
- clear: both;
- content: "";
-}
-
-.text-bg-primary {
- color: #fff !important;
- background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-secondary {
- color: #fff !important;
- background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-success {
- color: #fff !important;
- background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-info {
- color: #000 !important;
- background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-warning {
- color: #000 !important;
- background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-danger {
- color: #fff !important;
- background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-light {
- color: #000 !important;
- background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.text-bg-dark {
- color: #fff !important;
- background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;
-}
-
-.link-primary {
- color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-primary:hover, .link-primary:focus {
- color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-secondary {
- color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-secondary:hover, .link-secondary:focus {
- color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-success {
- color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-success:hover, .link-success:focus {
- color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-info {
- color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-info:hover, .link-info:focus {
- color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-warning {
- color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-warning:hover, .link-warning:focus {
- color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-danger {
- color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-danger:hover, .link-danger:focus {
- color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-light {
- color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-light:hover, .link-light:focus {
- color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-dark {
- color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-dark:hover, .link-dark:focus {
- color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-body-emphasis {
- color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
- text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-.link-body-emphasis:hover, .link-body-emphasis:focus {
- color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
- text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
-}
-
-.focus-ring:focus {
- outline: 0;
- box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);
-}
-
-.icon-link {
- display: inline-flex;
- gap: 0.375rem;
- align-items: center;
- text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));
- text-underline-offset: 0.25em;
- backface-visibility: hidden;
-}
-.icon-link > .bi {
- flex-shrink: 0;
- width: 1em;
- height: 1em;
- fill: currentcolor;
- transition: 0.2s ease-in-out transform;
-}
-@media (prefers-reduced-motion: reduce) {
- .icon-link > .bi {
- transition: none;
- }
-}
-
-.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {
- transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));
-}
-
-.ratio {
- position: relative;
- width: 100%;
-}
-.ratio::before {
- display: block;
- padding-top: var(--bs-aspect-ratio);
- content: "";
-}
-.ratio > * {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
-
-.ratio-1x1 {
- --bs-aspect-ratio: 100%;
-}
-
-.ratio-4x3 {
- --bs-aspect-ratio: 75%;
-}
-
-.ratio-16x9 {
- --bs-aspect-ratio: 56.25%;
-}
-
-.ratio-21x9 {
- --bs-aspect-ratio: 42.8571428571%;
-}
-
-.fixed-top {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1030;
-}
-
-.fixed-bottom {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1030;
-}
-
-.sticky-top {
- position: sticky;
- top: 0;
- z-index: 1020;
-}
-
-.sticky-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
-}
-
-@media (min-width: 576px) {
- .sticky-sm-top {
- position: sticky;
- top: 0;
- z-index: 1020;
- }
- .sticky-sm-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
- }
-}
-@media (min-width: 768px) {
- .sticky-md-top {
- position: sticky;
- top: 0;
- z-index: 1020;
- }
- .sticky-md-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
- }
-}
-@media (min-width: 992px) {
- .sticky-lg-top {
- position: sticky;
- top: 0;
- z-index: 1020;
- }
- .sticky-lg-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
- }
-}
-@media (min-width: 1200px) {
- .sticky-xl-top {
- position: sticky;
- top: 0;
- z-index: 1020;
- }
- .sticky-xl-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
- }
-}
-@media (min-width: 1400px) {
- .sticky-xxl-top {
- position: sticky;
- top: 0;
- z-index: 1020;
- }
- .sticky-xxl-bottom {
- position: sticky;
- bottom: 0;
- z-index: 1020;
- }
-}
-.hstack {
- display: flex;
- flex-direction: row;
- align-items: center;
- align-self: stretch;
-}
-
-.vstack {
- display: flex;
- flex: 1 1 auto;
- flex-direction: column;
- align-self: stretch;
-}
-
-.visually-hidden,
-.visually-hidden-focusable:not(:focus):not(:focus-within) {
- width: 1px !important;
- height: 1px !important;
- padding: 0 !important;
- margin: -1px !important;
- overflow: hidden !important;
- clip: rect(0, 0, 0, 0) !important;
- white-space: nowrap !important;
- border: 0 !important;
-}
-.visually-hidden:not(caption),
-.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
- position: absolute !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;
-}
-
-.vr {
- display: inline-block;
- align-self: stretch;
- width: var(--bs-border-width);
- min-height: 1em;
- background-color: currentcolor;
- opacity: 0.25;
-}
-
-.align-baseline {
- vertical-align: baseline !important;
-}
-
-.align-top {
- vertical-align: top !important;
-}
-
-.align-middle {
- vertical-align: middle !important;
-}
-
-.align-bottom {
- vertical-align: bottom !important;
-}
-
-.align-text-bottom {
- vertical-align: text-bottom !important;
-}
-
-.align-text-top {
- vertical-align: text-top !important;
-}
-
-.float-start {
- float: left !important;
-}
-
-.float-end {
- float: right !important;
-}
-
-.float-none {
- float: none !important;
-}
-
-.object-fit-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
-}
-
-.object-fit-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
-}
-
-.object-fit-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
-}
-
-.object-fit-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
-}
-
-.object-fit-none {
- -o-object-fit: none !important;
- object-fit: none !important;
-}
-
-.opacity-0 {
- opacity: 0 !important;
-}
-
-.opacity-25 {
- opacity: 0.25 !important;
-}
-
-.opacity-50 {
- opacity: 0.5 !important;
-}
-
-.opacity-75 {
- opacity: 0.75 !important;
-}
-
-.opacity-100 {
- opacity: 1 !important;
-}
-
-.overflow-auto {
- overflow: auto !important;
-}
-
-.overflow-hidden {
- overflow: hidden !important;
-}
-
-.overflow-visible {
- overflow: visible !important;
-}
-
-.overflow-scroll {
- overflow: scroll !important;
-}
-
-.overflow-x-auto {
- overflow-x: auto !important;
-}
-
-.overflow-x-hidden {
- overflow-x: hidden !important;
-}
-
-.overflow-x-visible {
- overflow-x: visible !important;
-}
-
-.overflow-x-scroll {
- overflow-x: scroll !important;
-}
-
-.overflow-y-auto {
- overflow-y: auto !important;
-}
-
-.overflow-y-hidden {
- overflow-y: hidden !important;
-}
-
-.overflow-y-visible {
- overflow-y: visible !important;
-}
-
-.overflow-y-scroll {
- overflow-y: scroll !important;
-}
-
-.d-inline {
- display: inline !important;
-}
-
-.d-inline-block {
- display: inline-block !important;
-}
-
-.d-block {
- display: block !important;
-}
-
-.d-grid {
- display: grid !important;
-}
-
-.d-inline-grid {
- display: inline-grid !important;
-}
-
-.d-table {
- display: table !important;
-}
-
-.d-table-row {
- display: table-row !important;
-}
-
-.d-table-cell {
- display: table-cell !important;
-}
-
-.d-flex {
- display: flex !important;
-}
-
-.d-inline-flex {
- display: inline-flex !important;
-}
-
-.d-none {
- display: none !important;
-}
-
-.shadow {
- box-shadow: var(--bs-box-shadow) !important;
-}
-
-.shadow-sm {
- box-shadow: var(--bs-box-shadow-sm) !important;
-}
-
-.shadow-lg {
- box-shadow: var(--bs-box-shadow-lg) !important;
-}
-
-.shadow-none {
- box-shadow: none !important;
-}
-
-.focus-ring-primary {
- --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-secondary {
- --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-success {
- --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-info {
- --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-warning {
- --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-danger {
- --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-light {
- --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));
-}
-
-.focus-ring-dark {
- --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));
-}
-
-.position-static {
- position: static !important;
-}
-
-.position-relative {
- position: relative !important;
-}
-
-.position-absolute {
- position: absolute !important;
-}
-
-.position-fixed {
- position: fixed !important;
-}
-
-.position-sticky {
- position: sticky !important;
-}
-
-.top-0 {
- top: 0 !important;
-}
-
-.top-50 {
- top: 50% !important;
-}
-
-.top-100 {
- top: 100% !important;
-}
-
-.bottom-0 {
- bottom: 0 !important;
-}
-
-.bottom-50 {
- bottom: 50% !important;
-}
-
-.bottom-100 {
- bottom: 100% !important;
-}
-
-.start-0 {
- left: 0 !important;
-}
-
-.start-50 {
- left: 50% !important;
-}
-
-.start-100 {
- left: 100% !important;
-}
-
-.end-0 {
- right: 0 !important;
-}
-
-.end-50 {
- right: 50% !important;
-}
-
-.end-100 {
- right: 100% !important;
-}
-
-.translate-middle {
- transform: translate(-50%, -50%) !important;
-}
-
-.translate-middle-x {
- transform: translateX(-50%) !important;
-}
-
-.translate-middle-y {
- transform: translateY(-50%) !important;
-}
-
-.border {
- border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
-}
-
-.border-0 {
- border: 0 !important;
-}
-
-.border-top {
- border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
-}
-
-.border-top-0 {
- border-top: 0 !important;
-}
-
-.border-end {
- border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
-}
-
-.border-end-0 {
- border-right: 0 !important;
-}
-
-.border-bottom {
- border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
-}
-
-.border-bottom-0 {
- border-bottom: 0 !important;
-}
-
-.border-start {
- border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
-}
-
-.border-start-0 {
- border-left: 0 !important;
-}
-
-.border-primary {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-secondary {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-success {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-info {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-warning {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-danger {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-light {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-dark {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-black {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-white {
- --bs-border-opacity: 1;
- border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
-}
-
-.border-primary-subtle {
- border-color: var(--bs-primary-border-subtle) !important;
-}
-
-.border-secondary-subtle {
- border-color: var(--bs-secondary-border-subtle) !important;
-}
-
-.border-success-subtle {
- border-color: var(--bs-success-border-subtle) !important;
-}
-
-.border-info-subtle {
- border-color: var(--bs-info-border-subtle) !important;
-}
-
-.border-warning-subtle {
- border-color: var(--bs-warning-border-subtle) !important;
-}
-
-.border-danger-subtle {
- border-color: var(--bs-danger-border-subtle) !important;
-}
-
-.border-light-subtle {
- border-color: var(--bs-light-border-subtle) !important;
-}
-
-.border-dark-subtle {
- border-color: var(--bs-dark-border-subtle) !important;
-}
-
-.border-1 {
- border-width: 1px !important;
-}
-
-.border-2 {
- border-width: 2px !important;
-}
-
-.border-3 {
- border-width: 3px !important;
-}
-
-.border-4 {
- border-width: 4px !important;
-}
-
-.border-5 {
- border-width: 5px !important;
-}
-
-.border-opacity-10 {
- --bs-border-opacity: 0.1;
-}
-
-.border-opacity-25 {
- --bs-border-opacity: 0.25;
-}
-
-.border-opacity-50 {
- --bs-border-opacity: 0.5;
-}
-
-.border-opacity-75 {
- --bs-border-opacity: 0.75;
-}
-
-.border-opacity-100 {
- --bs-border-opacity: 1;
-}
-
-.w-25 {
- width: 25% !important;
-}
-
-.w-50 {
- width: 50% !important;
-}
-
-.w-75 {
- width: 75% !important;
-}
-
-.w-100 {
- width: 100% !important;
-}
-
-.w-auto {
- width: auto !important;
-}
-
-.mw-100 {
- max-width: 100% !important;
-}
-
-.vw-100 {
- width: 100vw !important;
-}
-
-.min-vw-100 {
- min-width: 100vw !important;
-}
-
-.h-25 {
- height: 25% !important;
-}
-
-.h-50 {
- height: 50% !important;
-}
-
-.h-75 {
- height: 75% !important;
-}
-
-.h-100 {
- height: 100% !important;
-}
-
-.h-auto {
- height: auto !important;
-}
-
-.mh-100 {
- max-height: 100% !important;
-}
-
-.vh-100 {
- height: 100vh !important;
-}
-
-.min-vh-100 {
- min-height: 100vh !important;
-}
-
-.flex-fill {
- flex: 1 1 auto !important;
-}
-
-.flex-row {
- flex-direction: row !important;
-}
-
-.flex-column {
- flex-direction: column !important;
-}
-
-.flex-row-reverse {
- flex-direction: row-reverse !important;
-}
-
-.flex-column-reverse {
- flex-direction: column-reverse !important;
-}
-
-.flex-grow-0 {
- flex-grow: 0 !important;
-}
-
-.flex-grow-1 {
- flex-grow: 1 !important;
-}
-
-.flex-shrink-0 {
- flex-shrink: 0 !important;
-}
-
-.flex-shrink-1 {
- flex-shrink: 1 !important;
-}
-
-.flex-wrap {
- flex-wrap: wrap !important;
-}
-
-.flex-nowrap {
- flex-wrap: nowrap !important;
-}
-
-.flex-wrap-reverse {
- flex-wrap: wrap-reverse !important;
-}
-
-.justify-content-start {
- justify-content: flex-start !important;
-}
-
-.justify-content-end {
- justify-content: flex-end !important;
-}
-
-.justify-content-center {
- justify-content: center !important;
-}
-
-.justify-content-between {
- justify-content: space-between !important;
-}
-
-.justify-content-around {
- justify-content: space-around !important;
-}
-
-.justify-content-evenly {
- justify-content: space-evenly !important;
-}
-
-.align-items-start {
- align-items: flex-start !important;
-}
-
-.align-items-end {
- align-items: flex-end !important;
-}
-
-.align-items-center {
- align-items: center !important;
-}
-
-.align-items-baseline {
- align-items: baseline !important;
-}
-
-.align-items-stretch {
- align-items: stretch !important;
-}
-
-.align-content-start {
- align-content: flex-start !important;
-}
-
-.align-content-end {
- align-content: flex-end !important;
-}
-
-.align-content-center {
- align-content: center !important;
-}
-
-.align-content-between {
- align-content: space-between !important;
-}
-
-.align-content-around {
- align-content: space-around !important;
-}
-
-.align-content-stretch {
- align-content: stretch !important;
-}
-
-.align-self-auto {
- align-self: auto !important;
-}
-
-.align-self-start {
- align-self: flex-start !important;
-}
-
-.align-self-end {
- align-self: flex-end !important;
-}
-
-.align-self-center {
- align-self: center !important;
-}
-
-.align-self-baseline {
- align-self: baseline !important;
-}
-
-.align-self-stretch {
- align-self: stretch !important;
-}
-
-.order-first {
- order: -1 !important;
-}
-
-.order-0 {
- order: 0 !important;
-}
-
-.order-1 {
- order: 1 !important;
-}
-
-.order-2 {
- order: 2 !important;
-}
-
-.order-3 {
- order: 3 !important;
-}
-
-.order-4 {
- order: 4 !important;
-}
-
-.order-5 {
- order: 5 !important;
-}
-
-.order-last {
- order: 6 !important;
-}
-
-.m-0 {
- margin: 0 !important;
-}
-
-.m-1 {
- margin: 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;
-}
-
-.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;
-}
-
-.row-gap-0 {
- row-gap: 0 !important;
-}
-
-.row-gap-1 {
- row-gap: 0.25rem !important;
-}
-
-.row-gap-2 {
- row-gap: 0.5rem !important;
-}
-
-.row-gap-3 {
- row-gap: 1rem !important;
-}
-
-.row-gap-4 {
- row-gap: 1.5rem !important;
-}
-
-.row-gap-5 {
- row-gap: 3rem !important;
-}
-
-.column-gap-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
-}
-
-.column-gap-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
-}
-
-.column-gap-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
-}
-
-.column-gap-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
-}
-
-.column-gap-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
-}
-
-.column-gap-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
-}
-
-.font-monospace {
- font-family: var(--bs-font-monospace) !important;
-}
-
-.fs-1 {
- font-size: calc(1.375rem + 1.5vw) !important;
-}
-
-.fs-2 {
- font-size: calc(1.325rem + 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-lighter {
- font-weight: lighter !important;
-}
-
-.fw-light {
- font-weight: 300 !important;
-}
-
-.fw-normal {
- font-weight: 400 !important;
-}
-
-.fw-medium {
- font-weight: 500 !important;
-}
-
-.fw-semibold {
- font-weight: 600 !important;
-}
-
-.fw-bold {
- font-weight: 700 !important;
-}
-
-.fw-bolder {
- font-weight: bolder !important;
-}
-
-.lh-1 {
- line-height: 1 !important;
-}
-
-.lh-sm {
- line-height: 1.25 !important;
-}
-
-.lh-base {
- line-height: 1.5 !important;
-}
-
-.lh-lg {
- line-height: 2 !important;
-}
-
-.text-start {
- text-align: left !important;
-}
-
-.text-end {
- text-align: right !important;
-}
-
-.text-center {
- text-align: center !important;
-}
-
-.text-decoration-none {
- text-decoration: none !important;
-}
-
-.text-decoration-underline {
- text-decoration: underline !important;
-}
-
-.text-decoration-line-through {
- text-decoration: line-through !important;
-}
-
-.text-lowercase {
- text-transform: lowercase !important;
-}
-
-.text-uppercase {
- text-transform: uppercase !important;
-}
-
-.text-capitalize {
- text-transform: capitalize !important;
-}
-
-.text-wrap {
- white-space: normal !important;
-}
-
-.text-nowrap {
- white-space: nowrap !important;
-}
-
-/* rtl:begin:remove */
-.text-break {
- word-wrap: break-word !important;
- word-break: break-word !important;
-}
-
-/* rtl:end:remove */
-.text-primary {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-secondary {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-success {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-info {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-warning {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-danger {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-light {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-dark {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-black {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-white {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-body {
- --bs-text-opacity: 1;
- color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
-}
-
-.text-muted {
- --bs-text-opacity: 1;
- color: var(--bs-secondary-color) !important;
-}
-
-.text-black-50 {
- --bs-text-opacity: 1;
- color: rgba(0, 0, 0, 0.5) !important;
-}
-
-.text-white-50 {
- --bs-text-opacity: 1;
- color: rgba(255, 255, 255, 0.5) !important;
-}
-
-.text-body-secondary {
- --bs-text-opacity: 1;
- color: var(--bs-secondary-color) !important;
-}
-
-.text-body-tertiary {
- --bs-text-opacity: 1;
- color: var(--bs-tertiary-color) !important;
-}
-
-.text-body-emphasis {
- --bs-text-opacity: 1;
- color: var(--bs-emphasis-color) !important;
-}
-
-.text-reset {
- --bs-text-opacity: 1;
- color: inherit !important;
-}
-
-.text-opacity-25 {
- --bs-text-opacity: 0.25;
-}
-
-.text-opacity-50 {
- --bs-text-opacity: 0.5;
-}
-
-.text-opacity-75 {
- --bs-text-opacity: 0.75;
-}
-
-.text-opacity-100 {
- --bs-text-opacity: 1;
-}
-
-.text-primary-emphasis {
- color: var(--bs-primary-text-emphasis) !important;
-}
-
-.text-secondary-emphasis {
- color: var(--bs-secondary-text-emphasis) !important;
-}
-
-.text-success-emphasis {
- color: var(--bs-success-text-emphasis) !important;
-}
-
-.text-info-emphasis {
- color: var(--bs-info-text-emphasis) !important;
-}
-
-.text-warning-emphasis {
- color: var(--bs-warning-text-emphasis) !important;
-}
-
-.text-danger-emphasis {
- color: var(--bs-danger-text-emphasis) !important;
-}
-
-.text-light-emphasis {
- color: var(--bs-light-text-emphasis) !important;
-}
-
-.text-dark-emphasis {
- color: var(--bs-dark-text-emphasis) !important;
-}
-
-.link-opacity-10 {
- --bs-link-opacity: 0.1;
-}
-
-.link-opacity-10-hover:hover {
- --bs-link-opacity: 0.1;
-}
-
-.link-opacity-25 {
- --bs-link-opacity: 0.25;
-}
-
-.link-opacity-25-hover:hover {
- --bs-link-opacity: 0.25;
-}
-
-.link-opacity-50 {
- --bs-link-opacity: 0.5;
-}
-
-.link-opacity-50-hover:hover {
- --bs-link-opacity: 0.5;
-}
-
-.link-opacity-75 {
- --bs-link-opacity: 0.75;
-}
-
-.link-opacity-75-hover:hover {
- --bs-link-opacity: 0.75;
-}
-
-.link-opacity-100 {
- --bs-link-opacity: 1;
-}
-
-.link-opacity-100-hover:hover {
- --bs-link-opacity: 1;
-}
-
-.link-offset-1 {
- text-underline-offset: 0.125em !important;
-}
-
-.link-offset-1-hover:hover {
- text-underline-offset: 0.125em !important;
-}
-
-.link-offset-2 {
- text-underline-offset: 0.25em !important;
-}
-
-.link-offset-2-hover:hover {
- text-underline-offset: 0.25em !important;
-}
-
-.link-offset-3 {
- text-underline-offset: 0.375em !important;
-}
-
-.link-offset-3-hover:hover {
- text-underline-offset: 0.375em !important;
-}
-
-.link-underline-primary {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-secondary {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-success {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-info {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-warning {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-danger {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-light {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline-dark {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
-}
-
-.link-underline {
- --bs-link-underline-opacity: 1;
- text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
-}
-
-.link-underline-opacity-0 {
- --bs-link-underline-opacity: 0;
-}
-
-.link-underline-opacity-0-hover:hover {
- --bs-link-underline-opacity: 0;
-}
-
-.link-underline-opacity-10 {
- --bs-link-underline-opacity: 0.1;
-}
-
-.link-underline-opacity-10-hover:hover {
- --bs-link-underline-opacity: 0.1;
-}
-
-.link-underline-opacity-25 {
- --bs-link-underline-opacity: 0.25;
-}
-
-.link-underline-opacity-25-hover:hover {
- --bs-link-underline-opacity: 0.25;
-}
-
-.link-underline-opacity-50 {
- --bs-link-underline-opacity: 0.5;
-}
-
-.link-underline-opacity-50-hover:hover {
- --bs-link-underline-opacity: 0.5;
-}
-
-.link-underline-opacity-75 {
- --bs-link-underline-opacity: 0.75;
-}
-
-.link-underline-opacity-75-hover:hover {
- --bs-link-underline-opacity: 0.75;
-}
-
-.link-underline-opacity-100 {
- --bs-link-underline-opacity: 1;
-}
-
-.link-underline-opacity-100-hover:hover {
- --bs-link-underline-opacity: 1;
-}
-
-.bg-primary {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-secondary {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-success {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-info {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-warning {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-danger {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-light {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-dark {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-black {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-white {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-body {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-transparent {
- --bs-bg-opacity: 1;
- background-color: transparent !important;
-}
-
-.bg-body-secondary {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-body-tertiary {
- --bs-bg-opacity: 1;
- background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
-}
-
-.bg-opacity-10 {
- --bs-bg-opacity: 0.1;
-}
-
-.bg-opacity-25 {
- --bs-bg-opacity: 0.25;
-}
-
-.bg-opacity-50 {
- --bs-bg-opacity: 0.5;
-}
-
-.bg-opacity-75 {
- --bs-bg-opacity: 0.75;
-}
-
-.bg-opacity-100 {
- --bs-bg-opacity: 1;
-}
-
-.bg-primary-subtle {
- background-color: var(--bs-primary-bg-subtle) !important;
-}
-
-.bg-secondary-subtle {
- background-color: var(--bs-secondary-bg-subtle) !important;
-}
-
-.bg-success-subtle {
- background-color: var(--bs-success-bg-subtle) !important;
-}
-
-.bg-info-subtle {
- background-color: var(--bs-info-bg-subtle) !important;
-}
-
-.bg-warning-subtle {
- background-color: var(--bs-warning-bg-subtle) !important;
-}
-
-.bg-danger-subtle {
- background-color: var(--bs-danger-bg-subtle) !important;
-}
-
-.bg-light-subtle {
- background-color: var(--bs-light-bg-subtle) !important;
-}
-
-.bg-dark-subtle {
- background-color: var(--bs-dark-bg-subtle) !important;
-}
-
-.bg-gradient {
- background-image: var(--bs-gradient) !important;
-}
-
-.user-select-all {
- -webkit-user-select: all !important;
- -moz-user-select: all !important;
- user-select: all !important;
-}
-
-.user-select-auto {
- -webkit-user-select: auto !important;
- -moz-user-select: auto !important;
- user-select: auto !important;
-}
-
-.user-select-none {
- -webkit-user-select: none !important;
- -moz-user-select: none !important;
- user-select: none !important;
-}
-
-.pe-none {
- pointer-events: none !important;
-}
-
-.pe-auto {
- pointer-events: auto !important;
-}
-
-.rounded {
- border-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-0 {
- border-radius: 0 !important;
-}
-
-.rounded-1 {
- border-radius: var(--bs-border-radius-sm) !important;
-}
-
-.rounded-2 {
- border-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-3 {
- border-radius: var(--bs-border-radius-lg) !important;
-}
-
-.rounded-4 {
- border-radius: var(--bs-border-radius-xl) !important;
-}
-
-.rounded-5 {
- border-radius: var(--bs-border-radius-xxl) !important;
-}
-
-.rounded-circle {
- border-radius: 50% !important;
-}
-
-.rounded-pill {
- border-radius: var(--bs-border-radius-pill) !important;
-}
-
-.rounded-top {
- border-top-left-radius: var(--bs-border-radius) !important;
- border-top-right-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-top-0 {
- border-top-left-radius: 0 !important;
- border-top-right-radius: 0 !important;
-}
-
-.rounded-top-1 {
- border-top-left-radius: var(--bs-border-radius-sm) !important;
- border-top-right-radius: var(--bs-border-radius-sm) !important;
-}
-
-.rounded-top-2 {
- border-top-left-radius: var(--bs-border-radius) !important;
- border-top-right-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-top-3 {
- border-top-left-radius: var(--bs-border-radius-lg) !important;
- border-top-right-radius: var(--bs-border-radius-lg) !important;
-}
-
-.rounded-top-4 {
- border-top-left-radius: var(--bs-border-radius-xl) !important;
- border-top-right-radius: var(--bs-border-radius-xl) !important;
-}
-
-.rounded-top-5 {
- border-top-left-radius: var(--bs-border-radius-xxl) !important;
- border-top-right-radius: var(--bs-border-radius-xxl) !important;
-}
-
-.rounded-top-circle {
- border-top-left-radius: 50% !important;
- border-top-right-radius: 50% !important;
-}
-
-.rounded-top-pill {
- border-top-left-radius: var(--bs-border-radius-pill) !important;
- border-top-right-radius: var(--bs-border-radius-pill) !important;
-}
-
-.rounded-end {
- border-top-right-radius: var(--bs-border-radius) !important;
- border-bottom-right-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-end-0 {
- border-top-right-radius: 0 !important;
- border-bottom-right-radius: 0 !important;
-}
-
-.rounded-end-1 {
- border-top-right-radius: var(--bs-border-radius-sm) !important;
- border-bottom-right-radius: var(--bs-border-radius-sm) !important;
-}
-
-.rounded-end-2 {
- border-top-right-radius: var(--bs-border-radius) !important;
- border-bottom-right-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-end-3 {
- border-top-right-radius: var(--bs-border-radius-lg) !important;
- border-bottom-right-radius: var(--bs-border-radius-lg) !important;
-}
-
-.rounded-end-4 {
- border-top-right-radius: var(--bs-border-radius-xl) !important;
- border-bottom-right-radius: var(--bs-border-radius-xl) !important;
-}
-
-.rounded-end-5 {
- border-top-right-radius: var(--bs-border-radius-xxl) !important;
- border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
-}
-
-.rounded-end-circle {
- border-top-right-radius: 50% !important;
- border-bottom-right-radius: 50% !important;
-}
-
-.rounded-end-pill {
- border-top-right-radius: var(--bs-border-radius-pill) !important;
- border-bottom-right-radius: var(--bs-border-radius-pill) !important;
-}
-
-.rounded-bottom {
- border-bottom-right-radius: var(--bs-border-radius) !important;
- border-bottom-left-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-bottom-0 {
- border-bottom-right-radius: 0 !important;
- border-bottom-left-radius: 0 !important;
-}
-
-.rounded-bottom-1 {
- border-bottom-right-radius: var(--bs-border-radius-sm) !important;
- border-bottom-left-radius: var(--bs-border-radius-sm) !important;
-}
-
-.rounded-bottom-2 {
- border-bottom-right-radius: var(--bs-border-radius) !important;
- border-bottom-left-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-bottom-3 {
- border-bottom-right-radius: var(--bs-border-radius-lg) !important;
- border-bottom-left-radius: var(--bs-border-radius-lg) !important;
-}
-
-.rounded-bottom-4 {
- border-bottom-right-radius: var(--bs-border-radius-xl) !important;
- border-bottom-left-radius: var(--bs-border-radius-xl) !important;
-}
-
-.rounded-bottom-5 {
- border-bottom-right-radius: var(--bs-border-radius-xxl) !important;
- border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
-}
-
-.rounded-bottom-circle {
- border-bottom-right-radius: 50% !important;
- border-bottom-left-radius: 50% !important;
-}
-
-.rounded-bottom-pill {
- border-bottom-right-radius: var(--bs-border-radius-pill) !important;
- border-bottom-left-radius: var(--bs-border-radius-pill) !important;
-}
-
-.rounded-start {
- border-bottom-left-radius: var(--bs-border-radius) !important;
- border-top-left-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-start-0 {
- border-bottom-left-radius: 0 !important;
- border-top-left-radius: 0 !important;
-}
-
-.rounded-start-1 {
- border-bottom-left-radius: var(--bs-border-radius-sm) !important;
- border-top-left-radius: var(--bs-border-radius-sm) !important;
-}
-
-.rounded-start-2 {
- border-bottom-left-radius: var(--bs-border-radius) !important;
- border-top-left-radius: var(--bs-border-radius) !important;
-}
-
-.rounded-start-3 {
- border-bottom-left-radius: var(--bs-border-radius-lg) !important;
- border-top-left-radius: var(--bs-border-radius-lg) !important;
-}
-
-.rounded-start-4 {
- border-bottom-left-radius: var(--bs-border-radius-xl) !important;
- border-top-left-radius: var(--bs-border-radius-xl) !important;
-}
-
-.rounded-start-5 {
- border-bottom-left-radius: var(--bs-border-radius-xxl) !important;
- border-top-left-radius: var(--bs-border-radius-xxl) !important;
-}
-
-.rounded-start-circle {
- border-bottom-left-radius: 50% !important;
- border-top-left-radius: 50% !important;
-}
-
-.rounded-start-pill {
- border-bottom-left-radius: var(--bs-border-radius-pill) !important;
- border-top-left-radius: var(--bs-border-radius-pill) !important;
-}
-
-.visible {
- visibility: visible !important;
-}
-
-.invisible {
- visibility: hidden !important;
-}
-
-.z-n1 {
- z-index: -1 !important;
-}
-
-.z-0 {
- z-index: 0 !important;
-}
-
-.z-1 {
- z-index: 1 !important;
-}
-
-.z-2 {
- z-index: 2 !important;
-}
-
-.z-3 {
- z-index: 3 !important;
-}
-
-@media (min-width: 576px) {
- .float-sm-start {
- float: left !important;
- }
- .float-sm-end {
- float: right !important;
- }
- .float-sm-none {
- float: none !important;
- }
- .object-fit-sm-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
- }
- .object-fit-sm-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
- }
- .object-fit-sm-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
- }
- .object-fit-sm-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
- }
- .object-fit-sm-none {
- -o-object-fit: none !important;
- object-fit: none !important;
- }
- .d-sm-inline {
- display: inline !important;
- }
- .d-sm-inline-block {
- display: inline-block !important;
- }
- .d-sm-block {
- display: block !important;
- }
- .d-sm-grid {
- display: grid !important;
- }
- .d-sm-inline-grid {
- display: inline-grid !important;
- }
- .d-sm-table {
- display: table !important;
- }
- .d-sm-table-row {
- display: table-row !important;
- }
- .d-sm-table-cell {
- display: table-cell !important;
- }
- .d-sm-flex {
- display: flex !important;
- }
- .d-sm-inline-flex {
- display: inline-flex !important;
- }
- .d-sm-none {
- display: none !important;
- }
- .flex-sm-fill {
- flex: 1 1 auto !important;
- }
- .flex-sm-row {
- flex-direction: row !important;
- }
- .flex-sm-column {
- flex-direction: column !important;
- }
- .flex-sm-row-reverse {
- flex-direction: row-reverse !important;
- }
- .flex-sm-column-reverse {
- flex-direction: column-reverse !important;
- }
- .flex-sm-grow-0 {
- flex-grow: 0 !important;
- }
- .flex-sm-grow-1 {
- flex-grow: 1 !important;
- }
- .flex-sm-shrink-0 {
- flex-shrink: 0 !important;
- }
- .flex-sm-shrink-1 {
- flex-shrink: 1 !important;
- }
- .flex-sm-wrap {
- flex-wrap: wrap !important;
- }
- .flex-sm-nowrap {
- flex-wrap: nowrap !important;
- }
- .flex-sm-wrap-reverse {
- flex-wrap: wrap-reverse !important;
- }
- .justify-content-sm-start {
- justify-content: flex-start !important;
- }
- .justify-content-sm-end {
- justify-content: flex-end !important;
- }
- .justify-content-sm-center {
- justify-content: center !important;
- }
- .justify-content-sm-between {
- justify-content: space-between !important;
- }
- .justify-content-sm-around {
- justify-content: space-around !important;
- }
- .justify-content-sm-evenly {
- justify-content: space-evenly !important;
- }
- .align-items-sm-start {
- align-items: flex-start !important;
- }
- .align-items-sm-end {
- align-items: flex-end !important;
- }
- .align-items-sm-center {
- align-items: center !important;
- }
- .align-items-sm-baseline {
- align-items: baseline !important;
- }
- .align-items-sm-stretch {
- align-items: stretch !important;
- }
- .align-content-sm-start {
- align-content: flex-start !important;
- }
- .align-content-sm-end {
- align-content: flex-end !important;
- }
- .align-content-sm-center {
- align-content: center !important;
- }
- .align-content-sm-between {
- align-content: space-between !important;
- }
- .align-content-sm-around {
- align-content: space-around !important;
- }
- .align-content-sm-stretch {
- align-content: stretch !important;
- }
- .align-self-sm-auto {
- align-self: auto !important;
- }
- .align-self-sm-start {
- align-self: flex-start !important;
- }
- .align-self-sm-end {
- align-self: flex-end !important;
- }
- .align-self-sm-center {
- align-self: center !important;
- }
- .align-self-sm-baseline {
- align-self: baseline !important;
- }
- .align-self-sm-stretch {
- align-self: stretch !important;
- }
- .order-sm-first {
- order: -1 !important;
- }
- .order-sm-0 {
- order: 0 !important;
- }
- .order-sm-1 {
- order: 1 !important;
- }
- .order-sm-2 {
- order: 2 !important;
- }
- .order-sm-3 {
- order: 3 !important;
- }
- .order-sm-4 {
- order: 4 !important;
- }
- .order-sm-5 {
- order: 5 !important;
- }
- .order-sm-last {
- order: 6 !important;
- }
- .m-sm-0 {
- margin: 0 !important;
- }
- .m-sm-1 {
- margin: 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;
- }
- .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;
- }
- .row-gap-sm-0 {
- row-gap: 0 !important;
- }
- .row-gap-sm-1 {
- row-gap: 0.25rem !important;
- }
- .row-gap-sm-2 {
- row-gap: 0.5rem !important;
- }
- .row-gap-sm-3 {
- row-gap: 1rem !important;
- }
- .row-gap-sm-4 {
- row-gap: 1.5rem !important;
- }
- .row-gap-sm-5 {
- row-gap: 3rem !important;
- }
- .column-gap-sm-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
- }
- .column-gap-sm-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
- }
- .column-gap-sm-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
- }
- .column-gap-sm-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
- }
- .column-gap-sm-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
- }
- .column-gap-sm-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
- }
- .text-sm-start {
- text-align: left !important;
- }
- .text-sm-end {
- text-align: right !important;
- }
- .text-sm-center {
- text-align: center !important;
- }
-}
-@media (min-width: 768px) {
- .float-md-start {
- float: left !important;
- }
- .float-md-end {
- float: right !important;
- }
- .float-md-none {
- float: none !important;
- }
- .object-fit-md-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
- }
- .object-fit-md-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
- }
- .object-fit-md-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
- }
- .object-fit-md-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
- }
- .object-fit-md-none {
- -o-object-fit: none !important;
- object-fit: none !important;
- }
- .d-md-inline {
- display: inline !important;
- }
- .d-md-inline-block {
- display: inline-block !important;
- }
- .d-md-block {
- display: block !important;
- }
- .d-md-grid {
- display: grid !important;
- }
- .d-md-inline-grid {
- display: inline-grid !important;
- }
- .d-md-table {
- display: table !important;
- }
- .d-md-table-row {
- display: table-row !important;
- }
- .d-md-table-cell {
- display: table-cell !important;
- }
- .d-md-flex {
- display: flex !important;
- }
- .d-md-inline-flex {
- display: inline-flex !important;
- }
- .d-md-none {
- display: none !important;
- }
- .flex-md-fill {
- flex: 1 1 auto !important;
- }
- .flex-md-row {
- flex-direction: row !important;
- }
- .flex-md-column {
- flex-direction: column !important;
- }
- .flex-md-row-reverse {
- flex-direction: row-reverse !important;
- }
- .flex-md-column-reverse {
- flex-direction: column-reverse !important;
- }
- .flex-md-grow-0 {
- flex-grow: 0 !important;
- }
- .flex-md-grow-1 {
- flex-grow: 1 !important;
- }
- .flex-md-shrink-0 {
- flex-shrink: 0 !important;
- }
- .flex-md-shrink-1 {
- flex-shrink: 1 !important;
- }
- .flex-md-wrap {
- flex-wrap: wrap !important;
- }
- .flex-md-nowrap {
- flex-wrap: nowrap !important;
- }
- .flex-md-wrap-reverse {
- flex-wrap: wrap-reverse !important;
- }
- .justify-content-md-start {
- justify-content: flex-start !important;
- }
- .justify-content-md-end {
- justify-content: flex-end !important;
- }
- .justify-content-md-center {
- justify-content: center !important;
- }
- .justify-content-md-between {
- justify-content: space-between !important;
- }
- .justify-content-md-around {
- justify-content: space-around !important;
- }
- .justify-content-md-evenly {
- justify-content: space-evenly !important;
- }
- .align-items-md-start {
- align-items: flex-start !important;
- }
- .align-items-md-end {
- align-items: flex-end !important;
- }
- .align-items-md-center {
- align-items: center !important;
- }
- .align-items-md-baseline {
- align-items: baseline !important;
- }
- .align-items-md-stretch {
- align-items: stretch !important;
- }
- .align-content-md-start {
- align-content: flex-start !important;
- }
- .align-content-md-end {
- align-content: flex-end !important;
- }
- .align-content-md-center {
- align-content: center !important;
- }
- .align-content-md-between {
- align-content: space-between !important;
- }
- .align-content-md-around {
- align-content: space-around !important;
- }
- .align-content-md-stretch {
- align-content: stretch !important;
- }
- .align-self-md-auto {
- align-self: auto !important;
- }
- .align-self-md-start {
- align-self: flex-start !important;
- }
- .align-self-md-end {
- align-self: flex-end !important;
- }
- .align-self-md-center {
- align-self: center !important;
- }
- .align-self-md-baseline {
- align-self: baseline !important;
- }
- .align-self-md-stretch {
- align-self: stretch !important;
- }
- .order-md-first {
- order: -1 !important;
- }
- .order-md-0 {
- order: 0 !important;
- }
- .order-md-1 {
- order: 1 !important;
- }
- .order-md-2 {
- order: 2 !important;
- }
- .order-md-3 {
- order: 3 !important;
- }
- .order-md-4 {
- order: 4 !important;
- }
- .order-md-5 {
- order: 5 !important;
- }
- .order-md-last {
- order: 6 !important;
- }
- .m-md-0 {
- margin: 0 !important;
- }
- .m-md-1 {
- margin: 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;
- }
- .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;
- }
- .row-gap-md-0 {
- row-gap: 0 !important;
- }
- .row-gap-md-1 {
- row-gap: 0.25rem !important;
- }
- .row-gap-md-2 {
- row-gap: 0.5rem !important;
- }
- .row-gap-md-3 {
- row-gap: 1rem !important;
- }
- .row-gap-md-4 {
- row-gap: 1.5rem !important;
- }
- .row-gap-md-5 {
- row-gap: 3rem !important;
- }
- .column-gap-md-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
- }
- .column-gap-md-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
- }
- .column-gap-md-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
- }
- .column-gap-md-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
- }
- .column-gap-md-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
- }
- .column-gap-md-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
- }
- .text-md-start {
- text-align: left !important;
- }
- .text-md-end {
- text-align: right !important;
- }
- .text-md-center {
- text-align: center !important;
- }
-}
-@media (min-width: 992px) {
- .float-lg-start {
- float: left !important;
- }
- .float-lg-end {
- float: right !important;
- }
- .float-lg-none {
- float: none !important;
- }
- .object-fit-lg-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
- }
- .object-fit-lg-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
- }
- .object-fit-lg-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
- }
- .object-fit-lg-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
- }
- .object-fit-lg-none {
- -o-object-fit: none !important;
- object-fit: none !important;
- }
- .d-lg-inline {
- display: inline !important;
- }
- .d-lg-inline-block {
- display: inline-block !important;
- }
- .d-lg-block {
- display: block !important;
- }
- .d-lg-grid {
- display: grid !important;
- }
- .d-lg-inline-grid {
- display: inline-grid !important;
- }
- .d-lg-table {
- display: table !important;
- }
- .d-lg-table-row {
- display: table-row !important;
- }
- .d-lg-table-cell {
- display: table-cell !important;
- }
- .d-lg-flex {
- display: flex !important;
- }
- .d-lg-inline-flex {
- display: inline-flex !important;
- }
- .d-lg-none {
- display: none !important;
- }
- .flex-lg-fill {
- flex: 1 1 auto !important;
- }
- .flex-lg-row {
- flex-direction: row !important;
- }
- .flex-lg-column {
- flex-direction: column !important;
- }
- .flex-lg-row-reverse {
- flex-direction: row-reverse !important;
- }
- .flex-lg-column-reverse {
- flex-direction: column-reverse !important;
- }
- .flex-lg-grow-0 {
- flex-grow: 0 !important;
- }
- .flex-lg-grow-1 {
- flex-grow: 1 !important;
- }
- .flex-lg-shrink-0 {
- flex-shrink: 0 !important;
- }
- .flex-lg-shrink-1 {
- flex-shrink: 1 !important;
- }
- .flex-lg-wrap {
- flex-wrap: wrap !important;
- }
- .flex-lg-nowrap {
- flex-wrap: nowrap !important;
- }
- .flex-lg-wrap-reverse {
- flex-wrap: wrap-reverse !important;
- }
- .justify-content-lg-start {
- justify-content: flex-start !important;
- }
- .justify-content-lg-end {
- justify-content: flex-end !important;
- }
- .justify-content-lg-center {
- justify-content: center !important;
- }
- .justify-content-lg-between {
- justify-content: space-between !important;
- }
- .justify-content-lg-around {
- justify-content: space-around !important;
- }
- .justify-content-lg-evenly {
- justify-content: space-evenly !important;
- }
- .align-items-lg-start {
- align-items: flex-start !important;
- }
- .align-items-lg-end {
- align-items: flex-end !important;
- }
- .align-items-lg-center {
- align-items: center !important;
- }
- .align-items-lg-baseline {
- align-items: baseline !important;
- }
- .align-items-lg-stretch {
- align-items: stretch !important;
- }
- .align-content-lg-start {
- align-content: flex-start !important;
- }
- .align-content-lg-end {
- align-content: flex-end !important;
- }
- .align-content-lg-center {
- align-content: center !important;
- }
- .align-content-lg-between {
- align-content: space-between !important;
- }
- .align-content-lg-around {
- align-content: space-around !important;
- }
- .align-content-lg-stretch {
- align-content: stretch !important;
- }
- .align-self-lg-auto {
- align-self: auto !important;
- }
- .align-self-lg-start {
- align-self: flex-start !important;
- }
- .align-self-lg-end {
- align-self: flex-end !important;
- }
- .align-self-lg-center {
- align-self: center !important;
- }
- .align-self-lg-baseline {
- align-self: baseline !important;
- }
- .align-self-lg-stretch {
- align-self: stretch !important;
- }
- .order-lg-first {
- order: -1 !important;
- }
- .order-lg-0 {
- order: 0 !important;
- }
- .order-lg-1 {
- order: 1 !important;
- }
- .order-lg-2 {
- order: 2 !important;
- }
- .order-lg-3 {
- order: 3 !important;
- }
- .order-lg-4 {
- order: 4 !important;
- }
- .order-lg-5 {
- order: 5 !important;
- }
- .order-lg-last {
- order: 6 !important;
- }
- .m-lg-0 {
- margin: 0 !important;
- }
- .m-lg-1 {
- margin: 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;
- }
- .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;
- }
- .row-gap-lg-0 {
- row-gap: 0 !important;
- }
- .row-gap-lg-1 {
- row-gap: 0.25rem !important;
- }
- .row-gap-lg-2 {
- row-gap: 0.5rem !important;
- }
- .row-gap-lg-3 {
- row-gap: 1rem !important;
- }
- .row-gap-lg-4 {
- row-gap: 1.5rem !important;
- }
- .row-gap-lg-5 {
- row-gap: 3rem !important;
- }
- .column-gap-lg-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
- }
- .column-gap-lg-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
- }
- .column-gap-lg-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
- }
- .column-gap-lg-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
- }
- .column-gap-lg-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
- }
- .column-gap-lg-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
- }
- .text-lg-start {
- text-align: left !important;
- }
- .text-lg-end {
- text-align: right !important;
- }
- .text-lg-center {
- text-align: center !important;
- }
-}
-@media (min-width: 1200px) {
- .float-xl-start {
- float: left !important;
- }
- .float-xl-end {
- float: right !important;
- }
- .float-xl-none {
- float: none !important;
- }
- .object-fit-xl-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
- }
- .object-fit-xl-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
- }
- .object-fit-xl-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
- }
- .object-fit-xl-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
- }
- .object-fit-xl-none {
- -o-object-fit: none !important;
- object-fit: none !important;
- }
- .d-xl-inline {
- display: inline !important;
- }
- .d-xl-inline-block {
- display: inline-block !important;
- }
- .d-xl-block {
- display: block !important;
- }
- .d-xl-grid {
- display: grid !important;
- }
- .d-xl-inline-grid {
- display: inline-grid !important;
- }
- .d-xl-table {
- display: table !important;
- }
- .d-xl-table-row {
- display: table-row !important;
- }
- .d-xl-table-cell {
- display: table-cell !important;
- }
- .d-xl-flex {
- display: flex !important;
- }
- .d-xl-inline-flex {
- display: inline-flex !important;
- }
- .d-xl-none {
- display: none !important;
- }
- .flex-xl-fill {
- flex: 1 1 auto !important;
- }
- .flex-xl-row {
- flex-direction: row !important;
- }
- .flex-xl-column {
- flex-direction: column !important;
- }
- .flex-xl-row-reverse {
- flex-direction: row-reverse !important;
- }
- .flex-xl-column-reverse {
- flex-direction: column-reverse !important;
- }
- .flex-xl-grow-0 {
- flex-grow: 0 !important;
- }
- .flex-xl-grow-1 {
- flex-grow: 1 !important;
- }
- .flex-xl-shrink-0 {
- flex-shrink: 0 !important;
- }
- .flex-xl-shrink-1 {
- flex-shrink: 1 !important;
- }
- .flex-xl-wrap {
- flex-wrap: wrap !important;
- }
- .flex-xl-nowrap {
- flex-wrap: nowrap !important;
- }
- .flex-xl-wrap-reverse {
- flex-wrap: wrap-reverse !important;
- }
- .justify-content-xl-start {
- justify-content: flex-start !important;
- }
- .justify-content-xl-end {
- justify-content: flex-end !important;
- }
- .justify-content-xl-center {
- justify-content: center !important;
- }
- .justify-content-xl-between {
- justify-content: space-between !important;
- }
- .justify-content-xl-around {
- justify-content: space-around !important;
- }
- .justify-content-xl-evenly {
- justify-content: space-evenly !important;
- }
- .align-items-xl-start {
- align-items: flex-start !important;
- }
- .align-items-xl-end {
- align-items: flex-end !important;
- }
- .align-items-xl-center {
- align-items: center !important;
- }
- .align-items-xl-baseline {
- align-items: baseline !important;
- }
- .align-items-xl-stretch {
- align-items: stretch !important;
- }
- .align-content-xl-start {
- align-content: flex-start !important;
- }
- .align-content-xl-end {
- align-content: flex-end !important;
- }
- .align-content-xl-center {
- align-content: center !important;
- }
- .align-content-xl-between {
- align-content: space-between !important;
- }
- .align-content-xl-around {
- align-content: space-around !important;
- }
- .align-content-xl-stretch {
- align-content: stretch !important;
- }
- .align-self-xl-auto {
- align-self: auto !important;
- }
- .align-self-xl-start {
- align-self: flex-start !important;
- }
- .align-self-xl-end {
- align-self: flex-end !important;
- }
- .align-self-xl-center {
- align-self: center !important;
- }
- .align-self-xl-baseline {
- align-self: baseline !important;
- }
- .align-self-xl-stretch {
- align-self: stretch !important;
- }
- .order-xl-first {
- order: -1 !important;
- }
- .order-xl-0 {
- order: 0 !important;
- }
- .order-xl-1 {
- order: 1 !important;
- }
- .order-xl-2 {
- order: 2 !important;
- }
- .order-xl-3 {
- order: 3 !important;
- }
- .order-xl-4 {
- order: 4 !important;
- }
- .order-xl-5 {
- order: 5 !important;
- }
- .order-xl-last {
- order: 6 !important;
- }
- .m-xl-0 {
- margin: 0 !important;
- }
- .m-xl-1 {
- margin: 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;
- }
- .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;
- }
- .row-gap-xl-0 {
- row-gap: 0 !important;
- }
- .row-gap-xl-1 {
- row-gap: 0.25rem !important;
- }
- .row-gap-xl-2 {
- row-gap: 0.5rem !important;
- }
- .row-gap-xl-3 {
- row-gap: 1rem !important;
- }
- .row-gap-xl-4 {
- row-gap: 1.5rem !important;
- }
- .row-gap-xl-5 {
- row-gap: 3rem !important;
- }
- .column-gap-xl-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
- }
- .column-gap-xl-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
- }
- .column-gap-xl-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
- }
- .column-gap-xl-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
- }
- .column-gap-xl-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
- }
- .column-gap-xl-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
- }
- .text-xl-start {
- text-align: left !important;
- }
- .text-xl-end {
- text-align: right !important;
- }
- .text-xl-center {
- text-align: center !important;
- }
-}
-@media (min-width: 1400px) {
- .float-xxl-start {
- float: left !important;
- }
- .float-xxl-end {
- float: right !important;
- }
- .float-xxl-none {
- float: none !important;
- }
- .object-fit-xxl-contain {
- -o-object-fit: contain !important;
- object-fit: contain !important;
- }
- .object-fit-xxl-cover {
- -o-object-fit: cover !important;
- object-fit: cover !important;
- }
- .object-fit-xxl-fill {
- -o-object-fit: fill !important;
- object-fit: fill !important;
- }
- .object-fit-xxl-scale {
- -o-object-fit: scale-down !important;
- object-fit: scale-down !important;
- }
- .object-fit-xxl-none {
- -o-object-fit: none !important;
- object-fit: none !important;
- }
- .d-xxl-inline {
- display: inline !important;
- }
- .d-xxl-inline-block {
- display: inline-block !important;
- }
- .d-xxl-block {
- display: block !important;
- }
- .d-xxl-grid {
- display: grid !important;
- }
- .d-xxl-inline-grid {
- display: inline-grid !important;
- }
- .d-xxl-table {
- display: table !important;
- }
- .d-xxl-table-row {
- display: table-row !important;
- }
- .d-xxl-table-cell {
- display: table-cell !important;
- }
- .d-xxl-flex {
- display: flex !important;
- }
- .d-xxl-inline-flex {
- display: inline-flex !important;
- }
- .d-xxl-none {
- display: none !important;
- }
- .flex-xxl-fill {
- flex: 1 1 auto !important;
- }
- .flex-xxl-row {
- flex-direction: row !important;
- }
- .flex-xxl-column {
- flex-direction: column !important;
- }
- .flex-xxl-row-reverse {
- flex-direction: row-reverse !important;
- }
- .flex-xxl-column-reverse {
- flex-direction: column-reverse !important;
- }
- .flex-xxl-grow-0 {
- flex-grow: 0 !important;
- }
- .flex-xxl-grow-1 {
- flex-grow: 1 !important;
- }
- .flex-xxl-shrink-0 {
- flex-shrink: 0 !important;
- }
- .flex-xxl-shrink-1 {
- flex-shrink: 1 !important;
- }
- .flex-xxl-wrap {
- flex-wrap: wrap !important;
- }
- .flex-xxl-nowrap {
- flex-wrap: nowrap !important;
- }
- .flex-xxl-wrap-reverse {
- flex-wrap: wrap-reverse !important;
- }
- .justify-content-xxl-start {
- justify-content: flex-start !important;
- }
- .justify-content-xxl-end {
- justify-content: flex-end !important;
- }
- .justify-content-xxl-center {
- justify-content: center !important;
- }
- .justify-content-xxl-between {
- justify-content: space-between !important;
- }
- .justify-content-xxl-around {
- justify-content: space-around !important;
- }
- .justify-content-xxl-evenly {
- justify-content: space-evenly !important;
- }
- .align-items-xxl-start {
- align-items: flex-start !important;
- }
- .align-items-xxl-end {
- align-items: flex-end !important;
- }
- .align-items-xxl-center {
- align-items: center !important;
- }
- .align-items-xxl-baseline {
- align-items: baseline !important;
- }
- .align-items-xxl-stretch {
- align-items: stretch !important;
- }
- .align-content-xxl-start {
- align-content: flex-start !important;
- }
- .align-content-xxl-end {
- align-content: flex-end !important;
- }
- .align-content-xxl-center {
- align-content: center !important;
- }
- .align-content-xxl-between {
- align-content: space-between !important;
- }
- .align-content-xxl-around {
- align-content: space-around !important;
- }
- .align-content-xxl-stretch {
- align-content: stretch !important;
- }
- .align-self-xxl-auto {
- align-self: auto !important;
- }
- .align-self-xxl-start {
- align-self: flex-start !important;
- }
- .align-self-xxl-end {
- align-self: flex-end !important;
- }
- .align-self-xxl-center {
- align-self: center !important;
- }
- .align-self-xxl-baseline {
- align-self: baseline !important;
- }
- .align-self-xxl-stretch {
- align-self: stretch !important;
- }
- .order-xxl-first {
- order: -1 !important;
- }
- .order-xxl-0 {
- order: 0 !important;
- }
- .order-xxl-1 {
- order: 1 !important;
- }
- .order-xxl-2 {
- order: 2 !important;
- }
- .order-xxl-3 {
- order: 3 !important;
- }
- .order-xxl-4 {
- order: 4 !important;
- }
- .order-xxl-5 {
- order: 5 !important;
- }
- .order-xxl-last {
- order: 6 !important;
- }
- .m-xxl-0 {
- margin: 0 !important;
- }
- .m-xxl-1 {
- margin: 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;
- }
- .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;
- }
- .row-gap-xxl-0 {
- row-gap: 0 !important;
- }
- .row-gap-xxl-1 {
- row-gap: 0.25rem !important;
- }
- .row-gap-xxl-2 {
- row-gap: 0.5rem !important;
- }
- .row-gap-xxl-3 {
- row-gap: 1rem !important;
- }
- .row-gap-xxl-4 {
- row-gap: 1.5rem !important;
- }
- .row-gap-xxl-5 {
- row-gap: 3rem !important;
- }
- .column-gap-xxl-0 {
- -moz-column-gap: 0 !important;
- column-gap: 0 !important;
- }
- .column-gap-xxl-1 {
- -moz-column-gap: 0.25rem !important;
- column-gap: 0.25rem !important;
- }
- .column-gap-xxl-2 {
- -moz-column-gap: 0.5rem !important;
- column-gap: 0.5rem !important;
- }
- .column-gap-xxl-3 {
- -moz-column-gap: 1rem !important;
- column-gap: 1rem !important;
- }
- .column-gap-xxl-4 {
- -moz-column-gap: 1.5rem !important;
- column-gap: 1.5rem !important;
- }
- .column-gap-xxl-5 {
- -moz-column-gap: 3rem !important;
- column-gap: 3rem !important;
- }
- .text-xxl-start {
- text-align: left !important;
- }
- .text-xxl-end {
- text-align: right !important;
- }
- .text-xxl-center {
- text-align: center !important;
- }
-}
-@media (min-width: 1200px) {
- .fs-1 {
- font-size: 2.5rem !important;
- }
- .fs-2 {
- font-size: 2rem !important;
- }
- .fs-3 {
- font-size: 1.75rem !important;
- }
- .fs-4 {
- font-size: 1.5rem !important;
- }
-}
-@media print {
- .d-print-inline {
- display: inline !important;
- }
- .d-print-inline-block {
- display: inline-block !important;
- }
- .d-print-block {
- display: block !important;
- }
- .d-print-grid {
- display: grid !important;
- }
- .d-print-inline-grid {
- display: inline-grid !important;
- }
- .d-print-table {
- display: table !important;
- }
- .d-print-table-row {
- display: table-row !important;
- }
- .d-print-table-cell {
- display: table-cell !important;
- }
- .d-print-flex {
- display: flex !important;
- }
- .d-print-inline-flex {
- display: inline-flex !important;
- }
- .d-print-none {
- display: none !important;
- }
-}
-/*!
- * Bootstrap Icons v1.11.3 (https://icons.getbootstrap.com/)
- * Copyright 2019-2024 The Bootstrap Authors
- * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)
- */
-@font-face {
- font-display: block;
- font-family: "bootstrap-icons";
- src: url("./fonts/bootstrap-icons.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"), url("./fonts/bootstrap-icons.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff");
-}
-.bi::before,
-[class^=bi-]::before,
-[class*=" bi-"]::before {
- display: inline-block;
- font-family: "bootstrap-icons" !important;
- font-style: normal;
- font-weight: normal !important;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
- vertical-align: -0.125em;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-.bi-123::before {
- content: "\f67f";
-}
-
-.bi-alarm-fill::before {
- content: "\f101";
-}
-
-.bi-alarm::before {
- content: "\f102";
-}
-
-.bi-align-bottom::before {
- content: "\f103";
-}
-
-.bi-align-center::before {
- content: "\f104";
-}
-
-.bi-align-end::before {
- content: "\f105";
-}
-
-.bi-align-middle::before {
- content: "\f106";
-}
-
-.bi-align-start::before {
- content: "\f107";
-}
-
-.bi-align-top::before {
- content: "\f108";
-}
-
-.bi-alt::before {
- content: "\f109";
-}
-
-.bi-app-indicator::before {
- content: "\f10a";
-}
-
-.bi-app::before {
- content: "\f10b";
-}
-
-.bi-archive-fill::before {
- content: "\f10c";
-}
-
-.bi-archive::before {
- content: "\f10d";
-}
-
-.bi-arrow-90deg-down::before {
- content: "\f10e";
-}
-
-.bi-arrow-90deg-left::before {
- content: "\f10f";
-}
-
-.bi-arrow-90deg-right::before {
- content: "\f110";
-}
-
-.bi-arrow-90deg-up::before {
- content: "\f111";
-}
-
-.bi-arrow-bar-down::before {
- content: "\f112";
-}
-
-.bi-arrow-bar-left::before {
- content: "\f113";
-}
-
-.bi-arrow-bar-right::before {
- content: "\f114";
-}
-
-.bi-arrow-bar-up::before {
- content: "\f115";
-}
-
-.bi-arrow-clockwise::before {
- content: "\f116";
-}
-
-.bi-arrow-counterclockwise::before {
- content: "\f117";
-}
-
-.bi-arrow-down-circle-fill::before {
- content: "\f118";
-}
-
-.bi-arrow-down-circle::before {
- content: "\f119";
-}
-
-.bi-arrow-down-left-circle-fill::before {
- content: "\f11a";
-}
-
-.bi-arrow-down-left-circle::before {
- content: "\f11b";
-}
-
-.bi-arrow-down-left-square-fill::before {
- content: "\f11c";
-}
-
-.bi-arrow-down-left-square::before {
- content: "\f11d";
-}
-
-.bi-arrow-down-left::before {
- content: "\f11e";
-}
-
-.bi-arrow-down-right-circle-fill::before {
- content: "\f11f";
-}
-
-.bi-arrow-down-right-circle::before {
- content: "\f120";
-}
-
-.bi-arrow-down-right-square-fill::before {
- content: "\f121";
-}
-
-.bi-arrow-down-right-square::before {
- content: "\f122";
-}
-
-.bi-arrow-down-right::before {
- content: "\f123";
-}
-
-.bi-arrow-down-short::before {
- content: "\f124";
-}
-
-.bi-arrow-down-square-fill::before {
- content: "\f125";
-}
-
-.bi-arrow-down-square::before {
- content: "\f126";
-}
-
-.bi-arrow-down-up::before {
- content: "\f127";
-}
-
-.bi-arrow-down::before {
- content: "\f128";
-}
-
-.bi-arrow-left-circle-fill::before {
- content: "\f129";
-}
-
-.bi-arrow-left-circle::before {
- content: "\f12a";
-}
-
-.bi-arrow-left-right::before {
- content: "\f12b";
-}
-
-.bi-arrow-left-short::before {
- content: "\f12c";
-}
-
-.bi-arrow-left-square-fill::before {
- content: "\f12d";
-}
-
-.bi-arrow-left-square::before {
- content: "\f12e";
-}
-
-.bi-arrow-left::before {
- content: "\f12f";
-}
-
-.bi-arrow-repeat::before {
- content: "\f130";
-}
-
-.bi-arrow-return-left::before {
- content: "\f131";
-}
-
-.bi-arrow-return-right::before {
- content: "\f132";
-}
-
-.bi-arrow-right-circle-fill::before {
- content: "\f133";
-}
-
-.bi-arrow-right-circle::before {
- content: "\f134";
-}
-
-.bi-arrow-right-short::before {
- content: "\f135";
-}
-
-.bi-arrow-right-square-fill::before {
- content: "\f136";
-}
-
-.bi-arrow-right-square::before {
- content: "\f137";
-}
-
-.bi-arrow-right::before {
- content: "\f138";
-}
-
-.bi-arrow-up-circle-fill::before {
- content: "\f139";
-}
-
-.bi-arrow-up-circle::before {
- content: "\f13a";
-}
-
-.bi-arrow-up-left-circle-fill::before {
- content: "\f13b";
-}
-
-.bi-arrow-up-left-circle::before {
- content: "\f13c";
-}
-
-.bi-arrow-up-left-square-fill::before {
- content: "\f13d";
-}
-
-.bi-arrow-up-left-square::before {
- content: "\f13e";
-}
-
-.bi-arrow-up-left::before {
- content: "\f13f";
-}
-
-.bi-arrow-up-right-circle-fill::before {
- content: "\f140";
-}
-
-.bi-arrow-up-right-circle::before {
- content: "\f141";
-}
-
-.bi-arrow-up-right-square-fill::before {
- content: "\f142";
-}
-
-.bi-arrow-up-right-square::before {
- content: "\f143";
-}
-
-.bi-arrow-up-right::before {
- content: "\f144";
-}
-
-.bi-arrow-up-short::before {
- content: "\f145";
-}
-
-.bi-arrow-up-square-fill::before {
- content: "\f146";
-}
-
-.bi-arrow-up-square::before {
- content: "\f147";
-}
-
-.bi-arrow-up::before {
- content: "\f148";
-}
-
-.bi-arrows-angle-contract::before {
- content: "\f149";
-}
-
-.bi-arrows-angle-expand::before {
- content: "\f14a";
-}
-
-.bi-arrows-collapse::before {
- content: "\f14b";
-}
-
-.bi-arrows-expand::before {
- content: "\f14c";
-}
-
-.bi-arrows-fullscreen::before {
- content: "\f14d";
-}
-
-.bi-arrows-move::before {
- content: "\f14e";
-}
-
-.bi-aspect-ratio-fill::before {
- content: "\f14f";
-}
-
-.bi-aspect-ratio::before {
- content: "\f150";
-}
-
-.bi-asterisk::before {
- content: "\f151";
-}
-
-.bi-at::before {
- content: "\f152";
-}
-
-.bi-award-fill::before {
- content: "\f153";
-}
-
-.bi-award::before {
- content: "\f154";
-}
-
-.bi-back::before {
- content: "\f155";
-}
-
-.bi-backspace-fill::before {
- content: "\f156";
-}
-
-.bi-backspace-reverse-fill::before {
- content: "\f157";
-}
-
-.bi-backspace-reverse::before {
- content: "\f158";
-}
-
-.bi-backspace::before {
- content: "\f159";
-}
-
-.bi-badge-3d-fill::before {
- content: "\f15a";
-}
-
-.bi-badge-3d::before {
- content: "\f15b";
-}
-
-.bi-badge-4k-fill::before {
- content: "\f15c";
-}
-
-.bi-badge-4k::before {
- content: "\f15d";
-}
-
-.bi-badge-8k-fill::before {
- content: "\f15e";
-}
-
-.bi-badge-8k::before {
- content: "\f15f";
-}
-
-.bi-badge-ad-fill::before {
- content: "\f160";
-}
-
-.bi-badge-ad::before {
- content: "\f161";
-}
-
-.bi-badge-ar-fill::before {
- content: "\f162";
-}
-
-.bi-badge-ar::before {
- content: "\f163";
-}
-
-.bi-badge-cc-fill::before {
- content: "\f164";
-}
-
-.bi-badge-cc::before {
- content: "\f165";
-}
-
-.bi-badge-hd-fill::before {
- content: "\f166";
-}
-
-.bi-badge-hd::before {
- content: "\f167";
-}
-
-.bi-badge-tm-fill::before {
- content: "\f168";
-}
-
-.bi-badge-tm::before {
- content: "\f169";
-}
-
-.bi-badge-vo-fill::before {
- content: "\f16a";
-}
-
-.bi-badge-vo::before {
- content: "\f16b";
-}
-
-.bi-badge-vr-fill::before {
- content: "\f16c";
-}
-
-.bi-badge-vr::before {
- content: "\f16d";
-}
-
-.bi-badge-wc-fill::before {
- content: "\f16e";
-}
-
-.bi-badge-wc::before {
- content: "\f16f";
-}
-
-.bi-bag-check-fill::before {
- content: "\f170";
-}
-
-.bi-bag-check::before {
- content: "\f171";
-}
-
-.bi-bag-dash-fill::before {
- content: "\f172";
-}
-
-.bi-bag-dash::before {
- content: "\f173";
-}
-
-.bi-bag-fill::before {
- content: "\f174";
-}
-
-.bi-bag-plus-fill::before {
- content: "\f175";
-}
-
-.bi-bag-plus::before {
- content: "\f176";
-}
-
-.bi-bag-x-fill::before {
- content: "\f177";
-}
-
-.bi-bag-x::before {
- content: "\f178";
-}
-
-.bi-bag::before {
- content: "\f179";
-}
-
-.bi-bar-chart-fill::before {
- content: "\f17a";
-}
-
-.bi-bar-chart-line-fill::before {
- content: "\f17b";
-}
-
-.bi-bar-chart-line::before {
- content: "\f17c";
-}
-
-.bi-bar-chart-steps::before {
- content: "\f17d";
-}
-
-.bi-bar-chart::before {
- content: "\f17e";
-}
-
-.bi-basket-fill::before {
- content: "\f17f";
-}
-
-.bi-basket::before {
- content: "\f180";
-}
-
-.bi-basket2-fill::before {
- content: "\f181";
-}
-
-.bi-basket2::before {
- content: "\f182";
-}
-
-.bi-basket3-fill::before {
- content: "\f183";
-}
-
-.bi-basket3::before {
- content: "\f184";
-}
-
-.bi-battery-charging::before {
- content: "\f185";
-}
-
-.bi-battery-full::before {
- content: "\f186";
-}
-
-.bi-battery-half::before {
- content: "\f187";
-}
-
-.bi-battery::before {
- content: "\f188";
-}
-
-.bi-bell-fill::before {
- content: "\f189";
-}
-
-.bi-bell::before {
- content: "\f18a";
-}
-
-.bi-bezier::before {
- content: "\f18b";
-}
-
-.bi-bezier2::before {
- content: "\f18c";
-}
-
-.bi-bicycle::before {
- content: "\f18d";
-}
-
-.bi-binoculars-fill::before {
- content: "\f18e";
-}
-
-.bi-binoculars::before {
- content: "\f18f";
-}
-
-.bi-blockquote-left::before {
- content: "\f190";
-}
-
-.bi-blockquote-right::before {
- content: "\f191";
-}
-
-.bi-book-fill::before {
- content: "\f192";
-}
-
-.bi-book-half::before {
- content: "\f193";
-}
-
-.bi-book::before {
- content: "\f194";
-}
-
-.bi-bookmark-check-fill::before {
- content: "\f195";
-}
-
-.bi-bookmark-check::before {
- content: "\f196";
-}
-
-.bi-bookmark-dash-fill::before {
- content: "\f197";
-}
-
-.bi-bookmark-dash::before {
- content: "\f198";
-}
-
-.bi-bookmark-fill::before {
- content: "\f199";
-}
-
-.bi-bookmark-heart-fill::before {
- content: "\f19a";
-}
-
-.bi-bookmark-heart::before {
- content: "\f19b";
-}
-
-.bi-bookmark-plus-fill::before {
- content: "\f19c";
-}
-
-.bi-bookmark-plus::before {
- content: "\f19d";
-}
-
-.bi-bookmark-star-fill::before {
- content: "\f19e";
-}
-
-.bi-bookmark-star::before {
- content: "\f19f";
-}
-
-.bi-bookmark-x-fill::before {
- content: "\f1a0";
-}
-
-.bi-bookmark-x::before {
- content: "\f1a1";
-}
-
-.bi-bookmark::before {
- content: "\f1a2";
-}
-
-.bi-bookmarks-fill::before {
- content: "\f1a3";
-}
-
-.bi-bookmarks::before {
- content: "\f1a4";
-}
-
-.bi-bookshelf::before {
- content: "\f1a5";
-}
-
-.bi-bootstrap-fill::before {
- content: "\f1a6";
-}
-
-.bi-bootstrap-reboot::before {
- content: "\f1a7";
-}
-
-.bi-bootstrap::before {
- content: "\f1a8";
-}
-
-.bi-border-all::before {
- content: "\f1a9";
-}
-
-.bi-border-bottom::before {
- content: "\f1aa";
-}
-
-.bi-border-center::before {
- content: "\f1ab";
-}
-
-.bi-border-inner::before {
- content: "\f1ac";
-}
-
-.bi-border-left::before {
- content: "\f1ad";
-}
-
-.bi-border-middle::before {
- content: "\f1ae";
-}
-
-.bi-border-outer::before {
- content: "\f1af";
-}
-
-.bi-border-right::before {
- content: "\f1b0";
-}
-
-.bi-border-style::before {
- content: "\f1b1";
-}
-
-.bi-border-top::before {
- content: "\f1b2";
-}
-
-.bi-border-width::before {
- content: "\f1b3";
-}
-
-.bi-border::before {
- content: "\f1b4";
-}
-
-.bi-bounding-box-circles::before {
- content: "\f1b5";
-}
-
-.bi-bounding-box::before {
- content: "\f1b6";
-}
-
-.bi-box-arrow-down-left::before {
- content: "\f1b7";
-}
-
-.bi-box-arrow-down-right::before {
- content: "\f1b8";
-}
-
-.bi-box-arrow-down::before {
- content: "\f1b9";
-}
-
-.bi-box-arrow-in-down-left::before {
- content: "\f1ba";
-}
-
-.bi-box-arrow-in-down-right::before {
- content: "\f1bb";
-}
-
-.bi-box-arrow-in-down::before {
- content: "\f1bc";
-}
-
-.bi-box-arrow-in-left::before {
- content: "\f1bd";
-}
-
-.bi-box-arrow-in-right::before {
- content: "\f1be";
-}
-
-.bi-box-arrow-in-up-left::before {
- content: "\f1bf";
-}
-
-.bi-box-arrow-in-up-right::before {
- content: "\f1c0";
-}
-
-.bi-box-arrow-in-up::before {
- content: "\f1c1";
-}
-
-.bi-box-arrow-left::before {
- content: "\f1c2";
-}
-
-.bi-box-arrow-right::before {
- content: "\f1c3";
-}
-
-.bi-box-arrow-up-left::before {
- content: "\f1c4";
-}
-
-.bi-box-arrow-up-right::before {
- content: "\f1c5";
-}
-
-.bi-box-arrow-up::before {
- content: "\f1c6";
-}
-
-.bi-box-seam::before {
- content: "\f1c7";
-}
-
-.bi-box::before {
- content: "\f1c8";
-}
-
-.bi-braces::before {
- content: "\f1c9";
-}
-
-.bi-bricks::before {
- content: "\f1ca";
-}
-
-.bi-briefcase-fill::before {
- content: "\f1cb";
-}
-
-.bi-briefcase::before {
- content: "\f1cc";
-}
-
-.bi-brightness-alt-high-fill::before {
- content: "\f1cd";
-}
-
-.bi-brightness-alt-high::before {
- content: "\f1ce";
-}
-
-.bi-brightness-alt-low-fill::before {
- content: "\f1cf";
-}
-
-.bi-brightness-alt-low::before {
- content: "\f1d0";
-}
-
-.bi-brightness-high-fill::before {
- content: "\f1d1";
-}
-
-.bi-brightness-high::before {
- content: "\f1d2";
-}
-
-.bi-brightness-low-fill::before {
- content: "\f1d3";
-}
-
-.bi-brightness-low::before {
- content: "\f1d4";
-}
-
-.bi-broadcast-pin::before {
- content: "\f1d5";
-}
-
-.bi-broadcast::before {
- content: "\f1d6";
-}
-
-.bi-brush-fill::before {
- content: "\f1d7";
-}
-
-.bi-brush::before {
- content: "\f1d8";
-}
-
-.bi-bucket-fill::before {
- content: "\f1d9";
-}
-
-.bi-bucket::before {
- content: "\f1da";
-}
-
-.bi-bug-fill::before {
- content: "\f1db";
-}
-
-.bi-bug::before {
- content: "\f1dc";
-}
-
-.bi-building::before {
- content: "\f1dd";
-}
-
-.bi-bullseye::before {
- content: "\f1de";
-}
-
-.bi-calculator-fill::before {
- content: "\f1df";
-}
-
-.bi-calculator::before {
- content: "\f1e0";
-}
-
-.bi-calendar-check-fill::before {
- content: "\f1e1";
-}
-
-.bi-calendar-check::before {
- content: "\f1e2";
-}
-
-.bi-calendar-date-fill::before {
- content: "\f1e3";
-}
-
-.bi-calendar-date::before {
- content: "\f1e4";
-}
-
-.bi-calendar-day-fill::before {
- content: "\f1e5";
-}
-
-.bi-calendar-day::before {
- content: "\f1e6";
-}
-
-.bi-calendar-event-fill::before {
- content: "\f1e7";
-}
-
-.bi-calendar-event::before {
- content: "\f1e8";
-}
-
-.bi-calendar-fill::before {
- content: "\f1e9";
-}
-
-.bi-calendar-minus-fill::before {
- content: "\f1ea";
-}
-
-.bi-calendar-minus::before {
- content: "\f1eb";
-}
-
-.bi-calendar-month-fill::before {
- content: "\f1ec";
-}
-
-.bi-calendar-month::before {
- content: "\f1ed";
-}
-
-.bi-calendar-plus-fill::before {
- content: "\f1ee";
-}
-
-.bi-calendar-plus::before {
- content: "\f1ef";
-}
-
-.bi-calendar-range-fill::before {
- content: "\f1f0";
-}
-
-.bi-calendar-range::before {
- content: "\f1f1";
-}
-
-.bi-calendar-week-fill::before {
- content: "\f1f2";
-}
-
-.bi-calendar-week::before {
- content: "\f1f3";
-}
-
-.bi-calendar-x-fill::before {
- content: "\f1f4";
-}
-
-.bi-calendar-x::before {
- content: "\f1f5";
-}
-
-.bi-calendar::before {
- content: "\f1f6";
-}
-
-.bi-calendar2-check-fill::before {
- content: "\f1f7";
-}
-
-.bi-calendar2-check::before {
- content: "\f1f8";
-}
-
-.bi-calendar2-date-fill::before {
- content: "\f1f9";
-}
-
-.bi-calendar2-date::before {
- content: "\f1fa";
-}
-
-.bi-calendar2-day-fill::before {
- content: "\f1fb";
-}
-
-.bi-calendar2-day::before {
- content: "\f1fc";
-}
-
-.bi-calendar2-event-fill::before {
- content: "\f1fd";
-}
-
-.bi-calendar2-event::before {
- content: "\f1fe";
-}
-
-.bi-calendar2-fill::before {
- content: "\f1ff";
-}
-
-.bi-calendar2-minus-fill::before {
- content: "\f200";
-}
-
-.bi-calendar2-minus::before {
- content: "\f201";
-}
-
-.bi-calendar2-month-fill::before {
- content: "\f202";
-}
-
-.bi-calendar2-month::before {
- content: "\f203";
-}
-
-.bi-calendar2-plus-fill::before {
- content: "\f204";
-}
-
-.bi-calendar2-plus::before {
- content: "\f205";
-}
-
-.bi-calendar2-range-fill::before {
- content: "\f206";
-}
-
-.bi-calendar2-range::before {
- content: "\f207";
-}
-
-.bi-calendar2-week-fill::before {
- content: "\f208";
-}
-
-.bi-calendar2-week::before {
- content: "\f209";
-}
-
-.bi-calendar2-x-fill::before {
- content: "\f20a";
-}
-
-.bi-calendar2-x::before {
- content: "\f20b";
-}
-
-.bi-calendar2::before {
- content: "\f20c";
-}
-
-.bi-calendar3-event-fill::before {
- content: "\f20d";
-}
-
-.bi-calendar3-event::before {
- content: "\f20e";
-}
-
-.bi-calendar3-fill::before {
- content: "\f20f";
-}
-
-.bi-calendar3-range-fill::before {
- content: "\f210";
-}
-
-.bi-calendar3-range::before {
- content: "\f211";
-}
-
-.bi-calendar3-week-fill::before {
- content: "\f212";
-}
-
-.bi-calendar3-week::before {
- content: "\f213";
-}
-
-.bi-calendar3::before {
- content: "\f214";
-}
-
-.bi-calendar4-event::before {
- content: "\f215";
-}
-
-.bi-calendar4-range::before {
- content: "\f216";
-}
-
-.bi-calendar4-week::before {
- content: "\f217";
-}
-
-.bi-calendar4::before {
- content: "\f218";
-}
-
-.bi-camera-fill::before {
- content: "\f219";
-}
-
-.bi-camera-reels-fill::before {
- content: "\f21a";
-}
-
-.bi-camera-reels::before {
- content: "\f21b";
-}
-
-.bi-camera-video-fill::before {
- content: "\f21c";
-}
-
-.bi-camera-video-off-fill::before {
- content: "\f21d";
-}
-
-.bi-camera-video-off::before {
- content: "\f21e";
-}
-
-.bi-camera-video::before {
- content: "\f21f";
-}
-
-.bi-camera::before {
- content: "\f220";
-}
-
-.bi-camera2::before {
- content: "\f221";
-}
-
-.bi-capslock-fill::before {
- content: "\f222";
-}
-
-.bi-capslock::before {
- content: "\f223";
-}
-
-.bi-card-checklist::before {
- content: "\f224";
-}
-
-.bi-card-heading::before {
- content: "\f225";
-}
-
-.bi-card-image::before {
- content: "\f226";
-}
-
-.bi-card-list::before {
- content: "\f227";
-}
-
-.bi-card-text::before {
- content: "\f228";
-}
-
-.bi-caret-down-fill::before {
- content: "\f229";
-}
-
-.bi-caret-down-square-fill::before {
- content: "\f22a";
-}
-
-.bi-caret-down-square::before {
- content: "\f22b";
-}
-
-.bi-caret-down::before {
- content: "\f22c";
-}
-
-.bi-caret-left-fill::before {
- content: "\f22d";
-}
-
-.bi-caret-left-square-fill::before {
- content: "\f22e";
-}
-
-.bi-caret-left-square::before {
- content: "\f22f";
-}
-
-.bi-caret-left::before {
- content: "\f230";
-}
-
-.bi-caret-right-fill::before {
- content: "\f231";
-}
-
-.bi-caret-right-square-fill::before {
- content: "\f232";
-}
-
-.bi-caret-right-square::before {
- content: "\f233";
-}
-
-.bi-caret-right::before {
- content: "\f234";
-}
-
-.bi-caret-up-fill::before {
- content: "\f235";
-}
-
-.bi-caret-up-square-fill::before {
- content: "\f236";
-}
-
-.bi-caret-up-square::before {
- content: "\f237";
-}
-
-.bi-caret-up::before {
- content: "\f238";
-}
-
-.bi-cart-check-fill::before {
- content: "\f239";
-}
-
-.bi-cart-check::before {
- content: "\f23a";
-}
-
-.bi-cart-dash-fill::before {
- content: "\f23b";
-}
-
-.bi-cart-dash::before {
- content: "\f23c";
-}
-
-.bi-cart-fill::before {
- content: "\f23d";
-}
-
-.bi-cart-plus-fill::before {
- content: "\f23e";
-}
-
-.bi-cart-plus::before {
- content: "\f23f";
-}
-
-.bi-cart-x-fill::before {
- content: "\f240";
-}
-
-.bi-cart-x::before {
- content: "\f241";
-}
-
-.bi-cart::before {
- content: "\f242";
-}
-
-.bi-cart2::before {
- content: "\f243";
-}
-
-.bi-cart3::before {
- content: "\f244";
-}
-
-.bi-cart4::before {
- content: "\f245";
-}
-
-.bi-cash-stack::before {
- content: "\f246";
-}
-
-.bi-cash::before {
- content: "\f247";
-}
-
-.bi-cast::before {
- content: "\f248";
-}
-
-.bi-chat-dots-fill::before {
- content: "\f249";
-}
-
-.bi-chat-dots::before {
- content: "\f24a";
-}
-
-.bi-chat-fill::before {
- content: "\f24b";
-}
-
-.bi-chat-left-dots-fill::before {
- content: "\f24c";
-}
-
-.bi-chat-left-dots::before {
- content: "\f24d";
-}
-
-.bi-chat-left-fill::before {
- content: "\f24e";
-}
-
-.bi-chat-left-quote-fill::before {
- content: "\f24f";
-}
-
-.bi-chat-left-quote::before {
- content: "\f250";
-}
-
-.bi-chat-left-text-fill::before {
- content: "\f251";
-}
-
-.bi-chat-left-text::before {
- content: "\f252";
-}
-
-.bi-chat-left::before {
- content: "\f253";
-}
-
-.bi-chat-quote-fill::before {
- content: "\f254";
-}
-
-.bi-chat-quote::before {
- content: "\f255";
-}
-
-.bi-chat-right-dots-fill::before {
- content: "\f256";
-}
-
-.bi-chat-right-dots::before {
- content: "\f257";
-}
-
-.bi-chat-right-fill::before {
- content: "\f258";
-}
-
-.bi-chat-right-quote-fill::before {
- content: "\f259";
-}
-
-.bi-chat-right-quote::before {
- content: "\f25a";
-}
-
-.bi-chat-right-text-fill::before {
- content: "\f25b";
-}
-
-.bi-chat-right-text::before {
- content: "\f25c";
-}
-
-.bi-chat-right::before {
- content: "\f25d";
-}
-
-.bi-chat-square-dots-fill::before {
- content: "\f25e";
-}
-
-.bi-chat-square-dots::before {
- content: "\f25f";
-}
-
-.bi-chat-square-fill::before {
- content: "\f260";
-}
-
-.bi-chat-square-quote-fill::before {
- content: "\f261";
-}
-
-.bi-chat-square-quote::before {
- content: "\f262";
-}
-
-.bi-chat-square-text-fill::before {
- content: "\f263";
-}
-
-.bi-chat-square-text::before {
- content: "\f264";
-}
-
-.bi-chat-square::before {
- content: "\f265";
-}
-
-.bi-chat-text-fill::before {
- content: "\f266";
-}
-
-.bi-chat-text::before {
- content: "\f267";
-}
-
-.bi-chat::before {
- content: "\f268";
-}
-
-.bi-check-all::before {
- content: "\f269";
-}
-
-.bi-check-circle-fill::before {
- content: "\f26a";
-}
-
-.bi-check-circle::before {
- content: "\f26b";
-}
-
-.bi-check-square-fill::before {
- content: "\f26c";
-}
-
-.bi-check-square::before {
- content: "\f26d";
-}
-
-.bi-check::before {
- content: "\f26e";
-}
-
-.bi-check2-all::before {
- content: "\f26f";
-}
-
-.bi-check2-circle::before {
- content: "\f270";
-}
-
-.bi-check2-square::before {
- content: "\f271";
-}
-
-.bi-check2::before {
- content: "\f272";
-}
-
-.bi-chevron-bar-contract::before {
- content: "\f273";
-}
-
-.bi-chevron-bar-down::before {
- content: "\f274";
-}
-
-.bi-chevron-bar-expand::before {
- content: "\f275";
-}
-
-.bi-chevron-bar-left::before {
- content: "\f276";
-}
-
-.bi-chevron-bar-right::before {
- content: "\f277";
-}
-
-.bi-chevron-bar-up::before {
- content: "\f278";
-}
-
-.bi-chevron-compact-down::before {
- content: "\f279";
-}
-
-.bi-chevron-compact-left::before {
- content: "\f27a";
-}
-
-.bi-chevron-compact-right::before {
- content: "\f27b";
-}
-
-.bi-chevron-compact-up::before {
- content: "\f27c";
-}
-
-.bi-chevron-contract::before {
- content: "\f27d";
-}
-
-.bi-chevron-double-down::before {
- content: "\f27e";
-}
-
-.bi-chevron-double-left::before {
- content: "\f27f";
-}
-
-.bi-chevron-double-right::before {
- content: "\f280";
-}
-
-.bi-chevron-double-up::before {
- content: "\f281";
-}
-
-.bi-chevron-down::before {
- content: "\f282";
-}
-
-.bi-chevron-expand::before {
- content: "\f283";
-}
-
-.bi-chevron-left::before {
- content: "\f284";
-}
-
-.bi-chevron-right::before {
- content: "\f285";
-}
-
-.bi-chevron-up::before {
- content: "\f286";
-}
-
-.bi-circle-fill::before {
- content: "\f287";
-}
-
-.bi-circle-half::before {
- content: "\f288";
-}
-
-.bi-circle-square::before {
- content: "\f289";
-}
-
-.bi-circle::before {
- content: "\f28a";
-}
-
-.bi-clipboard-check::before {
- content: "\f28b";
-}
-
-.bi-clipboard-data::before {
- content: "\f28c";
-}
-
-.bi-clipboard-minus::before {
- content: "\f28d";
-}
-
-.bi-clipboard-plus::before {
- content: "\f28e";
-}
-
-.bi-clipboard-x::before {
- content: "\f28f";
-}
-
-.bi-clipboard::before {
- content: "\f290";
-}
-
-.bi-clock-fill::before {
- content: "\f291";
-}
-
-.bi-clock-history::before {
- content: "\f292";
-}
-
-.bi-clock::before {
- content: "\f293";
-}
-
-.bi-cloud-arrow-down-fill::before {
- content: "\f294";
-}
-
-.bi-cloud-arrow-down::before {
- content: "\f295";
-}
-
-.bi-cloud-arrow-up-fill::before {
- content: "\f296";
-}
-
-.bi-cloud-arrow-up::before {
- content: "\f297";
-}
-
-.bi-cloud-check-fill::before {
- content: "\f298";
-}
-
-.bi-cloud-check::before {
- content: "\f299";
-}
-
-.bi-cloud-download-fill::before {
- content: "\f29a";
-}
-
-.bi-cloud-download::before {
- content: "\f29b";
-}
-
-.bi-cloud-drizzle-fill::before {
- content: "\f29c";
-}
-
-.bi-cloud-drizzle::before {
- content: "\f29d";
-}
-
-.bi-cloud-fill::before {
- content: "\f29e";
-}
-
-.bi-cloud-fog-fill::before {
- content: "\f29f";
-}
-
-.bi-cloud-fog::before {
- content: "\f2a0";
-}
-
-.bi-cloud-fog2-fill::before {
- content: "\f2a1";
-}
-
-.bi-cloud-fog2::before {
- content: "\f2a2";
-}
-
-.bi-cloud-hail-fill::before {
- content: "\f2a3";
-}
-
-.bi-cloud-hail::before {
- content: "\f2a4";
-}
-
-.bi-cloud-haze-fill::before {
- content: "\f2a6";
-}
-
-.bi-cloud-haze::before {
- content: "\f2a7";
-}
-
-.bi-cloud-haze2-fill::before {
- content: "\f2a8";
-}
-
-.bi-cloud-lightning-fill::before {
- content: "\f2a9";
-}
-
-.bi-cloud-lightning-rain-fill::before {
- content: "\f2aa";
-}
-
-.bi-cloud-lightning-rain::before {
- content: "\f2ab";
-}
-
-.bi-cloud-lightning::before {
- content: "\f2ac";
-}
-
-.bi-cloud-minus-fill::before {
- content: "\f2ad";
-}
-
-.bi-cloud-minus::before {
- content: "\f2ae";
-}
-
-.bi-cloud-moon-fill::before {
- content: "\f2af";
-}
-
-.bi-cloud-moon::before {
- content: "\f2b0";
-}
-
-.bi-cloud-plus-fill::before {
- content: "\f2b1";
-}
-
-.bi-cloud-plus::before {
- content: "\f2b2";
-}
-
-.bi-cloud-rain-fill::before {
- content: "\f2b3";
-}
-
-.bi-cloud-rain-heavy-fill::before {
- content: "\f2b4";
-}
-
-.bi-cloud-rain-heavy::before {
- content: "\f2b5";
-}
-
-.bi-cloud-rain::before {
- content: "\f2b6";
-}
-
-.bi-cloud-slash-fill::before {
- content: "\f2b7";
-}
-
-.bi-cloud-slash::before {
- content: "\f2b8";
-}
-
-.bi-cloud-sleet-fill::before {
- content: "\f2b9";
-}
-
-.bi-cloud-sleet::before {
- content: "\f2ba";
-}
-
-.bi-cloud-snow-fill::before {
- content: "\f2bb";
-}
-
-.bi-cloud-snow::before {
- content: "\f2bc";
-}
-
-.bi-cloud-sun-fill::before {
- content: "\f2bd";
-}
-
-.bi-cloud-sun::before {
- content: "\f2be";
-}
-
-.bi-cloud-upload-fill::before {
- content: "\f2bf";
-}
-
-.bi-cloud-upload::before {
- content: "\f2c0";
-}
-
-.bi-cloud::before {
- content: "\f2c1";
-}
-
-.bi-clouds-fill::before {
- content: "\f2c2";
-}
-
-.bi-clouds::before {
- content: "\f2c3";
-}
-
-.bi-cloudy-fill::before {
- content: "\f2c4";
-}
-
-.bi-cloudy::before {
- content: "\f2c5";
-}
-
-.bi-code-slash::before {
- content: "\f2c6";
-}
-
-.bi-code-square::before {
- content: "\f2c7";
-}
-
-.bi-code::before {
- content: "\f2c8";
-}
-
-.bi-collection-fill::before {
- content: "\f2c9";
-}
-
-.bi-collection-play-fill::before {
- content: "\f2ca";
-}
-
-.bi-collection-play::before {
- content: "\f2cb";
-}
-
-.bi-collection::before {
- content: "\f2cc";
-}
-
-.bi-columns-gap::before {
- content: "\f2cd";
-}
-
-.bi-columns::before {
- content: "\f2ce";
-}
-
-.bi-command::before {
- content: "\f2cf";
-}
-
-.bi-compass-fill::before {
- content: "\f2d0";
-}
-
-.bi-compass::before {
- content: "\f2d1";
-}
-
-.bi-cone-striped::before {
- content: "\f2d2";
-}
-
-.bi-cone::before {
- content: "\f2d3";
-}
-
-.bi-controller::before {
- content: "\f2d4";
-}
-
-.bi-cpu-fill::before {
- content: "\f2d5";
-}
-
-.bi-cpu::before {
- content: "\f2d6";
-}
-
-.bi-credit-card-2-back-fill::before {
- content: "\f2d7";
-}
-
-.bi-credit-card-2-back::before {
- content: "\f2d8";
-}
-
-.bi-credit-card-2-front-fill::before {
- content: "\f2d9";
-}
-
-.bi-credit-card-2-front::before {
- content: "\f2da";
-}
-
-.bi-credit-card-fill::before {
- content: "\f2db";
-}
-
-.bi-credit-card::before {
- content: "\f2dc";
-}
-
-.bi-crop::before {
- content: "\f2dd";
-}
-
-.bi-cup-fill::before {
- content: "\f2de";
-}
-
-.bi-cup-straw::before {
- content: "\f2df";
-}
-
-.bi-cup::before {
- content: "\f2e0";
-}
-
-.bi-cursor-fill::before {
- content: "\f2e1";
-}
-
-.bi-cursor-text::before {
- content: "\f2e2";
-}
-
-.bi-cursor::before {
- content: "\f2e3";
-}
-
-.bi-dash-circle-dotted::before {
- content: "\f2e4";
-}
-
-.bi-dash-circle-fill::before {
- content: "\f2e5";
-}
-
-.bi-dash-circle::before {
- content: "\f2e6";
-}
-
-.bi-dash-square-dotted::before {
- content: "\f2e7";
-}
-
-.bi-dash-square-fill::before {
- content: "\f2e8";
-}
-
-.bi-dash-square::before {
- content: "\f2e9";
-}
-
-.bi-dash::before {
- content: "\f2ea";
-}
-
-.bi-diagram-2-fill::before {
- content: "\f2eb";
-}
-
-.bi-diagram-2::before {
- content: "\f2ec";
-}
-
-.bi-diagram-3-fill::before {
- content: "\f2ed";
-}
-
-.bi-diagram-3::before {
- content: "\f2ee";
-}
-
-.bi-diamond-fill::before {
- content: "\f2ef";
-}
-
-.bi-diamond-half::before {
- content: "\f2f0";
-}
-
-.bi-diamond::before {
- content: "\f2f1";
-}
-
-.bi-dice-1-fill::before {
- content: "\f2f2";
-}
-
-.bi-dice-1::before {
- content: "\f2f3";
-}
-
-.bi-dice-2-fill::before {
- content: "\f2f4";
-}
-
-.bi-dice-2::before {
- content: "\f2f5";
-}
-
-.bi-dice-3-fill::before {
- content: "\f2f6";
-}
-
-.bi-dice-3::before {
- content: "\f2f7";
-}
-
-.bi-dice-4-fill::before {
- content: "\f2f8";
-}
-
-.bi-dice-4::before {
- content: "\f2f9";
-}
-
-.bi-dice-5-fill::before {
- content: "\f2fa";
-}
-
-.bi-dice-5::before {
- content: "\f2fb";
-}
-
-.bi-dice-6-fill::before {
- content: "\f2fc";
-}
-
-.bi-dice-6::before {
- content: "\f2fd";
-}
-
-.bi-disc-fill::before {
- content: "\f2fe";
-}
-
-.bi-disc::before {
- content: "\f2ff";
-}
-
-.bi-discord::before {
- content: "\f300";
-}
-
-.bi-display-fill::before {
- content: "\f301";
-}
-
-.bi-display::before {
- content: "\f302";
-}
-
-.bi-distribute-horizontal::before {
- content: "\f303";
-}
-
-.bi-distribute-vertical::before {
- content: "\f304";
-}
-
-.bi-door-closed-fill::before {
- content: "\f305";
-}
-
-.bi-door-closed::before {
- content: "\f306";
-}
-
-.bi-door-open-fill::before {
- content: "\f307";
-}
-
-.bi-door-open::before {
- content: "\f308";
-}
-
-.bi-dot::before {
- content: "\f309";
-}
-
-.bi-download::before {
- content: "\f30a";
-}
-
-.bi-droplet-fill::before {
- content: "\f30b";
-}
-
-.bi-droplet-half::before {
- content: "\f30c";
-}
-
-.bi-droplet::before {
- content: "\f30d";
-}
-
-.bi-earbuds::before {
- content: "\f30e";
-}
-
-.bi-easel-fill::before {
- content: "\f30f";
-}
-
-.bi-easel::before {
- content: "\f310";
-}
-
-.bi-egg-fill::before {
- content: "\f311";
-}
-
-.bi-egg-fried::before {
- content: "\f312";
-}
-
-.bi-egg::before {
- content: "\f313";
-}
-
-.bi-eject-fill::before {
- content: "\f314";
-}
-
-.bi-eject::before {
- content: "\f315";
-}
-
-.bi-emoji-angry-fill::before {
- content: "\f316";
-}
-
-.bi-emoji-angry::before {
- content: "\f317";
-}
-
-.bi-emoji-dizzy-fill::before {
- content: "\f318";
-}
-
-.bi-emoji-dizzy::before {
- content: "\f319";
-}
-
-.bi-emoji-expressionless-fill::before {
- content: "\f31a";
-}
-
-.bi-emoji-expressionless::before {
- content: "\f31b";
-}
-
-.bi-emoji-frown-fill::before {
- content: "\f31c";
-}
-
-.bi-emoji-frown::before {
- content: "\f31d";
-}
-
-.bi-emoji-heart-eyes-fill::before {
- content: "\f31e";
-}
-
-.bi-emoji-heart-eyes::before {
- content: "\f31f";
-}
-
-.bi-emoji-laughing-fill::before {
- content: "\f320";
-}
-
-.bi-emoji-laughing::before {
- content: "\f321";
-}
-
-.bi-emoji-neutral-fill::before {
- content: "\f322";
-}
-
-.bi-emoji-neutral::before {
- content: "\f323";
-}
-
-.bi-emoji-smile-fill::before {
- content: "\f324";
-}
-
-.bi-emoji-smile-upside-down-fill::before {
- content: "\f325";
-}
-
-.bi-emoji-smile-upside-down::before {
- content: "\f326";
-}
-
-.bi-emoji-smile::before {
- content: "\f327";
-}
-
-.bi-emoji-sunglasses-fill::before {
- content: "\f328";
-}
-
-.bi-emoji-sunglasses::before {
- content: "\f329";
-}
-
-.bi-emoji-wink-fill::before {
- content: "\f32a";
-}
-
-.bi-emoji-wink::before {
- content: "\f32b";
-}
-
-.bi-envelope-fill::before {
- content: "\f32c";
-}
-
-.bi-envelope-open-fill::before {
- content: "\f32d";
-}
-
-.bi-envelope-open::before {
- content: "\f32e";
-}
-
-.bi-envelope::before {
- content: "\f32f";
-}
-
-.bi-eraser-fill::before {
- content: "\f330";
-}
-
-.bi-eraser::before {
- content: "\f331";
-}
-
-.bi-exclamation-circle-fill::before {
- content: "\f332";
-}
-
-.bi-exclamation-circle::before {
- content: "\f333";
-}
-
-.bi-exclamation-diamond-fill::before {
- content: "\f334";
-}
-
-.bi-exclamation-diamond::before {
- content: "\f335";
-}
-
-.bi-exclamation-octagon-fill::before {
- content: "\f336";
-}
-
-.bi-exclamation-octagon::before {
- content: "\f337";
-}
-
-.bi-exclamation-square-fill::before {
- content: "\f338";
-}
-
-.bi-exclamation-square::before {
- content: "\f339";
-}
-
-.bi-exclamation-triangle-fill::before {
- content: "\f33a";
-}
-
-.bi-exclamation-triangle::before {
- content: "\f33b";
-}
-
-.bi-exclamation::before {
- content: "\f33c";
-}
-
-.bi-exclude::before {
- content: "\f33d";
-}
-
-.bi-eye-fill::before {
- content: "\f33e";
-}
-
-.bi-eye-slash-fill::before {
- content: "\f33f";
-}
-
-.bi-eye-slash::before {
- content: "\f340";
-}
-
-.bi-eye::before {
- content: "\f341";
-}
-
-.bi-eyedropper::before {
- content: "\f342";
-}
-
-.bi-eyeglasses::before {
- content: "\f343";
-}
-
-.bi-facebook::before {
- content: "\f344";
-}
-
-.bi-file-arrow-down-fill::before {
- content: "\f345";
-}
-
-.bi-file-arrow-down::before {
- content: "\f346";
-}
-
-.bi-file-arrow-up-fill::before {
- content: "\f347";
-}
-
-.bi-file-arrow-up::before {
- content: "\f348";
-}
-
-.bi-file-bar-graph-fill::before {
- content: "\f349";
-}
-
-.bi-file-bar-graph::before {
- content: "\f34a";
-}
-
-.bi-file-binary-fill::before {
- content: "\f34b";
-}
-
-.bi-file-binary::before {
- content: "\f34c";
-}
-
-.bi-file-break-fill::before {
- content: "\f34d";
-}
-
-.bi-file-break::before {
- content: "\f34e";
-}
-
-.bi-file-check-fill::before {
- content: "\f34f";
-}
-
-.bi-file-check::before {
- content: "\f350";
-}
-
-.bi-file-code-fill::before {
- content: "\f351";
-}
-
-.bi-file-code::before {
- content: "\f352";
-}
-
-.bi-file-diff-fill::before {
- content: "\f353";
-}
-
-.bi-file-diff::before {
- content: "\f354";
-}
-
-.bi-file-earmark-arrow-down-fill::before {
- content: "\f355";
-}
-
-.bi-file-earmark-arrow-down::before {
- content: "\f356";
-}
-
-.bi-file-earmark-arrow-up-fill::before {
- content: "\f357";
-}
-
-.bi-file-earmark-arrow-up::before {
- content: "\f358";
-}
-
-.bi-file-earmark-bar-graph-fill::before {
- content: "\f359";
-}
-
-.bi-file-earmark-bar-graph::before {
- content: "\f35a";
-}
-
-.bi-file-earmark-binary-fill::before {
- content: "\f35b";
-}
-
-.bi-file-earmark-binary::before {
- content: "\f35c";
-}
-
-.bi-file-earmark-break-fill::before {
- content: "\f35d";
-}
-
-.bi-file-earmark-break::before {
- content: "\f35e";
-}
-
-.bi-file-earmark-check-fill::before {
- content: "\f35f";
-}
-
-.bi-file-earmark-check::before {
- content: "\f360";
-}
-
-.bi-file-earmark-code-fill::before {
- content: "\f361";
-}
-
-.bi-file-earmark-code::before {
- content: "\f362";
-}
-
-.bi-file-earmark-diff-fill::before {
- content: "\f363";
-}
-
-.bi-file-earmark-diff::before {
- content: "\f364";
-}
-
-.bi-file-earmark-easel-fill::before {
- content: "\f365";
-}
-
-.bi-file-earmark-easel::before {
- content: "\f366";
-}
-
-.bi-file-earmark-excel-fill::before {
- content: "\f367";
-}
-
-.bi-file-earmark-excel::before {
- content: "\f368";
-}
-
-.bi-file-earmark-fill::before {
- content: "\f369";
-}
-
-.bi-file-earmark-font-fill::before {
- content: "\f36a";
-}
-
-.bi-file-earmark-font::before {
- content: "\f36b";
-}
-
-.bi-file-earmark-image-fill::before {
- content: "\f36c";
-}
-
-.bi-file-earmark-image::before {
- content: "\f36d";
-}
-
-.bi-file-earmark-lock-fill::before {
- content: "\f36e";
-}
-
-.bi-file-earmark-lock::before {
- content: "\f36f";
-}
-
-.bi-file-earmark-lock2-fill::before {
- content: "\f370";
-}
-
-.bi-file-earmark-lock2::before {
- content: "\f371";
-}
-
-.bi-file-earmark-medical-fill::before {
- content: "\f372";
-}
-
-.bi-file-earmark-medical::before {
- content: "\f373";
-}
-
-.bi-file-earmark-minus-fill::before {
- content: "\f374";
-}
-
-.bi-file-earmark-minus::before {
- content: "\f375";
-}
-
-.bi-file-earmark-music-fill::before {
- content: "\f376";
-}
-
-.bi-file-earmark-music::before {
- content: "\f377";
-}
-
-.bi-file-earmark-person-fill::before {
- content: "\f378";
-}
-
-.bi-file-earmark-person::before {
- content: "\f379";
-}
-
-.bi-file-earmark-play-fill::before {
- content: "\f37a";
-}
-
-.bi-file-earmark-play::before {
- content: "\f37b";
-}
-
-.bi-file-earmark-plus-fill::before {
- content: "\f37c";
-}
-
-.bi-file-earmark-plus::before {
- content: "\f37d";
-}
-
-.bi-file-earmark-post-fill::before {
- content: "\f37e";
-}
-
-.bi-file-earmark-post::before {
- content: "\f37f";
-}
-
-.bi-file-earmark-ppt-fill::before {
- content: "\f380";
-}
-
-.bi-file-earmark-ppt::before {
- content: "\f381";
-}
-
-.bi-file-earmark-richtext-fill::before {
- content: "\f382";
-}
-
-.bi-file-earmark-richtext::before {
- content: "\f383";
-}
-
-.bi-file-earmark-ruled-fill::before {
- content: "\f384";
-}
-
-.bi-file-earmark-ruled::before {
- content: "\f385";
-}
-
-.bi-file-earmark-slides-fill::before {
- content: "\f386";
-}
-
-.bi-file-earmark-slides::before {
- content: "\f387";
-}
-
-.bi-file-earmark-spreadsheet-fill::before {
- content: "\f388";
-}
-
-.bi-file-earmark-spreadsheet::before {
- content: "\f389";
-}
-
-.bi-file-earmark-text-fill::before {
- content: "\f38a";
-}
-
-.bi-file-earmark-text::before {
- content: "\f38b";
-}
-
-.bi-file-earmark-word-fill::before {
- content: "\f38c";
-}
-
-.bi-file-earmark-word::before {
- content: "\f38d";
-}
-
-.bi-file-earmark-x-fill::before {
- content: "\f38e";
-}
-
-.bi-file-earmark-x::before {
- content: "\f38f";
-}
-
-.bi-file-earmark-zip-fill::before {
- content: "\f390";
-}
-
-.bi-file-earmark-zip::before {
- content: "\f391";
-}
-
-.bi-file-earmark::before {
- content: "\f392";
-}
-
-.bi-file-easel-fill::before {
- content: "\f393";
-}
-
-.bi-file-easel::before {
- content: "\f394";
-}
-
-.bi-file-excel-fill::before {
- content: "\f395";
-}
-
-.bi-file-excel::before {
- content: "\f396";
-}
-
-.bi-file-fill::before {
- content: "\f397";
-}
-
-.bi-file-font-fill::before {
- content: "\f398";
-}
-
-.bi-file-font::before {
- content: "\f399";
-}
-
-.bi-file-image-fill::before {
- content: "\f39a";
-}
-
-.bi-file-image::before {
- content: "\f39b";
-}
-
-.bi-file-lock-fill::before {
- content: "\f39c";
-}
-
-.bi-file-lock::before {
- content: "\f39d";
-}
-
-.bi-file-lock2-fill::before {
- content: "\f39e";
-}
-
-.bi-file-lock2::before {
- content: "\f39f";
-}
-
-.bi-file-medical-fill::before {
- content: "\f3a0";
-}
-
-.bi-file-medical::before {
- content: "\f3a1";
-}
-
-.bi-file-minus-fill::before {
- content: "\f3a2";
-}
-
-.bi-file-minus::before {
- content: "\f3a3";
-}
-
-.bi-file-music-fill::before {
- content: "\f3a4";
-}
-
-.bi-file-music::before {
- content: "\f3a5";
-}
-
-.bi-file-person-fill::before {
- content: "\f3a6";
-}
-
-.bi-file-person::before {
- content: "\f3a7";
-}
-
-.bi-file-play-fill::before {
- content: "\f3a8";
-}
-
-.bi-file-play::before {
- content: "\f3a9";
-}
-
-.bi-file-plus-fill::before {
- content: "\f3aa";
-}
-
-.bi-file-plus::before {
- content: "\f3ab";
-}
-
-.bi-file-post-fill::before {
- content: "\f3ac";
-}
-
-.bi-file-post::before {
- content: "\f3ad";
-}
-
-.bi-file-ppt-fill::before {
- content: "\f3ae";
-}
-
-.bi-file-ppt::before {
- content: "\f3af";
-}
-
-.bi-file-richtext-fill::before {
- content: "\f3b0";
-}
-
-.bi-file-richtext::before {
- content: "\f3b1";
-}
-
-.bi-file-ruled-fill::before {
- content: "\f3b2";
-}
-
-.bi-file-ruled::before {
- content: "\f3b3";
-}
-
-.bi-file-slides-fill::before {
- content: "\f3b4";
-}
-
-.bi-file-slides::before {
- content: "\f3b5";
-}
-
-.bi-file-spreadsheet-fill::before {
- content: "\f3b6";
-}
-
-.bi-file-spreadsheet::before {
- content: "\f3b7";
-}
-
-.bi-file-text-fill::before {
- content: "\f3b8";
-}
-
-.bi-file-text::before {
- content: "\f3b9";
-}
-
-.bi-file-word-fill::before {
- content: "\f3ba";
-}
-
-.bi-file-word::before {
- content: "\f3bb";
-}
-
-.bi-file-x-fill::before {
- content: "\f3bc";
-}
-
-.bi-file-x::before {
- content: "\f3bd";
-}
-
-.bi-file-zip-fill::before {
- content: "\f3be";
-}
-
-.bi-file-zip::before {
- content: "\f3bf";
-}
-
-.bi-file::before {
- content: "\f3c0";
-}
-
-.bi-files-alt::before {
- content: "\f3c1";
-}
-
-.bi-files::before {
- content: "\f3c2";
-}
-
-.bi-film::before {
- content: "\f3c3";
-}
-
-.bi-filter-circle-fill::before {
- content: "\f3c4";
-}
-
-.bi-filter-circle::before {
- content: "\f3c5";
-}
-
-.bi-filter-left::before {
- content: "\f3c6";
-}
-
-.bi-filter-right::before {
- content: "\f3c7";
-}
-
-.bi-filter-square-fill::before {
- content: "\f3c8";
-}
-
-.bi-filter-square::before {
- content: "\f3c9";
-}
-
-.bi-filter::before {
- content: "\f3ca";
-}
-
-.bi-flag-fill::before {
- content: "\f3cb";
-}
-
-.bi-flag::before {
- content: "\f3cc";
-}
-
-.bi-flower1::before {
- content: "\f3cd";
-}
-
-.bi-flower2::before {
- content: "\f3ce";
-}
-
-.bi-flower3::before {
- content: "\f3cf";
-}
-
-.bi-folder-check::before {
- content: "\f3d0";
-}
-
-.bi-folder-fill::before {
- content: "\f3d1";
-}
-
-.bi-folder-minus::before {
- content: "\f3d2";
-}
-
-.bi-folder-plus::before {
- content: "\f3d3";
-}
-
-.bi-folder-symlink-fill::before {
- content: "\f3d4";
-}
-
-.bi-folder-symlink::before {
- content: "\f3d5";
-}
-
-.bi-folder-x::before {
- content: "\f3d6";
-}
-
-.bi-folder::before {
- content: "\f3d7";
-}
-
-.bi-folder2-open::before {
- content: "\f3d8";
-}
-
-.bi-folder2::before {
- content: "\f3d9";
-}
-
-.bi-fonts::before {
- content: "\f3da";
-}
-
-.bi-forward-fill::before {
- content: "\f3db";
-}
-
-.bi-forward::before {
- content: "\f3dc";
-}
-
-.bi-front::before {
- content: "\f3dd";
-}
-
-.bi-fullscreen-exit::before {
- content: "\f3de";
-}
-
-.bi-fullscreen::before {
- content: "\f3df";
-}
-
-.bi-funnel-fill::before {
- content: "\f3e0";
-}
-
-.bi-funnel::before {
- content: "\f3e1";
-}
-
-.bi-gear-fill::before {
- content: "\f3e2";
-}
-
-.bi-gear-wide-connected::before {
- content: "\f3e3";
-}
-
-.bi-gear-wide::before {
- content: "\f3e4";
-}
-
-.bi-gear::before {
- content: "\f3e5";
-}
-
-.bi-gem::before {
- content: "\f3e6";
-}
-
-.bi-geo-alt-fill::before {
- content: "\f3e7";
-}
-
-.bi-geo-alt::before {
- content: "\f3e8";
-}
-
-.bi-geo-fill::before {
- content: "\f3e9";
-}
-
-.bi-geo::before {
- content: "\f3ea";
-}
-
-.bi-gift-fill::before {
- content: "\f3eb";
-}
-
-.bi-gift::before {
- content: "\f3ec";
-}
-
-.bi-github::before {
- content: "\f3ed";
-}
-
-.bi-globe::before {
- content: "\f3ee";
-}
-
-.bi-globe2::before {
- content: "\f3ef";
-}
-
-.bi-google::before {
- content: "\f3f0";
-}
-
-.bi-graph-down::before {
- content: "\f3f1";
-}
-
-.bi-graph-up::before {
- content: "\f3f2";
-}
-
-.bi-grid-1x2-fill::before {
- content: "\f3f3";
-}
-
-.bi-grid-1x2::before {
- content: "\f3f4";
-}
-
-.bi-grid-3x2-gap-fill::before {
- content: "\f3f5";
-}
-
-.bi-grid-3x2-gap::before {
- content: "\f3f6";
-}
-
-.bi-grid-3x2::before {
- content: "\f3f7";
-}
-
-.bi-grid-3x3-gap-fill::before {
- content: "\f3f8";
-}
-
-.bi-grid-3x3-gap::before {
- content: "\f3f9";
-}
-
-.bi-grid-3x3::before {
- content: "\f3fa";
-}
-
-.bi-grid-fill::before {
- content: "\f3fb";
-}
-
-.bi-grid::before {
- content: "\f3fc";
-}
-
-.bi-grip-horizontal::before {
- content: "\f3fd";
-}
-
-.bi-grip-vertical::before {
- content: "\f3fe";
-}
-
-.bi-hammer::before {
- content: "\f3ff";
-}
-
-.bi-hand-index-fill::before {
- content: "\f400";
-}
-
-.bi-hand-index-thumb-fill::before {
- content: "\f401";
-}
-
-.bi-hand-index-thumb::before {
- content: "\f402";
-}
-
-.bi-hand-index::before {
- content: "\f403";
-}
-
-.bi-hand-thumbs-down-fill::before {
- content: "\f404";
-}
-
-.bi-hand-thumbs-down::before {
- content: "\f405";
-}
-
-.bi-hand-thumbs-up-fill::before {
- content: "\f406";
-}
-
-.bi-hand-thumbs-up::before {
- content: "\f407";
-}
-
-.bi-handbag-fill::before {
- content: "\f408";
-}
-
-.bi-handbag::before {
- content: "\f409";
-}
-
-.bi-hash::before {
- content: "\f40a";
-}
-
-.bi-hdd-fill::before {
- content: "\f40b";
-}
-
-.bi-hdd-network-fill::before {
- content: "\f40c";
-}
-
-.bi-hdd-network::before {
- content: "\f40d";
-}
-
-.bi-hdd-rack-fill::before {
- content: "\f40e";
-}
-
-.bi-hdd-rack::before {
- content: "\f40f";
-}
-
-.bi-hdd-stack-fill::before {
- content: "\f410";
-}
-
-.bi-hdd-stack::before {
- content: "\f411";
-}
-
-.bi-hdd::before {
- content: "\f412";
-}
-
-.bi-headphones::before {
- content: "\f413";
-}
-
-.bi-headset::before {
- content: "\f414";
-}
-
-.bi-heart-fill::before {
- content: "\f415";
-}
-
-.bi-heart-half::before {
- content: "\f416";
-}
-
-.bi-heart::before {
- content: "\f417";
-}
-
-.bi-heptagon-fill::before {
- content: "\f418";
-}
-
-.bi-heptagon-half::before {
- content: "\f419";
-}
-
-.bi-heptagon::before {
- content: "\f41a";
-}
-
-.bi-hexagon-fill::before {
- content: "\f41b";
-}
-
-.bi-hexagon-half::before {
- content: "\f41c";
-}
-
-.bi-hexagon::before {
- content: "\f41d";
-}
-
-.bi-hourglass-bottom::before {
- content: "\f41e";
-}
-
-.bi-hourglass-split::before {
- content: "\f41f";
-}
-
-.bi-hourglass-top::before {
- content: "\f420";
-}
-
-.bi-hourglass::before {
- content: "\f421";
-}
-
-.bi-house-door-fill::before {
- content: "\f422";
-}
-
-.bi-house-door::before {
- content: "\f423";
-}
-
-.bi-house-fill::before {
- content: "\f424";
-}
-
-.bi-house::before {
- content: "\f425";
-}
-
-.bi-hr::before {
- content: "\f426";
-}
-
-.bi-hurricane::before {
- content: "\f427";
-}
-
-.bi-image-alt::before {
- content: "\f428";
-}
-
-.bi-image-fill::before {
- content: "\f429";
-}
-
-.bi-image::before {
- content: "\f42a";
-}
-
-.bi-images::before {
- content: "\f42b";
-}
-
-.bi-inbox-fill::before {
- content: "\f42c";
-}
-
-.bi-inbox::before {
- content: "\f42d";
-}
-
-.bi-inboxes-fill::before {
- content: "\f42e";
-}
-
-.bi-inboxes::before {
- content: "\f42f";
-}
-
-.bi-info-circle-fill::before {
- content: "\f430";
-}
-
-.bi-info-circle::before {
- content: "\f431";
-}
-
-.bi-info-square-fill::before {
- content: "\f432";
-}
-
-.bi-info-square::before {
- content: "\f433";
-}
-
-.bi-info::before {
- content: "\f434";
-}
-
-.bi-input-cursor-text::before {
- content: "\f435";
-}
-
-.bi-input-cursor::before {
- content: "\f436";
-}
-
-.bi-instagram::before {
- content: "\f437";
-}
-
-.bi-intersect::before {
- content: "\f438";
-}
-
-.bi-journal-album::before {
- content: "\f439";
-}
-
-.bi-journal-arrow-down::before {
- content: "\f43a";
-}
-
-.bi-journal-arrow-up::before {
- content: "\f43b";
-}
-
-.bi-journal-bookmark-fill::before {
- content: "\f43c";
-}
-
-.bi-journal-bookmark::before {
- content: "\f43d";
-}
-
-.bi-journal-check::before {
- content: "\f43e";
-}
-
-.bi-journal-code::before {
- content: "\f43f";
-}
-
-.bi-journal-medical::before {
- content: "\f440";
-}
-
-.bi-journal-minus::before {
- content: "\f441";
-}
-
-.bi-journal-plus::before {
- content: "\f442";
-}
-
-.bi-journal-richtext::before {
- content: "\f443";
-}
-
-.bi-journal-text::before {
- content: "\f444";
-}
-
-.bi-journal-x::before {
- content: "\f445";
-}
-
-.bi-journal::before {
- content: "\f446";
-}
-
-.bi-journals::before {
- content: "\f447";
-}
-
-.bi-joystick::before {
- content: "\f448";
-}
-
-.bi-justify-left::before {
- content: "\f449";
-}
-
-.bi-justify-right::before {
- content: "\f44a";
-}
-
-.bi-justify::before {
- content: "\f44b";
-}
-
-.bi-kanban-fill::before {
- content: "\f44c";
-}
-
-.bi-kanban::before {
- content: "\f44d";
-}
-
-.bi-key-fill::before {
- content: "\f44e";
-}
-
-.bi-key::before {
- content: "\f44f";
-}
-
-.bi-keyboard-fill::before {
- content: "\f450";
-}
-
-.bi-keyboard::before {
- content: "\f451";
-}
-
-.bi-ladder::before {
- content: "\f452";
-}
-
-.bi-lamp-fill::before {
- content: "\f453";
-}
-
-.bi-lamp::before {
- content: "\f454";
-}
-
-.bi-laptop-fill::before {
- content: "\f455";
-}
-
-.bi-laptop::before {
- content: "\f456";
-}
-
-.bi-layer-backward::before {
- content: "\f457";
-}
-
-.bi-layer-forward::before {
- content: "\f458";
-}
-
-.bi-layers-fill::before {
- content: "\f459";
-}
-
-.bi-layers-half::before {
- content: "\f45a";
-}
-
-.bi-layers::before {
- content: "\f45b";
-}
-
-.bi-layout-sidebar-inset-reverse::before {
- content: "\f45c";
-}
-
-.bi-layout-sidebar-inset::before {
- content: "\f45d";
-}
-
-.bi-layout-sidebar-reverse::before {
- content: "\f45e";
-}
-
-.bi-layout-sidebar::before {
- content: "\f45f";
-}
-
-.bi-layout-split::before {
- content: "\f460";
-}
-
-.bi-layout-text-sidebar-reverse::before {
- content: "\f461";
-}
-
-.bi-layout-text-sidebar::before {
- content: "\f462";
-}
-
-.bi-layout-text-window-reverse::before {
- content: "\f463";
-}
-
-.bi-layout-text-window::before {
- content: "\f464";
-}
-
-.bi-layout-three-columns::before {
- content: "\f465";
-}
-
-.bi-layout-wtf::before {
- content: "\f466";
-}
-
-.bi-life-preserver::before {
- content: "\f467";
-}
-
-.bi-lightbulb-fill::before {
- content: "\f468";
-}
-
-.bi-lightbulb-off-fill::before {
- content: "\f469";
-}
-
-.bi-lightbulb-off::before {
- content: "\f46a";
-}
-
-.bi-lightbulb::before {
- content: "\f46b";
-}
-
-.bi-lightning-charge-fill::before {
- content: "\f46c";
-}
-
-.bi-lightning-charge::before {
- content: "\f46d";
-}
-
-.bi-lightning-fill::before {
- content: "\f46e";
-}
-
-.bi-lightning::before {
- content: "\f46f";
-}
-
-.bi-link-45deg::before {
- content: "\f470";
-}
-
-.bi-link::before {
- content: "\f471";
-}
-
-.bi-linkedin::before {
- content: "\f472";
-}
-
-.bi-list-check::before {
- content: "\f473";
-}
-
-.bi-list-nested::before {
- content: "\f474";
-}
-
-.bi-list-ol::before {
- content: "\f475";
-}
-
-.bi-list-stars::before {
- content: "\f476";
-}
-
-.bi-list-task::before {
- content: "\f477";
-}
-
-.bi-list-ul::before {
- content: "\f478";
-}
-
-.bi-list::before {
- content: "\f479";
-}
-
-.bi-lock-fill::before {
- content: "\f47a";
-}
-
-.bi-lock::before {
- content: "\f47b";
-}
-
-.bi-mailbox::before {
- content: "\f47c";
-}
-
-.bi-mailbox2::before {
- content: "\f47d";
-}
-
-.bi-map-fill::before {
- content: "\f47e";
-}
-
-.bi-map::before {
- content: "\f47f";
-}
-
-.bi-markdown-fill::before {
- content: "\f480";
-}
-
-.bi-markdown::before {
- content: "\f481";
-}
-
-.bi-mask::before {
- content: "\f482";
-}
-
-.bi-megaphone-fill::before {
- content: "\f483";
-}
-
-.bi-megaphone::before {
- content: "\f484";
-}
-
-.bi-menu-app-fill::before {
- content: "\f485";
-}
-
-.bi-menu-app::before {
- content: "\f486";
-}
-
-.bi-menu-button-fill::before {
- content: "\f487";
-}
-
-.bi-menu-button-wide-fill::before {
- content: "\f488";
-}
-
-.bi-menu-button-wide::before {
- content: "\f489";
-}
-
-.bi-menu-button::before {
- content: "\f48a";
-}
-
-.bi-menu-down::before {
- content: "\f48b";
-}
-
-.bi-menu-up::before {
- content: "\f48c";
-}
-
-.bi-mic-fill::before {
- content: "\f48d";
-}
-
-.bi-mic-mute-fill::before {
- content: "\f48e";
-}
-
-.bi-mic-mute::before {
- content: "\f48f";
-}
-
-.bi-mic::before {
- content: "\f490";
-}
-
-.bi-minecart-loaded::before {
- content: "\f491";
-}
-
-.bi-minecart::before {
- content: "\f492";
-}
-
-.bi-moisture::before {
- content: "\f493";
-}
-
-.bi-moon-fill::before {
- content: "\f494";
-}
-
-.bi-moon-stars-fill::before {
- content: "\f495";
-}
-
-.bi-moon-stars::before {
- content: "\f496";
-}
-
-.bi-moon::before {
- content: "\f497";
-}
-
-.bi-mouse-fill::before {
- content: "\f498";
-}
-
-.bi-mouse::before {
- content: "\f499";
-}
-
-.bi-mouse2-fill::before {
- content: "\f49a";
-}
-
-.bi-mouse2::before {
- content: "\f49b";
-}
-
-.bi-mouse3-fill::before {
- content: "\f49c";
-}
-
-.bi-mouse3::before {
- content: "\f49d";
-}
-
-.bi-music-note-beamed::before {
- content: "\f49e";
-}
-
-.bi-music-note-list::before {
- content: "\f49f";
-}
-
-.bi-music-note::before {
- content: "\f4a0";
-}
-
-.bi-music-player-fill::before {
- content: "\f4a1";
-}
-
-.bi-music-player::before {
- content: "\f4a2";
-}
-
-.bi-newspaper::before {
- content: "\f4a3";
-}
-
-.bi-node-minus-fill::before {
- content: "\f4a4";
-}
-
-.bi-node-minus::before {
- content: "\f4a5";
-}
-
-.bi-node-plus-fill::before {
- content: "\f4a6";
-}
-
-.bi-node-plus::before {
- content: "\f4a7";
-}
-
-.bi-nut-fill::before {
- content: "\f4a8";
-}
-
-.bi-nut::before {
- content: "\f4a9";
-}
-
-.bi-octagon-fill::before {
- content: "\f4aa";
-}
-
-.bi-octagon-half::before {
- content: "\f4ab";
-}
-
-.bi-octagon::before {
- content: "\f4ac";
-}
-
-.bi-option::before {
- content: "\f4ad";
-}
-
-.bi-outlet::before {
- content: "\f4ae";
-}
-
-.bi-paint-bucket::before {
- content: "\f4af";
-}
-
-.bi-palette-fill::before {
- content: "\f4b0";
-}
-
-.bi-palette::before {
- content: "\f4b1";
-}
-
-.bi-palette2::before {
- content: "\f4b2";
-}
-
-.bi-paperclip::before {
- content: "\f4b3";
-}
-
-.bi-paragraph::before {
- content: "\f4b4";
-}
-
-.bi-patch-check-fill::before {
- content: "\f4b5";
-}
-
-.bi-patch-check::before {
- content: "\f4b6";
-}
-
-.bi-patch-exclamation-fill::before {
- content: "\f4b7";
-}
-
-.bi-patch-exclamation::before {
- content: "\f4b8";
-}
-
-.bi-patch-minus-fill::before {
- content: "\f4b9";
-}
-
-.bi-patch-minus::before {
- content: "\f4ba";
-}
-
-.bi-patch-plus-fill::before {
- content: "\f4bb";
-}
-
-.bi-patch-plus::before {
- content: "\f4bc";
-}
-
-.bi-patch-question-fill::before {
- content: "\f4bd";
-}
-
-.bi-patch-question::before {
- content: "\f4be";
-}
-
-.bi-pause-btn-fill::before {
- content: "\f4bf";
-}
-
-.bi-pause-btn::before {
- content: "\f4c0";
-}
-
-.bi-pause-circle-fill::before {
- content: "\f4c1";
-}
-
-.bi-pause-circle::before {
- content: "\f4c2";
-}
-
-.bi-pause-fill::before {
- content: "\f4c3";
-}
-
-.bi-pause::before {
- content: "\f4c4";
-}
-
-.bi-peace-fill::before {
- content: "\f4c5";
-}
-
-.bi-peace::before {
- content: "\f4c6";
-}
-
-.bi-pen-fill::before {
- content: "\f4c7";
-}
-
-.bi-pen::before {
- content: "\f4c8";
-}
-
-.bi-pencil-fill::before {
- content: "\f4c9";
-}
-
-.bi-pencil-square::before {
- content: "\f4ca";
-}
-
-.bi-pencil::before {
- content: "\f4cb";
-}
-
-.bi-pentagon-fill::before {
- content: "\f4cc";
-}
-
-.bi-pentagon-half::before {
- content: "\f4cd";
-}
-
-.bi-pentagon::before {
- content: "\f4ce";
-}
-
-.bi-people-fill::before {
- content: "\f4cf";
-}
-
-.bi-people::before {
- content: "\f4d0";
-}
-
-.bi-percent::before {
- content: "\f4d1";
-}
-
-.bi-person-badge-fill::before {
- content: "\f4d2";
-}
-
-.bi-person-badge::before {
- content: "\f4d3";
-}
-
-.bi-person-bounding-box::before {
- content: "\f4d4";
-}
-
-.bi-person-check-fill::before {
- content: "\f4d5";
-}
-
-.bi-person-check::before {
- content: "\f4d6";
-}
-
-.bi-person-circle::before {
- content: "\f4d7";
-}
-
-.bi-person-dash-fill::before {
- content: "\f4d8";
-}
-
-.bi-person-dash::before {
- content: "\f4d9";
-}
-
-.bi-person-fill::before {
- content: "\f4da";
-}
-
-.bi-person-lines-fill::before {
- content: "\f4db";
-}
-
-.bi-person-plus-fill::before {
- content: "\f4dc";
-}
-
-.bi-person-plus::before {
- content: "\f4dd";
-}
-
-.bi-person-square::before {
- content: "\f4de";
-}
-
-.bi-person-x-fill::before {
- content: "\f4df";
-}
-
-.bi-person-x::before {
- content: "\f4e0";
-}
-
-.bi-person::before {
- content: "\f4e1";
-}
-
-.bi-phone-fill::before {
- content: "\f4e2";
-}
-
-.bi-phone-landscape-fill::before {
- content: "\f4e3";
-}
-
-.bi-phone-landscape::before {
- content: "\f4e4";
-}
-
-.bi-phone-vibrate-fill::before {
- content: "\f4e5";
-}
-
-.bi-phone-vibrate::before {
- content: "\f4e6";
-}
-
-.bi-phone::before {
- content: "\f4e7";
-}
-
-.bi-pie-chart-fill::before {
- content: "\f4e8";
-}
-
-.bi-pie-chart::before {
- content: "\f4e9";
-}
-
-.bi-pin-angle-fill::before {
- content: "\f4ea";
-}
-
-.bi-pin-angle::before {
- content: "\f4eb";
-}
-
-.bi-pin-fill::before {
- content: "\f4ec";
-}
-
-.bi-pin::before {
- content: "\f4ed";
-}
-
-.bi-pip-fill::before {
- content: "\f4ee";
-}
-
-.bi-pip::before {
- content: "\f4ef";
-}
-
-.bi-play-btn-fill::before {
- content: "\f4f0";
-}
-
-.bi-play-btn::before {
- content: "\f4f1";
-}
-
-.bi-play-circle-fill::before {
- content: "\f4f2";
-}
-
-.bi-play-circle::before {
- content: "\f4f3";
-}
-
-.bi-play-fill::before {
- content: "\f4f4";
-}
-
-.bi-play::before {
- content: "\f4f5";
-}
-
-.bi-plug-fill::before {
- content: "\f4f6";
-}
-
-.bi-plug::before {
- content: "\f4f7";
-}
-
-.bi-plus-circle-dotted::before {
- content: "\f4f8";
-}
-
-.bi-plus-circle-fill::before {
- content: "\f4f9";
-}
-
-.bi-plus-circle::before {
- content: "\f4fa";
-}
-
-.bi-plus-square-dotted::before {
- content: "\f4fb";
-}
-
-.bi-plus-square-fill::before {
- content: "\f4fc";
-}
-
-.bi-plus-square::before {
- content: "\f4fd";
-}
-
-.bi-plus::before {
- content: "\f4fe";
-}
-
-.bi-power::before {
- content: "\f4ff";
-}
-
-.bi-printer-fill::before {
- content: "\f500";
-}
-
-.bi-printer::before {
- content: "\f501";
-}
-
-.bi-puzzle-fill::before {
- content: "\f502";
-}
-
-.bi-puzzle::before {
- content: "\f503";
-}
-
-.bi-question-circle-fill::before {
- content: "\f504";
-}
-
-.bi-question-circle::before {
- content: "\f505";
-}
-
-.bi-question-diamond-fill::before {
- content: "\f506";
-}
-
-.bi-question-diamond::before {
- content: "\f507";
-}
-
-.bi-question-octagon-fill::before {
- content: "\f508";
-}
-
-.bi-question-octagon::before {
- content: "\f509";
-}
-
-.bi-question-square-fill::before {
- content: "\f50a";
-}
-
-.bi-question-square::before {
- content: "\f50b";
-}
-
-.bi-question::before {
- content: "\f50c";
-}
-
-.bi-rainbow::before {
- content: "\f50d";
-}
-
-.bi-receipt-cutoff::before {
- content: "\f50e";
-}
-
-.bi-receipt::before {
- content: "\f50f";
-}
-
-.bi-reception-0::before {
- content: "\f510";
-}
-
-.bi-reception-1::before {
- content: "\f511";
-}
-
-.bi-reception-2::before {
- content: "\f512";
-}
-
-.bi-reception-3::before {
- content: "\f513";
-}
-
-.bi-reception-4::before {
- content: "\f514";
-}
-
-.bi-record-btn-fill::before {
- content: "\f515";
-}
-
-.bi-record-btn::before {
- content: "\f516";
-}
-
-.bi-record-circle-fill::before {
- content: "\f517";
-}
-
-.bi-record-circle::before {
- content: "\f518";
-}
-
-.bi-record-fill::before {
- content: "\f519";
-}
-
-.bi-record::before {
- content: "\f51a";
-}
-
-.bi-record2-fill::before {
- content: "\f51b";
-}
-
-.bi-record2::before {
- content: "\f51c";
-}
-
-.bi-reply-all-fill::before {
- content: "\f51d";
-}
-
-.bi-reply-all::before {
- content: "\f51e";
-}
-
-.bi-reply-fill::before {
- content: "\f51f";
-}
-
-.bi-reply::before {
- content: "\f520";
-}
-
-.bi-rss-fill::before {
- content: "\f521";
-}
-
-.bi-rss::before {
- content: "\f522";
-}
-
-.bi-rulers::before {
- content: "\f523";
-}
-
-.bi-save-fill::before {
- content: "\f524";
-}
-
-.bi-save::before {
- content: "\f525";
-}
-
-.bi-save2-fill::before {
- content: "\f526";
-}
-
-.bi-save2::before {
- content: "\f527";
-}
-
-.bi-scissors::before {
- content: "\f528";
-}
-
-.bi-screwdriver::before {
- content: "\f529";
-}
-
-.bi-search::before {
- content: "\f52a";
-}
-
-.bi-segmented-nav::before {
- content: "\f52b";
-}
-
-.bi-server::before {
- content: "\f52c";
-}
-
-.bi-share-fill::before {
- content: "\f52d";
-}
-
-.bi-share::before {
- content: "\f52e";
-}
-
-.bi-shield-check::before {
- content: "\f52f";
-}
-
-.bi-shield-exclamation::before {
- content: "\f530";
-}
-
-.bi-shield-fill-check::before {
- content: "\f531";
-}
-
-.bi-shield-fill-exclamation::before {
- content: "\f532";
-}
-
-.bi-shield-fill-minus::before {
- content: "\f533";
-}
-
-.bi-shield-fill-plus::before {
- content: "\f534";
-}
-
-.bi-shield-fill-x::before {
- content: "\f535";
-}
-
-.bi-shield-fill::before {
- content: "\f536";
-}
-
-.bi-shield-lock-fill::before {
- content: "\f537";
-}
-
-.bi-shield-lock::before {
- content: "\f538";
-}
-
-.bi-shield-minus::before {
- content: "\f539";
-}
-
-.bi-shield-plus::before {
- content: "\f53a";
-}
-
-.bi-shield-shaded::before {
- content: "\f53b";
-}
-
-.bi-shield-slash-fill::before {
- content: "\f53c";
-}
-
-.bi-shield-slash::before {
- content: "\f53d";
-}
-
-.bi-shield-x::before {
- content: "\f53e";
-}
-
-.bi-shield::before {
- content: "\f53f";
-}
-
-.bi-shift-fill::before {
- content: "\f540";
-}
-
-.bi-shift::before {
- content: "\f541";
-}
-
-.bi-shop-window::before {
- content: "\f542";
-}
-
-.bi-shop::before {
- content: "\f543";
-}
-
-.bi-shuffle::before {
- content: "\f544";
-}
-
-.bi-signpost-2-fill::before {
- content: "\f545";
-}
-
-.bi-signpost-2::before {
- content: "\f546";
-}
-
-.bi-signpost-fill::before {
- content: "\f547";
-}
-
-.bi-signpost-split-fill::before {
- content: "\f548";
-}
-
-.bi-signpost-split::before {
- content: "\f549";
-}
-
-.bi-signpost::before {
- content: "\f54a";
-}
-
-.bi-sim-fill::before {
- content: "\f54b";
-}
-
-.bi-sim::before {
- content: "\f54c";
-}
-
-.bi-skip-backward-btn-fill::before {
- content: "\f54d";
-}
-
-.bi-skip-backward-btn::before {
- content: "\f54e";
-}
-
-.bi-skip-backward-circle-fill::before {
- content: "\f54f";
-}
-
-.bi-skip-backward-circle::before {
- content: "\f550";
-}
-
-.bi-skip-backward-fill::before {
- content: "\f551";
-}
-
-.bi-skip-backward::before {
- content: "\f552";
-}
-
-.bi-skip-end-btn-fill::before {
- content: "\f553";
-}
-
-.bi-skip-end-btn::before {
- content: "\f554";
-}
-
-.bi-skip-end-circle-fill::before {
- content: "\f555";
-}
-
-.bi-skip-end-circle::before {
- content: "\f556";
-}
-
-.bi-skip-end-fill::before {
- content: "\f557";
-}
-
-.bi-skip-end::before {
- content: "\f558";
-}
-
-.bi-skip-forward-btn-fill::before {
- content: "\f559";
-}
-
-.bi-skip-forward-btn::before {
- content: "\f55a";
-}
-
-.bi-skip-forward-circle-fill::before {
- content: "\f55b";
-}
-
-.bi-skip-forward-circle::before {
- content: "\f55c";
-}
-
-.bi-skip-forward-fill::before {
- content: "\f55d";
-}
-
-.bi-skip-forward::before {
- content: "\f55e";
-}
-
-.bi-skip-start-btn-fill::before {
- content: "\f55f";
-}
-
-.bi-skip-start-btn::before {
- content: "\f560";
-}
-
-.bi-skip-start-circle-fill::before {
- content: "\f561";
-}
-
-.bi-skip-start-circle::before {
- content: "\f562";
-}
-
-.bi-skip-start-fill::before {
- content: "\f563";
-}
-
-.bi-skip-start::before {
- content: "\f564";
-}
-
-.bi-slack::before {
- content: "\f565";
-}
-
-.bi-slash-circle-fill::before {
- content: "\f566";
-}
-
-.bi-slash-circle::before {
- content: "\f567";
-}
-
-.bi-slash-square-fill::before {
- content: "\f568";
-}
-
-.bi-slash-square::before {
- content: "\f569";
-}
-
-.bi-slash::before {
- content: "\f56a";
-}
-
-.bi-sliders::before {
- content: "\f56b";
-}
-
-.bi-smartwatch::before {
- content: "\f56c";
-}
-
-.bi-snow::before {
- content: "\f56d";
-}
-
-.bi-snow2::before {
- content: "\f56e";
-}
-
-.bi-snow3::before {
- content: "\f56f";
-}
-
-.bi-sort-alpha-down-alt::before {
- content: "\f570";
-}
-
-.bi-sort-alpha-down::before {
- content: "\f571";
-}
-
-.bi-sort-alpha-up-alt::before {
- content: "\f572";
-}
-
-.bi-sort-alpha-up::before {
- content: "\f573";
-}
-
-.bi-sort-down-alt::before {
- content: "\f574";
-}
-
-.bi-sort-down::before {
- content: "\f575";
-}
-
-.bi-sort-numeric-down-alt::before {
- content: "\f576";
-}
-
-.bi-sort-numeric-down::before {
- content: "\f577";
-}
-
-.bi-sort-numeric-up-alt::before {
- content: "\f578";
-}
-
-.bi-sort-numeric-up::before {
- content: "\f579";
-}
-
-.bi-sort-up-alt::before {
- content: "\f57a";
-}
-
-.bi-sort-up::before {
- content: "\f57b";
-}
-
-.bi-soundwave::before {
- content: "\f57c";
-}
-
-.bi-speaker-fill::before {
- content: "\f57d";
-}
-
-.bi-speaker::before {
- content: "\f57e";
-}
-
-.bi-speedometer::before {
- content: "\f57f";
-}
-
-.bi-speedometer2::before {
- content: "\f580";
-}
-
-.bi-spellcheck::before {
- content: "\f581";
-}
-
-.bi-square-fill::before {
- content: "\f582";
-}
-
-.bi-square-half::before {
- content: "\f583";
-}
-
-.bi-square::before {
- content: "\f584";
-}
-
-.bi-stack::before {
- content: "\f585";
-}
-
-.bi-star-fill::before {
- content: "\f586";
-}
-
-.bi-star-half::before {
- content: "\f587";
-}
-
-.bi-star::before {
- content: "\f588";
-}
-
-.bi-stars::before {
- content: "\f589";
-}
-
-.bi-stickies-fill::before {
- content: "\f58a";
-}
-
-.bi-stickies::before {
- content: "\f58b";
-}
-
-.bi-sticky-fill::before {
- content: "\f58c";
-}
-
-.bi-sticky::before {
- content: "\f58d";
-}
-
-.bi-stop-btn-fill::before {
- content: "\f58e";
-}
-
-.bi-stop-btn::before {
- content: "\f58f";
-}
-
-.bi-stop-circle-fill::before {
- content: "\f590";
-}
-
-.bi-stop-circle::before {
- content: "\f591";
-}
-
-.bi-stop-fill::before {
- content: "\f592";
-}
-
-.bi-stop::before {
- content: "\f593";
-}
-
-.bi-stoplights-fill::before {
- content: "\f594";
-}
-
-.bi-stoplights::before {
- content: "\f595";
-}
-
-.bi-stopwatch-fill::before {
- content: "\f596";
-}
-
-.bi-stopwatch::before {
- content: "\f597";
-}
-
-.bi-subtract::before {
- content: "\f598";
-}
-
-.bi-suit-club-fill::before {
- content: "\f599";
-}
-
-.bi-suit-club::before {
- content: "\f59a";
-}
-
-.bi-suit-diamond-fill::before {
- content: "\f59b";
-}
-
-.bi-suit-diamond::before {
- content: "\f59c";
-}
-
-.bi-suit-heart-fill::before {
- content: "\f59d";
-}
-
-.bi-suit-heart::before {
- content: "\f59e";
-}
-
-.bi-suit-spade-fill::before {
- content: "\f59f";
-}
-
-.bi-suit-spade::before {
- content: "\f5a0";
-}
-
-.bi-sun-fill::before {
- content: "\f5a1";
-}
-
-.bi-sun::before {
- content: "\f5a2";
-}
-
-.bi-sunglasses::before {
- content: "\f5a3";
-}
-
-.bi-sunrise-fill::before {
- content: "\f5a4";
-}
-
-.bi-sunrise::before {
- content: "\f5a5";
-}
-
-.bi-sunset-fill::before {
- content: "\f5a6";
-}
-
-.bi-sunset::before {
- content: "\f5a7";
-}
-
-.bi-symmetry-horizontal::before {
- content: "\f5a8";
-}
-
-.bi-symmetry-vertical::before {
- content: "\f5a9";
-}
-
-.bi-table::before {
- content: "\f5aa";
-}
-
-.bi-tablet-fill::before {
- content: "\f5ab";
-}
-
-.bi-tablet-landscape-fill::before {
- content: "\f5ac";
-}
-
-.bi-tablet-landscape::before {
- content: "\f5ad";
-}
-
-.bi-tablet::before {
- content: "\f5ae";
-}
-
-.bi-tag-fill::before {
- content: "\f5af";
-}
-
-.bi-tag::before {
- content: "\f5b0";
-}
-
-.bi-tags-fill::before {
- content: "\f5b1";
-}
-
-.bi-tags::before {
- content: "\f5b2";
-}
-
-.bi-telegram::before {
- content: "\f5b3";
-}
-
-.bi-telephone-fill::before {
- content: "\f5b4";
-}
-
-.bi-telephone-forward-fill::before {
- content: "\f5b5";
-}
-
-.bi-telephone-forward::before {
- content: "\f5b6";
-}
-
-.bi-telephone-inbound-fill::before {
- content: "\f5b7";
-}
-
-.bi-telephone-inbound::before {
- content: "\f5b8";
-}
-
-.bi-telephone-minus-fill::before {
- content: "\f5b9";
-}
-
-.bi-telephone-minus::before {
- content: "\f5ba";
-}
-
-.bi-telephone-outbound-fill::before {
- content: "\f5bb";
-}
-
-.bi-telephone-outbound::before {
- content: "\f5bc";
-}
-
-.bi-telephone-plus-fill::before {
- content: "\f5bd";
-}
-
-.bi-telephone-plus::before {
- content: "\f5be";
-}
-
-.bi-telephone-x-fill::before {
- content: "\f5bf";
-}
-
-.bi-telephone-x::before {
- content: "\f5c0";
-}
-
-.bi-telephone::before {
- content: "\f5c1";
-}
-
-.bi-terminal-fill::before {
- content: "\f5c2";
-}
-
-.bi-terminal::before {
- content: "\f5c3";
-}
-
-.bi-text-center::before {
- content: "\f5c4";
-}
-
-.bi-text-indent-left::before {
- content: "\f5c5";
-}
-
-.bi-text-indent-right::before {
- content: "\f5c6";
-}
-
-.bi-text-left::before {
- content: "\f5c7";
-}
-
-.bi-text-paragraph::before {
- content: "\f5c8";
-}
-
-.bi-text-right::before {
- content: "\f5c9";
-}
-
-.bi-textarea-resize::before {
- content: "\f5ca";
-}
-
-.bi-textarea-t::before {
- content: "\f5cb";
-}
-
-.bi-textarea::before {
- content: "\f5cc";
-}
-
-.bi-thermometer-half::before {
- content: "\f5cd";
-}
-
-.bi-thermometer-high::before {
- content: "\f5ce";
-}
-
-.bi-thermometer-low::before {
- content: "\f5cf";
-}
-
-.bi-thermometer-snow::before {
- content: "\f5d0";
-}
-
-.bi-thermometer-sun::before {
- content: "\f5d1";
-}
-
-.bi-thermometer::before {
- content: "\f5d2";
-}
-
-.bi-three-dots-vertical::before {
- content: "\f5d3";
-}
-
-.bi-three-dots::before {
- content: "\f5d4";
-}
-
-.bi-toggle-off::before {
- content: "\f5d5";
-}
-
-.bi-toggle-on::before {
- content: "\f5d6";
-}
-
-.bi-toggle2-off::before {
- content: "\f5d7";
-}
-
-.bi-toggle2-on::before {
- content: "\f5d8";
-}
-
-.bi-toggles::before {
- content: "\f5d9";
-}
-
-.bi-toggles2::before {
- content: "\f5da";
-}
-
-.bi-tools::before {
- content: "\f5db";
-}
-
-.bi-tornado::before {
- content: "\f5dc";
-}
-
-.bi-trash-fill::before {
- content: "\f5dd";
-}
-
-.bi-trash::before {
- content: "\f5de";
-}
-
-.bi-trash2-fill::before {
- content: "\f5df";
-}
-
-.bi-trash2::before {
- content: "\f5e0";
-}
-
-.bi-tree-fill::before {
- content: "\f5e1";
-}
-
-.bi-tree::before {
- content: "\f5e2";
-}
-
-.bi-triangle-fill::before {
- content: "\f5e3";
-}
-
-.bi-triangle-half::before {
- content: "\f5e4";
-}
-
-.bi-triangle::before {
- content: "\f5e5";
-}
-
-.bi-trophy-fill::before {
- content: "\f5e6";
-}
-
-.bi-trophy::before {
- content: "\f5e7";
-}
-
-.bi-tropical-storm::before {
- content: "\f5e8";
-}
-
-.bi-truck-flatbed::before {
- content: "\f5e9";
-}
-
-.bi-truck::before {
- content: "\f5ea";
-}
-
-.bi-tsunami::before {
- content: "\f5eb";
-}
-
-.bi-tv-fill::before {
- content: "\f5ec";
-}
-
-.bi-tv::before {
- content: "\f5ed";
-}
-
-.bi-twitch::before {
- content: "\f5ee";
-}
-
-.bi-twitter::before {
- content: "\f5ef";
-}
-
-.bi-type-bold::before {
- content: "\f5f0";
-}
-
-.bi-type-h1::before {
- content: "\f5f1";
-}
-
-.bi-type-h2::before {
- content: "\f5f2";
-}
-
-.bi-type-h3::before {
- content: "\f5f3";
-}
-
-.bi-type-italic::before {
- content: "\f5f4";
-}
-
-.bi-type-strikethrough::before {
- content: "\f5f5";
-}
-
-.bi-type-underline::before {
- content: "\f5f6";
-}
-
-.bi-type::before {
- content: "\f5f7";
-}
-
-.bi-ui-checks-grid::before {
- content: "\f5f8";
-}
-
-.bi-ui-checks::before {
- content: "\f5f9";
-}
-
-.bi-ui-radios-grid::before {
- content: "\f5fa";
-}
-
-.bi-ui-radios::before {
- content: "\f5fb";
-}
-
-.bi-umbrella-fill::before {
- content: "\f5fc";
-}
-
-.bi-umbrella::before {
- content: "\f5fd";
-}
-
-.bi-union::before {
- content: "\f5fe";
-}
-
-.bi-unlock-fill::before {
- content: "\f5ff";
-}
-
-.bi-unlock::before {
- content: "\f600";
-}
-
-.bi-upc-scan::before {
- content: "\f601";
-}
-
-.bi-upc::before {
- content: "\f602";
-}
-
-.bi-upload::before {
- content: "\f603";
-}
-
-.bi-vector-pen::before {
- content: "\f604";
-}
-
-.bi-view-list::before {
- content: "\f605";
-}
-
-.bi-view-stacked::before {
- content: "\f606";
-}
-
-.bi-vinyl-fill::before {
- content: "\f607";
-}
-
-.bi-vinyl::before {
- content: "\f608";
-}
-
-.bi-voicemail::before {
- content: "\f609";
-}
-
-.bi-volume-down-fill::before {
- content: "\f60a";
-}
-
-.bi-volume-down::before {
- content: "\f60b";
-}
-
-.bi-volume-mute-fill::before {
- content: "\f60c";
-}
-
-.bi-volume-mute::before {
- content: "\f60d";
-}
-
-.bi-volume-off-fill::before {
- content: "\f60e";
-}
-
-.bi-volume-off::before {
- content: "\f60f";
-}
-
-.bi-volume-up-fill::before {
- content: "\f610";
-}
-
-.bi-volume-up::before {
- content: "\f611";
-}
-
-.bi-vr::before {
- content: "\f612";
-}
-
-.bi-wallet-fill::before {
- content: "\f613";
-}
-
-.bi-wallet::before {
- content: "\f614";
-}
-
-.bi-wallet2::before {
- content: "\f615";
-}
-
-.bi-watch::before {
- content: "\f616";
-}
-
-.bi-water::before {
- content: "\f617";
-}
-
-.bi-whatsapp::before {
- content: "\f618";
-}
-
-.bi-wifi-1::before {
- content: "\f619";
-}
-
-.bi-wifi-2::before {
- content: "\f61a";
-}
-
-.bi-wifi-off::before {
- content: "\f61b";
-}
-
-.bi-wifi::before {
- content: "\f61c";
-}
-
-.bi-wind::before {
- content: "\f61d";
-}
-
-.bi-window-dock::before {
- content: "\f61e";
-}
-
-.bi-window-sidebar::before {
- content: "\f61f";
-}
-
-.bi-window::before {
- content: "\f620";
-}
-
-.bi-wrench::before {
- content: "\f621";
-}
-
-.bi-x-circle-fill::before {
- content: "\f622";
-}
-
-.bi-x-circle::before {
- content: "\f623";
-}
-
-.bi-x-diamond-fill::before {
- content: "\f624";
-}
-
-.bi-x-diamond::before {
- content: "\f625";
-}
-
-.bi-x-octagon-fill::before {
- content: "\f626";
-}
-
-.bi-x-octagon::before {
- content: "\f627";
-}
-
-.bi-x-square-fill::before {
- content: "\f628";
-}
-
-.bi-x-square::before {
- content: "\f629";
-}
-
-.bi-x::before {
- content: "\f62a";
-}
-
-.bi-youtube::before {
- content: "\f62b";
-}
-
-.bi-zoom-in::before {
- content: "\f62c";
-}
-
-.bi-zoom-out::before {
- content: "\f62d";
-}
-
-.bi-bank::before {
- content: "\f62e";
-}
-
-.bi-bank2::before {
- content: "\f62f";
-}
-
-.bi-bell-slash-fill::before {
- content: "\f630";
-}
-
-.bi-bell-slash::before {
- content: "\f631";
-}
-
-.bi-cash-coin::before {
- content: "\f632";
-}
-
-.bi-check-lg::before {
- content: "\f633";
-}
-
-.bi-coin::before {
- content: "\f634";
-}
-
-.bi-currency-bitcoin::before {
- content: "\f635";
-}
-
-.bi-currency-dollar::before {
- content: "\f636";
-}
-
-.bi-currency-euro::before {
- content: "\f637";
-}
-
-.bi-currency-exchange::before {
- content: "\f638";
-}
-
-.bi-currency-pound::before {
- content: "\f639";
-}
-
-.bi-currency-yen::before {
- content: "\f63a";
-}
-
-.bi-dash-lg::before {
- content: "\f63b";
-}
-
-.bi-exclamation-lg::before {
- content: "\f63c";
-}
-
-.bi-file-earmark-pdf-fill::before {
- content: "\f63d";
-}
-
-.bi-file-earmark-pdf::before {
- content: "\f63e";
-}
-
-.bi-file-pdf-fill::before {
- content: "\f63f";
-}
-
-.bi-file-pdf::before {
- content: "\f640";
-}
-
-.bi-gender-ambiguous::before {
- content: "\f641";
-}
-
-.bi-gender-female::before {
- content: "\f642";
-}
-
-.bi-gender-male::before {
- content: "\f643";
-}
-
-.bi-gender-trans::before {
- content: "\f644";
-}
-
-.bi-headset-vr::before {
- content: "\f645";
-}
-
-.bi-info-lg::before {
- content: "\f646";
-}
-
-.bi-mastodon::before {
- content: "\f647";
-}
-
-.bi-messenger::before {
- content: "\f648";
-}
-
-.bi-piggy-bank-fill::before {
- content: "\f649";
-}
-
-.bi-piggy-bank::before {
- content: "\f64a";
-}
-
-.bi-pin-map-fill::before {
- content: "\f64b";
-}
-
-.bi-pin-map::before {
- content: "\f64c";
-}
-
-.bi-plus-lg::before {
- content: "\f64d";
-}
-
-.bi-question-lg::before {
- content: "\f64e";
-}
-
-.bi-recycle::before {
- content: "\f64f";
-}
-
-.bi-reddit::before {
- content: "\f650";
-}
-
-.bi-safe-fill::before {
- content: "\f651";
-}
-
-.bi-safe2-fill::before {
- content: "\f652";
-}
-
-.bi-safe2::before {
- content: "\f653";
-}
-
-.bi-sd-card-fill::before {
- content: "\f654";
-}
-
-.bi-sd-card::before {
- content: "\f655";
-}
-
-.bi-skype::before {
- content: "\f656";
-}
-
-.bi-slash-lg::before {
- content: "\f657";
-}
-
-.bi-translate::before {
- content: "\f658";
-}
-
-.bi-x-lg::before {
- content: "\f659";
-}
-
-.bi-safe::before {
- content: "\f65a";
-}
-
-.bi-apple::before {
- content: "\f65b";
-}
-
-.bi-microsoft::before {
- content: "\f65d";
-}
-
-.bi-windows::before {
- content: "\f65e";
-}
-
-.bi-behance::before {
- content: "\f65c";
-}
-
-.bi-dribbble::before {
- content: "\f65f";
-}
-
-.bi-line::before {
- content: "\f660";
-}
-
-.bi-medium::before {
- content: "\f661";
-}
-
-.bi-paypal::before {
- content: "\f662";
-}
-
-.bi-pinterest::before {
- content: "\f663";
-}
-
-.bi-signal::before {
- content: "\f664";
-}
-
-.bi-snapchat::before {
- content: "\f665";
-}
-
-.bi-spotify::before {
- content: "\f666";
-}
-
-.bi-stack-overflow::before {
- content: "\f667";
-}
-
-.bi-strava::before {
- content: "\f668";
-}
-
-.bi-wordpress::before {
- content: "\f669";
-}
-
-.bi-vimeo::before {
- content: "\f66a";
-}
-
-.bi-activity::before {
- content: "\f66b";
-}
-
-.bi-easel2-fill::before {
- content: "\f66c";
-}
-
-.bi-easel2::before {
- content: "\f66d";
-}
-
-.bi-easel3-fill::before {
- content: "\f66e";
-}
-
-.bi-easel3::before {
- content: "\f66f";
-}
-
-.bi-fan::before {
- content: "\f670";
-}
-
-.bi-fingerprint::before {
- content: "\f671";
-}
-
-.bi-graph-down-arrow::before {
- content: "\f672";
-}
-
-.bi-graph-up-arrow::before {
- content: "\f673";
-}
-
-.bi-hypnotize::before {
- content: "\f674";
-}
-
-.bi-magic::before {
- content: "\f675";
-}
-
-.bi-person-rolodex::before {
- content: "\f676";
-}
-
-.bi-person-video::before {
- content: "\f677";
-}
-
-.bi-person-video2::before {
- content: "\f678";
-}
-
-.bi-person-video3::before {
- content: "\f679";
-}
-
-.bi-person-workspace::before {
- content: "\f67a";
-}
-
-.bi-radioactive::before {
- content: "\f67b";
-}
-
-.bi-webcam-fill::before {
- content: "\f67c";
-}
-
-.bi-webcam::before {
- content: "\f67d";
-}
-
-.bi-yin-yang::before {
- content: "\f67e";
-}
-
-.bi-bandaid-fill::before {
- content: "\f680";
-}
-
-.bi-bandaid::before {
- content: "\f681";
-}
-
-.bi-bluetooth::before {
- content: "\f682";
-}
-
-.bi-body-text::before {
- content: "\f683";
-}
-
-.bi-boombox::before {
- content: "\f684";
-}
-
-.bi-boxes::before {
- content: "\f685";
-}
-
-.bi-dpad-fill::before {
- content: "\f686";
-}
-
-.bi-dpad::before {
- content: "\f687";
-}
-
-.bi-ear-fill::before {
- content: "\f688";
-}
-
-.bi-ear::before {
- content: "\f689";
-}
-
-.bi-envelope-check-fill::before {
- content: "\f68b";
-}
-
-.bi-envelope-check::before {
- content: "\f68c";
-}
-
-.bi-envelope-dash-fill::before {
- content: "\f68e";
-}
-
-.bi-envelope-dash::before {
- content: "\f68f";
-}
-
-.bi-envelope-exclamation-fill::before {
- content: "\f691";
-}
-
-.bi-envelope-exclamation::before {
- content: "\f692";
-}
-
-.bi-envelope-plus-fill::before {
- content: "\f693";
-}
-
-.bi-envelope-plus::before {
- content: "\f694";
-}
-
-.bi-envelope-slash-fill::before {
- content: "\f696";
-}
-
-.bi-envelope-slash::before {
- content: "\f697";
-}
-
-.bi-envelope-x-fill::before {
- content: "\f699";
-}
-
-.bi-envelope-x::before {
- content: "\f69a";
-}
-
-.bi-explicit-fill::before {
- content: "\f69b";
-}
-
-.bi-explicit::before {
- content: "\f69c";
-}
-
-.bi-git::before {
- content: "\f69d";
-}
-
-.bi-infinity::before {
- content: "\f69e";
-}
-
-.bi-list-columns-reverse::before {
- content: "\f69f";
-}
-
-.bi-list-columns::before {
- content: "\f6a0";
-}
-
-.bi-meta::before {
- content: "\f6a1";
-}
-
-.bi-nintendo-switch::before {
- content: "\f6a4";
-}
-
-.bi-pc-display-horizontal::before {
- content: "\f6a5";
-}
-
-.bi-pc-display::before {
- content: "\f6a6";
-}
-
-.bi-pc-horizontal::before {
- content: "\f6a7";
-}
-
-.bi-pc::before {
- content: "\f6a8";
-}
-
-.bi-playstation::before {
- content: "\f6a9";
-}
-
-.bi-plus-slash-minus::before {
- content: "\f6aa";
-}
-
-.bi-projector-fill::before {
- content: "\f6ab";
-}
-
-.bi-projector::before {
- content: "\f6ac";
-}
-
-.bi-qr-code-scan::before {
- content: "\f6ad";
-}
-
-.bi-qr-code::before {
- content: "\f6ae";
-}
-
-.bi-quora::before {
- content: "\f6af";
-}
-
-.bi-quote::before {
- content: "\f6b0";
-}
-
-.bi-robot::before {
- content: "\f6b1";
-}
-
-.bi-send-check-fill::before {
- content: "\f6b2";
-}
-
-.bi-send-check::before {
- content: "\f6b3";
-}
-
-.bi-send-dash-fill::before {
- content: "\f6b4";
-}
-
-.bi-send-dash::before {
- content: "\f6b5";
-}
-
-.bi-send-exclamation-fill::before {
- content: "\f6b7";
-}
-
-.bi-send-exclamation::before {
- content: "\f6b8";
-}
-
-.bi-send-fill::before {
- content: "\f6b9";
-}
-
-.bi-send-plus-fill::before {
- content: "\f6ba";
-}
-
-.bi-send-plus::before {
- content: "\f6bb";
-}
-
-.bi-send-slash-fill::before {
- content: "\f6bc";
-}
-
-.bi-send-slash::before {
- content: "\f6bd";
-}
-
-.bi-send-x-fill::before {
- content: "\f6be";
-}
-
-.bi-send-x::before {
- content: "\f6bf";
-}
-
-.bi-send::before {
- content: "\f6c0";
-}
-
-.bi-steam::before {
- content: "\f6c1";
-}
-
-.bi-terminal-dash::before {
- content: "\f6c3";
-}
-
-.bi-terminal-plus::before {
- content: "\f6c4";
-}
-
-.bi-terminal-split::before {
- content: "\f6c5";
-}
-
-.bi-ticket-detailed-fill::before {
- content: "\f6c6";
-}
-
-.bi-ticket-detailed::before {
- content: "\f6c7";
-}
-
-.bi-ticket-fill::before {
- content: "\f6c8";
-}
-
-.bi-ticket-perforated-fill::before {
- content: "\f6c9";
-}
-
-.bi-ticket-perforated::before {
- content: "\f6ca";
-}
-
-.bi-ticket::before {
- content: "\f6cb";
-}
-
-.bi-tiktok::before {
- content: "\f6cc";
-}
-
-.bi-window-dash::before {
- content: "\f6cd";
-}
-
-.bi-window-desktop::before {
- content: "\f6ce";
-}
-
-.bi-window-fullscreen::before {
- content: "\f6cf";
-}
-
-.bi-window-plus::before {
- content: "\f6d0";
-}
-
-.bi-window-split::before {
- content: "\f6d1";
-}
-
-.bi-window-stack::before {
- content: "\f6d2";
-}
-
-.bi-window-x::before {
- content: "\f6d3";
-}
-
-.bi-xbox::before {
- content: "\f6d4";
-}
-
-.bi-ethernet::before {
- content: "\f6d5";
-}
-
-.bi-hdmi-fill::before {
- content: "\f6d6";
-}
-
-.bi-hdmi::before {
- content: "\f6d7";
-}
-
-.bi-usb-c-fill::before {
- content: "\f6d8";
-}
-
-.bi-usb-c::before {
- content: "\f6d9";
-}
-
-.bi-usb-fill::before {
- content: "\f6da";
-}
-
-.bi-usb-plug-fill::before {
- content: "\f6db";
-}
-
-.bi-usb-plug::before {
- content: "\f6dc";
-}
-
-.bi-usb-symbol::before {
- content: "\f6dd";
-}
-
-.bi-usb::before {
- content: "\f6de";
-}
-
-.bi-boombox-fill::before {
- content: "\f6df";
-}
-
-.bi-displayport::before {
- content: "\f6e1";
-}
-
-.bi-gpu-card::before {
- content: "\f6e2";
-}
-
-.bi-memory::before {
- content: "\f6e3";
-}
-
-.bi-modem-fill::before {
- content: "\f6e4";
-}
-
-.bi-modem::before {
- content: "\f6e5";
-}
-
-.bi-motherboard-fill::before {
- content: "\f6e6";
-}
-
-.bi-motherboard::before {
- content: "\f6e7";
-}
-
-.bi-optical-audio-fill::before {
- content: "\f6e8";
-}
-
-.bi-optical-audio::before {
- content: "\f6e9";
-}
-
-.bi-pci-card::before {
- content: "\f6ea";
-}
-
-.bi-router-fill::before {
- content: "\f6eb";
-}
-
-.bi-router::before {
- content: "\f6ec";
-}
-
-.bi-thunderbolt-fill::before {
- content: "\f6ef";
-}
-
-.bi-thunderbolt::before {
- content: "\f6f0";
-}
-
-.bi-usb-drive-fill::before {
- content: "\f6f1";
-}
-
-.bi-usb-drive::before {
- content: "\f6f2";
-}
-
-.bi-usb-micro-fill::before {
- content: "\f6f3";
-}
-
-.bi-usb-micro::before {
- content: "\f6f4";
-}
-
-.bi-usb-mini-fill::before {
- content: "\f6f5";
-}
-
-.bi-usb-mini::before {
- content: "\f6f6";
-}
-
-.bi-cloud-haze2::before {
- content: "\f6f7";
-}
-
-.bi-device-hdd-fill::before {
- content: "\f6f8";
-}
-
-.bi-device-hdd::before {
- content: "\f6f9";
-}
-
-.bi-device-ssd-fill::before {
- content: "\f6fa";
-}
-
-.bi-device-ssd::before {
- content: "\f6fb";
-}
-
-.bi-displayport-fill::before {
- content: "\f6fc";
-}
-
-.bi-mortarboard-fill::before {
- content: "\f6fd";
-}
-
-.bi-mortarboard::before {
- content: "\f6fe";
-}
-
-.bi-terminal-x::before {
- content: "\f6ff";
-}
-
-.bi-arrow-through-heart-fill::before {
- content: "\f700";
-}
-
-.bi-arrow-through-heart::before {
- content: "\f701";
-}
-
-.bi-badge-sd-fill::before {
- content: "\f702";
-}
-
-.bi-badge-sd::before {
- content: "\f703";
-}
-
-.bi-bag-heart-fill::before {
- content: "\f704";
-}
-
-.bi-bag-heart::before {
- content: "\f705";
-}
-
-.bi-balloon-fill::before {
- content: "\f706";
-}
-
-.bi-balloon-heart-fill::before {
- content: "\f707";
-}
-
-.bi-balloon-heart::before {
- content: "\f708";
-}
-
-.bi-balloon::before {
- content: "\f709";
-}
-
-.bi-box2-fill::before {
- content: "\f70a";
-}
-
-.bi-box2-heart-fill::before {
- content: "\f70b";
-}
-
-.bi-box2-heart::before {
- content: "\f70c";
-}
-
-.bi-box2::before {
- content: "\f70d";
-}
-
-.bi-braces-asterisk::before {
- content: "\f70e";
-}
-
-.bi-calendar-heart-fill::before {
- content: "\f70f";
-}
-
-.bi-calendar-heart::before {
- content: "\f710";
-}
-
-.bi-calendar2-heart-fill::before {
- content: "\f711";
-}
-
-.bi-calendar2-heart::before {
- content: "\f712";
-}
-
-.bi-chat-heart-fill::before {
- content: "\f713";
-}
-
-.bi-chat-heart::before {
- content: "\f714";
-}
-
-.bi-chat-left-heart-fill::before {
- content: "\f715";
-}
-
-.bi-chat-left-heart::before {
- content: "\f716";
-}
-
-.bi-chat-right-heart-fill::before {
- content: "\f717";
-}
-
-.bi-chat-right-heart::before {
- content: "\f718";
-}
-
-.bi-chat-square-heart-fill::before {
- content: "\f719";
-}
-
-.bi-chat-square-heart::before {
- content: "\f71a";
-}
-
-.bi-clipboard-check-fill::before {
- content: "\f71b";
-}
-
-.bi-clipboard-data-fill::before {
- content: "\f71c";
-}
-
-.bi-clipboard-fill::before {
- content: "\f71d";
-}
-
-.bi-clipboard-heart-fill::before {
- content: "\f71e";
-}
-
-.bi-clipboard-heart::before {
- content: "\f71f";
-}
-
-.bi-clipboard-minus-fill::before {
- content: "\f720";
-}
-
-.bi-clipboard-plus-fill::before {
- content: "\f721";
-}
-
-.bi-clipboard-pulse::before {
- content: "\f722";
-}
-
-.bi-clipboard-x-fill::before {
- content: "\f723";
-}
-
-.bi-clipboard2-check-fill::before {
- content: "\f724";
-}
-
-.bi-clipboard2-check::before {
- content: "\f725";
-}
-
-.bi-clipboard2-data-fill::before {
- content: "\f726";
-}
-
-.bi-clipboard2-data::before {
- content: "\f727";
-}
-
-.bi-clipboard2-fill::before {
- content: "\f728";
-}
-
-.bi-clipboard2-heart-fill::before {
- content: "\f729";
-}
-
-.bi-clipboard2-heart::before {
- content: "\f72a";
-}
-
-.bi-clipboard2-minus-fill::before {
- content: "\f72b";
-}
-
-.bi-clipboard2-minus::before {
- content: "\f72c";
-}
-
-.bi-clipboard2-plus-fill::before {
- content: "\f72d";
-}
-
-.bi-clipboard2-plus::before {
- content: "\f72e";
-}
-
-.bi-clipboard2-pulse-fill::before {
- content: "\f72f";
-}
-
-.bi-clipboard2-pulse::before {
- content: "\f730";
-}
-
-.bi-clipboard2-x-fill::before {
- content: "\f731";
-}
-
-.bi-clipboard2-x::before {
- content: "\f732";
-}
-
-.bi-clipboard2::before {
- content: "\f733";
-}
-
-.bi-emoji-kiss-fill::before {
- content: "\f734";
-}
-
-.bi-emoji-kiss::before {
- content: "\f735";
-}
-
-.bi-envelope-heart-fill::before {
- content: "\f736";
-}
-
-.bi-envelope-heart::before {
- content: "\f737";
-}
-
-.bi-envelope-open-heart-fill::before {
- content: "\f738";
-}
-
-.bi-envelope-open-heart::before {
- content: "\f739";
-}
-
-.bi-envelope-paper-fill::before {
- content: "\f73a";
-}
-
-.bi-envelope-paper-heart-fill::before {
- content: "\f73b";
-}
-
-.bi-envelope-paper-heart::before {
- content: "\f73c";
-}
-
-.bi-envelope-paper::before {
- content: "\f73d";
-}
-
-.bi-filetype-aac::before {
- content: "\f73e";
-}
-
-.bi-filetype-ai::before {
- content: "\f73f";
-}
-
-.bi-filetype-bmp::before {
- content: "\f740";
-}
-
-.bi-filetype-cs::before {
- content: "\f741";
-}
-
-.bi-filetype-css::before {
- content: "\f742";
-}
-
-.bi-filetype-csv::before {
- content: "\f743";
-}
-
-.bi-filetype-doc::before {
- content: "\f744";
-}
-
-.bi-filetype-docx::before {
- content: "\f745";
-}
-
-.bi-filetype-exe::before {
- content: "\f746";
-}
-
-.bi-filetype-gif::before {
- content: "\f747";
-}
-
-.bi-filetype-heic::before {
- content: "\f748";
-}
-
-.bi-filetype-html::before {
- content: "\f749";
-}
-
-.bi-filetype-java::before {
- content: "\f74a";
-}
-
-.bi-filetype-jpg::before {
- content: "\f74b";
-}
-
-.bi-filetype-js::before {
- content: "\f74c";
-}
-
-.bi-filetype-jsx::before {
- content: "\f74d";
-}
-
-.bi-filetype-key::before {
- content: "\f74e";
-}
-
-.bi-filetype-m4p::before {
- content: "\f74f";
-}
-
-.bi-filetype-md::before {
- content: "\f750";
-}
-
-.bi-filetype-mdx::before {
- content: "\f751";
-}
-
-.bi-filetype-mov::before {
- content: "\f752";
-}
-
-.bi-filetype-mp3::before {
- content: "\f753";
-}
-
-.bi-filetype-mp4::before {
- content: "\f754";
-}
-
-.bi-filetype-otf::before {
- content: "\f755";
-}
-
-.bi-filetype-pdf::before {
- content: "\f756";
-}
-
-.bi-filetype-php::before {
- content: "\f757";
-}
-
-.bi-filetype-png::before {
- content: "\f758";
-}
-
-.bi-filetype-ppt::before {
- content: "\f75a";
-}
-
-.bi-filetype-psd::before {
- content: "\f75b";
-}
-
-.bi-filetype-py::before {
- content: "\f75c";
-}
-
-.bi-filetype-raw::before {
- content: "\f75d";
-}
-
-.bi-filetype-rb::before {
- content: "\f75e";
-}
-
-.bi-filetype-sass::before {
- content: "\f75f";
-}
-
-.bi-filetype-scss::before {
- content: "\f760";
-}
-
-.bi-filetype-sh::before {
- content: "\f761";
-}
-
-.bi-filetype-svg::before {
- content: "\f762";
-}
-
-.bi-filetype-tiff::before {
- content: "\f763";
-}
-
-.bi-filetype-tsx::before {
- content: "\f764";
-}
-
-.bi-filetype-ttf::before {
- content: "\f765";
-}
-
-.bi-filetype-txt::before {
- content: "\f766";
-}
-
-.bi-filetype-wav::before {
- content: "\f767";
-}
-
-.bi-filetype-woff::before {
- content: "\f768";
-}
-
-.bi-filetype-xls::before {
- content: "\f76a";
-}
-
-.bi-filetype-xml::before {
- content: "\f76b";
-}
-
-.bi-filetype-yml::before {
- content: "\f76c";
-}
-
-.bi-heart-arrow::before {
- content: "\f76d";
-}
-
-.bi-heart-pulse-fill::before {
- content: "\f76e";
-}
-
-.bi-heart-pulse::before {
- content: "\f76f";
-}
-
-.bi-heartbreak-fill::before {
- content: "\f770";
-}
-
-.bi-heartbreak::before {
- content: "\f771";
-}
-
-.bi-hearts::before {
- content: "\f772";
-}
-
-.bi-hospital-fill::before {
- content: "\f773";
-}
-
-.bi-hospital::before {
- content: "\f774";
-}
-
-.bi-house-heart-fill::before {
- content: "\f775";
-}
-
-.bi-house-heart::before {
- content: "\f776";
-}
-
-.bi-incognito::before {
- content: "\f777";
-}
-
-.bi-magnet-fill::before {
- content: "\f778";
-}
-
-.bi-magnet::before {
- content: "\f779";
-}
-
-.bi-person-heart::before {
- content: "\f77a";
-}
-
-.bi-person-hearts::before {
- content: "\f77b";
-}
-
-.bi-phone-flip::before {
- content: "\f77c";
-}
-
-.bi-plugin::before {
- content: "\f77d";
-}
-
-.bi-postage-fill::before {
- content: "\f77e";
-}
-
-.bi-postage-heart-fill::before {
- content: "\f77f";
-}
-
-.bi-postage-heart::before {
- content: "\f780";
-}
-
-.bi-postage::before {
- content: "\f781";
-}
-
-.bi-postcard-fill::before {
- content: "\f782";
-}
-
-.bi-postcard-heart-fill::before {
- content: "\f783";
-}
-
-.bi-postcard-heart::before {
- content: "\f784";
-}
-
-.bi-postcard::before {
- content: "\f785";
-}
-
-.bi-search-heart-fill::before {
- content: "\f786";
-}
-
-.bi-search-heart::before {
- content: "\f787";
-}
-
-.bi-sliders2-vertical::before {
- content: "\f788";
-}
-
-.bi-sliders2::before {
- content: "\f789";
-}
-
-.bi-trash3-fill::before {
- content: "\f78a";
-}
-
-.bi-trash3::before {
- content: "\f78b";
-}
-
-.bi-valentine::before {
- content: "\f78c";
-}
-
-.bi-valentine2::before {
- content: "\f78d";
-}
-
-.bi-wrench-adjustable-circle-fill::before {
- content: "\f78e";
-}
-
-.bi-wrench-adjustable-circle::before {
- content: "\f78f";
-}
-
-.bi-wrench-adjustable::before {
- content: "\f790";
-}
-
-.bi-filetype-json::before {
- content: "\f791";
-}
-
-.bi-filetype-pptx::before {
- content: "\f792";
-}
-
-.bi-filetype-xlsx::before {
- content: "\f793";
-}
-
-.bi-1-circle-fill::before {
- content: "\f796";
-}
-
-.bi-1-circle::before {
- content: "\f797";
-}
-
-.bi-1-square-fill::before {
- content: "\f798";
-}
-
-.bi-1-square::before {
- content: "\f799";
-}
-
-.bi-2-circle-fill::before {
- content: "\f79c";
-}
-
-.bi-2-circle::before {
- content: "\f79d";
-}
-
-.bi-2-square-fill::before {
- content: "\f79e";
-}
-
-.bi-2-square::before {
- content: "\f79f";
-}
-
-.bi-3-circle-fill::before {
- content: "\f7a2";
-}
-
-.bi-3-circle::before {
- content: "\f7a3";
-}
-
-.bi-3-square-fill::before {
- content: "\f7a4";
-}
-
-.bi-3-square::before {
- content: "\f7a5";
-}
-
-.bi-4-circle-fill::before {
- content: "\f7a8";
-}
-
-.bi-4-circle::before {
- content: "\f7a9";
-}
-
-.bi-4-square-fill::before {
- content: "\f7aa";
-}
-
-.bi-4-square::before {
- content: "\f7ab";
-}
-
-.bi-5-circle-fill::before {
- content: "\f7ae";
-}
-
-.bi-5-circle::before {
- content: "\f7af";
-}
-
-.bi-5-square-fill::before {
- content: "\f7b0";
-}
-
-.bi-5-square::before {
- content: "\f7b1";
-}
-
-.bi-6-circle-fill::before {
- content: "\f7b4";
-}
-
-.bi-6-circle::before {
- content: "\f7b5";
-}
-
-.bi-6-square-fill::before {
- content: "\f7b6";
-}
-
-.bi-6-square::before {
- content: "\f7b7";
-}
-
-.bi-7-circle-fill::before {
- content: "\f7ba";
-}
-
-.bi-7-circle::before {
- content: "\f7bb";
-}
-
-.bi-7-square-fill::before {
- content: "\f7bc";
-}
-
-.bi-7-square::before {
- content: "\f7bd";
-}
-
-.bi-8-circle-fill::before {
- content: "\f7c0";
-}
-
-.bi-8-circle::before {
- content: "\f7c1";
-}
-
-.bi-8-square-fill::before {
- content: "\f7c2";
-}
-
-.bi-8-square::before {
- content: "\f7c3";
-}
-
-.bi-9-circle-fill::before {
- content: "\f7c6";
-}
-
-.bi-9-circle::before {
- content: "\f7c7";
-}
-
-.bi-9-square-fill::before {
- content: "\f7c8";
-}
-
-.bi-9-square::before {
- content: "\f7c9";
-}
-
-.bi-airplane-engines-fill::before {
- content: "\f7ca";
-}
-
-.bi-airplane-engines::before {
- content: "\f7cb";
-}
-
-.bi-airplane-fill::before {
- content: "\f7cc";
-}
-
-.bi-airplane::before {
- content: "\f7cd";
-}
-
-.bi-alexa::before {
- content: "\f7ce";
-}
-
-.bi-alipay::before {
- content: "\f7cf";
-}
-
-.bi-android::before {
- content: "\f7d0";
-}
-
-.bi-android2::before {
- content: "\f7d1";
-}
-
-.bi-box-fill::before {
- content: "\f7d2";
-}
-
-.bi-box-seam-fill::before {
- content: "\f7d3";
-}
-
-.bi-browser-chrome::before {
- content: "\f7d4";
-}
-
-.bi-browser-edge::before {
- content: "\f7d5";
-}
-
-.bi-browser-firefox::before {
- content: "\f7d6";
-}
-
-.bi-browser-safari::before {
- content: "\f7d7";
-}
-
-.bi-c-circle-fill::before {
- content: "\f7da";
-}
-
-.bi-c-circle::before {
- content: "\f7db";
-}
-
-.bi-c-square-fill::before {
- content: "\f7dc";
-}
-
-.bi-c-square::before {
- content: "\f7dd";
-}
-
-.bi-capsule-pill::before {
- content: "\f7de";
-}
-
-.bi-capsule::before {
- content: "\f7df";
-}
-
-.bi-car-front-fill::before {
- content: "\f7e0";
-}
-
-.bi-car-front::before {
- content: "\f7e1";
-}
-
-.bi-cassette-fill::before {
- content: "\f7e2";
-}
-
-.bi-cassette::before {
- content: "\f7e3";
-}
-
-.bi-cc-circle-fill::before {
- content: "\f7e6";
-}
-
-.bi-cc-circle::before {
- content: "\f7e7";
-}
-
-.bi-cc-square-fill::before {
- content: "\f7e8";
-}
-
-.bi-cc-square::before {
- content: "\f7e9";
-}
-
-.bi-cup-hot-fill::before {
- content: "\f7ea";
-}
-
-.bi-cup-hot::before {
- content: "\f7eb";
-}
-
-.bi-currency-rupee::before {
- content: "\f7ec";
-}
-
-.bi-dropbox::before {
- content: "\f7ed";
-}
-
-.bi-escape::before {
- content: "\f7ee";
-}
-
-.bi-fast-forward-btn-fill::before {
- content: "\f7ef";
-}
-
-.bi-fast-forward-btn::before {
- content: "\f7f0";
-}
-
-.bi-fast-forward-circle-fill::before {
- content: "\f7f1";
-}
-
-.bi-fast-forward-circle::before {
- content: "\f7f2";
-}
-
-.bi-fast-forward-fill::before {
- content: "\f7f3";
-}
-
-.bi-fast-forward::before {
- content: "\f7f4";
-}
-
-.bi-filetype-sql::before {
- content: "\f7f5";
-}
-
-.bi-fire::before {
- content: "\f7f6";
-}
-
-.bi-google-play::before {
- content: "\f7f7";
-}
-
-.bi-h-circle-fill::before {
- content: "\f7fa";
-}
-
-.bi-h-circle::before {
- content: "\f7fb";
-}
-
-.bi-h-square-fill::before {
- content: "\f7fc";
-}
-
-.bi-h-square::before {
- content: "\f7fd";
-}
-
-.bi-indent::before {
- content: "\f7fe";
-}
-
-.bi-lungs-fill::before {
- content: "\f7ff";
-}
-
-.bi-lungs::before {
- content: "\f800";
-}
-
-.bi-microsoft-teams::before {
- content: "\f801";
-}
-
-.bi-p-circle-fill::before {
- content: "\f804";
-}
-
-.bi-p-circle::before {
- content: "\f805";
-}
-
-.bi-p-square-fill::before {
- content: "\f806";
-}
-
-.bi-p-square::before {
- content: "\f807";
-}
-
-.bi-pass-fill::before {
- content: "\f808";
-}
-
-.bi-pass::before {
- content: "\f809";
-}
-
-.bi-prescription::before {
- content: "\f80a";
-}
-
-.bi-prescription2::before {
- content: "\f80b";
-}
-
-.bi-r-circle-fill::before {
- content: "\f80e";
-}
-
-.bi-r-circle::before {
- content: "\f80f";
-}
-
-.bi-r-square-fill::before {
- content: "\f810";
-}
-
-.bi-r-square::before {
- content: "\f811";
-}
-
-.bi-repeat-1::before {
- content: "\f812";
-}
-
-.bi-repeat::before {
- content: "\f813";
-}
-
-.bi-rewind-btn-fill::before {
- content: "\f814";
-}
-
-.bi-rewind-btn::before {
- content: "\f815";
-}
-
-.bi-rewind-circle-fill::before {
- content: "\f816";
-}
-
-.bi-rewind-circle::before {
- content: "\f817";
-}
-
-.bi-rewind-fill::before {
- content: "\f818";
-}
-
-.bi-rewind::before {
- content: "\f819";
-}
-
-.bi-train-freight-front-fill::before {
- content: "\f81a";
-}
-
-.bi-train-freight-front::before {
- content: "\f81b";
-}
-
-.bi-train-front-fill::before {
- content: "\f81c";
-}
-
-.bi-train-front::before {
- content: "\f81d";
-}
-
-.bi-train-lightrail-front-fill::before {
- content: "\f81e";
-}
-
-.bi-train-lightrail-front::before {
- content: "\f81f";
-}
-
-.bi-truck-front-fill::before {
- content: "\f820";
-}
-
-.bi-truck-front::before {
- content: "\f821";
-}
-
-.bi-ubuntu::before {
- content: "\f822";
-}
-
-.bi-unindent::before {
- content: "\f823";
-}
-
-.bi-unity::before {
- content: "\f824";
-}
-
-.bi-universal-access-circle::before {
- content: "\f825";
-}
-
-.bi-universal-access::before {
- content: "\f826";
-}
-
-.bi-virus::before {
- content: "\f827";
-}
-
-.bi-virus2::before {
- content: "\f828";
-}
-
-.bi-wechat::before {
- content: "\f829";
-}
-
-.bi-yelp::before {
- content: "\f82a";
-}
-
-.bi-sign-stop-fill::before {
- content: "\f82b";
-}
-
-.bi-sign-stop-lights-fill::before {
- content: "\f82c";
-}
-
-.bi-sign-stop-lights::before {
- content: "\f82d";
-}
-
-.bi-sign-stop::before {
- content: "\f82e";
-}
-
-.bi-sign-turn-left-fill::before {
- content: "\f82f";
-}
-
-.bi-sign-turn-left::before {
- content: "\f830";
-}
-
-.bi-sign-turn-right-fill::before {
- content: "\f831";
-}
-
-.bi-sign-turn-right::before {
- content: "\f832";
-}
-
-.bi-sign-turn-slight-left-fill::before {
- content: "\f833";
-}
-
-.bi-sign-turn-slight-left::before {
- content: "\f834";
-}
-
-.bi-sign-turn-slight-right-fill::before {
- content: "\f835";
-}
-
-.bi-sign-turn-slight-right::before {
- content: "\f836";
-}
-
-.bi-sign-yield-fill::before {
- content: "\f837";
-}
-
-.bi-sign-yield::before {
- content: "\f838";
-}
-
-.bi-ev-station-fill::before {
- content: "\f839";
-}
-
-.bi-ev-station::before {
- content: "\f83a";
-}
-
-.bi-fuel-pump-diesel-fill::before {
- content: "\f83b";
-}
-
-.bi-fuel-pump-diesel::before {
- content: "\f83c";
-}
-
-.bi-fuel-pump-fill::before {
- content: "\f83d";
-}
-
-.bi-fuel-pump::before {
- content: "\f83e";
-}
-
-.bi-0-circle-fill::before {
- content: "\f83f";
-}
-
-.bi-0-circle::before {
- content: "\f840";
-}
-
-.bi-0-square-fill::before {
- content: "\f841";
-}
-
-.bi-0-square::before {
- content: "\f842";
-}
-
-.bi-rocket-fill::before {
- content: "\f843";
-}
-
-.bi-rocket-takeoff-fill::before {
- content: "\f844";
-}
-
-.bi-rocket-takeoff::before {
- content: "\f845";
-}
-
-.bi-rocket::before {
- content: "\f846";
-}
-
-.bi-stripe::before {
- content: "\f847";
-}
-
-.bi-subscript::before {
- content: "\f848";
-}
-
-.bi-superscript::before {
- content: "\f849";
-}
-
-.bi-trello::before {
- content: "\f84a";
-}
-
-.bi-envelope-at-fill::before {
- content: "\f84b";
-}
-
-.bi-envelope-at::before {
- content: "\f84c";
-}
-
-.bi-regex::before {
- content: "\f84d";
-}
-
-.bi-text-wrap::before {
- content: "\f84e";
-}
-
-.bi-sign-dead-end-fill::before {
- content: "\f84f";
-}
-
-.bi-sign-dead-end::before {
- content: "\f850";
-}
-
-.bi-sign-do-not-enter-fill::before {
- content: "\f851";
-}
-
-.bi-sign-do-not-enter::before {
- content: "\f852";
-}
-
-.bi-sign-intersection-fill::before {
- content: "\f853";
-}
-
-.bi-sign-intersection-side-fill::before {
- content: "\f854";
-}
-
-.bi-sign-intersection-side::before {
- content: "\f855";
-}
-
-.bi-sign-intersection-t-fill::before {
- content: "\f856";
-}
-
-.bi-sign-intersection-t::before {
- content: "\f857";
-}
-
-.bi-sign-intersection-y-fill::before {
- content: "\f858";
-}
-
-.bi-sign-intersection-y::before {
- content: "\f859";
-}
-
-.bi-sign-intersection::before {
- content: "\f85a";
-}
-
-.bi-sign-merge-left-fill::before {
- content: "\f85b";
-}
-
-.bi-sign-merge-left::before {
- content: "\f85c";
-}
-
-.bi-sign-merge-right-fill::before {
- content: "\f85d";
-}
-
-.bi-sign-merge-right::before {
- content: "\f85e";
-}
-
-.bi-sign-no-left-turn-fill::before {
- content: "\f85f";
-}
-
-.bi-sign-no-left-turn::before {
- content: "\f860";
-}
-
-.bi-sign-no-parking-fill::before {
- content: "\f861";
-}
-
-.bi-sign-no-parking::before {
- content: "\f862";
-}
-
-.bi-sign-no-right-turn-fill::before {
- content: "\f863";
-}
-
-.bi-sign-no-right-turn::before {
- content: "\f864";
-}
-
-.bi-sign-railroad-fill::before {
- content: "\f865";
-}
-
-.bi-sign-railroad::before {
- content: "\f866";
-}
-
-.bi-building-add::before {
- content: "\f867";
-}
-
-.bi-building-check::before {
- content: "\f868";
-}
-
-.bi-building-dash::before {
- content: "\f869";
-}
-
-.bi-building-down::before {
- content: "\f86a";
-}
-
-.bi-building-exclamation::before {
- content: "\f86b";
-}
-
-.bi-building-fill-add::before {
- content: "\f86c";
-}
-
-.bi-building-fill-check::before {
- content: "\f86d";
-}
-
-.bi-building-fill-dash::before {
- content: "\f86e";
-}
-
-.bi-building-fill-down::before {
- content: "\f86f";
-}
-
-.bi-building-fill-exclamation::before {
- content: "\f870";
-}
-
-.bi-building-fill-gear::before {
- content: "\f871";
-}
-
-.bi-building-fill-lock::before {
- content: "\f872";
-}
-
-.bi-building-fill-slash::before {
- content: "\f873";
-}
-
-.bi-building-fill-up::before {
- content: "\f874";
-}
-
-.bi-building-fill-x::before {
- content: "\f875";
-}
-
-.bi-building-fill::before {
- content: "\f876";
-}
-
-.bi-building-gear::before {
- content: "\f877";
-}
-
-.bi-building-lock::before {
- content: "\f878";
-}
-
-.bi-building-slash::before {
- content: "\f879";
-}
-
-.bi-building-up::before {
- content: "\f87a";
-}
-
-.bi-building-x::before {
- content: "\f87b";
-}
-
-.bi-buildings-fill::before {
- content: "\f87c";
-}
-
-.bi-buildings::before {
- content: "\f87d";
-}
-
-.bi-bus-front-fill::before {
- content: "\f87e";
-}
-
-.bi-bus-front::before {
- content: "\f87f";
-}
-
-.bi-ev-front-fill::before {
- content: "\f880";
-}
-
-.bi-ev-front::before {
- content: "\f881";
-}
-
-.bi-globe-americas::before {
- content: "\f882";
-}
-
-.bi-globe-asia-australia::before {
- content: "\f883";
-}
-
-.bi-globe-central-south-asia::before {
- content: "\f884";
-}
-
-.bi-globe-europe-africa::before {
- content: "\f885";
-}
-
-.bi-house-add-fill::before {
- content: "\f886";
-}
-
-.bi-house-add::before {
- content: "\f887";
-}
-
-.bi-house-check-fill::before {
- content: "\f888";
-}
-
-.bi-house-check::before {
- content: "\f889";
-}
-
-.bi-house-dash-fill::before {
- content: "\f88a";
-}
-
-.bi-house-dash::before {
- content: "\f88b";
-}
-
-.bi-house-down-fill::before {
- content: "\f88c";
-}
-
-.bi-house-down::before {
- content: "\f88d";
-}
-
-.bi-house-exclamation-fill::before {
- content: "\f88e";
-}
-
-.bi-house-exclamation::before {
- content: "\f88f";
-}
-
-.bi-house-gear-fill::before {
- content: "\f890";
-}
-
-.bi-house-gear::before {
- content: "\f891";
-}
-
-.bi-house-lock-fill::before {
- content: "\f892";
-}
-
-.bi-house-lock::before {
- content: "\f893";
-}
-
-.bi-house-slash-fill::before {
- content: "\f894";
-}
-
-.bi-house-slash::before {
- content: "\f895";
-}
-
-.bi-house-up-fill::before {
- content: "\f896";
-}
-
-.bi-house-up::before {
- content: "\f897";
-}
-
-.bi-house-x-fill::before {
- content: "\f898";
-}
-
-.bi-house-x::before {
- content: "\f899";
-}
-
-.bi-person-add::before {
- content: "\f89a";
-}
-
-.bi-person-down::before {
- content: "\f89b";
-}
-
-.bi-person-exclamation::before {
- content: "\f89c";
-}
-
-.bi-person-fill-add::before {
- content: "\f89d";
-}
-
-.bi-person-fill-check::before {
- content: "\f89e";
-}
-
-.bi-person-fill-dash::before {
- content: "\f89f";
-}
-
-.bi-person-fill-down::before {
- content: "\f8a0";
-}
-
-.bi-person-fill-exclamation::before {
- content: "\f8a1";
-}
-
-.bi-person-fill-gear::before {
- content: "\f8a2";
-}
-
-.bi-person-fill-lock::before {
- content: "\f8a3";
-}
-
-.bi-person-fill-slash::before {
- content: "\f8a4";
-}
-
-.bi-person-fill-up::before {
- content: "\f8a5";
-}
-
-.bi-person-fill-x::before {
- content: "\f8a6";
-}
-
-.bi-person-gear::before {
- content: "\f8a7";
-}
-
-.bi-person-lock::before {
- content: "\f8a8";
-}
-
-.bi-person-slash::before {
- content: "\f8a9";
-}
-
-.bi-person-up::before {
- content: "\f8aa";
-}
-
-.bi-scooter::before {
- content: "\f8ab";
-}
-
-.bi-taxi-front-fill::before {
- content: "\f8ac";
-}
-
-.bi-taxi-front::before {
- content: "\f8ad";
-}
-
-.bi-amd::before {
- content: "\f8ae";
-}
-
-.bi-database-add::before {
- content: "\f8af";
-}
-
-.bi-database-check::before {
- content: "\f8b0";
-}
-
-.bi-database-dash::before {
- content: "\f8b1";
-}
-
-.bi-database-down::before {
- content: "\f8b2";
-}
-
-.bi-database-exclamation::before {
- content: "\f8b3";
-}
-
-.bi-database-fill-add::before {
- content: "\f8b4";
-}
-
-.bi-database-fill-check::before {
- content: "\f8b5";
-}
-
-.bi-database-fill-dash::before {
- content: "\f8b6";
-}
-
-.bi-database-fill-down::before {
- content: "\f8b7";
-}
-
-.bi-database-fill-exclamation::before {
- content: "\f8b8";
-}
-
-.bi-database-fill-gear::before {
- content: "\f8b9";
-}
-
-.bi-database-fill-lock::before {
- content: "\f8ba";
-}
-
-.bi-database-fill-slash::before {
- content: "\f8bb";
-}
-
-.bi-database-fill-up::before {
- content: "\f8bc";
-}
-
-.bi-database-fill-x::before {
- content: "\f8bd";
-}
-
-.bi-database-fill::before {
- content: "\f8be";
-}
-
-.bi-database-gear::before {
- content: "\f8bf";
-}
-
-.bi-database-lock::before {
- content: "\f8c0";
-}
-
-.bi-database-slash::before {
- content: "\f8c1";
-}
-
-.bi-database-up::before {
- content: "\f8c2";
-}
-
-.bi-database-x::before {
- content: "\f8c3";
-}
-
-.bi-database::before {
- content: "\f8c4";
-}
-
-.bi-houses-fill::before {
- content: "\f8c5";
-}
-
-.bi-houses::before {
- content: "\f8c6";
-}
-
-.bi-nvidia::before {
- content: "\f8c7";
-}
-
-.bi-person-vcard-fill::before {
- content: "\f8c8";
-}
-
-.bi-person-vcard::before {
- content: "\f8c9";
-}
-
-.bi-sina-weibo::before {
- content: "\f8ca";
-}
-
-.bi-tencent-qq::before {
- content: "\f8cb";
-}
-
-.bi-wikipedia::before {
- content: "\f8cc";
-}
-
-.bi-alphabet-uppercase::before {
- content: "\f2a5";
-}
-
-.bi-alphabet::before {
- content: "\f68a";
-}
-
-.bi-amazon::before {
- content: "\f68d";
-}
-
-.bi-arrows-collapse-vertical::before {
- content: "\f690";
-}
-
-.bi-arrows-expand-vertical::before {
- content: "\f695";
-}
-
-.bi-arrows-vertical::before {
- content: "\f698";
-}
-
-.bi-arrows::before {
- content: "\f6a2";
-}
-
-.bi-ban-fill::before {
- content: "\f6a3";
-}
-
-.bi-ban::before {
- content: "\f6b6";
-}
-
-.bi-bing::before {
- content: "\f6c2";
-}
-
-.bi-cake::before {
- content: "\f6e0";
-}
-
-.bi-cake2::before {
- content: "\f6ed";
-}
-
-.bi-cookie::before {
- content: "\f6ee";
-}
-
-.bi-copy::before {
- content: "\f759";
-}
-
-.bi-crosshair::before {
- content: "\f769";
-}
-
-.bi-crosshair2::before {
- content: "\f794";
-}
-
-.bi-emoji-astonished-fill::before {
- content: "\f795";
-}
-
-.bi-emoji-astonished::before {
- content: "\f79a";
-}
-
-.bi-emoji-grimace-fill::before {
- content: "\f79b";
-}
-
-.bi-emoji-grimace::before {
- content: "\f7a0";
-}
-
-.bi-emoji-grin-fill::before {
- content: "\f7a1";
-}
-
-.bi-emoji-grin::before {
- content: "\f7a6";
-}
-
-.bi-emoji-surprise-fill::before {
- content: "\f7a7";
-}
-
-.bi-emoji-surprise::before {
- content: "\f7ac";
-}
-
-.bi-emoji-tear-fill::before {
- content: "\f7ad";
-}
-
-.bi-emoji-tear::before {
- content: "\f7b2";
-}
-
-.bi-envelope-arrow-down-fill::before {
- content: "\f7b3";
-}
-
-.bi-envelope-arrow-down::before {
- content: "\f7b8";
-}
-
-.bi-envelope-arrow-up-fill::before {
- content: "\f7b9";
-}
-
-.bi-envelope-arrow-up::before {
- content: "\f7be";
-}
-
-.bi-feather::before {
- content: "\f7bf";
-}
-
-.bi-feather2::before {
- content: "\f7c4";
-}
-
-.bi-floppy-fill::before {
- content: "\f7c5";
-}
-
-.bi-floppy::before {
- content: "\f7d8";
-}
-
-.bi-floppy2-fill::before {
- content: "\f7d9";
-}
-
-.bi-floppy2::before {
- content: "\f7e4";
-}
-
-.bi-gitlab::before {
- content: "\f7e5";
-}
-
-.bi-highlighter::before {
- content: "\f7f8";
-}
-
-.bi-marker-tip::before {
- content: "\f802";
-}
-
-.bi-nvme-fill::before {
- content: "\f803";
-}
-
-.bi-nvme::before {
- content: "\f80c";
-}
-
-.bi-opencollective::before {
- content: "\f80d";
-}
-
-.bi-pci-card-network::before {
- content: "\f8cd";
-}
-
-.bi-pci-card-sound::before {
- content: "\f8ce";
-}
-
-.bi-radar::before {
- content: "\f8cf";
-}
-
-.bi-send-arrow-down-fill::before {
- content: "\f8d0";
-}
-
-.bi-send-arrow-down::before {
- content: "\f8d1";
-}
-
-.bi-send-arrow-up-fill::before {
- content: "\f8d2";
-}
-
-.bi-send-arrow-up::before {
- content: "\f8d3";
-}
-
-.bi-sim-slash-fill::before {
- content: "\f8d4";
-}
-
-.bi-sim-slash::before {
- content: "\f8d5";
-}
-
-.bi-sourceforge::before {
- content: "\f8d6";
-}
-
-.bi-substack::before {
- content: "\f8d7";
-}
-
-.bi-threads-fill::before {
- content: "\f8d8";
-}
-
-.bi-threads::before {
- content: "\f8d9";
-}
-
-.bi-transparency::before {
- content: "\f8da";
-}
-
-.bi-twitter-x::before {
- content: "\f8db";
-}
-
-.bi-type-h4::before {
- content: "\f8dc";
-}
-
-.bi-type-h5::before {
- content: "\f8dd";
-}
-
-.bi-type-h6::before {
- content: "\f8de";
-}
-
-.bi-backpack-fill::before {
- content: "\f8df";
-}
-
-.bi-backpack::before {
- content: "\f8e0";
-}
-
-.bi-backpack2-fill::before {
- content: "\f8e1";
-}
-
-.bi-backpack2::before {
- content: "\f8e2";
-}
-
-.bi-backpack3-fill::before {
- content: "\f8e3";
-}
-
-.bi-backpack3::before {
- content: "\f8e4";
-}
-
-.bi-backpack4-fill::before {
- content: "\f8e5";
-}
-
-.bi-backpack4::before {
- content: "\f8e6";
-}
-
-.bi-brilliance::before {
- content: "\f8e7";
-}
-
-.bi-cake-fill::before {
- content: "\f8e8";
-}
-
-.bi-cake2-fill::before {
- content: "\f8e9";
-}
-
-.bi-duffle-fill::before {
- content: "\f8ea";
-}
-
-.bi-duffle::before {
- content: "\f8eb";
-}
-
-.bi-exposure::before {
- content: "\f8ec";
-}
-
-.bi-gender-neuter::before {
- content: "\f8ed";
-}
-
-.bi-highlights::before {
- content: "\f8ee";
-}
-
-.bi-luggage-fill::before {
- content: "\f8ef";
-}
-
-.bi-luggage::before {
- content: "\f8f0";
-}
-
-.bi-mailbox-flag::before {
- content: "\f8f1";
-}
-
-.bi-mailbox2-flag::before {
- content: "\f8f2";
-}
-
-.bi-noise-reduction::before {
- content: "\f8f3";
-}
-
-.bi-passport-fill::before {
- content: "\f8f4";
-}
-
-.bi-passport::before {
- content: "\f8f5";
-}
-
-.bi-person-arms-up::before {
- content: "\f8f6";
-}
-
-.bi-person-raised-hand::before {
- content: "\f8f7";
-}
-
-.bi-person-standing-dress::before {
- content: "\f8f8";
-}
-
-.bi-person-standing::before {
- content: "\f8f9";
-}
-
-.bi-person-walking::before {
- content: "\f8fa";
-}
-
-.bi-person-wheelchair::before {
- content: "\f8fb";
-}
-
-.bi-shadows::before {
- content: "\f8fc";
-}
-
-.bi-suitcase-fill::before {
- content: "\f8fd";
-}
-
-.bi-suitcase-lg-fill::before {
- content: "\f8fe";
-}
-
-.bi-suitcase-lg::before {
- content: "\f8ff";
-}
-
-.bi-suitcase::before {
- content: "豈";
-}
-
-.bi-suitcase2-fill::before {
- content: "更";
-}
-
-.bi-suitcase2::before {
- content: "車";
-}
-
-.bi-vignette::before {
- content: "賈";
-}
-
-/*# sourceMappingURL=data:application/json;base64,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QTtFQUNFO0lBQ0UsWUFBWTtFQUNkO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsV0FBVztFQUNiO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsV0FBVztFQUNiO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsV0FBVztFQUNiO0VBQ0E7SUFDRSxjQUFjO0lBQ2Qsa0JBQWtCO0VBQ3BCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsV0FBVztFQUNiO0VBQ0E7SUFDRSxjQUFjO0VBQ2hCO0VBQ0E7SUFDRSx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx5QkFBeUI7RUFD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RSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSx5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSx5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxnQ0FBZ0M7QUFDbEM7O0FBRUE7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxnQ0FBZ0M7QUFDbEM7O0FBRUE7RUFDRSwrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxnQ0FBZ0M7QUFD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QUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFlBQVk7QUFDZCIsImZpbGUiOiJhcHBsaWNhdGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiFcbiAqIEJvb3RzdHJhcCAgdjUuMy4yIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICogQ29weXJpZ2h0IDIwMTEtMjAyMyBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICovXG46cm9vdCxcbltkYXRhLWJzLXRoZW1lPWxpZ2h0XSB7XG4gIC0tYnMtYmx1ZTogIzBkNmVmZDtcbiAgLS1icy1pbmRpZ286ICM2NjEwZjI7XG4gIC0tYnMtcHVycGxlOiAjNmY0MmMxO1xuICAtLWJzLXBpbms6ICNkNjMzODQ7XG4gIC0tYnMtcmVkOiAjZGMzNTQ1O1xuICAtLWJzLW9yYW5nZTogI2ZkN2UxNDtcbiAgLS1icy15ZWxsb3c6ICNmZmMxMDc7XG4gIC0tYnMtZ3JlZW46ICMxOTg3NTQ7XG4gIC0tYnMtdGVhbDogIzIwYzk5NztcbiAgLS1icy1jeWFuOiAjMGRjYWYwO1xuICAtLWJzLWJsYWNrOiAjMDAwO1xuICAtLWJzLXdoaXRlOiAjZmZmO1xuICAtLWJzLWdyYXk6ICM2Yzc1N2Q7XG4gIC0tYnMtZ3JheS1kYXJrOiAjMzQzYTQwO1xuICAtLWJzLWdyYXktMTAwOiAjZjhmOWZhO1xuICAtLWJzLWdyYXktMjAwOiAjZTllY2VmO1xuICAtLWJzLWdyYXktMzAwOiAjZGVlMmU2O1xuICAtLWJzLWdyYXktNDAwOiAjY2VkNGRhO1xuICAtLWJzLWdyYXktNTAwOiAjYWRiNWJkO1xuICAtLWJzLWdyYXktNjAwOiAjNmM3NTdkO1xuICAtLWJzLWdyYXktNzAwOiAjNDk1MDU3O1xuICAtLWJzLWdyYXktODAwOiAjMzQzYTQwO1xuICAtLWJzLWdyYXktOTAwOiAjMjEyNTI5O1xuICAtLWJzLXByaW1hcnk6ICMwZDZlZmQ7XG4gIC0tYnMtc2Vjb25kYXJ5OiAjNmM3NTdkO1xuICAtLWJzLXN1Y2Nlc3M6ICMxOTg3NTQ7XG4gIC0tYnMtaW5mbzogIzBkY2FmMDtcbiAgLS1icy13YXJuaW5nOiAjZmZjMTA3O1xuICAtLWJzLWRhbmdlcjogI2RjMzU0NTtcbiAgLS1icy1saWdodDogI2Y4ZjlmYTtcbiAgLS1icy1kYXJrOiAjMjEyNTI5O1xuICAtLWJzLXByaW1hcnktcmdiOiAxMywgMTEwLCAyNTM7XG4gIC0tYnMtc2Vjb25kYXJ5LXJnYjogMTA4LCAxMTcsIDEyNTtcbiAgLS1icy1zdWNjZXNzLXJnYjogMjUsIDEzNSwgODQ7XG4gIC0tYnMtaW5mby1yZ2I6IDEzLCAyMDIsIDI0MDtcbiAgLS1icy13YXJuaW5nLXJnYjogMjU1LCAxOTMsIDc7XG4gIC0tYnMtZGFuZ2VyLXJnYjogMjIwLCA1MywgNjk7XG4gIC0tYnMtbGlnaHQtcmdiOiAyNDgsIDI0OSwgMjUwO1xuICAtLWJzLWRhcmstcmdiOiAzMywgMzcsIDQxO1xuICAtLWJzLXByaW1hcnktdGV4dC1lbXBoYXNpczogIzA1MmM2NTtcbiAgLS1icy1zZWNvbmRhcnktdGV4dC1lbXBoYXNpczogIzJiMmYzMjtcbiAgLS1icy1zdWNjZXNzLXRleHQtZW1waGFzaXM6ICMwYTM2MjI7XG4gIC0tYnMtaW5mby10ZXh0LWVtcGhhc2lzOiAjMDU1MTYwO1xuICAtLWJzLXdhcm5pbmctdGV4dC1lbXBoYXNpczogIzY2NGQwMztcbiAgLS1icy1kYW5nZXItdGV4dC1lbXBoYXNpczogIzU4MTUxYztcbiAgLS1icy1saWdodC10ZXh0LWVtcGhhc2lzOiAjNDk1MDU3O1xuICAtLWJzLWRhcmstdGV4dC1lbXBoYXNpczogIzQ5NTA1NztcbiAgLS1icy1wcmltYXJ5LWJnLXN1YnRsZTogI2NmZTJmZjtcbiAgLS1icy1zZWNvbmRhcnktYmctc3VidGxlOiAjZTJlM2U1O1xuICAtLWJzLXN1Y2Nlc3MtYmctc3VidGxlOiAjZDFlN2RkO1xuICAtLWJzLWluZm8tYmctc3VidGxlOiAjY2ZmNGZjO1xuICAtLWJzLXdhcm5pbmctYmctc3VidGxlOiAjZmZmM2NkO1xuICAtLWJzLWRhbmdlci1iZy1zdWJ0bGU6ICNmOGQ3ZGE7XG4gIC0tYnMtbGlnaHQtYmctc3VidGxlOiAjZmNmY2ZkO1xuICAtLWJzLWRhcmstYmctc3VidGxlOiAjY2VkNGRhO1xuICAtLWJzLXByaW1hcnktYm9yZGVyLXN1YnRsZTogIzllYzVmZTtcbiAgLS1icy1zZWNvbmRhcnktYm9yZGVyLXN1YnRsZTogI2M0YzhjYjtcbiAgLS1icy1zdWNjZXNzLWJvcmRlci1zdWJ0bGU6ICNhM2NmYmI7XG4gIC0tYnMtaW5mby1ib3JkZXItc3VidGxlOiAjOWVlYWY5O1xuICAtLWJzLXdhcm5pbmctYm9yZGVyLXN1YnRsZTogI2ZmZTY5YztcbiAgLS1icy1kYW5nZXItYm9yZGVyLXN1YnRsZTogI2YxYWViNTtcbiAgLS1icy1saWdodC1ib3JkZXItc3VidGxlOiAjZTllY2VmO1xuICAtLWJzLWRhcmstYm9yZGVyLXN1YnRsZTogI2FkYjViZDtcbiAgLS1icy13aGl0ZS1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0tYnMtYmxhY2stcmdiOiAwLCAwLCAwO1xuICAtLWJzLWZvbnQtc2Fucy1zZXJpZjogc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIk5vdG8gU2Fuc1wiLCBcIkxpYmVyYXRpb24gU2Fuc1wiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAtLWJzLWZvbnQtbW9ub3NwYWNlOiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICAtLWJzLWdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKTtcbiAgLS1icy1ib2R5LWZvbnQtZmFtaWx5OiB2YXIoLS1icy1mb250LXNhbnMtc2VyaWYpO1xuICAtLWJzLWJvZHktZm9udC1zaXplOiAxcmVtO1xuICAtLWJzLWJvZHktZm9udC13ZWlnaHQ6IDQwMDtcbiAgLS1icy1ib2R5LWxpbmUtaGVpZ2h0OiAxLjU7XG4gIC0tYnMtYm9keS1jb2xvcjogIzIxMjUyOTtcbiAgLS1icy1ib2R5LWNvbG9yLXJnYjogMzMsIDM3LCA0MTtcbiAgLS1icy1ib2R5LWJnOiAjZmZmO1xuICAtLWJzLWJvZHktYmctcmdiOiAyNTUsIDI1NSwgMjU1O1xuICAtLWJzLWVtcGhhc2lzLWNvbG9yOiAjMDAwO1xuICAtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYjogMCwgMCwgMDtcbiAgLS1icy1zZWNvbmRhcnktY29sb3I6IHJnYmEoMzMsIDM3LCA0MSwgMC43NSk7XG4gIC0tYnMtc2Vjb25kYXJ5LWNvbG9yLXJnYjogMzMsIDM3LCA0MTtcbiAgLS1icy1zZWNvbmRhcnktYmc6ICNlOWVjZWY7XG4gIC0tYnMtc2Vjb25kYXJ5LWJnLXJnYjogMjMzLCAyMzYsIDIzOTtcbiAgLS1icy10ZXJ0aWFyeS1jb2xvcjogcmdiYSgzMywgMzcsIDQxLCAwLjUpO1xuICAtLWJzLXRlcnRpYXJ5LWNvbG9yLXJnYjogMzMsIDM3LCA0MTtcbiAgLS1icy10ZXJ0aWFyeS1iZzogI2Y4ZjlmYTtcbiAgLS1icy10ZXJ0aWFyeS1iZy1yZ2I6IDI0OCwgMjQ5LCAyNTA7XG4gIC0tYnMtaGVhZGluZy1jb2xvcjogaW5oZXJpdDtcbiAgLS1icy1saW5rLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWxpbmstY29sb3ItcmdiOiAxMywgMTEwLCAyNTM7XG4gIC0tYnMtbGluay1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC0tYnMtbGluay1ob3Zlci1jb2xvcjogIzBhNThjYTtcbiAgLS1icy1saW5rLWhvdmVyLWNvbG9yLXJnYjogMTAsIDg4LCAyMDI7XG4gIC0tYnMtY29kZS1jb2xvcjogI2Q2MzM4NDtcbiAgLS1icy1oaWdobGlnaHQtY29sb3I6ICMyMTI1Mjk7XG4gIC0tYnMtaGlnaGxpZ2h0LWJnOiAjZmZmM2NkO1xuICAtLWJzLWJvcmRlci13aWR0aDogMXB4O1xuICAtLWJzLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tYnMtYm9yZGVyLWNvbG9yOiAjZGVlMmU2O1xuICAtLWJzLWJvcmRlci1jb2xvci10cmFuc2x1Y2VudDogcmdiYSgwLCAwLCAwLCAwLjE3NSk7XG4gIC0tYnMtYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIC0tYnMtYm9yZGVyLXJhZGl1cy1zbTogMC4yNXJlbTtcbiAgLS1icy1ib3JkZXItcmFkaXVzLWxnOiAwLjVyZW07XG4gIC0tYnMtYm9yZGVyLXJhZGl1cy14bDogMXJlbTtcbiAgLS1icy1ib3JkZXItcmFkaXVzLXh4bDogMnJlbTtcbiAgLS1icy1ib3JkZXItcmFkaXVzLTJ4bDogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy14eGwpO1xuICAtLWJzLWJvcmRlci1yYWRpdXMtcGlsbDogNTByZW07XG4gIC0tYnMtYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAtLWJzLWJveC1zaGFkb3ctc206IDAgMC4xMjVyZW0gMC4yNXJlbSByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgLS1icy1ib3gtc2hhZG93LWxnOiAwIDFyZW0gM3JlbSByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgLS1icy1ib3gtc2hhZG93LWluc2V0OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC0tYnMtZm9jdXMtcmluZy13aWR0aDogMC4yNXJlbTtcbiAgLS1icy1mb2N1cy1yaW5nLW9wYWNpdHk6IDAuMjU7XG4gIC0tYnMtZm9jdXMtcmluZy1jb2xvcjogcmdiYSgxMywgMTEwLCAyNTMsIDAuMjUpO1xuICAtLWJzLWZvcm0tdmFsaWQtY29sb3I6ICMxOTg3NTQ7XG4gIC0tYnMtZm9ybS12YWxpZC1ib3JkZXItY29sb3I6ICMxOTg3NTQ7XG4gIC0tYnMtZm9ybS1pbnZhbGlkLWNvbG9yOiAjZGMzNTQ1O1xuICAtLWJzLWZvcm0taW52YWxpZC1ib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbltkYXRhLWJzLXRoZW1lPWRhcmtdIHtcbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xuICAtLWJzLWJvZHktY29sb3I6ICNkZWUyZTY7XG4gIC0tYnMtYm9keS1jb2xvci1yZ2I6IDIyMiwgMjI2LCAyMzA7XG4gIC0tYnMtYm9keS1iZzogIzIxMjUyOTtcbiAgLS1icy1ib2R5LWJnLXJnYjogMzMsIDM3LCA0MTtcbiAgLS1icy1lbXBoYXNpcy1jb2xvcjogI2ZmZjtcbiAgLS1icy1lbXBoYXNpcy1jb2xvci1yZ2I6IDI1NSwgMjU1LCAyNTU7XG4gIC0tYnMtc2Vjb25kYXJ5LWNvbG9yOiByZ2JhKDIyMiwgMjI2LCAyMzAsIDAuNzUpO1xuICAtLWJzLXNlY29uZGFyeS1jb2xvci1yZ2I6IDIyMiwgMjI2LCAyMzA7XG4gIC0tYnMtc2Vjb25kYXJ5LWJnOiAjMzQzYTQwO1xuICAtLWJzLXNlY29uZGFyeS1iZy1yZ2I6IDUyLCA1OCwgNjQ7XG4gIC0tYnMtdGVydGlhcnktY29sb3I6IHJnYmEoMjIyLCAyMjYsIDIzMCwgMC41KTtcbiAgLS1icy10ZXJ0aWFyeS1jb2xvci1yZ2I6IDIyMiwgMjI2LCAyMzA7XG4gIC0tYnMtdGVydGlhcnktYmc6ICMyYjMwMzU7XG4gIC0tYnMtdGVydGlhcnktYmctcmdiOiA0MywgNDgsIDUzO1xuICAtLWJzLXByaW1hcnktdGV4dC1lbXBoYXNpczogIzZlYThmZTtcbiAgLS1icy1zZWNvbmRhcnktdGV4dC1lbXBoYXNpczogI2E3YWNiMTtcbiAgLS1icy1zdWNjZXNzLXRleHQtZW1waGFzaXM6ICM3NWI3OTg7XG4gIC0tYnMtaW5mby10ZXh0LWVtcGhhc2lzOiAjNmVkZmY2O1xuICAtLWJzLXdhcm5pbmctdGV4dC1lbXBoYXNpczogI2ZmZGE2YTtcbiAgLS1icy1kYW5nZXItdGV4dC1lbXBoYXNpczogI2VhODY4ZjtcbiAgLS1icy1saWdodC10ZXh0LWVtcGhhc2lzOiAjZjhmOWZhO1xuICAtLWJzLWRhcmstdGV4dC1lbXBoYXNpczogI2RlZTJlNjtcbiAgLS1icy1wcmltYXJ5LWJnLXN1YnRsZTogIzAzMTYzMztcbiAgLS1icy1zZWNvbmRhcnktYmctc3VidGxlOiAjMTYxNzE5O1xuICAtLWJzLXN1Y2Nlc3MtYmctc3VidGxlOiAjMDUxYjExO1xuICAtLWJzLWluZm8tYmctc3VidGxlOiAjMDMyODMwO1xuICAtLWJzLXdhcm5pbmctYmctc3VidGxlOiAjMzMyNzAxO1xuICAtLWJzLWRhbmdlci1iZy1zdWJ0bGU6ICMyYzBiMGU7XG4gIC0tYnMtbGlnaHQtYmctc3VidGxlOiAjMzQzYTQwO1xuICAtLWJzLWRhcmstYmctc3VidGxlOiAjMWExZDIwO1xuICAtLWJzLXByaW1hcnktYm9yZGVyLXN1YnRsZTogIzA4NDI5ODtcbiAgLS1icy1zZWNvbmRhcnktYm9yZGVyLXN1YnRsZTogIzQxNDY0YjtcbiAgLS1icy1zdWNjZXNzLWJvcmRlci1zdWJ0bGU6ICMwZjUxMzI7XG4gIC0tYnMtaW5mby1ib3JkZXItc3VidGxlOiAjMDg3OTkwO1xuICAtLWJzLXdhcm5pbmctYm9yZGVyLXN1YnRsZTogIzk5NzQwNDtcbiAgLS1icy1kYW5nZXItYm9yZGVyLXN1YnRsZTogIzg0MjAyOTtcbiAgLS1icy1saWdodC1ib3JkZXItc3VidGxlOiAjNDk1MDU3O1xuICAtLWJzLWRhcmstYm9yZGVyLXN1YnRsZTogIzM0M2E0MDtcbiAgLS1icy1oZWFkaW5nLWNvbG9yOiBpbmhlcml0O1xuICAtLWJzLWxpbmstY29sb3I6ICM2ZWE4ZmU7XG4gIC0tYnMtbGluay1ob3Zlci1jb2xvcjogIzhiYjlmZTtcbiAgLS1icy1saW5rLWNvbG9yLXJnYjogMTEwLCAxNjgsIDI1NDtcbiAgLS1icy1saW5rLWhvdmVyLWNvbG9yLXJnYjogMTM5LCAxODUsIDI1NDtcbiAgLS1icy1jb2RlLWNvbG9yOiAjZTY4NWI1O1xuICAtLWJzLWhpZ2hsaWdodC1jb2xvcjogI2RlZTJlNjtcbiAgLS1icy1oaWdobGlnaHQtYmc6ICM2NjRkMDM7XG4gIC0tYnMtYm9yZGVyLWNvbG9yOiAjNDk1MDU3O1xuICAtLWJzLWJvcmRlci1jb2xvci10cmFuc2x1Y2VudDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgLS1icy1mb3JtLXZhbGlkLWNvbG9yOiAjNzViNzk4O1xuICAtLWJzLWZvcm0tdmFsaWQtYm9yZGVyLWNvbG9yOiAjNzViNzk4O1xuICAtLWJzLWZvcm0taW52YWxpZC1jb2xvcjogI2VhODY4ZjtcbiAgLS1icy1mb3JtLWludmFsaWQtYm9yZGVyLWNvbG9yOiAjZWE4NjhmO1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgOnJvb3Qge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICB9XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1icy1ib2R5LWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zaXplOiB2YXIoLS1icy1ib2R5LWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1icy1ib2R5LWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWJzLWJvZHktbGluZS1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIHRleHQtYWxpZ246IHZhcigtLWJzLWJvZHktdGV4dC1hbGlnbik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWJvZHktYmcpO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuaHIge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSBzb2xpZDtcbiAgb3BhY2l0eTogMC4yNTtcbn1cblxuaDYsIC5oNiwgaDUsIC5oNSwgaDQsIC5oNCwgaDMsIC5oMywgaDIsIC5oMiwgaDEsIC5oMSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLWJzLWhlYWRpbmctY29sb3IpO1xufVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiBjYWxjKDEuMzc1cmVtICsgMS41dncpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiBjYWxjKDEuMzI1cmVtICsgMC45dncpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cblxuaDMsIC5oMyB7XG4gIGZvbnQtc2l6ZTogY2FsYygxLjNyZW0gKyAwLjZ2dyk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiBjYWxjKDEuMjc1cmVtICsgMC4zdncpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG5oNSwgLmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5wIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuYWJiclt0aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCB7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5zbWFsbCwgLnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuXG5tYXJrLCAubWFyayB7XG4gIHBhZGRpbmc6IDAuMTg3NWVtO1xuICBjb2xvcjogdmFyKC0tYnMtaGlnaGxpZ2h0LWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtaGlnaGxpZ2h0LWJnKTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuYSB7XG4gIGNvbG9yOiByZ2JhKHZhcigtLWJzLWxpbmstY29sb3ItcmdiKSwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuYTpob3ZlciB7XG4gIC0tYnMtbGluay1jb2xvci1yZ2I6IHZhcigtLWJzLWxpbmstaG92ZXItY29sb3ItcmdiKTtcbn1cblxuYTpub3QoW2hyZWZdKTpub3QoW2NsYXNzXSksIGE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogdmFyKC0tYnMtZm9udC1tb25vc3BhY2UpO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG5wcmUgY29kZSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbn1cblxuY29kZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWJzLWNvZGUtY29sb3IpO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5hID4gY29kZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5rYmQge1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC4zNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWJzLWJvZHktYmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuaW1nLFxuc3ZnIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxudGFibGUge1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IC13ZWJraXQtbWF0Y2gtcGFyZW50O1xufVxuXG50aGVhZCxcbnRib2R5LFxudGZvb3QsXG50cixcbnRkLFxudGgge1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMDtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogMDtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbltyb2xlPWJ1dHRvbl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnNlbGVjdCB7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuc2VsZWN0OmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuW2xpc3RdOm5vdChbdHlwZT1kYXRlXSk6bm90KFt0eXBlPWRhdGV0aW1lLWxvY2FsXSk6bm90KFt0eXBlPW1vbnRoXSk6bm90KFt0eXBlPXdlZWtdKTpub3QoW3R5cGU9dGltZV0pOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5idXR0b246bm90KDpkaXNhYmxlZCksXG5bdHlwZT1idXR0b25dOm5vdCg6ZGlzYWJsZWQpLFxuW3R5cGU9cmVzZXRdOm5vdCg6ZGlzYWJsZWQpLFxuW3R5cGU9c3VibWl0XTpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxubGVnZW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogY2FsYygxLjI3NXJlbSArIDAuM3Z3KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGxlZ2VuZCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbmxlZ2VuZCArICoge1xuICBjbGVhcjogbGVmdDtcbn1cblxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtZmllbGRzLXdyYXBwZXIsXG46Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC10ZXh0LFxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtbWludXRlLFxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQtaG91ci1maWVsZCxcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LWRheS1maWVsZCxcbjo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkLFxuOjotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLyogcnRsOnJhdzpcblt0eXBlPVwidGVsXCJdLFxuW3R5cGU9XCJ1cmxcIl0sXG5bdHlwZT1cImVtYWlsXCJdLFxuW3R5cGU9XCJudW1iZXJcIl0ge1xuICBkaXJlY3Rpb246IGx0cjtcbn1cbiovXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbjo6ZmlsZS1zZWxlY3Rvci1idXR0b24ge1xuICBmb250OiBpbmhlcml0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxub3V0cHV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5pZnJhbWUge1xuICBib3JkZXI6IDA7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLmRpc3BsYXktMSB7XG4gIGZvbnQtc2l6ZTogY2FsYygxLjYyNXJlbSArIDQuNXZ3KTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmRpc3BsYXktMSB7XG4gICAgZm9udC1zaXplOiA1cmVtO1xuICB9XG59XG5cbi5kaXNwbGF5LTIge1xuICBmb250LXNpemU6IGNhbGMoMS41NzVyZW0gKyAzLjl2dyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kaXNwbGF5LTIge1xuICAgIGZvbnQtc2l6ZTogNC41cmVtO1xuICB9XG59XG5cbi5kaXNwbGF5LTMge1xuICBmb250LXNpemU6IGNhbGMoMS41MjVyZW0gKyAzLjN2dyk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kaXNwbGF5LTMge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgfVxufVxuXG4uZGlzcGxheS00IHtcbiAgZm9udC1zaXplOiBjYWxjKDEuNDc1cmVtICsgMi43dncpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZGlzcGxheS00IHtcbiAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgfVxufVxuXG4uZGlzcGxheS01IHtcbiAgZm9udC1zaXplOiBjYWxjKDEuNDI1cmVtICsgMi4xdncpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZGlzcGxheS01IHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gIH1cbn1cblxuLmRpc3BsYXktNiB7XG4gIGZvbnQtc2l6ZTogY2FsYygxLjM3NXJlbSArIDEuNXZ3KTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmRpc3BsYXktNiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gIH1cbn1cblxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5saXN0LWlubGluZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmxpc3QtaW5saW5lLWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uYmxvY2txdW90ZSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cbi5ibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYmxvY2txdW90ZS1mb290ZXIge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogIzZjNzU3ZDtcbn1cbi5ibG9ja3F1b3RlLWZvb3Rlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCLigJTCoFwiO1xufVxuXG4uaW1nLWZsdWlkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtYm9keS1iZyk7XG4gIGJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5maWd1cmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5maWd1cmUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZpZ3VyZS1jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTtcbn1cblxuLmNvbnRhaW5lcixcbi5jb250YWluZXItZmx1aWQsXG4uY29udGFpbmVyLXh4bCxcbi5jb250YWluZXIteGwsXG4uY29udGFpbmVyLWxnLFxuLmNvbnRhaW5lci1tZCxcbi5jb250YWluZXItc20ge1xuICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG4gIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJzLWd1dHRlci14KSAqIDAuNSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1icy1ndXR0ZXIteCkgKiAwLjUpO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNvbnRhaW5lci1zbSwgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXItbWQsIC5jb250YWluZXItc20sIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNzIwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29udGFpbmVyLWxnLCAuY29udGFpbmVyLW1kLCAuY29udGFpbmVyLXNtLCAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIteGwsIC5jb250YWluZXItbGcsIC5jb250YWluZXItbWQsIC5jb250YWluZXItc20sIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5jb250YWluZXIteHhsLCAuY29udGFpbmVyLXhsLCAuY29udGFpbmVyLWxnLCAuY29udGFpbmVyLW1kLCAuY29udGFpbmVyLXNtLCAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEzMjBweDtcbiAgfVxufVxuOnJvb3Qge1xuICAtLWJzLWJyZWFrcG9pbnQteHM6IDA7XG4gIC0tYnMtYnJlYWtwb2ludC1zbTogNTc2cHg7XG4gIC0tYnMtYnJlYWtwb2ludC1tZDogNzY4cHg7XG4gIC0tYnMtYnJlYWtwb2ludC1sZzogOTkycHg7XG4gIC0tYnMtYnJlYWtwb2ludC14bDogMTIwMHB4O1xuICAtLWJzLWJyZWFrcG9pbnQteHhsOiAxNDAwcHg7XG59XG5cbi5yb3cge1xuICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG4gIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWJzLWd1dHRlci15KSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMC41ICogdmFyKC0tYnMtZ3V0dGVyLXgpKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoLTAuNSAqIHZhcigtLWJzLWd1dHRlci14KSk7XG59XG4ucm93ID4gKiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJzLWd1dHRlci14KSAqIDAuNSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1icy1ndXR0ZXIteCkgKiAwLjUpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1icy1ndXR0ZXIteSk7XG59XG5cbi5jb2wge1xuICBmbGV4OiAxIDAgMCU7XG59XG5cbi5yb3ctY29scy1hdXRvID4gKiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuLnJvdy1jb2xzLTEgPiAqIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucm93LWNvbHMtMiA+ICoge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDUwJTtcbn1cblxuLnJvdy1jb2xzLTMgPiAqIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG5cbi5yb3ctY29scy00ID4gKiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMjUlO1xufVxuXG4ucm93LWNvbHMtNSA+ICoge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIwJTtcbn1cblxuLnJvdy1jb2xzLTYgPiAqIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG5cbi5jb2wtYXV0byB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmNvbC0xIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cblxuLmNvbC0yIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG5cbi5jb2wtMyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMjUlO1xufVxuXG4uY29sLTQge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cblxuLmNvbC01IHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG5cbi5jb2wtNiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogNTAlO1xufVxuXG4uY29sLTcge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbn1cblxuLmNvbC04IHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG5cbi5jb2wtOSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogNzUlO1xufVxuXG4uY29sLTEwIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA4My4zMzMzMzMzMyU7XG59XG5cbi5jb2wtMTEge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cblxuLmNvbC0xMiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuXG4ub2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuXG4ub2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4ub2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuXG4ub2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuXG4ub2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuXG4ub2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xufVxuXG4ub2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuXG4ub2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuXG4ub2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cblxuLm9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG59XG5cbi5nLTAsXG4uZ3gtMCB7XG4gIC0tYnMtZ3V0dGVyLXg6IDA7XG59XG5cbi5nLTAsXG4uZ3ktMCB7XG4gIC0tYnMtZ3V0dGVyLXk6IDA7XG59XG5cbi5nLTEsXG4uZ3gtMSB7XG4gIC0tYnMtZ3V0dGVyLXg6IDAuMjVyZW07XG59XG5cbi5nLTEsXG4uZ3ktMSB7XG4gIC0tYnMtZ3V0dGVyLXk6IDAuMjVyZW07XG59XG5cbi5nLTIsXG4uZ3gtMiB7XG4gIC0tYnMtZ3V0dGVyLXg6IDAuNXJlbTtcbn1cblxuLmctMixcbi5neS0yIHtcbiAgLS1icy1ndXR0ZXIteTogMC41cmVtO1xufVxuXG4uZy0zLFxuLmd4LTMge1xuICAtLWJzLWd1dHRlci14OiAxcmVtO1xufVxuXG4uZy0zLFxuLmd5LTMge1xuICAtLWJzLWd1dHRlci15OiAxcmVtO1xufVxuXG4uZy00LFxuLmd4LTQge1xuICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG59XG5cbi5nLTQsXG4uZ3ktNCB7XG4gIC0tYnMtZ3V0dGVyLXk6IDEuNXJlbTtcbn1cblxuLmctNSxcbi5neC01IHtcbiAgLS1icy1ndXR0ZXIteDogM3JlbTtcbn1cblxuLmctNSxcbi5neS01IHtcbiAgLS1icy1ndXR0ZXIteTogM3JlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5jb2wtc20ge1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgfVxuICAucm93LWNvbHMtc20tYXV0byA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5yb3ctY29scy1zbS0xID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnJvdy1jb2xzLXNtLTIgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5yb3ctY29scy1zbS0zID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAucm93LWNvbHMtc20tNCA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnJvdy1jb2xzLXNtLTUgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5yb3ctY29scy1zbS02ID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLWF1dG8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5jb2wtc20tMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1zbS00IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zbS03IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tOCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTExIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMTIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5vZmZzZXQtc20tMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC1zbS0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtc20tMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LXNtLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtc20tNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LXNtLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1zbS04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtc20tOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LXNtLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtc20tMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmctc20tMCxcbiAgLmd4LXNtLTAge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gIH1cbiAgLmctc20tMCxcbiAgLmd5LXNtLTAge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIH1cbiAgLmctc20tMSxcbiAgLmd4LXNtLTEge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuMjVyZW07XG4gIH1cbiAgLmctc20tMSxcbiAgLmd5LXNtLTEge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDAuMjVyZW07XG4gIH1cbiAgLmctc20tMixcbiAgLmd4LXNtLTIge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuNXJlbTtcbiAgfVxuICAuZy1zbS0yLFxuICAuZ3ktc20tMiB7XG4gICAgLS1icy1ndXR0ZXIteTogMC41cmVtO1xuICB9XG4gIC5nLXNtLTMsXG4gIC5neC1zbS0zIHtcbiAgICAtLWJzLWd1dHRlci14OiAxcmVtO1xuICB9XG4gIC5nLXNtLTMsXG4gIC5neS1zbS0zIHtcbiAgICAtLWJzLWd1dHRlci15OiAxcmVtO1xuICB9XG4gIC5nLXNtLTQsXG4gIC5neC1zbS00IHtcbiAgICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG4gIH1cbiAgLmctc20tNCxcbiAgLmd5LXNtLTQge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDEuNXJlbTtcbiAgfVxuICAuZy1zbS01LFxuICAuZ3gtc20tNSB7XG4gICAgLS1icy1ndXR0ZXIteDogM3JlbTtcbiAgfVxuICAuZy1zbS01LFxuICAuZ3ktc20tNSB7XG4gICAgLS1icy1ndXR0ZXIteTogM3JlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtbWQge1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgfVxuICAucm93LWNvbHMtbWQtYXV0byA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5yb3ctY29scy1tZC0xID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnJvdy1jb2xzLW1kLTIgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5yb3ctY29scy1tZC0zID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAucm93LWNvbHMtbWQtNCA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnJvdy1jb2xzLW1kLTUgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5yb3ctY29scy1tZC02ID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLWF1dG8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5jb2wtbWQtMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1tZC00IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTYge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1tZC03IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1tZC0xMCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5vZmZzZXQtbWQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC1tZC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbWQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LW1kLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbWQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LW1kLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1tZC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbWQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LW1kLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbWQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmctbWQtMCxcbiAgLmd4LW1kLTAge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gIH1cbiAgLmctbWQtMCxcbiAgLmd5LW1kLTAge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIH1cbiAgLmctbWQtMSxcbiAgLmd4LW1kLTEge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuMjVyZW07XG4gIH1cbiAgLmctbWQtMSxcbiAgLmd5LW1kLTEge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDAuMjVyZW07XG4gIH1cbiAgLmctbWQtMixcbiAgLmd4LW1kLTIge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuNXJlbTtcbiAgfVxuICAuZy1tZC0yLFxuICAuZ3ktbWQtMiB7XG4gICAgLS1icy1ndXR0ZXIteTogMC41cmVtO1xuICB9XG4gIC5nLW1kLTMsXG4gIC5neC1tZC0zIHtcbiAgICAtLWJzLWd1dHRlci14OiAxcmVtO1xuICB9XG4gIC5nLW1kLTMsXG4gIC5neS1tZC0zIHtcbiAgICAtLWJzLWd1dHRlci15OiAxcmVtO1xuICB9XG4gIC5nLW1kLTQsXG4gIC5neC1tZC00IHtcbiAgICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG4gIH1cbiAgLmctbWQtNCxcbiAgLmd5LW1kLTQge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDEuNXJlbTtcbiAgfVxuICAuZy1tZC01LFxuICAuZ3gtbWQtNSB7XG4gICAgLS1icy1ndXR0ZXIteDogM3JlbTtcbiAgfVxuICAuZy1tZC01LFxuICAuZ3ktbWQtNSB7XG4gICAgLS1icy1ndXR0ZXIteTogM3JlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb2wtbGcge1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgfVxuICAucm93LWNvbHMtbGctYXV0byA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5yb3ctY29scy1sZy0xID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnJvdy1jb2xzLWxnLTIgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5yb3ctY29scy1sZy0zID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAucm93LWNvbHMtbGctNCA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLnJvdy1jb2xzLWxnLTUgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5yb3ctY29scy1sZy02ID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLWF1dG8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5jb2wtbGctMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctMiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctNSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTYge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1sZy03IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTExIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5vZmZzZXQtbGctMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC1sZy0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbGctMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LWxnLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbGctNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LWxnLTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLm9mZnNldC1sZy04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5vZmZzZXQtbGctOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LWxnLTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQtbGctMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmctbGctMCxcbiAgLmd4LWxnLTAge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gIH1cbiAgLmctbGctMCxcbiAgLmd5LWxnLTAge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIH1cbiAgLmctbGctMSxcbiAgLmd4LWxnLTEge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuMjVyZW07XG4gIH1cbiAgLmctbGctMSxcbiAgLmd5LWxnLTEge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDAuMjVyZW07XG4gIH1cbiAgLmctbGctMixcbiAgLmd4LWxnLTIge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuNXJlbTtcbiAgfVxuICAuZy1sZy0yLFxuICAuZ3ktbGctMiB7XG4gICAgLS1icy1ndXR0ZXIteTogMC41cmVtO1xuICB9XG4gIC5nLWxnLTMsXG4gIC5neC1sZy0zIHtcbiAgICAtLWJzLWd1dHRlci14OiAxcmVtO1xuICB9XG4gIC5nLWxnLTMsXG4gIC5neS1sZy0zIHtcbiAgICAtLWJzLWd1dHRlci15OiAxcmVtO1xuICB9XG4gIC5nLWxnLTQsXG4gIC5neC1sZy00IHtcbiAgICAtLWJzLWd1dHRlci14OiAxLjVyZW07XG4gIH1cbiAgLmctbGctNCxcbiAgLmd5LWxnLTQge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDEuNXJlbTtcbiAgfVxuICAuZy1sZy01LFxuICAuZ3gtbGctNSB7XG4gICAgLS1icy1ndXR0ZXIteDogM3JlbTtcbiAgfVxuICAuZy1sZy01LFxuICAuZ3ktbGctNSB7XG4gICAgLS1icy1ndXR0ZXIteTogM3JlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29sLXhsIHtcbiAgICBmbGV4OiAxIDAgMCU7XG4gIH1cbiAgLnJvdy1jb2xzLXhsLWF1dG8gPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAucm93LWNvbHMteGwtMSA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5yb3ctY29scy14bC0yID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAucm93LWNvbHMteGwtMyA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLnJvdy1jb2xzLXhsLTQgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5yb3ctY29scy14bC01ID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuICAucm93LWNvbHMteGwtNiA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC1hdXRvIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAuY29sLXhsLTEge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC0zIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wteGwtNCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC02IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wteGwtNyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTgge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC05IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wteGwtMTAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC0xMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXhsLTEyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAub2Zmc2V0LXhsLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5vZmZzZXQteGwtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXhsLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm9mZnNldC14bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXhsLTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLm9mZnNldC14bC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteGwtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAub2Zmc2V0LXhsLTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLm9mZnNldC14bC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXhsLTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5nLXhsLTAsXG4gIC5neC14bC0wIHtcbiAgICAtLWJzLWd1dHRlci14OiAwO1xuICB9XG4gIC5nLXhsLTAsXG4gIC5neS14bC0wIHtcbiAgICAtLWJzLWd1dHRlci15OiAwO1xuICB9XG4gIC5nLXhsLTEsXG4gIC5neC14bC0xIHtcbiAgICAtLWJzLWd1dHRlci14OiAwLjI1cmVtO1xuICB9XG4gIC5nLXhsLTEsXG4gIC5neS14bC0xIHtcbiAgICAtLWJzLWd1dHRlci15OiAwLjI1cmVtO1xuICB9XG4gIC5nLXhsLTIsXG4gIC5neC14bC0yIHtcbiAgICAtLWJzLWd1dHRlci14OiAwLjVyZW07XG4gIH1cbiAgLmcteGwtMixcbiAgLmd5LXhsLTIge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDAuNXJlbTtcbiAgfVxuICAuZy14bC0zLFxuICAuZ3gteGwtMyB7XG4gICAgLS1icy1ndXR0ZXIteDogMXJlbTtcbiAgfVxuICAuZy14bC0zLFxuICAuZ3kteGwtMyB7XG4gICAgLS1icy1ndXR0ZXIteTogMXJlbTtcbiAgfVxuICAuZy14bC00LFxuICAuZ3gteGwtNCB7XG4gICAgLS1icy1ndXR0ZXIteDogMS41cmVtO1xuICB9XG4gIC5nLXhsLTQsXG4gIC5neS14bC00IHtcbiAgICAtLWJzLWd1dHRlci15OiAxLjVyZW07XG4gIH1cbiAgLmcteGwtNSxcbiAgLmd4LXhsLTUge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDNyZW07XG4gIH1cbiAgLmcteGwtNSxcbiAgLmd5LXhsLTUge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDNyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgLmNvbC14eGwge1xuICAgIGZsZXg6IDEgMCAwJTtcbiAgfVxuICAucm93LWNvbHMteHhsLWF1dG8gPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAucm93LWNvbHMteHhsLTEgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAucm93LWNvbHMteHhsLTIgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5yb3ctY29scy14eGwtMyA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLnJvdy1jb2xzLXh4bC00ID4gKiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAucm93LWNvbHMteHhsLTUgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5yb3ctY29scy14eGwtNiA+ICoge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14eGwtYXV0byB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmNvbC14eGwtMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wteHhsLTIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14eGwtMyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXh4bC00IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wteHhsLTUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14eGwtNiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXh4bC03IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wteHhsLTgge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14eGwtOSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLXh4bC0xMCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXh4bC0xMSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXh4bC0xMiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm9mZnNldC14eGwtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm9mZnNldC14eGwtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteHhsLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC14eGwtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAub2Zmc2V0LXh4bC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteHhsLTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC14eGwtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAub2Zmc2V0LXh4bC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5vZmZzZXQteHhsLTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLm9mZnNldC14eGwtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAub2Zmc2V0LXh4bC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAub2Zmc2V0LXh4bC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuZy14eGwtMCxcbiAgLmd4LXh4bC0wIHtcbiAgICAtLWJzLWd1dHRlci14OiAwO1xuICB9XG4gIC5nLXh4bC0wLFxuICAuZ3kteHhsLTAge1xuICAgIC0tYnMtZ3V0dGVyLXk6IDA7XG4gIH1cbiAgLmcteHhsLTEsXG4gIC5neC14eGwtMSB7XG4gICAgLS1icy1ndXR0ZXIteDogMC4yNXJlbTtcbiAgfVxuICAuZy14eGwtMSxcbiAgLmd5LXh4bC0xIHtcbiAgICAtLWJzLWd1dHRlci15OiAwLjI1cmVtO1xuICB9XG4gIC5nLXh4bC0yLFxuICAuZ3gteHhsLTIge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDAuNXJlbTtcbiAgfVxuICAuZy14eGwtMixcbiAgLmd5LXh4bC0yIHtcbiAgICAtLWJzLWd1dHRlci15OiAwLjVyZW07XG4gIH1cbiAgLmcteHhsLTMsXG4gIC5neC14eGwtMyB7XG4gICAgLS1icy1ndXR0ZXIteDogMXJlbTtcbiAgfVxuICAuZy14eGwtMyxcbiAgLmd5LXh4bC0zIHtcbiAgICAtLWJzLWd1dHRlci15OiAxcmVtO1xuICB9XG4gIC5nLXh4bC00LFxuICAuZ3gteHhsLTQge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDEuNXJlbTtcbiAgfVxuICAuZy14eGwtNCxcbiAgLmd5LXh4bC00IHtcbiAgICAtLWJzLWd1dHRlci15OiAxLjVyZW07XG4gIH1cbiAgLmcteHhsLTUsXG4gIC5neC14eGwtNSB7XG4gICAgLS1icy1ndXR0ZXIteDogM3JlbTtcbiAgfVxuICAuZy14eGwtNSxcbiAgLmd5LXh4bC01IHtcbiAgICAtLWJzLWd1dHRlci15OiAzcmVtO1xuICB9XG59XG4udGFibGUge1xuICAtLWJzLXRhYmxlLWNvbG9yLXR5cGU6IGluaXRpYWw7XG4gIC0tYnMtdGFibGUtYmctdHlwZTogaW5pdGlhbDtcbiAgLS1icy10YWJsZS1jb2xvci1zdGF0ZTogaW5pdGlhbDtcbiAgLS1icy10YWJsZS1iZy1zdGF0ZTogaW5pdGlhbDtcbiAgLS1icy10YWJsZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLXRhYmxlLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy10YWJsZS1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvcik7XG4gIC0tYnMtdGFibGUtYWNjZW50LWJnOiB0cmFuc3BhcmVudDtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiB2YXIoLS1icy1lbXBoYXNpcy1jb2xvcik7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1iZzogcmdiYSh2YXIoLS1icy1lbXBoYXNpcy1jb2xvci1yZ2IpLCAwLjA1KTtcbiAgLS1icy10YWJsZS1hY3RpdmUtY29sb3I6IHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yKTtcbiAgLS1icy10YWJsZS1hY3RpdmUtYmc6IHJnYmEodmFyKC0tYnMtZW1waGFzaXMtY29sb3ItcmdiKSwgMC4xKTtcbiAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLXRhYmxlLWhvdmVyLWJnOiByZ2JhKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIDAuMDc1KTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yKTtcbn1cbi50YWJsZSA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1icy10YWJsZS1jb2xvci1zdGF0ZSwgdmFyKC0tYnMtdGFibGUtY29sb3ItdHlwZSwgdmFyKC0tYnMtdGFibGUtY29sb3IpKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXRhYmxlLWJnKTtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgOTk5OXB4IHZhcigtLWJzLXRhYmxlLWJnLXN0YXRlLCB2YXIoLS1icy10YWJsZS1iZy10eXBlLCB2YXIoLS1icy10YWJsZS1hY2NlbnQtYmcpKSk7XG59XG4udGFibGUgPiB0Ym9keSB7XG4gIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xufVxuLnRhYmxlID4gdGhlYWQge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4udGFibGUtZ3JvdXAtZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpIHNvbGlkIGN1cnJlbnRjb2xvcjtcbn1cblxuLmNhcHRpb24tdG9wIHtcbiAgY2FwdGlvbi1zaWRlOiB0b3A7XG59XG5cbi50YWJsZS1zbSA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbTtcbn1cblxuLnRhYmxlLWJvcmRlcmVkID4gOm5vdChjYXB0aW9uKSA+ICoge1xuICBib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgMDtcbn1cbi50YWJsZS1ib3JkZXJlZCA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1icy1ib3JkZXItd2lkdGgpO1xufVxuXG4udGFibGUtYm9yZGVybGVzcyA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4udGFibGUtYm9yZGVybGVzcyA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG5cbi50YWJsZS1zdHJpcGVkID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpID4gKiB7XG4gIC0tYnMtdGFibGUtY29sb3ItdHlwZTogdmFyKC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcik7XG4gIC0tYnMtdGFibGUtYmctdHlwZTogdmFyKC0tYnMtdGFibGUtc3RyaXBlZC1iZyk7XG59XG5cbi50YWJsZS1zdHJpcGVkLWNvbHVtbnMgPiA6bm90KGNhcHRpb24pID4gdHIgPiA6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgLS1icy10YWJsZS1jb2xvci10eXBlOiB2YXIoLS1icy10YWJsZS1zdHJpcGVkLWNvbG9yKTtcbiAgLS1icy10YWJsZS1iZy10eXBlOiB2YXIoLS1icy10YWJsZS1zdHJpcGVkLWJnKTtcbn1cblxuLnRhYmxlLWFjdGl2ZSB7XG4gIC0tYnMtdGFibGUtY29sb3Itc3RhdGU6IHZhcigtLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcik7XG4gIC0tYnMtdGFibGUtYmctc3RhdGU6IHZhcigtLWJzLXRhYmxlLWFjdGl2ZS1iZyk7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAqIHtcbiAgLS1icy10YWJsZS1jb2xvci1zdGF0ZTogdmFyKC0tYnMtdGFibGUtaG92ZXItY29sb3IpO1xuICAtLWJzLXRhYmxlLWJnLXN0YXRlOiB2YXIoLS1icy10YWJsZS1ob3Zlci1iZyk7XG59XG5cbi50YWJsZS1wcmltYXJ5IHtcbiAgLS1icy10YWJsZS1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1iZzogI2NmZTJmZjtcbiAgLS1icy10YWJsZS1ib3JkZXItY29sb3I6ICNhNmI1Y2M7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1iZzogI2M1ZDdmMjtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWFjdGl2ZS1iZzogI2JhY2JlNjtcbiAgLS1icy10YWJsZS1hY3RpdmUtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtaG92ZXItYmc6ICNiZmQxZWM7XG4gIC0tYnMtdGFibGUtaG92ZXItY29sb3I6ICMwMDA7XG4gIGNvbG9yOiB2YXIoLS1icy10YWJsZS1jb2xvcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yKTtcbn1cblxuLnRhYmxlLXNlY29uZGFyeSB7XG4gIC0tYnMtdGFibGUtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtYmc6ICNlMmUzZTU7XG4gIC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yOiAjYjViNmI3O1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtYmc6ICNkN2Q4ZGE7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1hY3RpdmUtYmc6ICNjYmNjY2U7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWhvdmVyLWJnOiAjZDFkMmQ0O1xuICAtLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogdmFyKC0tYnMtdGFibGUtY29sb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLXRhYmxlLWJvcmRlci1jb2xvcik7XG59XG5cbi50YWJsZS1zdWNjZXNzIHtcbiAgLS1icy10YWJsZS1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1iZzogI2QxZTdkZDtcbiAgLS1icy10YWJsZS1ib3JkZXItY29sb3I6ICNhN2I5YjE7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1iZzogI2M3ZGJkMjtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWFjdGl2ZS1iZzogI2JjZDBjNztcbiAgLS1icy10YWJsZS1hY3RpdmUtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtaG92ZXItYmc6ICNjMWQ2Y2M7XG4gIC0tYnMtdGFibGUtaG92ZXItY29sb3I6ICMwMDA7XG4gIGNvbG9yOiB2YXIoLS1icy10YWJsZS1jb2xvcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yKTtcbn1cblxuLnRhYmxlLWluZm8ge1xuICAtLWJzLXRhYmxlLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWJnOiAjY2ZmNGZjO1xuICAtLWJzLXRhYmxlLWJvcmRlci1jb2xvcjogI2E2YzNjYTtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWJnOiAjYzVlOGVmO1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWJnOiAjYmFkY2UzO1xuICAtLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1ob3Zlci1iZzogI2JmZTJlOTtcbiAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogIzAwMDtcbiAgY29sb3I6IHZhcigtLWJzLXRhYmxlLWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy10YWJsZS1ib3JkZXItY29sb3IpO1xufVxuXG4udGFibGUtd2FybmluZyB7XG4gIC0tYnMtdGFibGUtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtYmc6ICNmZmYzY2Q7XG4gIC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yOiAjY2NjMmE0O1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtYmc6ICNmMmU3YzM7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1hY3RpdmUtYmc6ICNlNmRiYjk7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWhvdmVyLWJnOiAjZWNlMWJlO1xuICAtLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogdmFyKC0tYnMtdGFibGUtY29sb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLXRhYmxlLWJvcmRlci1jb2xvcik7XG59XG5cbi50YWJsZS1kYW5nZXIge1xuICAtLWJzLXRhYmxlLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWJnOiAjZjhkN2RhO1xuICAtLWJzLXRhYmxlLWJvcmRlci1jb2xvcjogI2M2YWNhZTtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWJnOiAjZWNjY2NmO1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWJnOiAjZGZjMmM0O1xuICAtLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1ob3Zlci1iZzogI2U1YzdjYTtcbiAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogIzAwMDtcbiAgY29sb3I6IHZhcigtLWJzLXRhYmxlLWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy10YWJsZS1ib3JkZXItY29sb3IpO1xufVxuXG4udGFibGUtbGlnaHQge1xuICAtLWJzLXRhYmxlLWNvbG9yOiAjMDAwO1xuICAtLWJzLXRhYmxlLWJnOiAjZjhmOWZhO1xuICAtLWJzLXRhYmxlLWJvcmRlci1jb2xvcjogI2M2YzdjODtcbiAgLS1icy10YWJsZS1zdHJpcGVkLWJnOiAjZWNlZGVlO1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtY29sb3I6ICMwMDA7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWJnOiAjZGZlMGUxO1xuICAtLWJzLXRhYmxlLWFjdGl2ZS1jb2xvcjogIzAwMDtcbiAgLS1icy10YWJsZS1ob3Zlci1iZzogI2U1ZTZlNztcbiAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogIzAwMDtcbiAgY29sb3I6IHZhcigtLWJzLXRhYmxlLWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy10YWJsZS1ib3JkZXItY29sb3IpO1xufVxuXG4udGFibGUtZGFyayB7XG4gIC0tYnMtdGFibGUtY29sb3I6ICNmZmY7XG4gIC0tYnMtdGFibGUtYmc6ICMyMTI1Mjk7XG4gIC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yOiAjNGQ1MTU0O1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtYmc6ICMyYzMwMzQ7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjogI2ZmZjtcbiAgLS1icy10YWJsZS1hY3RpdmUtYmc6ICMzNzNiM2U7XG4gIC0tYnMtdGFibGUtYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAtLWJzLXRhYmxlLWhvdmVyLWJnOiAjMzIzNTM5O1xuICAtLWJzLXRhYmxlLWhvdmVyLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogdmFyKC0tYnMtdGFibGUtY29sb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLXRhYmxlLWJvcmRlci1jb2xvcik7XG59XG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUtc20ge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUtbWQge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnRhYmxlLXJlc3BvbnNpdmUtbGcge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlLXhsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEzOTkuOThweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZS14eGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG59XG4uZm9ybS1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmNvbC1mb3JtLWxhYmVsIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMC4zNzVyZW0gKyB2YXIoLS1icy1ib3JkZXItd2lkdGgpKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC4zNzVyZW0gKyB2YXIoLS1icy1ib3JkZXItd2lkdGgpKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uY29sLWZvcm0tbGFiZWwtbGcge1xuICBwYWRkaW5nLXRvcDogY2FsYygwLjVyZW0gKyB2YXIoLS1icy1ib3JkZXItd2lkdGgpKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC41cmVtICsgdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSk7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmNvbC1mb3JtLWxhYmVsLXNtIHtcbiAgcGFkZGluZy10b3A6IGNhbGMoMC4yNXJlbSArIHZhcigtLWJzLWJvcmRlci13aWR0aCkpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjI1cmVtICsgdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5mb3JtLXRleHQge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtYm9keS1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmZvcm0tY29udHJvbFt0eXBlPWZpbGVdIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5mb3JtLWNvbnRyb2xbdHlwZT1maWxlXTpub3QoOmRpc2FibGVkKTpub3QoW3JlYWRvbmx5XSkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgYm9yZGVyLWNvbG9yOiAjODZiN2ZlO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEoMTMsIDExMCwgMjUzLCAwLjI1KTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSB7XG4gIG1pbi13aWR0aDogODVweDtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgbWFyZ2luOiAwO1xufVxuLmZvcm0tY29udHJvbDo6LXdlYmtpdC1kYXRldGltZS1lZGl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG59XG4uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1iZyk7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9ybS1jb250cm9sOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIG1hcmdpbjogLTAuMzc1cmVtIC0wLjc1cmVtO1xuICBtYXJnaW4taW5saW5lLWVuZDogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy10ZXJ0aWFyeS1iZyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZm9ybS1jb250cm9sOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmZvcm0tY29udHJvbDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoW3JlYWRvbmx5XSk6OmZpbGUtc2VsZWN0b3ItYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnKTtcbn1cblxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAwO1xufVxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQ6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLXNtLCAuZm9ybS1jb250cm9sLXBsYWludGV4dC5mb3JtLWNvbnRyb2wtbGcge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5mb3JtLWNvbnRyb2wtc20ge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMC41cmVtICsgY2FsYyh2YXIoLS1icy1ib3JkZXItd2lkdGgpICogMikpO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1zbSk7XG59XG4uZm9ybS1jb250cm9sLXNtOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBtYXJnaW46IC0wLjI1cmVtIC0wLjVyZW07XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjVyZW07XG59XG5cbi5mb3JtLWNvbnRyb2wtbGcge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG59XG4uZm9ybS1jb250cm9sLWxnOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBtYXJnaW46IC0wLjVyZW0gLTFyZW07XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAxcmVtO1xufVxuXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbn1cbnRleHRhcmVhLmZvcm0tY29udHJvbC1zbSB7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMS41ZW0gKyAwLjVyZW0gKyBjYWxjKHZhcigtLWJzLWJvcmRlci13aWR0aCkgKiAyKSk7XG59XG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wtbGcge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbn1cblxuLmZvcm0tY29udHJvbC1jb2xvciB7XG4gIHdpZHRoOiAzcmVtO1xuICBoZWlnaHQ6IGNhbGMoMS41ZW0gKyAwLjc1cmVtICsgY2FsYyh2YXIoLS1icy1ib3JkZXItd2lkdGgpICogMikpO1xuICBwYWRkaW5nOiAwLjM3NXJlbTtcbn1cbi5mb3JtLWNvbnRyb2wtY29sb3I6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZvcm0tY29udHJvbC1jb2xvcjo6LW1vei1jb2xvci1zd2F0Y2gge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG59XG4uZm9ybS1jb250cm9sLWNvbG9yOjotd2Via2l0LWNvbG9yLXN3YXRjaCB7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbn1cbi5mb3JtLWNvbnRyb2wtY29sb3IuZm9ybS1jb250cm9sLXNtIHtcbiAgaGVpZ2h0OiBjYWxjKDEuNWVtICsgMC41cmVtICsgY2FsYyh2YXIoLS1icy1ib3JkZXItd2lkdGgpICogMikpO1xufVxuLmZvcm0tY29udHJvbC1jb2xvci5mb3JtLWNvbnRyb2wtbGcge1xuICBoZWlnaHQ6IGNhbGMoMS41ZW0gKyAxcmVtICsgY2FsYyh2YXIoLS1icy1ib3JkZXItd2lkdGgpICogMikpO1xufVxuXG4uZm9ybS1zZWxlY3Qge1xuICAtLWJzLWZvcm0tc2VsZWN0LWJnLWltZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM2UlM2NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMzQzYTQwJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nbTIgNSA2IDYgNi02Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDIuMjVyZW0gMC4zNzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWJvZHktYmcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1icy1mb3JtLXNlbGVjdC1iZy1pbWcpLCB2YXIoLS1icy1mb3JtLXNlbGVjdC1iZy1pY29uLCBub25lKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43NXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxMnB4O1xuICBib3JkZXI6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mb3JtLXNlbGVjdCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODZiN2ZlO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEoMTMsIDExMCwgMjUzLCAwLjI1KTtcbn1cbi5mb3JtLXNlbGVjdFttdWx0aXBsZV0sIC5mb3JtLXNlbGVjdFtzaXplXTpub3QoW3NpemU9XCIxXCJdKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uZm9ybS1zZWxlY3Q6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpO1xufVxuLmZvcm0tc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogMCAwIDAgdmFyKC0tYnMtYm9keS1jb2xvcik7XG59XG5cbi5mb3JtLXNlbGVjdC1zbSB7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG4uZm9ybS1zZWxlY3QtbGcge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG59XG5cbltkYXRhLWJzLXRoZW1lPWRhcmtdIC5mb3JtLXNlbGVjdCB7XG4gIC0tYnMtZm9ybS1zZWxlY3QtYmctaW1nOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkZWUyZTYnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdtMiA1IDYgNiA2LTYnLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbi5mb3JtLWNoZWNrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07XG59XG4uZm9ybS1jaGVjayAuZm9ybS1jaGVjay1pbnB1dCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogLTEuNWVtO1xufVxuXG4uZm9ybS1jaGVjay1yZXZlcnNlIHtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uZm9ybS1jaGVjay1yZXZlcnNlIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IC0xLjVlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0IHtcbiAgLS1icy1mb3JtLWNoZWNrLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICBtYXJnaW4tdG9wOiAwLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWZvcm0tY2hlY2stYmcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1icy1mb3JtLWNoZWNrLWJnLWltYWdlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICBwcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0O1xufVxuLmZvcm0tY2hlY2staW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBib3JkZXItcmFkaXVzOiAwLjI1ZW07XG59XG4uZm9ybS1jaGVjay1pbnB1dFt0eXBlPXJhZGlvXSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5mb3JtLWNoZWNrLWlucHV0OmFjdGl2ZSB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcyg5MCUpO1xufVxuLmZvcm0tY2hlY2staW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM4NmI3ZmU7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMjVyZW0gcmdiYSgxMywgMTEwLCAyNTMsIDAuMjUpO1xufVxuLmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDZlZmQ7XG4gIGJvcmRlci1jb2xvcjogIzBkNmVmZDtcbn1cbi5mb3JtLWNoZWNrLWlucHV0OmNoZWNrZWRbdHlwZT1jaGVja2JveF0ge1xuICAtLWJzLWZvcm0tY2hlY2stYmctaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzMnIGQ9J202IDEwIDMgMyA2LTYnLyUzZSUzYy9zdmclM2VcIik7XG59XG4uZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkW3R5cGU9cmFkaW9dIHtcbiAgLS1icy1mb3JtLWNoZWNrLWJnLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPScyJyBmaWxsPSclMjNmZmYnLyUzZSUzYy9zdmclM2VcIik7XG59XG4uZm9ybS1jaGVjay1pbnB1dFt0eXBlPWNoZWNrYm94XTppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBkNmVmZDtcbiAgYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWZvcm0tY2hlY2stYmctaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzMnIGQ9J002IDEwaDgnLyUzZSUzYy9zdmclM2VcIik7XG59XG4uZm9ybS1jaGVjay1pbnB1dDpkaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmaWx0ZXI6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5mb3JtLWNoZWNrLWlucHV0W2Rpc2FibGVkXSB+IC5mb3JtLWNoZWNrLWxhYmVsLCAuZm9ybS1jaGVjay1pbnB1dDpkaXNhYmxlZCB+IC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5mb3JtLXN3aXRjaCB7XG4gIHBhZGRpbmctbGVmdDogMi41ZW07XG59XG4uZm9ybS1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQge1xuICAtLWJzLWZvcm0tc3dpdGNoLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPSczJyBmaWxsPSdyZ2JhJTI4MCwgMCwgMCwgMC4yNSUyOScvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgd2lkdGg6IDJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0yLjVlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYnMtZm9ybS1zd2l0Y2gtYmcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmZvcm0tc3dpdGNoIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4uZm9ybS1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQ6Zm9jdXMge1xuICAtLWJzLWZvcm0tc3dpdGNoLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPSczJyBmaWxsPSclMjM4NmI3ZmUnLyUzZSUzYy9zdmclM2VcIik7XG59XG4uZm9ybS1zd2l0Y2ggLmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgLS1icy1mb3JtLXN3aXRjaC1iZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM2UlM2NjaXJjbGUgcj0nMycgZmlsbD0nJTIzZmZmJy8lM2UlM2Mvc3ZnJTNlXCIpO1xufVxuLmZvcm0tc3dpdGNoLmZvcm0tY2hlY2stcmV2ZXJzZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNWVtO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4uZm9ybS1zd2l0Y2guZm9ybS1jaGVjay1yZXZlcnNlIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMi41ZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZm9ybS1jaGVjay1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLmJ0bi1jaGVjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYnRuLWNoZWNrW2Rpc2FibGVkXSArIC5idG4sIC5idG4tY2hlY2s6ZGlzYWJsZWQgKyAuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbHRlcjogbm9uZTtcbiAgb3BhY2l0eTogMC42NTtcbn1cblxuW2RhdGEtYnMtdGhlbWU9ZGFya10gLmZvcm0tc3dpdGNoIC5mb3JtLWNoZWNrLWlucHV0Om5vdCg6Y2hlY2tlZCk6bm90KDpmb2N1cykge1xuICAtLWJzLWZvcm0tc3dpdGNoLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPSczJyBmaWxsPSdyZ2JhJTI4MjU1LCAyNTUsIDI1NSwgMC4yNSUyOScvJTNlJTNjL3N2ZyUzZVwiKTtcbn1cblxuLmZvcm0tcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tcmFuZ2U6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmZvcm0tcmFuZ2U6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDAuMjVyZW0gcmdiYSgxMywgMTEwLCAyNTMsIDAuMjUpO1xufVxuLmZvcm0tcmFuZ2U6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgMC4yNXJlbSByZ2JhKDEzLCAxMTAsIDI1MywgMC4yNSk7XG59XG4uZm9ybS1yYW5nZTo6LW1vei1mb2N1cy1vdXRlciB7XG4gIGJvcmRlcjogMDtcbn1cbi5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ2ZWZkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmZvcm0tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNmQ0ZmU7XG59XG4uZm9ybS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuLmZvcm0tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ2ZWZkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mb3JtLXJhbmdlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4uZm9ybS1yYW5nZTo6LW1vei1yYW5nZS10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjZkNGZlO1xufVxuLmZvcm0tcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xufVxuLmZvcm0tcmFuZ2U6ZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5mb3JtLXJhbmdlOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG59XG4uZm9ybS1yYW5nZTpkaXNhYmxlZDo6LW1vei1yYW5nZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG59XG5cbi5mb3JtLWZsb2F0aW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dCxcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tc2VsZWN0IHtcbiAgaGVpZ2h0OiBjYWxjKDMuNXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbiAgbWluLWhlaWdodDogY2FsYygzLjVyZW0gKyBjYWxjKHZhcigtLWJzLWJvcmRlci13aWR0aCkgKiAyKSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuLmZvcm0tZmxvYXRpbmcgPiBsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW0gMC43NXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyOiB2YXIoLS1icy1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuMXMgZWFzZS1pbi1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZm9ybS1mbG9hdGluZyA+IGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4uZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2wsXG4uZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgcGFkZGluZzogMXJlbSAwLjc1cmVtO1xufVxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlcixcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sOmZvY3VzLCAuZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2w6bm90KDpwbGFjZWhvbGRlci1zaG93biksXG4uZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0OmZvY3VzLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSB7XG4gIHBhZGRpbmctdG9wOiAxLjYyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xufVxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwsXG4uZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICBwYWRkaW5nLXRvcDogMS42MjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcbn1cbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tc2VsZWN0IHtcbiAgcGFkZGluZy10b3A6IDEuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG59XG4uZm9ybS1mbG9hdGluZyA+IC5mb3JtLWNvbnRyb2w6Zm9jdXMgfiBsYWJlbCxcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSB+IGxhYmVsLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dCB+IGxhYmVsLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1zZWxlY3QgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKHZhcigtLWJzLWJvZHktY29sb3ItcmdiKSwgMC42NSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44NSkgdHJhbnNsYXRlWSgtMC41cmVtKSB0cmFuc2xhdGVYKDAuMTVyZW0pO1xufVxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sOmZvY3VzIH4gbGFiZWw6OmFmdGVyLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIH4gbGFiZWw6OmFmdGVyLFxuLmZvcm0tZmxvYXRpbmcgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dCB+IGxhYmVsOjphZnRlcixcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tc2VsZWN0IH4gbGFiZWw6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMXJlbSAwLjM3NXJlbTtcbiAgei1pbmRleDogLTE7XG4gIGhlaWdodDogMS41ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWJvZHktYmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbn1cbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbDotd2Via2l0LWF1dG9maWxsIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSh2YXIoLS1icy1ib2R5LWNvbG9yLXJnYiksIDAuNjUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpIHRyYW5zbGF0ZVkoLTAuNXJlbSkgdHJhbnNsYXRlWCgwLjE1cmVtKTtcbn1cbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbC1wbGFpbnRleHQgfiBsYWJlbCB7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAwO1xufVxuLmZvcm0tZmxvYXRpbmcgPiA6ZGlzYWJsZWQgfiBsYWJlbCxcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbDpkaXNhYmxlZCB+IGxhYmVsIHtcbiAgY29sb3I6ICM2Yzc1N2Q7XG59XG4uZm9ybS1mbG9hdGluZyA+IDpkaXNhYmxlZCB+IGxhYmVsOjphZnRlcixcbi5mb3JtLWZsb2F0aW5nID4gLmZvcm0tY29udHJvbDpkaXNhYmxlZCB+IGxhYmVsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1iZyk7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwID4gLmZvcm0tc2VsZWN0LFxuLmlucHV0LWdyb3VwID4gLmZvcm0tZmxvYXRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB3aWR0aDogMSU7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2w6Zm9jdXMsXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1zZWxlY3Q6Zm9jdXMsXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1mbG9hdGluZzpmb2N1cy13aXRoaW4ge1xuICB6LWluZGV4OiA1O1xufVxuLmlucHV0LWdyb3VwIC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG4uaW5wdXQtZ3JvdXAgLmJ0bjpmb2N1cyB7XG4gIHotaW5kZXg6IDU7XG59XG5cbi5pbnB1dC1ncm91cC10ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtdGVydGlhcnktYmcpO1xuICBib3JkZXI6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1zZWxlY3QsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5idG4ge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbn1cblxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLXNlbGVjdCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKTtcbn1cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tc2VsZWN0LFxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tc2VsZWN0IHtcbiAgcGFkZGluZy1yaWdodDogM3JlbTtcbn1cblxuLmlucHV0LWdyb3VwOm5vdCguaGFzLXZhbGlkYXRpb24pID4gOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpOm5vdCguZHJvcGRvd24tbWVudSk6bm90KC5mb3JtLWZsb2F0aW5nKSxcbi5pbnB1dC1ncm91cDpub3QoLmhhcy12YWxpZGF0aW9uKSA+IC5kcm9wZG93bi10b2dnbGU6bnRoLWxhc3QtY2hpbGQobiszKSxcbi5pbnB1dC1ncm91cDpub3QoLmhhcy12YWxpZGF0aW9uKSA+IC5mb3JtLWZsb2F0aW5nOm5vdCg6bGFzdC1jaGlsZCkgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwOm5vdCguaGFzLXZhbGlkYXRpb24pID4gLmZvcm0tZmxvYXRpbmc6bm90KDpsYXN0LWNoaWxkKSA+IC5mb3JtLXNlbGVjdCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC5oYXMtdmFsaWRhdGlvbiA+IDpudGgtbGFzdC1jaGlsZChuKzMpOm5vdCguZHJvcGRvd24tdG9nZ2xlKTpub3QoLmRyb3Bkb3duLW1lbnUpOm5vdCguZm9ybS1mbG9hdGluZyksXG4uaW5wdXQtZ3JvdXAuaGFzLXZhbGlkYXRpb24gPiAuZHJvcGRvd24tdG9nZ2xlOm50aC1sYXN0LWNoaWxkKG4rNCksXG4uaW5wdXQtZ3JvdXAuaGFzLXZhbGlkYXRpb24gPiAuZm9ybS1mbG9hdGluZzpudGgtbGFzdC1jaGlsZChuKzMpID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC5oYXMtdmFsaWRhdGlvbiA+IC5mb3JtLWZsb2F0aW5nOm50aC1sYXN0LWNoaWxkKG4rMykgPiAuZm9ybS1zZWxlY3Qge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG4uaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCk6bm90KC5kcm9wZG93bi1tZW51KTpub3QoLnZhbGlkLXRvb2x0aXApOm5vdCgudmFsaWQtZmVlZGJhY2spOm5vdCguaW52YWxpZC10b29sdGlwKTpub3QoLmludmFsaWQtZmVlZGJhY2spIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIC0xKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cCA+IC5mb3JtLWZsb2F0aW5nOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cCA+IC5mb3JtLWZsb2F0aW5nOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmZvcm0tc2VsZWN0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLnZhbGlkLWZlZWRiYWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWJzLWZvcm0tdmFsaWQtY29sb3IpO1xufVxuXG4udmFsaWQtdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICB6LWluZGV4OiA1O1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBtYXJnaW4tdG9wOiAwLjFyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1zdWNjZXNzKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi53YXMtdmFsaWRhdGVkIDp2YWxpZCB+IC52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIDp2YWxpZCB+IC52YWxpZC10b29sdGlwLFxuLmlzLXZhbGlkIH4gLnZhbGlkLWZlZWRiYWNrLFxuLmlzLXZhbGlkIH4gLnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZCwgLmZvcm0tY29udHJvbC5pcy12YWxpZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZm9ybS12YWxpZC1ib3JkZXItY29sb3IpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzZSUzY3BhdGggZmlsbD0nJTIzMTk4NzU0JyBkPSdNMi4zIDYuNzMuNiA0LjUzYy0uNC0xLjA0LjQ2LTEuNCAxLjEtLjhsMS4xIDEuNCAzLjQtMy44Yy42LS42MyAxLjYtLjI3IDEuMi43bC00IDQuNmMtLjQzLjUtLjguNC0xLjEuMXonLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSkgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoMC43NWVtICsgMC4zNzVyZW0pIGNhbGMoMC43NWVtICsgMC4zNzVyZW0pO1xufVxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZDpmb2N1cywgLmZvcm0tY29udHJvbC5pcy12YWxpZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZm9ybS12YWxpZC1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCAwLjI1KTtcbn1cblxuLndhcy12YWxpZGF0ZWQgdGV4dGFyZWEuZm9ybS1jb250cm9sOnZhbGlkLCB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wuaXMtdmFsaWQge1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKDAuMzc1ZW0gKyAwLjE4NzVyZW0pIHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLXNlbGVjdDp2YWxpZCwgLmZvcm0tc2VsZWN0LmlzLXZhbGlkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1mb3JtLXZhbGlkLWJvcmRlci1jb2xvcik7XG59XG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6dmFsaWQ6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pLCAud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6dmFsaWQ6bm90KFttdWx0aXBsZV0pW3NpemU9XCIxXCJdLCAuZm9ybS1zZWxlY3QuaXMtdmFsaWQ6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pLCAuZm9ybS1zZWxlY3QuaXMtdmFsaWQ6bm90KFttdWx0aXBsZV0pW3NpemU9XCIxXCJdIHtcbiAgLS1icy1mb3JtLXNlbGVjdC1iZy1pY29uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM2UlM2NwYXRoIGZpbGw9JyUyMzE5ODc1NCcgZD0nTTIuMyA2LjczLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICBwYWRkaW5nLXJpZ2h0OiA0LjEyNXJlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43NXJlbSBjZW50ZXIsIGNlbnRlciByaWdodCAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTJweCwgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSkgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSk7XG59XG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6dmFsaWQ6Zm9jdXMsIC5mb3JtLXNlbGVjdC5pcy12YWxpZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZm9ybS12YWxpZC1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCAwLjI1KTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbC1jb2xvcjp2YWxpZCwgLmZvcm0tY29udHJvbC1jb2xvci5pcy12YWxpZCB7XG4gIHdpZHRoOiBjYWxjKDNyZW0gKyBjYWxjKDEuNWVtICsgMC43NXJlbSkpO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDp2YWxpZCwgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWZvcm0tdmFsaWQtYm9yZGVyLWNvbG9yKTtcbn1cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkOmNoZWNrZWQsIC5mb3JtLWNoZWNrLWlucHV0LmlzLXZhbGlkOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1mb3JtLXZhbGlkLWNvbG9yKTtcbn1cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkOmZvY3VzLCAuZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMjVyZW0gcmdiYSh2YXIoLS1icy1zdWNjZXNzLXJnYiksIDAuMjUpO1xufVxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCwgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1icy1mb3JtLXZhbGlkLWNvbG9yKTtcbn1cblxuLmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWNoZWNrLWlucHV0IH4gLnZhbGlkLWZlZWRiYWNrIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuXG4ud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sOm5vdCg6Zm9jdXMpOnZhbGlkLCAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sOm5vdCg6Zm9jdXMpLmlzLXZhbGlkLFxuLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwID4gLmZvcm0tc2VsZWN0Om5vdCg6Zm9jdXMpOnZhbGlkLFxuLmlucHV0LWdyb3VwID4gLmZvcm0tc2VsZWN0Om5vdCg6Zm9jdXMpLmlzLXZhbGlkLFxuLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwID4gLmZvcm0tZmxvYXRpbmc6bm90KDpmb2N1cy13aXRoaW4pOnZhbGlkLFxuLmlucHV0LWdyb3VwID4gLmZvcm0tZmxvYXRpbmc6bm90KDpmb2N1cy13aXRoaW4pLmlzLXZhbGlkIHtcbiAgei1pbmRleDogMztcbn1cblxuLmludmFsaWQtZmVlZGJhY2sge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tYnMtZm9ybS1pbnZhbGlkLWNvbG9yKTtcbn1cblxuLmludmFsaWQtdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICB6LWluZGV4OiA1O1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBtYXJnaW4tdG9wOiAwLjFyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1kYW5nZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbn1cblxuLndhcy12YWxpZGF0ZWQgOmludmFsaWQgfiAuaW52YWxpZC1mZWVkYmFjayxcbi53YXMtdmFsaWRhdGVkIDppbnZhbGlkIH4gLmludmFsaWQtdG9vbHRpcCxcbi5pcy1pbnZhbGlkIH4gLmludmFsaWQtZmVlZGJhY2ssXG4uaXMtaW52YWxpZCB+IC5pbnZhbGlkLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkLCAuZm9ybS1jb250cm9sLmlzLWludmFsaWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWZvcm0taW52YWxpZC1ib3JkZXItY29sb3IpO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSkgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoMC43NWVtICsgMC4zNzVyZW0pIGNhbGMoMC43NWVtICsgMC4zNzVyZW0pO1xufVxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkOmZvY3VzLCAuZm9ybS1jb250cm9sLmlzLWludmFsaWQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWZvcm0taW52YWxpZC1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEodmFyKC0tYnMtZGFuZ2VyLXJnYiksIDAuMjUpO1xufVxuXG4ud2FzLXZhbGlkYXRlZCB0ZXh0YXJlYS5mb3JtLWNvbnRyb2w6aW52YWxpZCwgdGV4dGFyZWEuZm9ybS1jb250cm9sLmlzLWludmFsaWQge1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjYWxjKDAuMzc1ZW0gKyAwLjE4NzVyZW0pIHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLXNlbGVjdDppbnZhbGlkLCAuZm9ybS1zZWxlY3QuaXMtaW52YWxpZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZm9ybS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG59XG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1zZWxlY3Q6aW52YWxpZDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSksIC53YXMtdmFsaWRhdGVkIC5mb3JtLXNlbGVjdDppbnZhbGlkOm5vdChbbXVsdGlwbGVdKVtzaXplPVwiMVwiXSwgLmZvcm0tc2VsZWN0LmlzLWludmFsaWQ6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pLCAuZm9ybS1zZWxlY3QuaXMtaW52YWxpZDpub3QoW211bHRpcGxlXSlbc2l6ZT1cIjFcIl0ge1xuICAtLWJzLWZvcm0tc2VsZWN0LWJnLWljb246IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2VcIik7XG4gIHBhZGRpbmctcmlnaHQ6IDQuMTI1cmVtO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjc1cmVtIGNlbnRlciwgY2VudGVyIHJpZ2h0IDIuMjVyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxMnB4LCBjYWxjKDAuNzVlbSArIDAuMzc1cmVtKSBjYWxjKDAuNzVlbSArIDAuMzc1cmVtKTtcbn1cbi53YXMtdmFsaWRhdGVkIC5mb3JtLXNlbGVjdDppbnZhbGlkOmZvY3VzLCAuZm9ybS1zZWxlY3QuaXMtaW52YWxpZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZm9ybS1pbnZhbGlkLWJvcmRlci1jb2xvcik7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMjVyZW0gcmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSwgMC4yNSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtY29sb3I6aW52YWxpZCwgLmZvcm0tY29udHJvbC1jb2xvci5pcy1pbnZhbGlkIHtcbiAgd2lkdGg6IGNhbGMoM3JlbSArIGNhbGMoMS41ZW0gKyAwLjc1cmVtKSk7XG59XG5cbi53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OmludmFsaWQsIC5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWZvcm0taW52YWxpZC1ib3JkZXItY29sb3IpO1xufVxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZDpjaGVja2VkLCAuZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1mb3JtLWludmFsaWQtY29sb3IpO1xufVxuLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZDpmb2N1cywgLmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMjVyZW0gcmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSwgMC4yNSk7XG59XG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDppbnZhbGlkIH4gLmZvcm0tY2hlY2stbGFiZWwsIC5mb3JtLWNoZWNrLWlucHV0LmlzLWludmFsaWQgfiAuZm9ybS1jaGVjay1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1icy1mb3JtLWludmFsaWQtY29sb3IpO1xufVxuXG4uZm9ybS1jaGVjay1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXQgfiAuaW52YWxpZC1mZWVkYmFjayB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cblxuLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbDpub3QoOmZvY3VzKTppbnZhbGlkLCAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sOm5vdCg6Zm9jdXMpLmlzLWludmFsaWQsXG4ud2FzLXZhbGlkYXRlZCAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1zZWxlY3Q6bm90KDpmb2N1cyk6aW52YWxpZCxcbi5pbnB1dC1ncm91cCA+IC5mb3JtLXNlbGVjdDpub3QoOmZvY3VzKS5pcy1pbnZhbGlkLFxuLndhcy12YWxpZGF0ZWQgLmlucHV0LWdyb3VwID4gLmZvcm0tZmxvYXRpbmc6bm90KDpmb2N1cy13aXRoaW4pOmludmFsaWQsXG4uaW5wdXQtZ3JvdXAgPiAuZm9ybS1mbG9hdGluZzpub3QoOmZvY3VzLXdpdGhpbikuaXMtaW52YWxpZCB7XG4gIHotaW5kZXg6IDQ7XG59XG5cbi5idG4ge1xuICAtLWJzLWJ0bi1wYWRkaW5nLXg6IDAuNzVyZW07XG4gIC0tYnMtYnRuLXBhZGRpbmcteTogMC4zNzVyZW07XG4gIC0tYnMtYnRuLWZvbnQtZmFtaWx5OiA7XG4gIC0tYnMtYnRuLWZvbnQtc2l6ZTogMXJlbTtcbiAgLS1icy1idG4tZm9udC13ZWlnaHQ6IDQwMDtcbiAgLS1icy1idG4tbGluZS1oZWlnaHQ6IDEuNTtcbiAgLS1icy1idG4tY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpO1xuICAtLWJzLWJ0bi1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4tYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSwgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1vcGFjaXR5OiAwLjY1O1xuICAtLWJzLWJ0bi1mb2N1cy1ib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEodmFyKC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2IpLCAuNSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogdmFyKC0tYnMtYnRuLXBhZGRpbmcteSkgdmFyKC0tYnMtYnRuLXBhZGRpbmcteCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1icy1idG4tZm9udC1mYW1pbHkpO1xuICBmb250LXNpemU6IHZhcigtLWJzLWJ0bi1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tYnMtYnRuLWZvbnQtd2VpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWJzLWJ0bi1saW5lLWhlaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4tY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyOiB2YXIoLS1icy1idG4tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1idG4tYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYnRuLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1idG4tYmcpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmJ0biB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3IpO1xufVxuLmJ0bi1jaGVjayArIC5idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYnMtYnRuLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtYnRuLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1idG4tYm9yZGVyLWNvbG9yKTtcbn1cbi5idG46Zm9jdXMtdmlzaWJsZSB7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3IpO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1idG4tZm9jdXMtYm94LXNoYWRvdyk7XG59XG4uYnRuLWNoZWNrOmZvY3VzLXZpc2libGUgKyAuYnRuIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYnMtYnRuLWZvY3VzLWJveC1zaGFkb3cpO1xufVxuLmJ0bi1jaGVjazpjaGVja2VkICsgLmJ0biwgOm5vdCguYnRuLWNoZWNrKSArIC5idG46YWN0aXZlLCAuYnRuOmZpcnN0LWNoaWxkOmFjdGl2ZSwgLmJ0bi5hY3RpdmUsIC5idG4uc2hvdyB7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4tYWN0aXZlLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtYnRuLWFjdGl2ZS1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xufVxuLmJ0bi1jaGVjazpjaGVja2VkICsgLmJ0bjpmb2N1cy12aXNpYmxlLCA6bm90KC5idG4tY2hlY2spICsgLmJ0bjphY3RpdmU6Zm9jdXMtdmlzaWJsZSwgLmJ0bjpmaXJzdC1jaGlsZDphY3RpdmU6Zm9jdXMtdmlzaWJsZSwgLmJ0bi5hY3RpdmU6Zm9jdXMtdmlzaWJsZSwgLmJ0bi5zaG93OmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1idG4tZm9jdXMtYm94LXNoYWRvdyk7XG59XG4uYnRuOmRpc2FibGVkLCAuYnRuLmRpc2FibGVkLCBmaWVsZHNldDpkaXNhYmxlZCAuYnRuIHtcbiAgY29sb3I6IHZhcigtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1idG4tZGlzYWJsZWQtYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICBvcGFjaXR5OiB2YXIoLS1icy1idG4tZGlzYWJsZWQtb3BhY2l0eSk7XG59XG5cbi5idG4tcHJpbWFyeSB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1iZzogIzBkNmVmZDtcbiAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1ob3Zlci1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4taG92ZXItYmc6ICMwYjVlZDc7XG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogIzBhNThjYTtcbiAgLS1icy1idG4tZm9jdXMtc2hhZG93LXJnYjogNDksIDEzMiwgMjUzO1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogIzBhNThjYTtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogIzBhNTNiZTtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6ICMwZDZlZmQ7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogIzBkNmVmZDtcbn1cblxuLmJ0bi1zZWNvbmRhcnkge1xuICAtLWJzLWJ0bi1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYmc6ICM2Yzc1N2Q7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzZjNzU3ZDtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjNWM2MzZhO1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICM1NjVlNjQ7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDEzMCwgMTM4LCAxNDU7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYWN0aXZlLWJnOiAjNTY1ZTY0O1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjNTE1ODVlO1xuICAtLWJzLWJ0bi1hY3RpdmUtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogIzZjNzU3ZDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xufVxuXG4uYnRuLXN1Y2Nlc3Mge1xuICAtLWJzLWJ0bi1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYmc6ICMxOTg3NTQ7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzE5ODc1NDtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjMTU3MzQ3O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMxNDZjNDM7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDYwLCAxNTMsIDExMDtcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1hY3RpdmUtYmc6ICMxNDZjNDM7XG4gIC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3I6ICMxMzY1M2Y7XG4gIC0tYnMtYnRuLWFjdGl2ZS1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiAjMTk4NzU0O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICMxOTg3NTQ7XG59XG5cbi5idG4taW5mbyB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1iZzogIzBkY2FmMDtcbiAgLS1icy1idG4tYm9yZGVyLWNvbG9yOiAjMGRjYWYwO1xuICAtLWJzLWJ0bi1ob3Zlci1jb2xvcjogIzAwMDtcbiAgLS1icy1idG4taG92ZXItYmc6ICMzMWQyZjI7XG4gIC0tYnMtYnRuLWhvdmVyLWJvcmRlci1jb2xvcjogIzI1Y2ZmMjtcbiAgLS1icy1idG4tZm9jdXMtc2hhZG93LXJnYjogMTEsIDE3MiwgMjA0O1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogIzNkZDVmMztcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogIzI1Y2ZmMjtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogIzAwMDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogIzBkY2FmMDtcbn1cblxuLmJ0bi13YXJuaW5nIHtcbiAgLS1icy1idG4tY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWJnOiAjZmZjMTA3O1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICNmZmMxMDc7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2ZmY2EyYztcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjZmZjNzIwO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMTcsIDE2NCwgNjtcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1hY3RpdmUtYmc6ICNmZmNkMzk7XG4gIC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3I6ICNmZmM3MjA7XG4gIC0tYnMtYnRuLWFjdGl2ZS1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiAjZmZjMTA3O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICNmZmMxMDc7XG59XG5cbi5idG4tZGFuZ2VyIHtcbiAgLS1icy1idG4tY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWJnOiAjZGMzNTQ1O1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2JiMmQzYjtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjYjAyYTM3O1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyMjUsIDgzLCA5NztcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1hY3RpdmUtYmc6ICNiMDJhMzc7XG4gIC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3I6ICNhNTI4MzQ7XG4gIC0tYnMtYnRuLWFjdGl2ZS1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiAjZGMzNTQ1O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICNkYzM1NDU7XG59XG5cbi5idG4tbGlnaHQge1xuICAtLWJzLWJ0bi1jb2xvcjogIzAwMDtcbiAgLS1icy1idG4tYmc6ICNmOGY5ZmE7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogI2Y4ZjlmYTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjZDNkNGQ1O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICNjNmM3Yzg7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDIxMSwgMjEyLCAyMTM7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogIzAwMDtcbiAgLS1icy1idG4tYWN0aXZlLWJnOiAjYzZjN2M4O1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjYmFiYmJjO1xuICAtLWJzLWJ0bi1hY3RpdmUtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogI2Y4ZjlmYTtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xufVxuXG4uYnRuLWRhcmsge1xuICAtLWJzLWJ0bi1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYmc6ICMyMTI1Mjk7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzIxMjUyOTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjNDI0NjQ5O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMzNzNiM2U7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDY2LCA3MCwgNzM7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYWN0aXZlLWJnOiAjNGQ1MTU0O1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjMzczYjNlO1xuICAtLWJzLWJ0bi1hY3RpdmUtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogIzIxMjUyOTtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAjMjEyNTI5O1xufVxuXG4uYnRuLW91dGxpbmUtcHJpbWFyeSB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICMwZDZlZmQ7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogIzBkNmVmZDtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAxMywgMTEwLCAyNTM7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYWN0aXZlLWJnOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1hY3RpdmUtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogIzBkNmVmZDtcbiAgLS1icy1ncmFkaWVudDogbm9uZTtcbn1cblxuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjNmM3NTdkO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjZmZmO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogIzZjNzU3ZDtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjNmM3NTdkO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAxMDgsIDExNywgMTI1O1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogIzZjNzU3ZDtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogIzZjNzU3ZDtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogIzZjNzU3ZDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICM2Yzc1N2Q7XG4gIC0tYnMtZ3JhZGllbnQ6IG5vbmU7XG59XG5cbi5idG4tb3V0bGluZS1zdWNjZXNzIHtcbiAgLS1icy1idG4tY29sb3I6ICMxOTg3NTQ7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzE5ODc1NDtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjMTk4NzU0O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMxOTg3NTQ7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDI1LCAxMzUsIDg0O1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogIzE5ODc1NDtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogIzE5ODc1NDtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogIzE5ODc1NDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICMxOTg3NTQ7XG4gIC0tYnMtZ3JhZGllbnQ6IG5vbmU7XG59XG5cbi5idG4tb3V0bGluZS1pbmZvIHtcbiAgLS1icy1idG4tY29sb3I6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzBkY2FmMDtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjMGRjYWYwO1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDEzLCAyMDIsIDI0MDtcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1hY3RpdmUtYmc6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3I6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWFjdGl2ZS1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICMwZGNhZjA7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAjMGRjYWYwO1xuICAtLWJzLWdyYWRpZW50OiBub25lO1xufVxuXG4uYnRuLW91dGxpbmUtd2FybmluZyB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjZmZjMTA3O1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICNmZmMxMDc7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2ZmYzEwNztcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyNTUsIDE5MywgNztcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1hY3RpdmUtYmc6ICNmZmMxMDc7XG4gIC0tYnMtYnRuLWFjdGl2ZS1ib3JkZXItY29sb3I6ICNmZmMxMDc7XG4gIC0tYnMtYnRuLWFjdGl2ZS1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICNmZmMxMDc7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAjZmZjMTA3O1xuICAtLWJzLWdyYWRpZW50OiBub25lO1xufVxuXG4uYnRuLW91dGxpbmUtZGFuZ2VyIHtcbiAgLS1icy1idG4tY29sb3I6ICNkYzM1NDU7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogI2RjMzU0NTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjZGMzNTQ1O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDIyMCwgNTMsIDY5O1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogI2RjMzU0NTtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogI2RjMzU0NTtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogI2RjMzU0NTtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICNkYzM1NDU7XG4gIC0tYnMtZ3JhZGllbnQ6IG5vbmU7XG59XG5cbi5idG4tb3V0bGluZS1saWdodCB7XG4gIC0tYnMtYnRuLWNvbG9yOiAjZjhmOWZhO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6ICNmOGY5ZmE7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogI2Y4ZjlmYTtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiAjZjhmOWZhO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiAyNDgsIDI0OSwgMjUwO1xuICAtLWJzLWJ0bi1hY3RpdmUtY29sb3I6ICMwMDA7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogI2Y4ZjlmYTtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogI2Y4ZjlmYTtcbiAgLS1icy1idG4tYWN0aXZlLXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1jb2xvcjogI2Y4ZjlmYTtcbiAgLS1icy1idG4tZGlzYWJsZWQtYmc6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICNmOGY5ZmE7XG4gIC0tYnMtZ3JhZGllbnQ6IG5vbmU7XG59XG5cbi5idG4tb3V0bGluZS1kYXJrIHtcbiAgLS1icy1idG4tY29sb3I6ICMyMTI1Mjk7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogIzIxMjUyOTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWhvdmVyLWJnOiAjMjEyNTI5O1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6ICMyMTI1Mjk7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDMzLCAzNywgNDE7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tYWN0aXZlLWJnOiAjMjEyNTI5O1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjMjEyNTI5O1xuICAtLWJzLWJ0bi1hY3RpdmUtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjMjEyNTI5O1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogIzIxMjUyOTtcbiAgLS1icy1ncmFkaWVudDogbm9uZTtcbn1cblxuLmJ0bi1saW5rIHtcbiAgLS1icy1idG4tZm9udC13ZWlnaHQ6IDQwMDtcbiAgLS1icy1idG4tY29sb3I6IHZhcigtLWJzLWxpbmstY29sb3IpO1xuICAtLWJzLWJ0bi1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWhvdmVyLWNvbG9yOiB2YXIoLS1icy1saW5rLWhvdmVyLWNvbG9yKTtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1icy1idG4tYWN0aXZlLWNvbG9yOiB2YXIoLS1icy1saW5rLWhvdmVyLWNvbG9yKTtcbiAgLS1icy1idG4tYWN0aXZlLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWNvbG9yOiAjNmM3NTdkO1xuICAtLWJzLWJ0bi1kaXNhYmxlZC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAtLWJzLWJ0bi1ib3gtc2hhZG93OiAwIDAgMCAjMDAwO1xuICAtLWJzLWJ0bi1mb2N1cy1zaGFkb3ctcmdiOiA0OSwgMTMyLCAyNTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmJ0bi1saW5rOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogdmFyKC0tYnMtYnRuLWNvbG9yKTtcbn1cbi5idG4tbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4taG92ZXItY29sb3IpO1xufVxuXG4uYnRuLWxnLCAuYnRuLWdyb3VwLWxnID4gLmJ0biB7XG4gIC0tYnMtYnRuLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWJzLWJ0bi1wYWRkaW5nLXg6IDFyZW07XG4gIC0tYnMtYnRuLWZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgLS1icy1idG4tYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG59XG5cbi5idG4tc20sIC5idG4tZ3JvdXAtc20gPiAuYnRuIHtcbiAgLS1icy1idG4tcGFkZGluZy15OiAwLjI1cmVtO1xuICAtLWJzLWJ0bi1wYWRkaW5nLXg6IDAuNXJlbTtcbiAgLS1icy1idG4tZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLS1icy1idG4tYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1zbSk7XG59XG5cbi5mYWRlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZmFkZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmZhZGU6bm90KC5zaG93KSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jb2xsYXBzZTpub3QoLnNob3cpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbGxhcHNpbmcge1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjM1cyBlYXNlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNvbGxhcHNpbmcge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbi5jb2xsYXBzaW5nLmNvbGxhcHNlLWhvcml6b250YWwge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjM1cyBlYXNlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNvbGxhcHNpbmcuY29sbGFwc2UtaG9yaXpvbnRhbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uZHJvcHVwLFxuLmRyb3BlbmQsXG4uZHJvcGRvd24sXG4uZHJvcHN0YXJ0LFxuLmRyb3B1cC1jZW50ZXIsXG4uZHJvcGRvd24tY2VudGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkO1xuICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZHJvcGRvd24tdG9nZ2xlOmVtcHR5OjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uZHJvcGRvd24tbWVudSB7XG4gIC0tYnMtZHJvcGRvd24temluZGV4OiAxMDAwO1xuICAtLWJzLWRyb3Bkb3duLW1pbi13aWR0aDogMTByZW07XG4gIC0tYnMtZHJvcGRvd24tcGFkZGluZy14OiAwO1xuICAtLWJzLWRyb3Bkb3duLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWJzLWRyb3Bkb3duLXNwYWNlcjogMC4xMjVyZW07XG4gIC0tYnMtZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuICAtLWJzLWRyb3Bkb3duLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgLS1icy1kcm9wZG93bi1iZzogdmFyKC0tYnMtYm9keS1iZyk7XG4gIC0tYnMtZHJvcGRvd24tYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICAtLWJzLWRyb3Bkb3duLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAtLWJzLWRyb3Bkb3duLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1kcm9wZG93bi1pbm5lci1ib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJzLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSk7XG4gIC0tYnMtZHJvcGRvd24tZGl2aWRlci1iZzogdmFyKC0tYnMtYm9yZGVyLWNvbG9yLXRyYW5zbHVjZW50KTtcbiAgLS1icy1kcm9wZG93bi1kaXZpZGVyLW1hcmdpbi15OiAwLjVyZW07XG4gIC0tYnMtZHJvcGRvd24tYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdyk7XG4gIC0tYnMtZHJvcGRvd24tbGluay1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIC0tYnMtZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIC0tYnMtZHJvcGRvd24tbGluay1ob3Zlci1iZzogdmFyKC0tYnMtdGVydGlhcnktYmcpO1xuICAtLWJzLWRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAtLWJzLWRyb3Bkb3duLWxpbmstYWN0aXZlLWJnOiAjMGQ2ZWZkO1xuICAtLWJzLWRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6IHZhcigtLWJzLXRlcnRpYXJ5LWNvbG9yKTtcbiAgLS1icy1kcm9wZG93bi1pdGVtLXBhZGRpbmcteDogMXJlbTtcbiAgLS1icy1kcm9wZG93bi1pdGVtLXBhZGRpbmcteTogMC4yNXJlbTtcbiAgLS1icy1kcm9wZG93bi1oZWFkZXItY29sb3I6ICM2Yzc1N2Q7XG4gIC0tYnMtZHJvcGRvd24taGVhZGVyLXBhZGRpbmcteDogMXJlbTtcbiAgLS1icy1kcm9wZG93bi1oZWFkZXItcGFkZGluZy15OiAwLjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogdmFyKC0tYnMtZHJvcGRvd24temluZGV4KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiB2YXIoLS1icy1kcm9wZG93bi1taW4td2lkdGgpO1xuICBwYWRkaW5nOiB2YXIoLS1icy1kcm9wZG93bi1wYWRkaW5nLXkpIHZhcigtLWJzLWRyb3Bkb3duLXBhZGRpbmcteCk7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiB2YXIoLS1icy1kcm9wZG93bi1mb250LXNpemUpO1xuICBjb2xvcjogdmFyKC0tYnMtZHJvcGRvd24tY29sb3IpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1kcm9wZG93bi1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogdmFyKC0tYnMtZHJvcGRvd24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1kcm9wZG93bi1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1kcm9wZG93bi1ib3JkZXItcmFkaXVzKTtcbn1cbi5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXSB7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tYnMtZHJvcGRvd24tc3BhY2VyKTtcbn1cblxuLmRyb3Bkb3duLW1lbnUtc3RhcnQge1xuICAtLWJzLXBvc2l0aW9uOiBzdGFydDtcbn1cbi5kcm9wZG93bi1tZW51LXN0YXJ0W2RhdGEtYnMtcG9wcGVyXSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xufVxuXG4uZHJvcGRvd24tbWVudS1lbmQge1xuICAtLWJzLXBvc2l0aW9uOiBlbmQ7XG59XG4uZHJvcGRvd24tbWVudS1lbmRbZGF0YS1icy1wb3BwZXJdIHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuZHJvcGRvd24tbWVudS1zbS1zdGFydCB7XG4gICAgLS1icy1wb3NpdGlvbjogc3RhcnQ7XG4gIH1cbiAgLmRyb3Bkb3duLW1lbnUtc20tc3RhcnRbZGF0YS1icy1wb3BwZXJdIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LXNtLWVuZCB7XG4gICAgLS1icy1wb3NpdGlvbjogZW5kO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LXNtLWVuZFtkYXRhLWJzLXBvcHBlcl0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZHJvcGRvd24tbWVudS1tZC1zdGFydCB7XG4gICAgLS1icy1wb3NpdGlvbjogc3RhcnQ7XG4gIH1cbiAgLmRyb3Bkb3duLW1lbnUtbWQtc3RhcnRbZGF0YS1icy1wb3BwZXJdIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LW1kLWVuZCB7XG4gICAgLS1icy1wb3NpdGlvbjogZW5kO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LW1kLWVuZFtkYXRhLWJzLXBvcHBlcl0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuZHJvcGRvd24tbWVudS1sZy1zdGFydCB7XG4gICAgLS1icy1wb3NpdGlvbjogc3RhcnQ7XG4gIH1cbiAgLmRyb3Bkb3duLW1lbnUtbGctc3RhcnRbZGF0YS1icy1wb3BwZXJdIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LWxnLWVuZCB7XG4gICAgLS1icy1wb3NpdGlvbjogZW5kO1xuICB9XG4gIC5kcm9wZG93bi1tZW51LWxnLWVuZFtkYXRhLWJzLXBvcHBlcl0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmRyb3Bkb3duLW1lbnUteGwtc3RhcnQge1xuICAgIC0tYnMtcG9zaXRpb246IHN0YXJ0O1xuICB9XG4gIC5kcm9wZG93bi1tZW51LXhsLXN0YXJ0W2RhdGEtYnMtcG9wcGVyXSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZHJvcGRvd24tbWVudS14bC1lbmQge1xuICAgIC0tYnMtcG9zaXRpb246IGVuZDtcbiAgfVxuICAuZHJvcGRvd24tbWVudS14bC1lbmRbZGF0YS1icy1wb3BwZXJdIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5kcm9wZG93bi1tZW51LXh4bC1zdGFydCB7XG4gICAgLS1icy1wb3NpdGlvbjogc3RhcnQ7XG4gIH1cbiAgLmRyb3Bkb3duLW1lbnUteHhsLXN0YXJ0W2RhdGEtYnMtcG9wcGVyXSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZHJvcGRvd24tbWVudS14eGwtZW5kIHtcbiAgICAtLWJzLXBvc2l0aW9uOiBlbmQ7XG4gIH1cbiAgLmRyb3Bkb3duLW1lbnUteHhsLWVuZFtkYXRhLWJzLXBvcHBlcl0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnVbZGF0YS1icy1wb3BwZXJdIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJzLWRyb3Bkb3duLXNwYWNlcik7XG59XG4uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6OmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDAuM2VtIHNvbGlkO1xuICBib3JkZXItbGVmdDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5kcm9wZW5kIC5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXSB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1icy1kcm9wZG93bi1zcGFjZXIpO1xufVxuLmRyb3BlbmQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4yNTVlbTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXRvcDogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMC4zZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwLjNlbSBzb2xpZDtcbn1cbi5kcm9wZW5kIC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uZHJvcGVuZCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuXG4uZHJvcHN0YXJ0IC5kcm9wZG93bi1tZW51W2RhdGEtYnMtcG9wcGVyXSB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tYnMtZHJvcGRvd24tc3BhY2VyKTtcbn1cbi5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogMC4yNTVlbTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmRyb3BzdGFydCAuZHJvcGRvd24tdG9nZ2xlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC4yNTVlbTtcbiAgdmVydGljYWwtYWxpZ246IDAuMjU1ZW07XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkO1xuICBib3JkZXItYm90dG9tOiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5kcm9wc3RhcnQgLmRyb3Bkb3duLXRvZ2dsZTo6YmVmb3JlIHtcbiAgdmVydGljYWwtYWxpZ246IDA7XG59XG5cbi5kcm9wZG93bi1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IHZhcigtLWJzLWRyb3Bkb3duLWRpdmlkZXItbWFyZ2luLXkpIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1icy1kcm9wZG93bi1kaXZpZGVyLWJnKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmRyb3Bkb3duLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLWJzLWRyb3Bkb3duLWl0ZW0tcGFkZGluZy15KSB2YXIoLS1icy1kcm9wZG93bi1pdGVtLXBhZGRpbmcteCk7XG4gIGNsZWFyOiBib3RoO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tYnMtZHJvcGRvd24tbGluay1jb2xvcik7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtZHJvcGRvd24taXRlbS1ib3JkZXItcmFkaXVzLCAwKTtcbn1cbi5kcm9wZG93bi1pdGVtOmhvdmVyLCAuZHJvcGRvd24taXRlbTpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS1icy1kcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtZHJvcGRvd24tbGluay1ob3Zlci1iZyk7XG59XG4uZHJvcGRvd24taXRlbS5hY3RpdmUsIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1icy1kcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtZHJvcGRvd24tbGluay1hY3RpdmUtYmcpO1xufVxuLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQsIC5kcm9wZG93bi1pdGVtOmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWJzLWRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3IpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5kcm9wZG93bi1tZW51LnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiB2YXIoLS1icy1kcm9wZG93bi1oZWFkZXItcGFkZGluZy15KSB2YXIoLS1icy1kcm9wZG93bi1oZWFkZXItcGFkZGluZy14KTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLWJzLWRyb3Bkb3duLWhlYWRlci1jb2xvcik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kcm9wZG93bi1pdGVtLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogdmFyKC0tYnMtZHJvcGRvd24taXRlbS1wYWRkaW5nLXkpIHZhcigtLWJzLWRyb3Bkb3duLWl0ZW0tcGFkZGluZy14KTtcbiAgY29sb3I6IHZhcigtLWJzLWRyb3Bkb3duLWxpbmstY29sb3IpO1xufVxuXG4uZHJvcGRvd24tbWVudS1kYXJrIHtcbiAgLS1icy1kcm9wZG93bi1jb2xvcjogI2RlZTJlNjtcbiAgLS1icy1kcm9wZG93bi1iZzogIzM0M2E0MDtcbiAgLS1icy1kcm9wZG93bi1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvci10cmFuc2x1Y2VudCk7XG4gIC0tYnMtZHJvcGRvd24tYm94LXNoYWRvdzogO1xuICAtLWJzLWRyb3Bkb3duLWxpbmstY29sb3I6ICNkZWUyZTY7XG4gIC0tYnMtZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjogI2ZmZjtcbiAgLS1icy1kcm9wZG93bi1kaXZpZGVyLWJnOiB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICAtLWJzLWRyb3Bkb3duLWxpbmstaG92ZXItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIC0tYnMtZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICMwZDZlZmQ7XG4gIC0tYnMtZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjogI2FkYjViZDtcbiAgLS1icy1kcm9wZG93bi1oZWFkZXItY29sb3I6ICNhZGI1YmQ7XG59XG5cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tY2hlY2s6Y2hlY2tlZCArIC5idG4sXG4uYnRuLWdyb3VwID4gLmJ0bi1jaGVjazpmb2N1cyArIC5idG4sXG4uYnRuLWdyb3VwID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cCA+IC5idG4uYWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tY2hlY2s6Y2hlY2tlZCArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1jaGVjazpmb2N1cyArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4uYWN0aXZlIHtcbiAgei1pbmRleDogMTtcbn1cblxuLmJ0bi10b29sYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5idG4tZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbn1cbi5idG4tZ3JvdXAgPiA6bm90KC5idG4tY2hlY2s6Zmlyc3QtY2hpbGQpICsgLmJ0bixcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIC0xKTtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmJ0bi1ncm91cCA+IC5idG4uZHJvcGRvd24tdG9nZ2xlLXNwbGl0OmZpcnN0LWNoaWxkLFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpudGgtY2hpbGQobiszKSxcbi5idG4tZ3JvdXAgPiA6bm90KC5idG4tY2hlY2spICsgLmJ0bixcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjU2MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC41NjI1cmVtO1xufVxuLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsIC5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsIC5kcm9wZW5kIC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmFmdGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uZHJvcHN0YXJ0IC5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmJlZm9yZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJ0bi1zbSArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQsIC5idG4tZ3JvdXAtc20gPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtO1xufVxuXG4uYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwgLmJ0bi1ncm91cC1sZyA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIC0xKTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuIH4gLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4ubmF2IHtcbiAgLS1icy1uYXYtbGluay1wYWRkaW5nLXg6IDFyZW07XG4gIC0tYnMtbmF2LWxpbmstcGFkZGluZy15OiAwLjVyZW07XG4gIC0tYnMtbmF2LWxpbmstZm9udC13ZWlnaHQ6IDtcbiAgLS1icy1uYXYtbGluay1jb2xvcjogdmFyKC0tYnMtbGluay1jb2xvcik7XG4gIC0tYnMtbmF2LWxpbmstaG92ZXItY29sb3I6IHZhcigtLWJzLWxpbmstaG92ZXItY29sb3IpO1xuICAtLWJzLW5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdi1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IHZhcigtLWJzLW5hdi1saW5rLXBhZGRpbmcteSkgdmFyKC0tYnMtbmF2LWxpbmstcGFkZGluZy14KTtcbiAgZm9udC1zaXplOiB2YXIoLS1icy1uYXYtbGluay1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogdmFyKC0tYnMtbmF2LWxpbmstZm9udC13ZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tYnMtbmF2LWxpbmstY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5uYXYtbGluayB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLm5hdi1saW5rOmhvdmVyLCAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogdmFyKC0tYnMtbmF2LWxpbmstaG92ZXItY29sb3IpO1xufVxuLm5hdi1saW5rOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEoMTMsIDExMCwgMjUzLCAwLjI1KTtcbn1cbi5uYXYtbGluay5kaXNhYmxlZCwgLm5hdi1saW5rOmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWJzLW5hdi1saW5rLWRpc2FibGVkLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm5hdi10YWJzIHtcbiAgLS1icy1uYXYtdGFicy1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICAtLWJzLW5hdi10YWJzLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAtLWJzLW5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpIHZhcigtLWJzLXNlY29uZGFyeS1iZykgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgLS1icy1uYXYtdGFicy1saW5rLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLW5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy1uYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvcikgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKSB2YXIoLS1icy1ib2R5LWJnKTtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnMtbmF2LXRhYnMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1uYXYtdGFicy1ib3JkZXItY29sb3IpO1xufVxuLm5hdi10YWJzIC5uYXYtbGluayB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1icy1uYXYtdGFicy1ib3JkZXItd2lkdGgpKTtcbiAgYm9yZGVyOiB2YXIoLS1icy1uYXYtdGFicy1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1uYXYtdGFicy1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLW5hdi10YWJzLWJvcmRlci1yYWRpdXMpO1xufVxuLm5hdi10YWJzIC5uYXYtbGluazpob3ZlciwgLm5hdi10YWJzIC5uYXYtbGluazpmb2N1cyB7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1uYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvcik7XG59XG4ubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSxcbi5uYXYtdGFicyAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbmsge1xuICBjb2xvcjogdmFyKC0tYnMtbmF2LXRhYnMtbGluay1hY3RpdmUtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1uYXYtdGFicy1saW5rLWFjdGl2ZS1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtbmF2LXRhYnMtbGluay1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbn1cbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1icy1uYXYtdGFicy1ib3JkZXItd2lkdGgpKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5uYXYtcGlsbHMge1xuICAtLWJzLW5hdi1waWxscy1ib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgLS1icy1uYXYtcGlsbHMtbGluay1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtbmF2LXBpbGxzLWxpbmstYWN0aXZlLWJnOiAjMGQ2ZWZkO1xufVxuLm5hdi1waWxscyAubmF2LWxpbmsge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1uYXYtcGlsbHMtYm9yZGVyLXJhZGl1cyk7XG59XG4ubmF2LXBpbGxzIC5uYXYtbGluay5hY3RpdmUsXG4ubmF2LXBpbGxzIC5zaG93ID4gLm5hdi1saW5rIHtcbiAgY29sb3I6IHZhcigtLWJzLW5hdi1waWxscy1saW5rLWFjdGl2ZS1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLW5hdi1waWxscy1saW5rLWFjdGl2ZS1iZyk7XG59XG5cbi5uYXYtdW5kZXJsaW5lIHtcbiAgLS1icy1uYXYtdW5kZXJsaW5lLWdhcDogMXJlbTtcbiAgLS1icy1uYXYtdW5kZXJsaW5lLWJvcmRlci13aWR0aDogMC4xMjVyZW07XG4gIC0tYnMtbmF2LXVuZGVybGluZS1saW5rLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICBnYXA6IHZhcigtLWJzLW5hdi11bmRlcmxpbmUtZ2FwKTtcbn1cbi5uYXYtdW5kZXJsaW5lIC5uYXYtbGluayB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnMtbmF2LXVuZGVybGluZS1ib3JkZXItd2lkdGgpIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLm5hdi11bmRlcmxpbmUgLm5hdi1saW5rOmhvdmVyLCAubmF2LXVuZGVybGluZSAubmF2LWxpbms6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiBjdXJyZW50Y29sb3I7XG59XG4ubmF2LXVuZGVybGluZSAubmF2LWxpbmsuYWN0aXZlLFxuLm5hdi11bmRlcmxpbmUgLnNob3cgPiAubmF2LWxpbmsge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYnMtbmF2LXVuZGVybGluZS1saW5rLWFjdGl2ZS1jb2xvcik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGN1cnJlbnRjb2xvcjtcbn1cblxuLm5hdi1maWxsID4gLm5hdi1saW5rLFxuLm5hdi1maWxsIC5uYXYtaXRlbSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5uYXYtanVzdGlmaWVkID4gLm5hdi1saW5rLFxuLm5hdi1qdXN0aWZpZWQgLm5hdi1pdGVtIHtcbiAgZmxleC1iYXNpczogMDtcbiAgZmxleC1ncm93OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5uYXYtZmlsbCAubmF2LWl0ZW0gLm5hdi1saW5rLFxuLm5hdi1qdXN0aWZpZWQgLm5hdi1pdGVtIC5uYXYtbGluayB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYi1jb250ZW50ID4gLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubmF2YmFyIHtcbiAgLS1icy1uYXZiYXItcGFkZGluZy14OiAwO1xuICAtLWJzLW5hdmJhci1wYWRkaW5nLXk6IDAuNXJlbTtcbiAgLS1icy1uYXZiYXItY29sb3I6IHJnYmEodmFyKC0tYnMtZW1waGFzaXMtY29sb3ItcmdiKSwgMC42NSk7XG4gIC0tYnMtbmF2YmFyLWhvdmVyLWNvbG9yOiByZ2JhKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIDAuOCk7XG4gIC0tYnMtbmF2YmFyLWRpc2FibGVkLWNvbG9yOiByZ2JhKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIDAuMyk7XG4gIC0tYnMtbmF2YmFyLWFjdGl2ZS1jb2xvcjogcmdiYSh2YXIoLS1icy1lbXBoYXNpcy1jb2xvci1yZ2IpLCAxKTtcbiAgLS1icy1uYXZiYXItYnJhbmQtcGFkZGluZy15OiAwLjMxMjVyZW07XG4gIC0tYnMtbmF2YmFyLWJyYW5kLW1hcmdpbi1lbmQ6IDFyZW07XG4gIC0tYnMtbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgLS1icy1uYXZiYXItYnJhbmQtY29sb3I6IHJnYmEodmFyKC0tYnMtZW1waGFzaXMtY29sb3ItcmdiKSwgMSk7XG4gIC0tYnMtbmF2YmFyLWJyYW5kLWhvdmVyLWNvbG9yOiByZ2JhKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIDEpO1xuICAtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXg6IDAuNXJlbTtcbiAgLS1icy1uYXZiYXItdG9nZ2xlci1wYWRkaW5nLXk6IDAuMjVyZW07XG4gIC0tYnMtbmF2YmFyLXRvZ2dsZXItcGFkZGluZy14OiAwLjc1cmVtO1xuICAtLWJzLW5hdmJhci10b2dnbGVyLWZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgLS1icy1uYXZiYXItdG9nZ2xlci1pY29uLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDMwJyUzZSUzY3BhdGggc3Ryb2tlPSdyZ2JhJTI4MzMsIDM3LCA0MSwgMC43NSUyOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIik7XG4gIC0tYnMtbmF2YmFyLXRvZ2dsZXItYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIDAuMTUpO1xuICAtLWJzLW5hdmJhci10b2dnbGVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAtLWJzLW5hdmJhci10b2dnbGVyLWZvY3VzLXdpZHRoOiAwLjI1cmVtO1xuICAtLWJzLW5hdmJhci10b2dnbGVyLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLWJzLW5hdmJhci1wYWRkaW5nLXkpIHZhcigtLWJzLW5hdmJhci1wYWRkaW5nLXgpO1xufVxuLm5hdmJhciA+IC5jb250YWluZXIsXG4ubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCxcbi5uYXZiYXIgPiAuY29udGFpbmVyLXNtLFxuLm5hdmJhciA+IC5jb250YWluZXItbWQsXG4ubmF2YmFyID4gLmNvbnRhaW5lci1sZyxcbi5uYXZiYXIgPiAuY29udGFpbmVyLXhsLFxuLm5hdmJhciA+IC5jb250YWluZXIteHhsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBpbmhlcml0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4ubmF2YmFyLWJyYW5kIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWJzLW5hdmJhci1icmFuZC1wYWRkaW5nLXkpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tYnMtbmF2YmFyLWJyYW5kLXBhZGRpbmcteSk7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tYnMtbmF2YmFyLWJyYW5kLW1hcmdpbi1lbmQpO1xuICBmb250LXNpemU6IHZhcigtLWJzLW5hdmJhci1icmFuZC1mb250LXNpemUpO1xuICBjb2xvcjogdmFyKC0tYnMtbmF2YmFyLWJyYW5kLWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS1icy1uYXZiYXItYnJhbmQtaG92ZXItY29sb3IpO1xufVxuXG4ubmF2YmFyLW5hdiB7XG4gIC0tYnMtbmF2LWxpbmstcGFkZGluZy14OiAwO1xuICAtLWJzLW5hdi1saW5rLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWJzLW5hdi1saW5rLWZvbnQtd2VpZ2h0OiA7XG4gIC0tYnMtbmF2LWxpbmstY29sb3I6IHZhcigtLWJzLW5hdmJhci1jb2xvcik7XG4gIC0tYnMtbmF2LWxpbmstaG92ZXItY29sb3I6IHZhcigtLWJzLW5hdmJhci1ob3Zlci1jb2xvcik7XG4gIC0tYnMtbmF2LWxpbmstZGlzYWJsZWQtY29sb3I6IHZhcigtLWJzLW5hdmJhci1kaXNhYmxlZC1jb2xvcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUsIC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93IHtcbiAgY29sb3I6IHZhcigtLWJzLW5hdmJhci1hY3RpdmUtY29sb3IpO1xufVxuLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4ubmF2YmFyLXRleHQge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tYnMtbmF2YmFyLWNvbG9yKTtcbn1cbi5uYXZiYXItdGV4dCBhLFxuLm5hdmJhci10ZXh0IGE6aG92ZXIsXG4ubmF2YmFyLXRleHQgYTpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS1icy1uYXZiYXItYWN0aXZlLWNvbG9yKTtcbn1cblxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm5hdmJhci10b2dnbGVyIHtcbiAgcGFkZGluZzogdmFyKC0tYnMtbmF2YmFyLXRvZ2dsZXItcGFkZGluZy15KSB2YXIoLS1icy1uYXZiYXItdG9nZ2xlci1wYWRkaW5nLXgpO1xuICBmb250LXNpemU6IHZhcigtLWJzLW5hdmJhci10b2dnbGVyLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYnMtbmF2YmFyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1uYXZiYXItdG9nZ2xlci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1uYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tYnMtbmF2YmFyLXRvZ2dsZXItdHJhbnNpdGlvbik7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubmF2YmFyLXRvZ2dsZXIge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXItdG9nZ2xlcjpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5uYXZiYXItdG9nZ2xlcjpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tYnMtbmF2YmFyLXRvZ2dsZXItZm9jdXMtd2lkdGgpO1xufVxuXG4ubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNWVtO1xuICBoZWlnaHQ6IDEuNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1icy1uYXZiYXItdG9nZ2xlci1pY29uLWJnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG59XG5cbi5uYXZiYXItbmF2LXNjcm9sbCB7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWJzLXNjcm9sbC1oZWlnaHQsIDc1dmgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm5hdmJhci1leHBhbmQtc20ge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tYnMtbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteCk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1icy1uYXZiYXItbmF2LWxpbmstcGFkZGluZy14KTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLW5hdi1zY3JvbGwge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAub2ZmY2FudmFzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1zbSAub2ZmY2FudmFzIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXNtIC5vZmZjYW52YXMgLm9mZmNhbnZhcy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWV4cGFuZC1tZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1icy1uYXZiYXItbmF2LWxpbmstcGFkZGluZy14KTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXgpO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5vZmZjYW52YXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgei1pbmRleDogYXV0bztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLW1kIC5vZmZjYW52YXMgLm9mZmNhbnZhcy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbWQgLm9mZmNhbnZhcyAub2ZmY2FudmFzLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLWxnIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXgpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tYnMtbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteCk7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1uYXYtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm9mZmNhbnZhcyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQtbGcgLm9mZmNhbnZhcyAub2ZmY2FudmFzLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC1sZyAub2ZmY2FudmFzIC5vZmZjYW52YXMtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLXhsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXgpO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tYnMtbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteCk7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1uYXYtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm9mZmNhbnZhcyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1leHBhbmQteGwgLm9mZmNhbnZhcyAub2ZmY2FudmFzLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14bCAub2ZmY2FudmFzIC5vZmZjYW52YXMtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5uYXZiYXItZXhwYW5kLXh4bCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXh4bCAubmF2YmFyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14eGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14eGwgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1icy1uYXZiYXItbmF2LWxpbmstcGFkZGluZy14KTtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWJzLW5hdmJhci1uYXYtbGluay1wYWRkaW5nLXgpO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXh4bCAubmF2YmFyLW5hdi1zY3JvbGwge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXh4bCAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14eGwgLm5hdmJhci10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5uYXZiYXItZXhwYW5kLXh4bCAub2ZmY2FudmFzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14eGwgLm9mZmNhbnZhcyAub2ZmY2FudmFzLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2YmFyLWV4cGFuZC14eGwgLm9mZmNhbnZhcyAub2ZmY2FudmFzLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxufVxuLm5hdmJhci1leHBhbmQge1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ubmF2YmFyLWV4cGFuZCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1icy1uYXZiYXItbmF2LWxpbmstcGFkZGluZy14KTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1icy1uYXZiYXItbmF2LWxpbmstcGFkZGluZy14KTtcbn1cbi5uYXZiYXItZXhwYW5kIC5uYXZiYXItbmF2LXNjcm9sbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLm5hdmJhci1leHBhbmQgLm5hdmJhci1jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1iYXNpczogYXV0bztcbn1cbi5uYXZiYXItZXhwYW5kIC5uYXZiYXItdG9nZ2xlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubmF2YmFyLWV4cGFuZCAub2ZmY2FudmFzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgei1pbmRleDogYXV0bztcbiAgZmxleC1ncm93OiAxO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4ubmF2YmFyLWV4cGFuZCAub2ZmY2FudmFzIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5uYXZiYXItZXhwYW5kIC5vZmZjYW52YXMgLm9mZmNhbnZhcy1ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xufVxuXG4ubmF2YmFyLWRhcmssXG4ubmF2YmFyW2RhdGEtYnMtdGhlbWU9ZGFya10ge1xuICAtLWJzLW5hdmJhci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgLS1icy1uYXZiYXItaG92ZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gIC0tYnMtbmF2YmFyLWRpc2FibGVkLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAtLWJzLW5hdmJhci1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtbmF2YmFyLWJyYW5kLWNvbG9yOiAjZmZmO1xuICAtLWJzLW5hdmJhci1icmFuZC1ob3Zlci1jb2xvcjogI2ZmZjtcbiAgLS1icy1uYXZiYXItdG9nZ2xlci1ib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgLS1icy1uYXZiYXItdG9nZ2xlci1pY29uLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDMwJyUzZSUzY3BhdGggc3Ryb2tlPSdyZ2JhJTI4MjU1LCAyNTUsIDI1NSwgMC41NSUyOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbltkYXRhLWJzLXRoZW1lPWRhcmtdIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgLS1icy1uYXZiYXItdG9nZ2xlci1pY29uLWJnOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDMwJyUzZSUzY3BhdGggc3Ryb2tlPSdyZ2JhJTI4MjU1LCAyNTUsIDI1NSwgMC41NSUyOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbi5jYXJkIHtcbiAgLS1icy1jYXJkLXNwYWNlci15OiAxcmVtO1xuICAtLWJzLWNhcmQtc3BhY2VyLXg6IDFyZW07XG4gIC0tYnMtY2FyZC10aXRsZS1zcGFjZXIteTogMC41cmVtO1xuICAtLWJzLWNhcmQtdGl0bGUtY29sb3I6IDtcbiAgLS1icy1jYXJkLXN1YnRpdGxlLWNvbG9yOiA7XG4gIC0tYnMtY2FyZC1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtY2FyZC1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvci10cmFuc2x1Y2VudCk7XG4gIC0tYnMtY2FyZC1ib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgLS1icy1jYXJkLWJveC1zaGFkb3c6IDtcbiAgLS1icy1jYXJkLWlubmVyLWJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgLSAodmFyKC0tYnMtYm9yZGVyLXdpZHRoKSkpO1xuICAtLWJzLWNhcmQtY2FwLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWJzLWNhcmQtY2FwLXBhZGRpbmcteDogMXJlbTtcbiAgLS1icy1jYXJkLWNhcC1iZzogcmdiYSh2YXIoLS1icy1ib2R5LWNvbG9yLXJnYiksIDAuMDMpO1xuICAtLWJzLWNhcmQtY2FwLWNvbG9yOiA7XG4gIC0tYnMtY2FyZC1oZWlnaHQ6IDtcbiAgLS1icy1jYXJkLWNvbG9yOiA7XG4gIC0tYnMtY2FyZC1iZzogdmFyKC0tYnMtYm9keS1iZyk7XG4gIC0tYnMtY2FyZC1pbWctb3ZlcmxheS1wYWRkaW5nOiAxcmVtO1xuICAtLWJzLWNhcmQtZ3JvdXAtbWFyZ2luOiAwLjc1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiB2YXIoLS1icy1jYXJkLWhlaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1jYXJkLWJnKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICBib3JkZXI6IHZhcigtLWJzLWNhcmQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1jYXJkLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWNhcmQtYm9yZGVyLXJhZGl1cyk7XG59XG4uY2FyZCA+IGhyIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5jYXJkID4gLmxpc3QtZ3JvdXAge1xuICBib3JkZXItdG9wOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tOiBpbmhlcml0O1xufVxuLmNhcmQgPiAubGlzdC1ncm91cDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1jYXJkLWlubmVyLWJvcmRlci1yYWRpdXMpO1xufVxuLmNhcmQgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG59XG4uY2FyZCA+IC5jYXJkLWhlYWRlciArIC5saXN0LWdyb3VwLFxuLmNhcmQgPiAubGlzdC1ncm91cCArIC5jYXJkLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5jYXJkLWJvZHkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogdmFyKC0tYnMtY2FyZC1zcGFjZXIteSkgdmFyKC0tYnMtY2FyZC1zcGFjZXIteCk7XG4gIGNvbG9yOiB2YXIoLS1icy1jYXJkLWNvbG9yKTtcbn1cblxuLmNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1icy1jYXJkLXRpdGxlLXNwYWNlci15KTtcbiAgY29sb3I6IHZhcigtLWJzLWNhcmQtdGl0bGUtY29sb3IpO1xufVxuXG4uY2FyZC1zdWJ0aXRsZSB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTAuNSAqIHZhcigtLWJzLWNhcmQtdGl0bGUtc3BhY2VyLXkpKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6IHZhcigtLWJzLWNhcmQtc3VidGl0bGUtY29sb3IpO1xufVxuXG4uY2FyZC10ZXh0Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2FyZC1saW5rICsgLmNhcmQtbGluayB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1icy1jYXJkLXNwYWNlci14KTtcbn1cblxuLmNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogdmFyKC0tYnMtY2FyZC1jYXAtcGFkZGluZy15KSB2YXIoLS1icy1jYXJkLWNhcC1wYWRkaW5nLXgpO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogdmFyKC0tYnMtY2FyZC1jYXAtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1jYXJkLWNhcC1iZyk7XG4gIGJvcmRlci1ib3R0b206IHZhcigtLWJzLWNhcmQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1jYXJkLWJvcmRlci1jb2xvcik7XG59XG4uY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1jYXJkLWlubmVyLWJvcmRlci1yYWRpdXMpIHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cykgMCAwO1xufVxuXG4uY2FyZC1mb290ZXIge1xuICBwYWRkaW5nOiB2YXIoLS1icy1jYXJkLWNhcC1wYWRkaW5nLXkpIHZhcigtLWJzLWNhcmQtY2FwLXBhZGRpbmcteCk7XG4gIGNvbG9yOiB2YXIoLS1icy1jYXJkLWNhcC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWNhcmQtY2FwLWJnKTtcbiAgYm9yZGVyLXRvcDogdmFyKC0tYnMtY2FyZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLWNhcmQtYm9yZGVyLWNvbG9yKTtcbn1cbi5jYXJkLWZvb3RlcjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cykgdmFyKC0tYnMtY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmNhcmQtaGVhZGVyLXRhYnMge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoLTAuNSAqIHZhcigtLWJzLWNhcmQtY2FwLXBhZGRpbmcteCkpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tYnMtY2FyZC1jYXAtcGFkZGluZy15KSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0wLjUgKiB2YXIoLS1icy1jYXJkLWNhcC1wYWRkaW5nLXgpKTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5jYXJkLWhlYWRlci10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1jYXJkLWJnKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnMtY2FyZC1iZyk7XG59XG5cbi5jYXJkLWhlYWRlci1waWxscyB7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMC41ICogdmFyKC0tYnMtY2FyZC1jYXAtcGFkZGluZy14KSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0wLjUgKiB2YXIoLS1icy1jYXJkLWNhcC1wYWRkaW5nLXgpKTtcbn1cblxuLmNhcmQtaW1nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogdmFyKC0tYnMtY2FyZC1pbWctb3ZlcmxheS1wYWRkaW5nKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmNhcmQtaW1nLFxuLmNhcmQtaW1nLXRvcCxcbi5jYXJkLWltZy1ib3R0b20ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNhcmQtaW1nLFxuLmNhcmQtaW1nLXRvcCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1jYXJkLWlubmVyLWJvcmRlci1yYWRpdXMpO1xufVxuXG4uY2FyZC1pbWcsXG4uY2FyZC1pbWctYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5jYXJkLWdyb3VwID4gLmNhcmQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1icy1jYXJkLWdyb3VwLW1hcmdpbik7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmNhcmQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuICAuY2FyZC1ncm91cCA+IC5jYXJkIHtcbiAgICBmbGV4OiAxIDAgMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuY2FyZC1ncm91cCA+IC5jYXJkICsgLmNhcmQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpub3QoOmxhc3QtY2hpbGQpIC5jYXJkLWltZy10b3AsXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSAuY2FyZC1oZWFkZXIge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSAuY2FyZC1pbWctYm90dG9tLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm5vdCg6bGFzdC1jaGlsZCkgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmNhcmQtZ3JvdXAgPiAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKSAuY2FyZC1pbWctdG9wLFxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpIC5jYXJkLWhlYWRlciB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgfVxuICAuY2FyZC1ncm91cCA+IC5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpIC5jYXJkLWltZy1ib3R0b20sXG4gIC5jYXJkLWdyb3VwID4gLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCkgLmNhcmQtZm9vdGVyIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbi5hY2NvcmRpb24ge1xuICAtLWJzLWFjY29yZGlvbi1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIC0tYnMtYWNjb3JkaW9uLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy1hY2NvcmRpb24tdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLXJhZGl1cyAwLjE1cyBlYXNlO1xuICAtLWJzLWFjY29yZGlvbi1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvcik7XG4gIC0tYnMtYWNjb3JkaW9uLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIC0tYnMtYWNjb3JkaW9uLWlubmVyLWJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgLSAodmFyKC0tYnMtYm9yZGVyLXdpZHRoKSkpO1xuICAtLWJzLWFjY29yZGlvbi1idG4tcGFkZGluZy14OiAxLjI1cmVtO1xuICAtLWJzLWFjY29yZGlvbi1idG4tcGFkZGluZy15OiAxcmVtO1xuICAtLWJzLWFjY29yZGlvbi1idG4tY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpO1xuICAtLWJzLWFjY29yZGlvbi1idG4tYmc6IHZhcigtLWJzLWFjY29yZGlvbi1iZyk7XG4gIC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjMyMTI1MjknJTNlJTNjcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J00xLjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEwLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHonLyUzZSUzYy9zdmclM2VcIik7XG4gIC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uLXdpZHRoOiAxLjI1cmVtO1xuICAtLWJzLWFjY29yZGlvbi1idG4taWNvbi10cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgLS1icy1hY2NvcmRpb24tYnRuLWljb24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC0tYnMtYWNjb3JkaW9uLWJ0bi1hY3RpdmUtaWNvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJTIzMDUyYzY1JyUzZSUzY3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNMS42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCAxMC4yOTNsNS42NDYtNS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOCAwbC02LTZhLjUuNSAwIDAgMSAwLS43MDh6Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAtLWJzLWFjY29yZGlvbi1idG4tZm9jdXMtYm9yZGVyLWNvbG9yOiAjODZiN2ZlO1xuICAtLWJzLWFjY29yZGlvbi1idG4tZm9jdXMtYm94LXNoYWRvdzogMCAwIDAgMC4yNXJlbSByZ2JhKDEzLCAxMTAsIDI1MywgMC4yNSk7XG4gIC0tYnMtYWNjb3JkaW9uLWJvZHktcGFkZGluZy14OiAxLjI1cmVtO1xuICAtLWJzLWFjY29yZGlvbi1ib2R5LXBhZGRpbmcteTogMXJlbTtcbiAgLS1icy1hY2NvcmRpb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5LXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWFjY29yZGlvbi1hY3RpdmUtYmc6IHZhcigtLWJzLXByaW1hcnktYmctc3VidGxlKTtcbn1cblxuLmFjY29yZGlvbi1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1icy1hY2NvcmRpb24tYnRuLXBhZGRpbmcteSkgdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1wYWRkaW5nLXgpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiB2YXIoLS1icy1hY2NvcmRpb24tYnRuLWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1iZyk7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3ZlcmZsb3ctYW5jaG9yOiBub25lO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1icy1hY2NvcmRpb24tdHJhbnNpdGlvbik7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuYWNjb3JkaW9uLWJ1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmFjY29yZGlvbi1idXR0b246bm90KC5jb2xsYXBzZWQpIHtcbiAgY29sb3I6IHZhcigtLWJzLWFjY29yZGlvbi1hY3RpdmUtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1hY2NvcmRpb24tYWN0aXZlLWJnKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCBjYWxjKC0xICogdmFyKC0tYnMtYWNjb3JkaW9uLWJvcmRlci13aWR0aCkpIDAgdmFyKC0tYnMtYWNjb3JkaW9uLWJvcmRlci1jb2xvcik7XG59XG4uYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCk6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1hY3RpdmUtaWNvbik7XG4gIHRyYW5zZm9ybTogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uLXRyYW5zZm9ybSk7XG59XG4uYWNjb3JkaW9uLWJ1dHRvbjo6YWZ0ZXIge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IHZhcigtLWJzLWFjY29yZGlvbi1idG4taWNvbi13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uLXdpZHRoKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWJzLWFjY29yZGlvbi1idG4taWNvbik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uLXdpZHRoKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1pY29uLXRyYW5zaXRpb24pO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmFjY29yZGlvbi1idXR0b246OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4uYWNjb3JkaW9uLWJ1dHRvbjpob3ZlciB7XG4gIHotaW5kZXg6IDI7XG59XG4uYWNjb3JkaW9uLWJ1dHRvbjpmb2N1cyB7XG4gIHotaW5kZXg6IDM7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtYWNjb3JkaW9uLWJ0bi1mb2N1cy1ib3JkZXItY29sb3IpO1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1hY2NvcmRpb24tYnRuLWZvY3VzLWJveC1zaGFkb3cpO1xufVxuXG4uYWNjb3JkaW9uLWhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hY2NvcmRpb24taXRlbSB7XG4gIGNvbG9yOiB2YXIoLS1icy1hY2NvcmRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1hY2NvcmRpb24tYmcpO1xuICBib3JkZXI6IHZhcigtLWJzLWFjY29yZGlvbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLWFjY29yZGlvbi1ib3JkZXItY29sb3IpO1xufVxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cyk7XG59XG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3Qtb2YtdHlwZSAuYWNjb3JkaW9uLWJ1dHRvbiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWFjY29yZGlvbi1pbm5lci1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWFjY29yZGlvbi1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cbi5hY2NvcmRpb24taXRlbTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5hY2NvcmRpb24taXRlbTpsYXN0LW9mLXR5cGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtYWNjb3JkaW9uLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cyk7XG59XG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1vZi10eXBlIC5hY2NvcmRpb24tYnV0dG9uLmNvbGxhcHNlZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1hY2NvcmRpb24taW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWFjY29yZGlvbi1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cbi5hY2NvcmRpb24taXRlbTpsYXN0LW9mLXR5cGUgLmFjY29yZGlvbi1jb2xsYXBzZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmFjY29yZGlvbi1ib2R5IHtcbiAgcGFkZGluZzogdmFyKC0tYnMtYWNjb3JkaW9uLWJvZHktcGFkZGluZy15KSB2YXIoLS1icy1hY2NvcmRpb24tYm9keS1wYWRkaW5nLXgpO1xufVxuXG4uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24tY29sbGFwc2Uge1xuICBib3JkZXItd2lkdGg6IDA7XG59XG4uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24taXRlbSB7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4uYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5hY2NvcmRpb24tZmx1c2ggLmFjY29yZGlvbi1pdGVtIC5hY2NvcmRpb24tYnV0dG9uLCAuYWNjb3JkaW9uLWZsdXNoIC5hY2NvcmRpb24taXRlbSAuYWNjb3JkaW9uLWJ1dHRvbi5jb2xsYXBzZWQge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5bZGF0YS1icy10aGVtZT1kYXJrXSAuYWNjb3JkaW9uLWJ1dHRvbjo6YWZ0ZXIge1xuICAtLWJzLWFjY29yZGlvbi1idG4taWNvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJTIzNmVhOGZlJyUzZSUzY3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNMS42NDYgNC42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCAxMC4yOTNsNS42NDYtNS42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOCAwbC02LTZhLjUuNSAwIDAgMSAwLS43MDh6Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAtLWJzLWFjY29yZGlvbi1idG4tYWN0aXZlLWljb246IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9JyUyMzZlYThmZSclM2UlM2NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTEuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggMTAuMjkzbDUuNjQ2LTUuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDggMGwtNi02YS41LjUgMCAwIDEgMC0uNzA4eicvJTNlJTNjL3N2ZyUzZVwiKTtcbn1cblxuLmJyZWFkY3J1bWIge1xuICAtLWJzLWJyZWFkY3J1bWItcGFkZGluZy14OiAwO1xuICAtLWJzLWJyZWFkY3J1bWItcGFkZGluZy15OiAwO1xuICAtLWJzLWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgLS1icy1icmVhZGNydW1iLWJnOiA7XG4gIC0tYnMtYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzOiA7XG4gIC0tYnMtYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICAtLWJzLWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXg6IDAuNXJlbTtcbiAgLS1icy1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IHZhcigtLWJzLWJyZWFkY3J1bWItcGFkZGluZy15KSB2YXIoLS1icy1icmVhZGNydW1iLXBhZGRpbmcteCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJzLWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYnMtYnJlYWRjcnVtYi1mb250LXNpemUpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1icmVhZGNydW1iLWJnKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmJyZWFkY3J1bWItaXRlbSArIC5icmVhZGNydW1iLWl0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWJzLWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXgpO1xufVxuLmJyZWFkY3J1bWItaXRlbSArIC5icmVhZGNydW1iLWl0ZW06OmJlZm9yZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1icy1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcbiAgY29sb3I6IHZhcigtLWJzLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcik7XG4gIGNvbnRlbnQ6IHZhcigtLWJzLWJyZWFkY3J1bWItZGl2aWRlciwgXCIvXCIpIC8qIHJ0bDogdmFyKC0tYnMtYnJlYWRjcnVtYi1kaXZpZGVyLCBcIi9cIikgKi87XG59XG4uYnJlYWRjcnVtYi1pdGVtLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1icy1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yKTtcbn1cblxuLnBhZ2luYXRpb24ge1xuICAtLWJzLXBhZ2luYXRpb24tcGFkZGluZy14OiAwLjc1cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tcGFkZGluZy15OiAwLjM3NXJlbTtcbiAgLS1icy1wYWdpbmF0aW9uLWZvbnQtc2l6ZTogMXJlbTtcbiAgLS1icy1wYWdpbmF0aW9uLWNvbG9yOiB2YXIoLS1icy1saW5rLWNvbG9yKTtcbiAgLS1icy1wYWdpbmF0aW9uLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy1wYWdpbmF0aW9uLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1wYWdpbmF0aW9uLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgLS1icy1wYWdpbmF0aW9uLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAtLWJzLXBhZ2luYXRpb24taG92ZXItY29sb3I6IHZhcigtLWJzLWxpbmstaG92ZXItY29sb3IpO1xuICAtLWJzLXBhZ2luYXRpb24taG92ZXItYmc6IHZhcigtLWJzLXRlcnRpYXJ5LWJnKTtcbiAgLS1icy1wYWdpbmF0aW9uLWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgLS1icy1wYWdpbmF0aW9uLWZvY3VzLWNvbG9yOiB2YXIoLS1icy1saW5rLWhvdmVyLWNvbG9yKTtcbiAgLS1icy1wYWdpbmF0aW9uLWZvY3VzLWJnOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpO1xuICAtLWJzLXBhZ2luYXRpb24tZm9jdXMtYm94LXNoYWRvdzogMCAwIDAgMC4yNXJlbSByZ2JhKDEzLCAxMTAsIDI1MywgMC4yNSk7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICNmZmY7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYmc6ICMwZDZlZmQ7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjMGQ2ZWZkO1xuICAtLWJzLXBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG4gIC0tYnMtcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnKTtcbiAgLS1icy1wYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ucGFnZS1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogdmFyKC0tYnMtcGFnaW5hdGlvbi1wYWRkaW5nLXkpIHZhcigtLWJzLXBhZ2luYXRpb24tcGFkZGluZy14KTtcbiAgZm9udC1zaXplOiB2YXIoLS1icy1wYWdpbmF0aW9uLWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWJnKTtcbiAgYm9yZGVyOiB2YXIoLS1icy1wYWdpbmF0aW9uLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtcGFnaW5hdGlvbi1ib3JkZXItY29sb3IpO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnBhZ2UtbGluayB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLnBhZ2UtbGluazpob3ZlciB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWhvdmVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1ob3Zlci1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xufVxuLnBhZ2UtbGluazpmb2N1cyB7XG4gIHotaW5kZXg6IDM7XG4gIGNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWZvY3VzLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1mb2N1cy1iZyk7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJzLXBhZ2luYXRpb24tZm9jdXMtYm94LXNoYWRvdyk7XG59XG4ucGFnZS1saW5rLmFjdGl2ZSwgLmFjdGl2ZSA+IC5wYWdlLWxpbmsge1xuICB6LWluZGV4OiAzO1xuICBjb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWFjdGl2ZS1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbn1cbi5wYWdlLWxpbmsuZGlzYWJsZWQsIC5kaXNhYmxlZCA+IC5wYWdlLWxpbmsge1xuICBjb2xvcjogdmFyKC0tYnMtcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWRpc2FibGVkLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1wYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlci1jb2xvcik7XG59XG5cbi5wYWdlLWl0ZW06bm90KDpmaXJzdC1jaGlsZCkgLnBhZ2UtbGluayB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWJzLWJvcmRlci13aWR0aCkgKiAtMSk7XG59XG4ucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1wYWdpbmF0aW9uLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1wYWdpbmF0aW9uLWJvcmRlci1yYWRpdXMpO1xufVxuLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtcGFnaW5hdGlvbi1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLXBhZ2luYXRpb24tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5wYWdpbmF0aW9uLWxnIHtcbiAgLS1icy1wYWdpbmF0aW9uLXBhZGRpbmcteDogMS41cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tcGFkZGluZy15OiAwLjc1cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tZm9udC1zaXplOiAxLjI1cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZyk7XG59XG5cbi5wYWdpbmF0aW9uLXNtIHtcbiAgLS1icy1wYWdpbmF0aW9uLXBhZGRpbmcteDogMC41cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tcGFkZGluZy15OiAwLjI1cmVtO1xuICAtLWJzLXBhZ2luYXRpb24tZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLS1icy1wYWdpbmF0aW9uLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG4uYmFkZ2Uge1xuICAtLWJzLWJhZGdlLXBhZGRpbmcteDogMC42NWVtO1xuICAtLWJzLWJhZGdlLXBhZGRpbmcteTogMC4zNWVtO1xuICAtLWJzLWJhZGdlLWZvbnQtc2l6ZTogMC43NWVtO1xuICAtLWJzLWJhZGdlLWZvbnQtd2VpZ2h0OiA3MDA7XG4gIC0tYnMtYmFkZ2UtY29sb3I6ICNmZmY7XG4gIC0tYnMtYmFkZ2UtYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogdmFyKC0tYnMtYmFkZ2UtcGFkZGluZy15KSB2YXIoLS1icy1iYWRnZS1wYWRkaW5nLXgpO1xuICBmb250LXNpemU6IHZhcigtLWJzLWJhZGdlLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1icy1iYWRnZS1mb250LXdlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYnMtYmFkZ2UtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG59XG4uYmFkZ2U6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuXG4uYWxlcnQge1xuICAtLWJzLWFsZXJ0LWJnOiB0cmFuc3BhcmVudDtcbiAgLS1icy1hbGVydC1wYWRkaW5nLXg6IDFyZW07XG4gIC0tYnMtYWxlcnQtcGFkZGluZy15OiAxcmVtO1xuICAtLWJzLWFsZXJ0LW1hcmdpbi1ib3R0b206IDFyZW07XG4gIC0tYnMtYWxlcnQtY29sb3I6IGluaGVyaXQ7XG4gIC0tYnMtYWxlcnQtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1icy1hbGVydC1ib3JkZXI6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtYWxlcnQtYm9yZGVyLWNvbG9yKTtcbiAgLS1icy1hbGVydC1ib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgLS1icy1hbGVydC1saW5rLWNvbG9yOiBpbmhlcml0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IHZhcigtLWJzLWFsZXJ0LXBhZGRpbmcteSkgdmFyKC0tYnMtYWxlcnQtcGFkZGluZy14KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tYnMtYWxlcnQtbWFyZ2luLWJvdHRvbSk7XG4gIGNvbG9yOiB2YXIoLS1icy1hbGVydC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWFsZXJ0LWJnKTtcbiAgYm9yZGVyOiB2YXIoLS1icy1hbGVydC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1hbGVydC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmFsZXJ0LWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmFsZXJ0LWxpbmsge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYnMtYWxlcnQtbGluay1jb2xvcik7XG59XG5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG59XG4uYWxlcnQtZGlzbWlzc2libGUgLmJ0bi1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjtcbiAgcGFkZGluZzogMS4yNXJlbSAxcmVtO1xufVxuXG4uYWxlcnQtcHJpbWFyeSB7XG4gIC0tYnMtYWxlcnQtY29sb3I6IHZhcigtLWJzLXByaW1hcnktdGV4dC1lbXBoYXNpcyk7XG4gIC0tYnMtYWxlcnQtYmc6IHZhcigtLWJzLXByaW1hcnktYmctc3VidGxlKTtcbiAgLS1icy1hbGVydC1ib3JkZXItY29sb3I6IHZhcigtLWJzLXByaW1hcnktYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtbGluay1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeS10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmFsZXJ0LXNlY29uZGFyeSB7XG4gIC0tYnMtYWxlcnQtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1hbGVydC1iZzogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtbGluay1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LXRleHQtZW1waGFzaXMpO1xufVxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIC0tYnMtYWxlcnQtY29sb3I6IHZhcigtLWJzLXN1Y2Nlc3MtdGV4dC1lbXBoYXNpcyk7XG4gIC0tYnMtYWxlcnQtYmc6IHZhcigtLWJzLXN1Y2Nlc3MtYmctc3VidGxlKTtcbiAgLS1icy1hbGVydC1ib3JkZXItY29sb3I6IHZhcigtLWJzLXN1Y2Nlc3MtYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtbGluay1jb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmFsZXJ0LWluZm8ge1xuICAtLWJzLWFsZXJ0LWNvbG9yOiB2YXIoLS1icy1pbmZvLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWFsZXJ0LWJnOiB2YXIoLS1icy1pbmZvLWJnLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1pbmZvLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWFsZXJ0LWxpbmstY29sb3I6IHZhcigtLWJzLWluZm8tdGV4dC1lbXBoYXNpcyk7XG59XG5cbi5hbGVydC13YXJuaW5nIHtcbiAgLS1icy1hbGVydC1jb2xvcjogdmFyKC0tYnMtd2FybmluZy10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1hbGVydC1iZzogdmFyKC0tYnMtd2FybmluZy1iZy1zdWJ0bGUpO1xuICAtLWJzLWFsZXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tYnMtd2FybmluZy1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1hbGVydC1saW5rLWNvbG9yOiB2YXIoLS1icy13YXJuaW5nLXRleHQtZW1waGFzaXMpO1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgLS1icy1hbGVydC1jb2xvcjogdmFyKC0tYnMtZGFuZ2VyLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWFsZXJ0LWJnOiB2YXIoLS1icy1kYW5nZXItYmctc3VidGxlKTtcbiAgLS1icy1hbGVydC1ib3JkZXItY29sb3I6IHZhcigtLWJzLWRhbmdlci1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1hbGVydC1saW5rLWNvbG9yOiB2YXIoLS1icy1kYW5nZXItdGV4dC1lbXBoYXNpcyk7XG59XG5cbi5hbGVydC1saWdodCB7XG4gIC0tYnMtYWxlcnQtY29sb3I6IHZhcigtLWJzLWxpZ2h0LXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWFsZXJ0LWJnOiB2YXIoLS1icy1saWdodC1iZy1zdWJ0bGUpO1xuICAtLWJzLWFsZXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tYnMtbGlnaHQtYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtYWxlcnQtbGluay1jb2xvcjogdmFyKC0tYnMtbGlnaHQtdGV4dC1lbXBoYXNpcyk7XG59XG5cbi5hbGVydC1kYXJrIHtcbiAgLS1icy1hbGVydC1jb2xvcjogdmFyKC0tYnMtZGFyay10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1hbGVydC1iZzogdmFyKC0tYnMtZGFyay1iZy1zdWJ0bGUpO1xuICAtLWJzLWFsZXJ0LWJvcmRlci1jb2xvcjogdmFyKC0tYnMtZGFyay1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1hbGVydC1saW5rLWNvbG9yOiB2YXIoLS1icy1kYXJrLXRleHQtZW1waGFzaXMpO1xufVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogMXJlbTtcbiAgfVxufVxuLnByb2dyZXNzLFxuLnByb2dyZXNzLXN0YWNrZWQge1xuICAtLWJzLXByb2dyZXNzLWhlaWdodDogMXJlbTtcbiAgLS1icy1wcm9ncmVzcy1mb250LXNpemU6IDAuNzVyZW07XG4gIC0tYnMtcHJvZ3Jlc3MtYmc6IHZhcigtLWJzLXNlY29uZGFyeS1iZyk7XG4gIC0tYnMtcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIC0tYnMtcHJvZ3Jlc3MtYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdy1pbnNldCk7XG4gIC0tYnMtcHJvZ3Jlc3MtYmFyLWNvbG9yOiAjZmZmO1xuICAtLWJzLXByb2dyZXNzLWJhci1iZzogIzBkNmVmZDtcbiAgLS1icy1wcm9ncmVzcy1iYXItdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IHZhcigtLWJzLXByb2dyZXNzLWhlaWdodCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogdmFyKC0tYnMtcHJvZ3Jlc3MtZm9udC1zaXplKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcHJvZ3Jlc3MtYmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1wcm9ncmVzcy1ib3JkZXItcmFkaXVzKTtcbn1cblxuLnByb2dyZXNzLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tYnMtcHJvZ3Jlc3MtYmFyLWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1wcm9ncmVzcy1iYXItYmcpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1icy1wcm9ncmVzcy1iYXItdHJhbnNpdGlvbik7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucHJvZ3Jlc3MtYmFyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLWJzLXByb2dyZXNzLWhlaWdodCkgdmFyKC0tYnMtcHJvZ3Jlc3MtaGVpZ2h0KTtcbn1cblxuLnByb2dyZXNzLXN0YWNrZWQgPiAucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnByb2dyZXNzLXN0YWNrZWQgPiAucHJvZ3Jlc3MgPiAucHJvZ3Jlc3MtYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xuICBhbmltYXRpb246IDFzIGxpbmVhciBpbmZpbml0ZSBwcm9ncmVzcy1iYXItc3RyaXBlcztcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4ubGlzdC1ncm91cCB7XG4gIC0tYnMtbGlzdC1ncm91cC1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG4gIC0tYnMtbGlzdC1ncm91cC1iZzogdmFyKC0tYnMtYm9keS1iZyk7XG4gIC0tYnMtbGlzdC1ncm91cC1ib3JkZXItY29sb3I6IHZhcigtLWJzLWJvcmRlci1jb2xvcik7XG4gIC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbiAgLS1icy1saXN0LWdyb3VwLWl0ZW0tcGFkZGluZy14OiAxcmVtO1xuICAtLWJzLWxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXk6IDAuNXJlbTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy10ZXJ0aWFyeS1iZyk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtYmc6IHZhcigtLWJzLXNlY29uZGFyeS1iZyk7XG4gIC0tYnMtbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWRpc2FibGVkLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1iZzogIzBkNmVmZDtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6ICMwZDZlZmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmxpc3QtZ3JvdXAtbnVtYmVyZWQge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGNvdW50ZXItcmVzZXQ6IHNlY3Rpb247XG59XG4ubGlzdC1ncm91cC1udW1iZXJlZCA+IC5saXN0LWdyb3VwLWl0ZW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKHNlY3Rpb24sIFwiLlwiKSBcIi4gXCI7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzZWN0aW9uO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tY29sb3IpO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXIsIC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzIHtcbiAgei1pbmRleDogMTtcbiAgY29sb3I6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1iZyk7XG59XG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IHZhcigtLWJzLWxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXkpIHZhcigtLWJzLWxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXgpO1xuICBjb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1iZyk7XG4gIGJvcmRlcjogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yKTtcbn1cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCwgLmxpc3QtZ3JvdXAtaXRlbTpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1icy1saXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWxpc3QtZ3JvdXAtZGlzYWJsZWQtYmcpO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1hY3RpdmUtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbn1cbi5saXN0LWdyb3VwLWl0ZW0gKyAubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0gKyAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci13aWR0aCkpO1xuICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci13aWR0aCk7XG59XG5cbi5saXN0LWdyb3VwLWhvcml6b250YWwge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbCA+IC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbCA+IC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbCA+IC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5saXN0LWdyb3VwLWhvcml6b250YWwgPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG4ubGlzdC1ncm91cC1ob3Jpem9udGFsID4gLmxpc3QtZ3JvdXAtaXRlbSArIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci13aWR0aCkpO1xuICBib3JkZXItbGVmdC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1zbSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXNtID4gLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtc20gPiAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1zbSA+IC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtc20gPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtc20gPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1tZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLW1kID4gLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbWQgPiAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1tZCA+IC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbWQgPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbWQgPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1sZyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLWxnID4gLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbGcgPiAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC1sZyA+IC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbGcgPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwtbGcgPiAubGlzdC1ncm91cC1pdGVtICsgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItd2lkdGgpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwteGwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLmxpc3QtZ3JvdXAtaG9yaXpvbnRhbC14bCA+IC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXhsID4gLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwteGwgPiAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXhsID4gLmxpc3QtZ3JvdXAtaXRlbSArIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXhsID4gLmxpc3QtZ3JvdXAtaXRlbSArIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKSk7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bCA+IC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnMtbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bCA+IC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bCA+IC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5saXN0LWdyb3VwLWhvcml6b250YWwteHhsID4gLmxpc3QtZ3JvdXAtaXRlbSArIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKTtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxuICAubGlzdC1ncm91cC1ob3Jpem9udGFsLXh4bCA+IC5saXN0LWdyb3VwLWl0ZW0gKyAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci13aWR0aCkpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiB2YXIoLS1icy1saXN0LWdyb3VwLWJvcmRlci13aWR0aCk7XG4gIH1cbn1cbi5saXN0LWdyb3VwLWZsdXNoIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5saXN0LWdyb3VwLWZsdXNoID4gLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGJvcmRlci13aWR0aDogMCAwIHZhcigtLWJzLWxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoKTtcbn1cbi5saXN0LWdyb3VwLWZsdXNoID4gLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1wcmltYXJ5IHtcbiAgLS1icy1saXN0LWdyb3VwLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5LXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYmc6IHZhcigtLWJzLXByaW1hcnktYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeS1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy1wcmltYXJ5LWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogdmFyKC0tYnMtcHJpbWFyeS1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeS1iZy1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJnOiB2YXIoLS1icy1wcmltYXJ5LXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeS10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnkge1xuICAtLWJzLWxpc3QtZ3JvdXAtY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1saXN0LWdyb3VwLWJnOiB2YXIoLS1icy1zZWNvbmRhcnktYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yOiB2YXIoLS1icy1lbXBoYXNpcy1jb2xvcik7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24taG92ZXItYmc6IHZhcigtLWJzLXNlY29uZGFyeS1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtY29sb3I6IHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtYmc6IHZhcigtLWJzLXNlY29uZGFyeS1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnLXN1YnRsZSk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3RpdmUtYmc6IHZhcigtLWJzLXNlY29uZGFyeS10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgLS1icy1saXN0LWdyb3VwLWNvbG9yOiB2YXIoLS1icy1zdWNjZXNzLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYmc6IHZhcigtLWJzLXN1Y2Nlc3MtYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy1zdWNjZXNzLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogdmFyKC0tYnMtc3VjY2Vzcy1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy1iZy1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJnOiB2YXIoLS1icy1zdWNjZXNzLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcbiAgLS1icy1saXN0LWdyb3VwLWNvbG9yOiB2YXIoLS1icy1pbmZvLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYmc6IHZhcigtLWJzLWluZm8tYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtaW5mby1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy1pbmZvLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogdmFyKC0tYnMtaW5mby1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtaW5mby1iZy1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJnOiB2YXIoLS1icy1pbmZvLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtaW5mby10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcbiAgLS1icy1saXN0LWdyb3VwLWNvbG9yOiB2YXIoLS1icy13YXJuaW5nLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYmc6IHZhcigtLWJzLXdhcm5pbmctYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtd2FybmluZy1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy13YXJuaW5nLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogdmFyKC0tYnMtd2FybmluZy1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtd2FybmluZy1iZy1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJnOiB2YXIoLS1icy13YXJuaW5nLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtd2FybmluZy10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICAtLWJzLWxpc3QtZ3JvdXAtY29sb3I6IHZhcigtLWJzLWRhbmdlci10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1saXN0LWdyb3VwLWJnOiB2YXIoLS1icy1kYW5nZXItYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtZGFuZ2VyLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWNvbG9yOiB2YXIoLS1icy1lbXBoYXNpcy1jb2xvcik7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24taG92ZXItYmc6IHZhcigtLWJzLWRhbmdlci1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtY29sb3I6IHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtYmc6IHZhcigtLWJzLWRhbmdlci1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZGFuZ2VyLWJnLXN1YnRsZSk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3RpdmUtYmc6IHZhcigtLWJzLWRhbmdlci10ZXh0LWVtcGhhc2lzKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcigtLWJzLWRhbmdlci10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1saWdodCB7XG4gIC0tYnMtbGlzdC1ncm91cC1jb2xvcjogdmFyKC0tYnMtbGlnaHQtdGV4dC1lbXBoYXNpcyk7XG4gIC0tYnMtbGlzdC1ncm91cC1iZzogdmFyKC0tYnMtbGlnaHQtYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtbGlnaHQtYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24taG92ZXItY29sb3I6IHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1iZzogdmFyKC0tYnMtbGlnaHQtYm9yZGVyLXN1YnRsZSk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWNvbG9yOiB2YXIoLS1icy1lbXBoYXNpcy1jb2xvcik7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnOiB2YXIoLS1icy1saWdodC1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtbGlnaHQtYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1iZzogdmFyKC0tYnMtbGlnaHQtdGV4dC1lbXBoYXNpcyk7XG4gIC0tYnMtbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1saWdodC10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYXJrIHtcbiAgLS1icy1saXN0LWdyb3VwLWNvbG9yOiB2YXIoLS1icy1kYXJrLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYmc6IHZhcigtLWJzLWRhcmstYmctc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtZGFyay1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWhvdmVyLWJnOiB2YXIoLS1icy1kYXJrLWJvcmRlci1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1iZzogdmFyKC0tYnMtZGFyay1ib3JkZXItc3VidGxlKTtcbiAgLS1icy1saXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtZGFyay1iZy1zdWJ0bGUpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJnOiB2YXIoLS1icy1kYXJrLXRleHQtZW1waGFzaXMpO1xuICAtLWJzLWxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtZGFyay10ZXh0LWVtcGhhc2lzKTtcbn1cblxuLmJ0bi1jbG9zZSB7XG4gIC0tYnMtYnRuLWNsb3NlLWNvbG9yOiAjMDAwO1xuICAtLWJzLWJ0bi1jbG9zZS1iZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nJTIzMDAwJyUzZSUzY3BhdGggZD0nTS4yOTMuMjkzYTEgMSAwIDAgMSAxLjQxNCAwTDggNi41ODYgMTQuMjkzLjI5M2ExIDEgMCAxIDEgMS40MTQgMS40MTRMOS40MTQgOGw2LjI5MyA2LjI5M2ExIDEgMCAwIDEtMS40MTQgMS40MTRMOCA5LjQxNGwtNi4yOTMgNi4yOTNhMSAxIDAgMCAxLTEuNDE0LTEuNDE0TDYuNTg2IDggLjI5MyAxLjcwN2ExIDEgMCAwIDEgMC0xLjQxNHonLyUzZSUzYy9zdmclM2VcIik7XG4gIC0tYnMtYnRuLWNsb3NlLW9wYWNpdHk6IDAuNTtcbiAgLS1icy1idG4tY2xvc2UtaG92ZXItb3BhY2l0eTogMC43NTtcbiAgLS1icy1idG4tY2xvc2UtZm9jdXMtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEoMTMsIDExMCwgMjUzLCAwLjI1KTtcbiAgLS1icy1idG4tY2xvc2UtZm9jdXMtb3BhY2l0eTogMTtcbiAgLS1icy1idG4tY2xvc2UtZGlzYWJsZWQtb3BhY2l0eTogMC4yNTtcbiAgLS1icy1idG4tY2xvc2Utd2hpdGUtZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoMjAwJSk7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgcGFkZGluZzogMC4yNWVtIDAuMjVlbTtcbiAgY29sb3I6IHZhcigtLWJzLWJ0bi1jbG9zZS1jb2xvcik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHZhcigtLWJzLWJ0bi1jbG9zZS1iZykgY2VudGVyLzFlbSBhdXRvIG5vLXJlcGVhdDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgb3BhY2l0eTogdmFyKC0tYnMtYnRuLWNsb3NlLW9wYWNpdHkpO1xufVxuLmJ0bi1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1icy1idG4tY2xvc2UtY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IHZhcigtLWJzLWJ0bi1jbG9zZS1ob3Zlci1vcGFjaXR5KTtcbn1cbi5idG4tY2xvc2U6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1idG4tY2xvc2UtZm9jdXMtc2hhZG93KTtcbiAgb3BhY2l0eTogdmFyKC0tYnMtYnRuLWNsb3NlLWZvY3VzLW9wYWNpdHkpO1xufVxuLmJ0bi1jbG9zZTpkaXNhYmxlZCwgLmJ0bi1jbG9zZS5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgb3BhY2l0eTogdmFyKC0tYnMtYnRuLWNsb3NlLWRpc2FibGVkLW9wYWNpdHkpO1xufVxuXG4uYnRuLWNsb3NlLXdoaXRlIHtcbiAgZmlsdGVyOiB2YXIoLS1icy1idG4tY2xvc2Utd2hpdGUtZmlsdGVyKTtcbn1cblxuW2RhdGEtYnMtdGhlbWU9ZGFya10gLmJ0bi1jbG9zZSB7XG4gIGZpbHRlcjogdmFyKC0tYnMtYnRuLWNsb3NlLXdoaXRlLWZpbHRlcik7XG59XG5cbi50b2FzdCB7XG4gIC0tYnMtdG9hc3QtemluZGV4OiAxMDkwO1xuICAtLWJzLXRvYXN0LXBhZGRpbmcteDogMC43NXJlbTtcbiAgLS1icy10b2FzdC1wYWRkaW5nLXk6IDAuNXJlbTtcbiAgLS1icy10b2FzdC1zcGFjaW5nOiAxLjVyZW07XG4gIC0tYnMtdG9hc3QtbWF4LXdpZHRoOiAzNTBweDtcbiAgLS1icy10b2FzdC1mb250LXNpemU6IDAuODc1cmVtO1xuICAtLWJzLXRvYXN0LWNvbG9yOiA7XG4gIC0tYnMtdG9hc3QtYmc6IHJnYmEodmFyKC0tYnMtYm9keS1iZy1yZ2IpLCAwLjg1KTtcbiAgLS1icy10b2FzdC1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtdG9hc3QtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICAtLWJzLXRvYXN0LWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICAtLWJzLXRvYXN0LWJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpO1xuICAtLWJzLXRvYXN0LWhlYWRlci1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTtcbiAgLS1icy10b2FzdC1oZWFkZXItYmc6IHJnYmEodmFyKC0tYnMtYm9keS1iZy1yZ2IpLCAwLjg1KTtcbiAgLS1icy10b2FzdC1oZWFkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICB3aWR0aDogdmFyKC0tYnMtdG9hc3QtbWF4LXdpZHRoKTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHZhcigtLWJzLXRvYXN0LWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiB2YXIoLS1icy10b2FzdC1jb2xvcik7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy10b2FzdC1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogdmFyKC0tYnMtdG9hc3QtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy10b2FzdC1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy10b2FzdC1ib3gtc2hhZG93KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtdG9hc3QtYm9yZGVyLXJhZGl1cyk7XG59XG4udG9hc3Quc2hvd2luZyB7XG4gIG9wYWNpdHk6IDA7XG59XG4udG9hc3Q6bm90KC5zaG93KSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50b2FzdC1jb250YWluZXIge1xuICAtLWJzLXRvYXN0LXppbmRleDogMTA5MDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiB2YXIoLS1icy10b2FzdC16aW5kZXgpO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udG9hc3QtY29udGFpbmVyID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1icy10b2FzdC1zcGFjaW5nKTtcbn1cblxuLnRvYXN0LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLWJzLXRvYXN0LXBhZGRpbmcteSkgdmFyKC0tYnMtdG9hc3QtcGFkZGluZy14KTtcbiAgY29sb3I6IHZhcigtLWJzLXRvYXN0LWhlYWRlci1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXRvYXN0LWhlYWRlci1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlci1ib3R0b206IHZhcigtLWJzLXRvYXN0LWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtdG9hc3QtaGVhZGVyLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tYnMtdG9hc3QtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1icy10b2FzdC1ib3JkZXItd2lkdGgpKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGModmFyKC0tYnMtdG9hc3QtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1icy10b2FzdC1ib3JkZXItd2lkdGgpKTtcbn1cbi50b2FzdC1oZWFkZXIgLmJ0bi1jbG9zZSB7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMC41ICogdmFyKC0tYnMtdG9hc3QtcGFkZGluZy14KSk7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1icy10b2FzdC1wYWRkaW5nLXgpO1xufVxuXG4udG9hc3QtYm9keSB7XG4gIHBhZGRpbmc6IHZhcigtLWJzLXRvYXN0LXBhZGRpbmcteCk7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm1vZGFsIHtcbiAgLS1icy1tb2RhbC16aW5kZXg6IDEwNTU7XG4gIC0tYnMtbW9kYWwtd2lkdGg6IDUwMHB4O1xuICAtLWJzLW1vZGFsLXBhZGRpbmc6IDFyZW07XG4gIC0tYnMtbW9kYWwtbWFyZ2luOiAwLjVyZW07XG4gIC0tYnMtbW9kYWwtY29sb3I6IDtcbiAgLS1icy1tb2RhbC1iZzogdmFyKC0tYnMtYm9keS1iZyk7XG4gIC0tYnMtbW9kYWwtYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICAtLWJzLW1vZGFsLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1tb2RhbC1ib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbiAgLS1icy1tb2RhbC1ib3gtc2hhZG93OiB2YXIoLS1icy1ib3gtc2hhZG93LXNtKTtcbiAgLS1icy1tb2RhbC1pbm5lci1ib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpIC0gKHZhcigtLWJzLWJvcmRlci13aWR0aCkpKTtcbiAgLS1icy1tb2RhbC1oZWFkZXItcGFkZGluZy14OiAxcmVtO1xuICAtLWJzLW1vZGFsLWhlYWRlci1wYWRkaW5nLXk6IDFyZW07XG4gIC0tYnMtbW9kYWwtaGVhZGVyLXBhZGRpbmc6IDFyZW0gMXJlbTtcbiAgLS1icy1tb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICAtLWJzLW1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ6IDEuNTtcbiAgLS1icy1tb2RhbC1mb290ZXItZ2FwOiAwLjVyZW07XG4gIC0tYnMtbW9kYWwtZm9vdGVyLWJnOiA7XG4gIC0tYnMtbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgLS1icy1tb2RhbC1mb290ZXItYm9yZGVyLXdpZHRoOiB2YXIoLS1icy1ib3JkZXItd2lkdGgpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogdmFyKC0tYnMtbW9kYWwtemluZGV4KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiB2YXIoLS1icy1tb2RhbC1tYXJnaW4pO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwcHgpO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLm1vZGFsLnNob3cgLm1vZGFsLWRpYWxvZyB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5tb2RhbC5tb2RhbC1zdGF0aWMgLm1vZGFsLWRpYWxvZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG59XG5cbi5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tYnMtbW9kYWwtbWFyZ2luKSAqIDIpO1xufVxuLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlIC5tb2RhbC1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSAubW9kYWwtYm9keSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tb2RhbC1kaWFsb2ctY2VudGVyZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1icy1tb2RhbC1tYXJnaW4pICogMik7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHZhcigtLWJzLW1vZGFsLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLW1vZGFsLWJnKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiB2YXIoLS1icy1tb2RhbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW1vZGFsLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXMpO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubW9kYWwtYmFja2Ryb3Age1xuICAtLWJzLWJhY2tkcm9wLXppbmRleDogMTA1MDtcbiAgLS1icy1iYWNrZHJvcC1iZzogIzAwMDtcbiAgLS1icy1iYWNrZHJvcC1vcGFjaXR5OiAwLjU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiB2YXIoLS1icy1iYWNrZHJvcC16aW5kZXgpO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWJhY2tkcm9wLWJnKTtcbn1cbi5tb2RhbC1iYWNrZHJvcC5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5tb2RhbC1iYWNrZHJvcC5zaG93IHtcbiAgb3BhY2l0eTogdmFyKC0tYnMtYmFja2Ryb3Atb3BhY2l0eSk7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiB2YXIoLS1icy1tb2RhbC1oZWFkZXItcGFkZGluZyk7XG4gIGJvcmRlci1ib3R0b206IHZhcigtLWJzLW1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1tb2RhbC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLW1vZGFsLWlubmVyLWJvcmRlci1yYWRpdXMpO1xufVxuLm1vZGFsLWhlYWRlciAuYnRuLWNsb3NlIHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1icy1tb2RhbC1oZWFkZXItcGFkZGluZy15KSAqIDAuNSkgY2FsYyh2YXIoLS1icy1tb2RhbC1oZWFkZXItcGFkZGluZy14KSAqIDAuNSk7XG4gIG1hcmdpbjogY2FsYygtMC41ICogdmFyKC0tYnMtbW9kYWwtaGVhZGVyLXBhZGRpbmcteSkpIGNhbGMoLTAuNSAqIHZhcigtLWJzLW1vZGFsLWhlYWRlci1wYWRkaW5nLXgpKSBjYWxjKC0wLjUgKiB2YXIoLS1icy1tb2RhbC1oZWFkZXItcGFkZGluZy15KSkgYXV0bztcbn1cblxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWJzLW1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0KTtcbn1cblxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1icy1tb2RhbC1wYWRkaW5nKTtcbn1cblxuLm1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYnMtbW9kYWwtcGFkZGluZykgLSB2YXIoLS1icy1tb2RhbC1mb290ZXItZ2FwKSAqIDAuNSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLW1vZGFsLWZvb3Rlci1iZyk7XG4gIGJvcmRlci10b3A6IHZhcigtLWJzLW1vZGFsLWZvb3Rlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtbW9kYWwtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLW1vZGFsLWlubmVyLWJvcmRlci1yYWRpdXMpO1xufVxuLm1vZGFsLWZvb3RlciA+ICoge1xuICBtYXJnaW46IGNhbGModmFyKC0tYnMtbW9kYWwtZm9vdGVyLWdhcCkgKiAwLjUpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm1vZGFsIHtcbiAgICAtLWJzLW1vZGFsLW1hcmdpbjogMS43NXJlbTtcbiAgICAtLWJzLW1vZGFsLWJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpO1xuICB9XG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIG1heC13aWR0aDogdmFyKC0tYnMtbW9kYWwtd2lkdGgpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICAubW9kYWwtc20ge1xuICAgIC0tYnMtbW9kYWwtd2lkdGg6IDMwMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnLFxuICAubW9kYWwteGwge1xuICAgIC0tYnMtbW9kYWwtd2lkdGg6IDgwMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5tb2RhbC14bCB7XG4gICAgLS1icy1tb2RhbC13aWR0aDogMTE0MHB4O1xuICB9XG59XG4ubW9kYWwtZnVsbHNjcmVlbiB7XG4gIHdpZHRoOiAxMDB2dztcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cbi5tb2RhbC1mdWxsc2NyZWVuIC5tb2RhbC1jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ubW9kYWwtZnVsbHNjcmVlbiAubW9kYWwtaGVhZGVyLFxuLm1vZGFsLWZ1bGxzY3JlZW4gLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ubW9kYWwtZnVsbHNjcmVlbiAubW9kYWwtYm9keSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAubW9kYWwtZnVsbHNjcmVlbi1zbS1kb3duIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm1vZGFsLWZ1bGxzY3JlZW4tc20tZG93biAubW9kYWwtY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLXNtLWRvd24gLm1vZGFsLWhlYWRlcixcbiAgLm1vZGFsLWZ1bGxzY3JlZW4tc20tZG93biAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLXNtLWRvd24gLm1vZGFsLWJvZHkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAubW9kYWwtZnVsbHNjcmVlbi1tZC1kb3duIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm1vZGFsLWZ1bGxzY3JlZW4tbWQtZG93biAubW9kYWwtY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLW1kLWRvd24gLm1vZGFsLWhlYWRlcixcbiAgLm1vZGFsLWZ1bGxzY3JlZW4tbWQtZG93biAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLW1kLWRvd24gLm1vZGFsLWJvZHkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAubW9kYWwtZnVsbHNjcmVlbi1sZy1kb3duIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm1vZGFsLWZ1bGxzY3JlZW4tbGctZG93biAubW9kYWwtY29udGVudCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd24gLm1vZGFsLWhlYWRlcixcbiAgLm1vZGFsLWZ1bGxzY3JlZW4tbGctZG93biAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd24gLm1vZGFsLWJvZHkge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLm1vZGFsLWZ1bGxzY3JlZW4teGwtZG93biB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLXhsLWRvd24gLm1vZGFsLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAubW9kYWwtZnVsbHNjcmVlbi14bC1kb3duIC5tb2RhbC1oZWFkZXIsXG4gIC5tb2RhbC1mdWxsc2NyZWVuLXhsLWRvd24gLm1vZGFsLWZvb3RlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAubW9kYWwtZnVsbHNjcmVlbi14bC1kb3duIC5tb2RhbC1ib2R5IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTM5OS45OHB4KSB7XG4gIC5tb2RhbC1mdWxsc2NyZWVuLXh4bC1kb3duIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm1vZGFsLWZ1bGxzY3JlZW4teHhsLWRvd24gLm1vZGFsLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAubW9kYWwtZnVsbHNjcmVlbi14eGwtZG93biAubW9kYWwtaGVhZGVyLFxuICAubW9kYWwtZnVsbHNjcmVlbi14eGwtZG93biAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gIC5tb2RhbC1mdWxsc2NyZWVuLXh4bC1kb3duIC5tb2RhbC1ib2R5IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG4udG9vbHRpcCB7XG4gIC0tYnMtdG9vbHRpcC16aW5kZXg6IDEwODA7XG4gIC0tYnMtdG9vbHRpcC1tYXgtd2lkdGg6IDIwMHB4O1xuICAtLWJzLXRvb2x0aXAtcGFkZGluZy14OiAwLjVyZW07XG4gIC0tYnMtdG9vbHRpcC1wYWRkaW5nLXk6IDAuMjVyZW07XG4gIC0tYnMtdG9vbHRpcC1tYXJnaW46IDtcbiAgLS1icy10b29sdGlwLWZvbnQtc2l6ZTogMC44NzVyZW07XG4gIC0tYnMtdG9vbHRpcC1jb2xvcjogdmFyKC0tYnMtYm9keS1iZyk7XG4gIC0tYnMtdG9vbHRpcC1iZzogdmFyKC0tYnMtZW1waGFzaXMtY29sb3IpO1xuICAtLWJzLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cyk7XG4gIC0tYnMtdG9vbHRpcC1vcGFjaXR5OiAwLjk7XG4gIC0tYnMtdG9vbHRpcC1hcnJvdy13aWR0aDogMC44cmVtO1xuICAtLWJzLXRvb2x0aXAtYXJyb3ctaGVpZ2h0OiAwLjRyZW07XG4gIHotaW5kZXg6IHZhcigtLWJzLXRvb2x0aXAtemluZGV4KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogdmFyKC0tYnMtdG9vbHRpcC1tYXJnaW4pO1xuICBmb250LWZhbWlseTogdmFyKC0tYnMtZm9udC1zYW5zLXNlcmlmKTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGZvbnQtc2l6ZTogdmFyKC0tYnMtdG9vbHRpcC1mb250LXNpemUpO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG9wYWNpdHk6IDA7XG59XG4udG9vbHRpcC5zaG93IHtcbiAgb3BhY2l0eTogdmFyKC0tYnMtdG9vbHRpcC1vcGFjaXR5KTtcbn1cbi50b29sdGlwIC50b29sdGlwLWFycm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB2YXIoLS1icy10b29sdGlwLWFycm93LXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1icy10b29sdGlwLWFycm93LWhlaWdodCk7XG59XG4udG9vbHRpcCAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4uYnMtdG9vbHRpcC10b3AgLnRvb2x0aXAtYXJyb3csIC5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdIC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiBjYWxjKC0xICogdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy1oZWlnaHQpKTtcbn1cbi5icy10b29sdGlwLXRvcCAudG9vbHRpcC1hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49dG9wXSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgdG9wOiAtMXB4O1xuICBib3JkZXItd2lkdGg6IHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctaGVpZ2h0KSBjYWxjKHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctd2lkdGgpICogMC41KSAwO1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1icy10b29sdGlwLWJnKTtcbn1cblxuLyogcnRsOmJlZ2luOmlnbm9yZSAqL1xuLmJzLXRvb2x0aXAtZW5kIC50b29sdGlwLWFycm93LCAuYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49cmlnaHRdIC50b29sdGlwLWFycm93IHtcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctaGVpZ2h0KSk7XG4gIHdpZHRoOiB2YXIoLS1icy10b29sdGlwLWFycm93LWhlaWdodCk7XG4gIGhlaWdodDogdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy13aWR0aCk7XG59XG4uYnMtdG9vbHRpcC1lbmQgLnRvb2x0aXAtYXJyb3c6OmJlZm9yZSwgLmJzLXRvb2x0aXAtYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXJpZ2h0XSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgcmlnaHQ6IC0xcHg7XG4gIGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1icy10b29sdGlwLWFycm93LXdpZHRoKSAqIDAuNSkgdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy1oZWlnaHQpIGNhbGModmFyKC0tYnMtdG9vbHRpcC1hcnJvdy13aWR0aCkgKiAwLjUpIDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tYnMtdG9vbHRpcC1iZyk7XG59XG5cbi8qIHJ0bDplbmQ6aWdub3JlICovXG4uYnMtdG9vbHRpcC1ib3R0b20gLnRvb2x0aXAtYXJyb3csIC5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dIC50b29sdGlwLWFycm93IHtcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy1oZWlnaHQpKTtcbn1cbi5icy10b29sdGlwLWJvdHRvbSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlLCAuYnMtdG9vbHRpcC1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgYm90dG9tOiAtMXB4O1xuICBib3JkZXItd2lkdGg6IDAgY2FsYyh2YXIoLS1icy10b29sdGlwLWFycm93LXdpZHRoKSAqIDAuNSkgdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy1oZWlnaHQpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1icy10b29sdGlwLWJnKTtcbn1cblxuLyogcnRsOmJlZ2luOmlnbm9yZSAqL1xuLmJzLXRvb2x0aXAtc3RhcnQgLnRvb2x0aXAtYXJyb3csIC5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSAudG9vbHRpcC1hcnJvdyB7XG4gIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tYnMtdG9vbHRpcC1hcnJvdy1oZWlnaHQpKTtcbiAgd2lkdGg6IHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctaGVpZ2h0KTtcbiAgaGVpZ2h0OiB2YXIoLS1icy10b29sdGlwLWFycm93LXdpZHRoKTtcbn1cbi5icy10b29sdGlwLXN0YXJ0IC50b29sdGlwLWFycm93OjpiZWZvcmUsIC5icy10b29sdGlwLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSAudG9vbHRpcC1hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogLTFweDtcbiAgYm9yZGVyLXdpZHRoOiBjYWxjKHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctd2lkdGgpICogMC41KSAwIGNhbGModmFyKC0tYnMtdG9vbHRpcC1hcnJvdy13aWR0aCkgKiAwLjUpIHZhcigtLWJzLXRvb2x0aXAtYXJyb3ctaGVpZ2h0KTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWJzLXRvb2x0aXAtYmcpO1xufVxuXG4vKiBydGw6ZW5kOmlnbm9yZSAqL1xuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IHZhcigtLWJzLXRvb2x0aXAtbWF4LXdpZHRoKTtcbiAgcGFkZGluZzogdmFyKC0tYnMtdG9vbHRpcC1wYWRkaW5nLXkpIHZhcigtLWJzLXRvb2x0aXAtcGFkZGluZy14KTtcbiAgY29sb3I6IHZhcigtLWJzLXRvb2x0aXAtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXRvb2x0aXAtYmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xufVxuXG4ucG9wb3ZlciB7XG4gIC0tYnMtcG9wb3Zlci16aW5kZXg6IDEwNzA7XG4gIC0tYnMtcG9wb3Zlci1tYXgtd2lkdGg6IDI3NnB4O1xuICAtLWJzLXBvcG92ZXItZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLS1icy1wb3BvdmVyLWJnOiB2YXIoLS1icy1ib2R5LWJnKTtcbiAgLS1icy1wb3BvdmVyLWJvcmRlci13aWR0aDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKTtcbiAgLS1icy1wb3BvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yLXRyYW5zbHVjZW50KTtcbiAgLS1icy1wb3BvdmVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpO1xuICAtLWJzLXBvcG92ZXItaW5uZXItYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKSAtIHZhcigtLWJzLWJvcmRlci13aWR0aCkpO1xuICAtLWJzLXBvcG92ZXItYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdyk7XG4gIC0tYnMtcG9wb3Zlci1oZWFkZXItcGFkZGluZy14OiAxcmVtO1xuICAtLWJzLXBvcG92ZXItaGVhZGVyLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWJzLXBvcG92ZXItaGVhZGVyLWZvbnQtc2l6ZTogMXJlbTtcbiAgLS1icy1wb3BvdmVyLWhlYWRlci1jb2xvcjogaW5oZXJpdDtcbiAgLS1icy1wb3BvdmVyLWhlYWRlci1iZzogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnKTtcbiAgLS1icy1wb3BvdmVyLWJvZHktcGFkZGluZy14OiAxcmVtO1xuICAtLWJzLXBvcG92ZXItYm9keS1wYWRkaW5nLXk6IDFyZW07XG4gIC0tYnMtcG9wb3Zlci1ib2R5LWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgLS1icy1wb3BvdmVyLWFycm93LXdpZHRoOiAxcmVtO1xuICAtLWJzLXBvcG92ZXItYXJyb3ctaGVpZ2h0OiAwLjVyZW07XG4gIC0tYnMtcG9wb3Zlci1hcnJvdy1ib3JkZXI6IHZhcigtLWJzLXBvcG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgei1pbmRleDogdmFyKC0tYnMtcG9wb3Zlci16aW5kZXgpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiB2YXIoLS1icy1wb3BvdmVyLW1heC13aWR0aCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1icy1mb250LXNhbnMtc2VyaWYpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgZm9udC1zaXplOiB2YXIoLS1icy1wb3BvdmVyLWZvbnQtc2l6ZSk7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1iZyk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLXBvcG92ZXItYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItcmFkaXVzKTtcbn1cbi5wb3BvdmVyIC5wb3BvdmVyLWFycm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCk7XG59XG4ucG9wb3ZlciAucG9wb3Zlci1hcnJvdzo6YmVmb3JlLCAucG9wb3ZlciAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5icy1wb3BvdmVyLXRvcCA+IC5wb3BvdmVyLWFycm93LCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49dG9wXSA+IC5wb3BvdmVyLWFycm93IHtcbiAgYm90dG9tOiBjYWxjKC0xICogKHZhcigtLWJzLXBvcG92ZXItYXJyb3ctaGVpZ2h0KSkgLSB2YXIoLS1icy1wb3BvdmVyLWJvcmRlci13aWR0aCkpO1xufVxuLmJzLXBvcG92ZXItdG9wID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePXRvcF0gPiAucG9wb3Zlci1hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci10b3AgPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCkgY2FsYyh2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKSAqIDAuNSkgMDtcbn1cbi5icy1wb3BvdmVyLXRvcCA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSB7XG4gIGJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1hcnJvdy1ib3JkZXIpO1xufVxuLmJzLXBvcG92ZXItdG9wID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49dG9wXSA+IC5wb3BvdmVyLWFycm93OjphZnRlciB7XG4gIGJvdHRvbTogdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpO1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1icy1wb3BvdmVyLWJnKTtcbn1cblxuLyogcnRsOmJlZ2luOmlnbm9yZSAqL1xuLmJzLXBvcG92ZXItZW5kID4gLnBvcG92ZXItYXJyb3csIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0gPiAucG9wb3Zlci1hcnJvdyB7XG4gIGxlZnQ6IGNhbGMoLTEgKiAodmFyKC0tYnMtcG9wb3Zlci1hcnJvdy1oZWlnaHQpKSAtIHZhcigtLWJzLXBvcG92ZXItYm9yZGVyLXdpZHRoKSk7XG4gIHdpZHRoOiB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCk7XG4gIGhlaWdodDogdmFyKC0tYnMtcG9wb3Zlci1hcnJvdy13aWR0aCk7XG59XG4uYnMtcG9wb3Zlci1lbmQgPiAucG9wb3Zlci1hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49cmlnaHRdID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItZW5kID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49cmlnaHRdID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiBjYWxjKHZhcigtLWJzLXBvcG92ZXItYXJyb3ctd2lkdGgpICogMC41KSB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCkgY2FsYyh2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKSAqIDAuNSkgMDtcbn1cbi5icy1wb3BvdmVyLWVuZCA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0gPiAucG9wb3Zlci1hcnJvdzo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1icy1wb3BvdmVyLWFycm93LWJvcmRlcik7XG59XG4uYnMtcG9wb3Zlci1lbmQgPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1yaWdodF0gPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIge1xuICBsZWZ0OiB2YXIoLS1icy1wb3BvdmVyLWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1iZyk7XG59XG5cbi8qIHJ0bDplbmQ6aWdub3JlICovXG4uYnMtcG9wb3Zlci1ib3R0b20gPiAucG9wb3Zlci1hcnJvdywgLmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0gPiAucG9wb3Zlci1hcnJvdyB7XG4gIHRvcDogY2FsYygtMSAqICh2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCkpIC0gdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpKTtcbn1cbi5icy1wb3BvdmVyLWJvdHRvbSA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYm90dG9tID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSA+IC5wb3BvdmVyLWFycm93OjphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMCBjYWxjKHZhcigtLWJzLXBvcG92ZXItYXJyb3ctd2lkdGgpICogMC41KSB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCk7XG59XG4uYnMtcG9wb3Zlci1ib3R0b20gPiAucG9wb3Zlci1hcnJvdzo6YmVmb3JlLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49Ym90dG9tXSA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJzLXBvcG92ZXItYXJyb3ctYm9yZGVyKTtcbn1cbi5icy1wb3BvdmVyLWJvdHRvbSA+IC5wb3BvdmVyLWFycm93OjphZnRlciwgLmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWJvdHRvbV0gPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIge1xuICB0b3A6IHZhcigtLWJzLXBvcG92ZXItYm9yZGVyLXdpZHRoKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1iZyk7XG59XG4uYnMtcG9wb3Zlci1ib3R0b20gLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1ib3R0b21dIC5wb3BvdmVyLWhlYWRlcjo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoLTAuNSAqIHZhcigtLWJzLXBvcG92ZXItYXJyb3ctd2lkdGgpKTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLXBvcG92ZXItaGVhZGVyLWJnKTtcbn1cblxuLyogcnRsOmJlZ2luOmlnbm9yZSAqL1xuLmJzLXBvcG92ZXItc3RhcnQgPiAucG9wb3Zlci1hcnJvdywgLmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWxlZnRdID4gLnBvcG92ZXItYXJyb3cge1xuICByaWdodDogY2FsYygtMSAqICh2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCkpIC0gdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpKTtcbiAgd2lkdGg6IHZhcigtLWJzLXBvcG92ZXItYXJyb3ctaGVpZ2h0KTtcbiAgaGVpZ2h0OiB2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKTtcbn1cbi5icy1wb3BvdmVyLXN0YXJ0ID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItYXV0b1tkYXRhLXBvcHBlci1wbGFjZW1lbnRePWxlZnRdID4gLnBvcG92ZXItYXJyb3c6OmJlZm9yZSwgLmJzLXBvcG92ZXItc3RhcnQgPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSA+IC5wb3BvdmVyLWFycm93OjphZnRlciB7XG4gIGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1icy1wb3BvdmVyLWFycm93LXdpZHRoKSAqIDAuNSkgMCBjYWxjKHZhcigtLWJzLXBvcG92ZXItYXJyb3ctd2lkdGgpICogMC41KSB2YXIoLS1icy1wb3BvdmVyLWFycm93LWhlaWdodCk7XG59XG4uYnMtcG9wb3Zlci1zdGFydCA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUsIC5icy1wb3BvdmVyLWF1dG9bZGF0YS1wb3BwZXItcGxhY2VtZW50Xj1sZWZ0XSA+IC5wb3BvdmVyLWFycm93OjpiZWZvcmUge1xuICByaWdodDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWJzLXBvcG92ZXItYXJyb3ctYm9yZGVyKTtcbn1cbi5icy1wb3BvdmVyLXN0YXJ0ID4gLnBvcG92ZXItYXJyb3c6OmFmdGVyLCAuYnMtcG9wb3Zlci1hdXRvW2RhdGEtcG9wcGVyLXBsYWNlbWVudF49bGVmdF0gPiAucG9wb3Zlci1hcnJvdzo6YWZ0ZXIge1xuICByaWdodDogdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItd2lkdGgpO1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1iZyk7XG59XG5cbi8qIHJ0bDplbmQ6aWdub3JlICovXG4ucG9wb3Zlci1oZWFkZXIge1xuICBwYWRkaW5nOiB2YXIoLS1icy1wb3BvdmVyLWhlYWRlci1wYWRkaW5nLXkpIHZhcigtLWJzLXBvcG92ZXItaGVhZGVyLXBhZGRpbmcteCk7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYnMtcG9wb3Zlci1oZWFkZXItZm9udC1zaXplKTtcbiAgY29sb3I6IHZhcigtLWJzLXBvcG92ZXItaGVhZGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcG9wb3Zlci1oZWFkZXItYmcpO1xuICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1wb3BvdmVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtcG9wb3Zlci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1wb3BvdmVyLWlubmVyLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtcG9wb3Zlci1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cbi5wb3BvdmVyLWhlYWRlcjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wb3BvdmVyLWJvZHkge1xuICBwYWRkaW5nOiB2YXIoLS1icy1wb3BvdmVyLWJvZHktcGFkZGluZy15KSB2YXIoLS1icy1wb3BvdmVyLWJvZHktcGFkZGluZy14KTtcbiAgY29sb3I6IHZhcigtLWJzLXBvcG92ZXItYm9keS1jb2xvcik7XG59XG5cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsLnBvaW50ZXItZXZlbnQge1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNhcm91c2VsLWlubmVyOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNhcm91c2VsLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jYXJvdXNlbC1pdGVtIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbi5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJvdXNlbC1pdGVtLW5leHQ6bm90KC5jYXJvdXNlbC1pdGVtLXN0YXJ0KSxcbi5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1lbmQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG5cbi5jYXJvdXNlbC1pdGVtLXByZXY6bm90KC5jYXJvdXNlbC1pdGVtLWVuZCksXG4uYWN0aXZlLmNhcm91c2VsLWl0ZW0tc3RhcnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbi5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1zdGFydCxcbi5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1lbmQge1xuICB6LWluZGV4OiAxO1xuICBvcGFjaXR5OiAxO1xufVxuLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXN0YXJ0LFxuLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWVuZCB7XG4gIHotaW5kZXg6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMHMgMC42cztcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1zdGFydCxcbiAgLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWVuZCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTUlO1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wtcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLmNhcm91c2VsLWNvbnRyb2wtcHJldjpob3ZlciwgLmNhcm91c2VsLWNvbnRyb2wtcHJldjpmb2N1cyxcbi5jYXJvdXNlbC1jb250cm9sLW5leHQ6aG92ZXIsXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0OmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2IHtcbiAgbGVmdDogMDtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHJpZ2h0OiAwO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG59XG5cbi8qIHJ0bDpvcHRpb25zOiB7XG4gIFwiYXV0b1JlbmFtZVwiOiB0cnVlLFxuICBcInN0cmluZ01hcFwiOlsge1xuICAgIFwibmFtZVwiICAgIDogXCJwcmV2LW5leHRcIixcbiAgICBcInNlYXJjaFwiICA6IFwicHJldlwiLFxuICAgIFwicmVwbGFjZVwiIDogXCJuZXh0XCJcbiAgfSBdXG59ICovXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSclMjNmZmYnJTNlJTNjcGF0aCBkPSdNMTEuMzU0IDEuNjQ2YS41LjUgMCAwIDEgMCAuNzA4TDUuNzA3IDhsNS42NDcgNS42NDZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtNi02YS41LjUgMCAwIDEgMC0uNzA4bDYtNmEuNS41IDAgMCAxIC43MDggMHonLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9JyUyM2ZmZiclM2UlM2NwYXRoIGQ9J000LjY0NiAxLjY0NmEuNS41IDAgMCAxIC43MDggMGw2IDZhLjUuNSAwIDAgMSAwIC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDgtLjcwOEwxMC4yOTMgOCA0LjY0NiAyLjM1NGEuNS41IDAgMCAxIDAtLjcwOHonLyUzZSUzYy9zdmclM2VcIik7XG59XG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNSU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG1hcmdpbi1sZWZ0OiAxNSU7XG59XG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBbZGF0YS1icy10YXJnZXRdIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgZWFzZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jYXJvdXNlbC1pbmRpY2F0b3JzIFtkYXRhLWJzLXRhcmdldF0ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE1JTtcbiAgYm90dG9tOiAxLjI1cmVtO1xuICBsZWZ0OiAxNSU7XG4gIHBhZGRpbmctdG9wOiAxLjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNhcm91c2VsLWRhcmsgLmNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uLFxuLmNhcm91c2VsLWRhcmsgLmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uIHtcbiAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCk7XG59XG4uY2Fyb3VzZWwtZGFyayAuY2Fyb3VzZWwtaW5kaWNhdG9ycyBbZGF0YS1icy10YXJnZXRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbi5jYXJvdXNlbC1kYXJrIC5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbltkYXRhLWJzLXRoZW1lPWRhcmtdIC5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG5bZGF0YS1icy10aGVtZT1kYXJrXSAuY2Fyb3VzZWwgLmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uLCBbZGF0YS1icy10aGVtZT1kYXJrXS5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG5bZGF0YS1icy10aGVtZT1kYXJrXS5jYXJvdXNlbCAuY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBmaWx0ZXI6IGludmVydCgxKSBncmF5c2NhbGUoMTAwKTtcbn1cbltkYXRhLWJzLXRoZW1lPWRhcmtdIC5jYXJvdXNlbCAuY2Fyb3VzZWwtaW5kaWNhdG9ycyBbZGF0YS1icy10YXJnZXRdLCBbZGF0YS1icy10aGVtZT1kYXJrXS5jYXJvdXNlbCAuY2Fyb3VzZWwtaW5kaWNhdG9ycyBbZGF0YS1icy10YXJnZXRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cbltkYXRhLWJzLXRoZW1lPWRhcmtdIC5jYXJvdXNlbCAuY2Fyb3VzZWwtY2FwdGlvbiwgW2RhdGEtYnMtdGhlbWU9ZGFya10uY2Fyb3VzZWwgLmNhcm91c2VsLWNhcHRpb24ge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLnNwaW5uZXItZ3Jvdyxcbi5zcGlubmVyLWJvcmRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IHZhcigtLWJzLXNwaW5uZXItd2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLWJzLXNwaW5uZXItaGVpZ2h0KTtcbiAgdmVydGljYWwtYWxpZ246IHZhcigtLWJzLXNwaW5uZXItdmVydGljYWwtYWxpZ24pO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogdmFyKC0tYnMtc3Bpbm5lci1hbmltYXRpb24tc3BlZWQpIGxpbmVhciBpbmZpbml0ZSB2YXIoLS1icy1zcGlubmVyLWFuaW1hdGlvbi1uYW1lKTtcbn1cblxuQGtleWZyYW1lcyBzcGlubmVyLWJvcmRlciB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XG4gIH1cbn1cbi5zcGlubmVyLWJvcmRlciB7XG4gIC0tYnMtc3Bpbm5lci13aWR0aDogMnJlbTtcbiAgLS1icy1zcGlubmVyLWhlaWdodDogMnJlbTtcbiAgLS1icy1zcGlubmVyLXZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcbiAgLS1icy1zcGlubmVyLWJvcmRlci13aWR0aDogMC4yNWVtO1xuICAtLWJzLXNwaW5uZXItYW5pbWF0aW9uLXNwZWVkOiAwLjc1cztcbiAgLS1icy1zcGlubmVyLWFuaW1hdGlvbi1uYW1lOiBzcGlubmVyLWJvcmRlcjtcbiAgYm9yZGVyOiB2YXIoLS1icy1zcGlubmVyLWJvcmRlci13aWR0aCkgc29saWQgY3VycmVudGNvbG9yO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc3Bpbm5lci1ib3JkZXItc20ge1xuICAtLWJzLXNwaW5uZXItd2lkdGg6IDFyZW07XG4gIC0tYnMtc3Bpbm5lci1oZWlnaHQ6IDFyZW07XG4gIC0tYnMtc3Bpbm5lci1ib3JkZXItd2lkdGg6IDAuMmVtO1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW5uZXItZ3JvdyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cbi5zcGlubmVyLWdyb3cge1xuICAtLWJzLXNwaW5uZXItd2lkdGg6IDJyZW07XG4gIC0tYnMtc3Bpbm5lci1oZWlnaHQ6IDJyZW07XG4gIC0tYnMtc3Bpbm5lci12ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XG4gIC0tYnMtc3Bpbm5lci1hbmltYXRpb24tc3BlZWQ6IDAuNzVzO1xuICAtLWJzLXNwaW5uZXItYW5pbWF0aW9uLW5hbWU6IHNwaW5uZXItZ3JvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc3Bpbm5lci1ncm93LXNtIHtcbiAgLS1icy1zcGlubmVyLXdpZHRoOiAxcmVtO1xuICAtLWJzLXNwaW5uZXItaGVpZ2h0OiAxcmVtO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc3Bpbm5lci1ib3JkZXIsXG4gIC5zcGlubmVyLWdyb3cge1xuICAgIC0tYnMtc3Bpbm5lci1hbmltYXRpb24tc3BlZWQ6IDEuNXM7XG4gIH1cbn1cbi5vZmZjYW52YXMsIC5vZmZjYW52YXMteHhsLCAub2ZmY2FudmFzLXhsLCAub2ZmY2FudmFzLWxnLCAub2ZmY2FudmFzLW1kLCAub2ZmY2FudmFzLXNtIHtcbiAgLS1icy1vZmZjYW52YXMtemluZGV4OiAxMDQ1O1xuICAtLWJzLW9mZmNhbnZhcy13aWR0aDogNDAwcHg7XG4gIC0tYnMtb2ZmY2FudmFzLWhlaWdodDogMzB2aDtcbiAgLS1icy1vZmZjYW52YXMtcGFkZGluZy14OiAxcmVtO1xuICAtLWJzLW9mZmNhbnZhcy1wYWRkaW5nLXk6IDFyZW07XG4gIC0tYnMtb2ZmY2FudmFzLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcbiAgLS1icy1vZmZjYW52YXMtYmc6IHZhcigtLWJzLWJvZHktYmcpO1xuICAtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGg6IHZhcigtLWJzLWJvcmRlci13aWR0aCk7XG4gIC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcjogdmFyKC0tYnMtYm9yZGVyLWNvbG9yLXRyYW5zbHVjZW50KTtcbiAgLS1icy1vZmZjYW52YXMtYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdy1zbSk7XG4gIC0tYnMtb2ZmY2FudmFzLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICAtLWJzLW9mZmNhbnZhcy10aXRsZS1saW5lLWhlaWdodDogMS41O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLm9mZmNhbnZhcy1zbSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiB2YXIoLS1icy1vZmZjYW52YXMtemluZGV4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtY29sb3IpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtYmcpO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgb3V0bGluZTogMDtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1icy1vZmZjYW52YXMtdHJhbnNpdGlvbik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm9mZmNhbnZhcy1zbSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5vZmZjYW52YXMtc20ub2ZmY2FudmFzLXN0YXJ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgLm9mZmNhbnZhcy1zbS5vZmZjYW52YXMtZW5kIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxuICAub2ZmY2FudmFzLXNtLm9mZmNhbnZhcy10b3Age1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWhlaWdodCk7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtc20ub2ZmY2FudmFzLWJvdHRvbSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtc20uc2hvd2luZywgLm9mZmNhbnZhcy1zbS5zaG93Om5vdCguaGlkaW5nKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtc20uc2hvd2luZywgLm9mZmNhbnZhcy1zbS5oaWRpbmcsIC5vZmZjYW52YXMtc20uc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5vZmZjYW52YXMtc20ge1xuICAgIC0tYnMtb2ZmY2FudmFzLWhlaWdodDogYXV0bztcbiAgICAtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuICAub2ZmY2FudmFzLXNtIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtc20gLm9mZmNhbnZhcy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLm9mZmNhbnZhcy1tZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiB2YXIoLS1icy1vZmZjYW52YXMtemluZGV4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtY29sb3IpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtYmcpO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgb3V0bGluZTogMDtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1icy1vZmZjYW52YXMtdHJhbnNpdGlvbik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm9mZmNhbnZhcy1tZCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5vZmZjYW52YXMtbWQub2ZmY2FudmFzLXN0YXJ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgLm9mZmNhbnZhcy1tZC5vZmZjYW52YXMtZW5kIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxuICAub2ZmY2FudmFzLW1kLm9mZmNhbnZhcy10b3Age1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWhlaWdodCk7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtbWQub2ZmY2FudmFzLWJvdHRvbSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtbWQuc2hvd2luZywgLm9mZmNhbnZhcy1tZC5zaG93Om5vdCguaGlkaW5nKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtbWQuc2hvd2luZywgLm9mZmNhbnZhcy1tZC5oaWRpbmcsIC5vZmZjYW52YXMtbWQuc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5vZmZjYW52YXMtbWQge1xuICAgIC0tYnMtb2ZmY2FudmFzLWhlaWdodDogYXV0bztcbiAgICAtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuICAub2ZmY2FudmFzLW1kIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtbWQgLm9mZmNhbnZhcy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLm9mZmNhbnZhcy1sZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiB2YXIoLS1icy1vZmZjYW52YXMtemluZGV4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtY29sb3IpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtYmcpO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgb3V0bGluZTogMDtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1icy1vZmZjYW52YXMtdHJhbnNpdGlvbik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkgYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm9mZmNhbnZhcy1sZyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5vZmZjYW52YXMtbGcub2ZmY2FudmFzLXN0YXJ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgLm9mZmNhbnZhcy1sZy5vZmZjYW52YXMtZW5kIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxuICAub2ZmY2FudmFzLWxnLm9mZmNhbnZhcy10b3Age1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWhlaWdodCk7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtbGcub2ZmY2FudmFzLWJvdHRvbSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMtbGcuc2hvd2luZywgLm9mZmNhbnZhcy1sZy5zaG93Om5vdCguaGlkaW5nKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtbGcuc2hvd2luZywgLm9mZmNhbnZhcy1sZy5oaWRpbmcsIC5vZmZjYW52YXMtbGcuc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5vZmZjYW52YXMtbGcge1xuICAgIC0tYnMtb2ZmY2FudmFzLWhlaWdodDogYXV0bztcbiAgICAtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxuICAub2ZmY2FudmFzLWxnIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMtbGcgLm9mZmNhbnZhcy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5vZmZjYW52YXMteGwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogdmFyKC0tYnMtb2ZmY2FudmFzLXppbmRleCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjb2xvcjogdmFyKC0tYnMtb2ZmY2FudmFzLWNvbG9yKTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtb2ZmY2FudmFzLWJnKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIG91dGxpbmU6IDA7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tYnMtb2ZmY2FudmFzLXRyYW5zaXRpb24pO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAub2ZmY2FudmFzLXhsIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTE5OS45OHB4KSB7XG4gIC5vZmZjYW52YXMteGwub2ZmY2FudmFzLXN0YXJ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgLm9mZmNhbnZhcy14bC5vZmZjYW52YXMtZW5kIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxuICAub2ZmY2FudmFzLXhsLm9mZmNhbnZhcy10b3Age1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWhlaWdodCk7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMteGwub2ZmY2FudmFzLWJvdHRvbSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMteGwuc2hvd2luZywgLm9mZmNhbnZhcy14bC5zaG93Om5vdCguaGlkaW5nKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMteGwuc2hvd2luZywgLm9mZmNhbnZhcy14bC5oaWRpbmcsIC5vZmZjYW52YXMteGwuc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAub2ZmY2FudmFzLXhsIHtcbiAgICAtLWJzLW9mZmNhbnZhcy1oZWlnaHQ6IGF1dG87XG4gICAgLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9mZmNhbnZhcy14bCAub2ZmY2FudmFzLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAub2ZmY2FudmFzLXhsIC5vZmZjYW52YXMtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEzOTkuOThweCkge1xuICAub2ZmY2FudmFzLXh4bCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiB2YXIoLS1icy1vZmZjYW52YXMtemluZGV4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtY29sb3IpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtYmcpO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgb3V0bGluZTogMDtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1icy1vZmZjYW52YXMtdHJhbnNpdGlvbik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMzk5Ljk4cHgpIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5vZmZjYW52YXMteHhsIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTM5OS45OHB4KSB7XG4gIC5vZmZjYW52YXMteHhsLm9mZmNhbnZhcy1zdGFydCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMteHhsLm9mZmNhbnZhcy1lbmQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMteHhsLm9mZmNhbnZhcy10b3Age1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWhlaWdodCk7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICB9XG4gIC5vZmZjYW52YXMteHhsLm9mZmNhbnZhcy1ib3R0b20ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiB2YXIoLS1icy1vZmZjYW52YXMtaGVpZ2h0KTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci10b3A6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxuICAub2ZmY2FudmFzLXh4bC5zaG93aW5nLCAub2ZmY2FudmFzLXh4bC5zaG93Om5vdCguaGlkaW5nKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMteHhsLnNob3dpbmcsIC5vZmZjYW52YXMteHhsLmhpZGluZywgLm9mZmNhbnZhcy14eGwuc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAub2ZmY2FudmFzLXh4bCB7XG4gICAgLS1icy1vZmZjYW52YXMtaGVpZ2h0OiBhdXRvO1xuICAgIC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB9XG4gIC5vZmZjYW52YXMteHhsIC5vZmZjYW52YXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5vZmZjYW52YXMteHhsIC5vZmZjYW52YXMtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm9mZmNhbnZhcyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiB2YXIoLS1icy1vZmZjYW52YXMtemluZGV4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBjb2xvcjogdmFyKC0tYnMtb2ZmY2FudmFzLWNvbG9yKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1vZmZjYW52YXMtYmcpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBvdXRsaW5lOiAwO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1icy1vZmZjYW52YXMtdHJhbnNpdGlvbik7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAub2ZmY2FudmFzIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4ub2ZmY2FudmFzLm9mZmNhbnZhcy1zdGFydCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IHZhcigtLWJzLW9mZmNhbnZhcy13aWR0aCk7XG4gIGJvcmRlci1yaWdodDogdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tYnMtb2ZmY2FudmFzLWJvcmRlci1jb2xvcik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG4ub2ZmY2FudmFzLm9mZmNhbnZhcy1lbmQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogdmFyKC0tYnMtb2ZmY2FudmFzLXdpZHRoKTtcbiAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW9mZmNhbnZhcy1ib3JkZXItY29sb3IpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG59XG4ub2ZmY2FudmFzLm9mZmNhbnZhcy10b3Age1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cbi5vZmZjYW52YXMub2ZmY2FudmFzLWJvdHRvbSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IHZhcigtLWJzLW9mZmNhbnZhcy1oZWlnaHQpO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItdG9wOiB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1icy1vZmZjYW52YXMtYm9yZGVyLWNvbG9yKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuLm9mZmNhbnZhcy5zaG93aW5nLCAub2ZmY2FudmFzLnNob3c6bm90KC5oaWRpbmcpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLm9mZmNhbnZhcy5zaG93aW5nLCAub2ZmY2FudmFzLmhpZGluZywgLm9mZmNhbnZhcy5zaG93IHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLm9mZmNhbnZhcy1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG4ub2ZmY2FudmFzLWJhY2tkcm9wLmZhZGUge1xuICBvcGFjaXR5OiAwO1xufVxuLm9mZmNhbnZhcy1iYWNrZHJvcC5zaG93IHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4ub2ZmY2FudmFzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tYnMtb2ZmY2FudmFzLXBhZGRpbmcteSkgdmFyKC0tYnMtb2ZmY2FudmFzLXBhZGRpbmcteCk7XG59XG4ub2ZmY2FudmFzLWhlYWRlciAuYnRuLWNsb3NlIHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1icy1vZmZjYW52YXMtcGFkZGluZy15KSAqIDAuNSkgY2FsYyh2YXIoLS1icy1vZmZjYW52YXMtcGFkZGluZy14KSAqIDAuNSk7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTAuNSAqIHZhcigtLWJzLW9mZmNhbnZhcy1wYWRkaW5nLXkpKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0wLjUgKiB2YXIoLS1icy1vZmZjYW52YXMtcGFkZGluZy14KSk7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoLTAuNSAqIHZhcigtLWJzLW9mZmNhbnZhcy1wYWRkaW5nLXkpKTtcbn1cblxuLm9mZmNhbnZhcy10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1icy1vZmZjYW52YXMtdGl0bGUtbGluZS1oZWlnaHQpO1xufVxuXG4ub2ZmY2FudmFzLWJvZHkge1xuICBmbGV4LWdyb3c6IDE7XG4gIHBhZGRpbmc6IHZhcigtLWJzLW9mZmNhbnZhcy1wYWRkaW5nLXkpIHZhcigtLWJzLW9mZmNhbnZhcy1wYWRkaW5nLXgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ucGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY3Vyc29yOiB3YWl0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5wbGFjZWhvbGRlci5idG46OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogXCJcIjtcbn1cblxuLnBsYWNlaG9sZGVyLXhzIHtcbiAgbWluLWhlaWdodDogMC42ZW07XG59XG5cbi5wbGFjZWhvbGRlci1zbSB7XG4gIG1pbi1oZWlnaHQ6IDAuOGVtO1xufVxuXG4ucGxhY2Vob2xkZXItbGcge1xuICBtaW4taGVpZ2h0OiAxLjJlbTtcbn1cblxuLnBsYWNlaG9sZGVyLWdsb3cgLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uOiBwbGFjZWhvbGRlci1nbG93IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyLWdsb3cge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMjtcbiAgfVxufVxuLnBsYWNlaG9sZGVyLXdhdmUge1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTMwZGVnLCAjMDAwIDU1JSwgcmdiYSgwLCAwLCAwLCAwLjgpIDc1JSwgIzAwMCA5NSUpO1xuICBtYXNrLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBwbGFjZWhvbGRlci13YXZlIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBwbGFjZWhvbGRlci13YXZlIHtcbiAgMTAwJSB7XG4gICAgbWFzay1wb3NpdGlvbjogLTIwMCUgMCU7XG4gIH1cbn1cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi50ZXh0LWJnLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBSR0JBKHZhcigtLWJzLXByaW1hcnktcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWJnLXNlY29uZGFyeSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IFJHQkEodmFyKC0tYnMtc2Vjb25kYXJ5LXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZy1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogUkdCQSh2YXIoLS1icy1zdWNjZXNzLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZy1pbmZvIHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogUkdCQSh2YXIoLS1icy1pbmZvLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZy13YXJuaW5nIHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogUkdCQSh2YXIoLS1icy13YXJuaW5nLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZy1kYW5nZXIge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBSR0JBKHZhcigtLWJzLWRhbmdlci1yZ2IpLCB2YXIoLS1icy1iZy1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtYmctbGlnaHQge1xuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBSR0JBKHZhcigtLWJzLWxpZ2h0LXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZy1kYXJrIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogUkdCQSh2YXIoLS1icy1kYXJrLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1wcmltYXJ5IHtcbiAgY29sb3I6IFJHQkEodmFyKC0tYnMtcHJpbWFyeS1yZ2IpLCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEodmFyKC0tYnMtcHJpbWFyeS1yZ2IpLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cbi5saW5rLXByaW1hcnk6aG92ZXIsIC5saW5rLXByaW1hcnk6Zm9jdXMge1xuICBjb2xvcjogUkdCQSgxMCwgODgsIDIwMiwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKDEwLCA4OCwgMjAyLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstc2Vjb25kYXJ5IHtcbiAgY29sb3I6IFJHQkEodmFyKC0tYnMtc2Vjb25kYXJ5LXJnYiksIHZhcigtLWJzLWxpbmstb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogUkdCQSh2YXIoLS1icy1zZWNvbmRhcnktcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG4ubGluay1zZWNvbmRhcnk6aG92ZXIsIC5saW5rLXNlY29uZGFyeTpmb2N1cyB7XG4gIGNvbG9yOiBSR0JBKDg2LCA5NCwgMTAwLCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEoODYsIDk0LCAxMDAsIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1zdWNjZXNzIHtcbiAgY29sb3I6IFJHQkEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cbi5saW5rLXN1Y2Nlc3M6aG92ZXIsIC5saW5rLXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogUkdCQSgyMCwgMTA4LCA2NywgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKDIwLCAxMDgsIDY3LCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstaW5mbyB7XG4gIGNvbG9yOiBSR0JBKHZhcigtLWJzLWluZm8tcmdiKSwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKHZhcigtLWJzLWluZm8tcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG4ubGluay1pbmZvOmhvdmVyLCAubGluay1pbmZvOmZvY3VzIHtcbiAgY29sb3I6IFJHQkEoNjEsIDIxMywgMjQzLCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEoNjEsIDIxMywgMjQzLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstd2FybmluZyB7XG4gIGNvbG9yOiBSR0JBKHZhcigtLWJzLXdhcm5pbmctcmdiKSwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKHZhcigtLWJzLXdhcm5pbmctcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG4ubGluay13YXJuaW5nOmhvdmVyLCAubGluay13YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6IFJHQkEoMjU1LCAyMDUsIDU3LCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEoMjU1LCAyMDUsIDU3LCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstZGFuZ2VyIHtcbiAgY29sb3I6IFJHQkEodmFyKC0tYnMtZGFuZ2VyLXJnYiksIHZhcigtLWJzLWxpbmstb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogUkdCQSh2YXIoLS1icy1kYW5nZXItcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG4ubGluay1kYW5nZXI6aG92ZXIsIC5saW5rLWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiBSR0JBKDE3NiwgNDIsIDU1LCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IFJHQkEoMTc2LCA0MiwgNTUsIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1saWdodCB7XG4gIGNvbG9yOiBSR0JBKHZhcigtLWJzLWxpZ2h0LXJnYiksIHZhcigtLWJzLWxpbmstb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogUkdCQSh2YXIoLS1icy1saWdodC1yZ2IpLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cbi5saW5rLWxpZ2h0OmhvdmVyLCAubGluay1saWdodDpmb2N1cyB7XG4gIGNvbG9yOiBSR0JBKDI0OSwgMjUwLCAyNTEsIHZhcigtLWJzLWxpbmstb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogUkdCQSgyNDksIDI1MCwgMjUxLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstZGFyayB7XG4gIGNvbG9yOiBSR0JBKHZhcigtLWJzLWRhcmstcmdiKSwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKHZhcigtLWJzLWRhcmstcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG4ubGluay1kYXJrOmhvdmVyLCAubGluay1kYXJrOmZvY3VzIHtcbiAgY29sb3I6IFJHQkEoMjYsIDMwLCAzMywgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKDI2LCAzMCwgMzMsIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1ib2R5LWVtcGhhc2lzIHtcbiAgY29sb3I6IFJHQkEodmFyKC0tYnMtZW1waGFzaXMtY29sb3ItcmdiKSwgdmFyKC0tYnMtbGluay1vcGFjaXR5LCAxKSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBSR0JBKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHksIDEpKSAhaW1wb3J0YW50O1xufVxuLmxpbmstYm9keS1lbXBoYXNpczpob3ZlciwgLmxpbmstYm9keS1lbXBoYXNpczpmb2N1cyB7XG4gIGNvbG9yOiBSR0JBKHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yLXJnYiksIHZhcigtLWJzLWxpbmstb3BhY2l0eSwgMC43NSkpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogUkdCQSh2YXIoLS1icy1lbXBoYXNpcy1jb2xvci1yZ2IpLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5LCAwLjc1KSkgIWltcG9ydGFudDtcbn1cblxuLmZvY3VzLXJpbmc6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1mb2N1cy1yaW5nLXgsIDApIHZhcigtLWJzLWZvY3VzLXJpbmcteSwgMCkgdmFyKC0tYnMtZm9jdXMtcmluZy1ibHVyLCAwKSB2YXIoLS1icy1mb2N1cy1yaW5nLXdpZHRoKSB2YXIoLS1icy1mb2N1cy1yaW5nLWNvbG9yKTtcbn1cblxuLmljb24tbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDAuMzc1cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJnYmEodmFyKC0tYnMtbGluay1jb2xvci1yZ2IpLCB2YXIoLS1icy1saW5rLW9wYWNpdHksIDAuNSkpO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmljb24tbGluayA+IC5iaSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZmlsbDogY3VycmVudGNvbG9yO1xuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0IHRyYW5zZm9ybTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5pY29uLWxpbmsgPiAuYmkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLmljb24tbGluay1ob3Zlcjpob3ZlciA+IC5iaSwgLmljb24tbGluay1ob3Zlcjpmb2N1cy12aXNpYmxlID4gLmJpIHtcbiAgdHJhbnNmb3JtOiB2YXIoLS1icy1pY29uLWxpbmstdHJhbnNmb3JtLCB0cmFuc2xhdGUzZCgwLjI1ZW0sIDAsIDApKTtcbn1cblxuLnJhdGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5yYXRpbzo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1icy1hc3BlY3QtcmF0aW8pO1xuICBjb250ZW50OiBcIlwiO1xufVxuLnJhdGlvID4gKiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucmF0aW8tMXgxIHtcbiAgLS1icy1hc3BlY3QtcmF0aW86IDEwMCU7XG59XG5cbi5yYXRpby00eDMge1xuICAtLWJzLWFzcGVjdC1yYXRpbzogNzUlO1xufVxuXG4ucmF0aW8tMTZ4OSB7XG4gIC0tYnMtYXNwZWN0LXJhdGlvOiA1Ni4yNSU7XG59XG5cbi5yYXRpby0yMXg5IHtcbiAgLS1icy1hc3BlY3QtcmF0aW86IDQyLjg1NzE0Mjg1NzElO1xufVxuXG4uZml4ZWQtdG9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDMwO1xufVxuXG4uZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDMwO1xufVxuXG4uc3RpY2t5LXRvcCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTAyMDtcbn1cblxuLnN0aWNreS1ib3R0b20ge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDEwMjA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuc3RpY2t5LXNtLXRvcCB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTAyMDtcbiAgfVxuICAuc3RpY2t5LXNtLWJvdHRvbSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTAyMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zdGlja3ktbWQtdG9wIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDIwO1xuICB9XG4gIC5zdGlja3ktbWQtYm90dG9tIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAxMDIwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnN0aWNreS1sZy10b3Age1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDEwMjA7XG4gIH1cbiAgLnN0aWNreS1sZy1ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDEwMjA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnN0aWNreS14bC10b3Age1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDEwMjA7XG4gIH1cbiAgLnN0aWNreS14bC1ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDEwMjA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgLnN0aWNreS14eGwtdG9wIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDIwO1xuICB9XG4gIC5zdGlja3kteHhsLWJvdHRvbSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTAyMDtcbiAgfVxufVxuLmhzdGFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi52c3RhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLnZpc3VhbGx5LWhpZGRlbixcbi52aXN1YWxseS1oaWRkZW4tZm9jdXNhYmxlOm5vdCg6Zm9jdXMpOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG4udmlzdWFsbHktaGlkZGVuOm5vdChjYXB0aW9uKSxcbi52aXN1YWxseS1oaWRkZW4tZm9jdXNhYmxlOm5vdCg6Zm9jdXMpOm5vdCg6Zm9jdXMtd2l0aGluKTpub3QoY2FwdGlvbikge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLnN0cmV0Y2hlZC1saW5rOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4udGV4dC10cnVuY2F0ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udnIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHdpZHRoOiB2YXIoLS1icy1ib3JkZXItd2lkdGgpO1xuICBtaW4taGVpZ2h0OiAxZW07XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgb3BhY2l0eTogMC4yNTtcbn1cblxuLmFsaWduLWJhc2VsaW5lIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbSAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tdGV4dC10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3AgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LXN0YXJ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0LWVuZCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vYmplY3QtZml0LWNvbnRhaW4ge1xuICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7XG59XG5cbi5vYmplY3QtZml0LWNvdmVyIHtcbiAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbn1cblxuLm9iamVjdC1maXQtZmlsbCB7XG4gIG9iamVjdC1maXQ6IGZpbGwgIWltcG9ydGFudDtcbn1cblxuLm9iamVjdC1maXQtc2NhbGUge1xuICBvYmplY3QtZml0OiBzY2FsZS1kb3duICFpbXBvcnRhbnQ7XG59XG5cbi5vYmplY3QtZml0LW5vbmUge1xuICBvYmplY3QtZml0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5vcGFjaXR5LTAge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcGFjaXR5LTI1IHtcbiAgb3BhY2l0eTogMC4yNSAhaW1wb3J0YW50O1xufVxuXG4ub3BhY2l0eS01MCB7XG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O1xufVxuXG4ub3BhY2l0eS03NSB7XG4gIG9wYWNpdHk6IDAuNzUgIWltcG9ydGFudDtcbn1cblxuLm9wYWNpdHktMTAwIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4ub3ZlcmZsb3ctYXV0byB7XG4gIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy12aXNpYmxlIHtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXNjcm9sbCB7XG4gIG92ZXJmbG93OiBzY3JvbGwgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXgtYXV0byB7XG4gIG92ZXJmbG93LXg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXgtaGlkZGVuIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy14LXZpc2libGUge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5vdmVyZmxvdy14LXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbCAhaW1wb3J0YW50O1xufVxuXG4ub3ZlcmZsb3cteS1hdXRvIHtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ub3ZlcmZsb3cteS1oaWRkZW4ge1xuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXktdmlzaWJsZSB7XG4gIG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm92ZXJmbG93LXktc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsICFpbXBvcnRhbnQ7XG59XG5cbi5kLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmQtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uZC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xufVxuXG4uZC1pbmxpbmUtZ3JpZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkICFpbXBvcnRhbnQ7XG59XG5cbi5kLXRhYmxlIHtcbiAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbn1cblxuLmQtdGFibGUtcm93IHtcbiAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG59XG5cbi5kLXRhYmxlLWNlbGwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG59XG5cbi5kLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG59XG5cbi5kLWlubGluZS1mbGV4IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbn1cblxuLmQtbm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5zaGFkb3ctc20ge1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1ib3gtc2hhZG93LXNtKSAhaW1wb3J0YW50O1xufVxuXG4uc2hhZG93LWxnIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdy1sZykgIWltcG9ydGFudDtcbn1cblxuLnNoYWRvdy1ub25lIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZm9jdXMtcmluZy1wcmltYXJ5IHtcbiAgLS1icy1mb2N1cy1yaW5nLWNvbG9yOiByZ2JhKHZhcigtLWJzLXByaW1hcnktcmdiKSwgdmFyKC0tYnMtZm9jdXMtcmluZy1vcGFjaXR5KSk7XG59XG5cbi5mb2N1cy1yaW5nLXNlY29uZGFyeSB7XG4gIC0tYnMtZm9jdXMtcmluZy1jb2xvcjogcmdiYSh2YXIoLS1icy1zZWNvbmRhcnktcmdiKSwgdmFyKC0tYnMtZm9jdXMtcmluZy1vcGFjaXR5KSk7XG59XG5cbi5mb2N1cy1yaW5nLXN1Y2Nlc3Mge1xuICAtLWJzLWZvY3VzLXJpbmctY29sb3I6IHJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCB2YXIoLS1icy1mb2N1cy1yaW5nLW9wYWNpdHkpKTtcbn1cblxuLmZvY3VzLXJpbmctaW5mbyB7XG4gIC0tYnMtZm9jdXMtcmluZy1jb2xvcjogcmdiYSh2YXIoLS1icy1pbmZvLXJnYiksIHZhcigtLWJzLWZvY3VzLXJpbmctb3BhY2l0eSkpO1xufVxuXG4uZm9jdXMtcmluZy13YXJuaW5nIHtcbiAgLS1icy1mb2N1cy1yaW5nLWNvbG9yOiByZ2JhKHZhcigtLWJzLXdhcm5pbmctcmdiKSwgdmFyKC0tYnMtZm9jdXMtcmluZy1vcGFjaXR5KSk7XG59XG5cbi5mb2N1cy1yaW5nLWRhbmdlciB7XG4gIC0tYnMtZm9jdXMtcmluZy1jb2xvcjogcmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSwgdmFyKC0tYnMtZm9jdXMtcmluZy1vcGFjaXR5KSk7XG59XG5cbi5mb2N1cy1yaW5nLWxpZ2h0IHtcbiAgLS1icy1mb2N1cy1yaW5nLWNvbG9yOiByZ2JhKHZhcigtLWJzLWxpZ2h0LXJnYiksIHZhcigtLWJzLWZvY3VzLXJpbmctb3BhY2l0eSkpO1xufVxuXG4uZm9jdXMtcmluZy1kYXJrIHtcbiAgLS1icy1mb2N1cy1yaW5nLWNvbG9yOiByZ2JhKHZhcigtLWJzLWRhcmstcmdiKSwgdmFyKC0tYnMtZm9jdXMtcmluZy1vcGFjaXR5KSk7XG59XG5cbi5wb3NpdGlvbi1zdGF0aWMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG4ucG9zaXRpb24tYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLnBvc2l0aW9uLWZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG59XG5cbi5wb3NpdGlvbi1zdGlja3kge1xuICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7XG59XG5cbi50b3AtMCB7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4udG9wLTUwIHtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLnRvcC0xMDAge1xuICB0b3A6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLmJvdHRvbS0wIHtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3R0b20tNTAge1xuICBib3R0b206IDUwJSAhaW1wb3J0YW50O1xufVxuXG4uYm90dG9tLTEwMCB7XG4gIGJvdHRvbTogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uc3RhcnQtMCB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnN0YXJ0LTUwIHtcbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5zdGFydC0xMDAge1xuICBsZWZ0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5lbmQtMCB7XG4gIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5lbmQtNTAge1xuICByaWdodDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5lbmQtMTAwIHtcbiAgcmlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnRyYW5zbGF0ZS1taWRkbGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAhaW1wb3J0YW50O1xufVxuXG4udHJhbnNsYXRlLW1pZGRsZS14IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpICFpbXBvcnRhbnQ7XG59XG5cbi50cmFuc2xhdGUtbWlkZGxlLXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlciB7XG4gIGJvcmRlcjogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSB2YXIoLS1icy1ib3JkZXItc3R5bGUpIHZhcigtLWJzLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci0wIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItdG9wIHtcbiAgYm9yZGVyLXRvcDogdmFyKC0tYnMtYm9yZGVyLXdpZHRoKSB2YXIoLS1icy1ib3JkZXItc3R5bGUpIHZhcigtLWJzLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci10b3AtMCB7XG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1lbmQge1xuICBib3JkZXItcmlnaHQ6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgdmFyKC0tYnMtYm9yZGVyLXN0eWxlKSB2YXIoLS1icy1ib3JkZXItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItZW5kLTAge1xuICBib3JkZXItcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiB2YXIoLS1icy1ib3JkZXItd2lkdGgpIHZhcigtLWJzLWJvcmRlci1zdHlsZSkgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWJvdHRvbS0wIHtcbiAgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLXN0YXJ0IHtcbiAgYm9yZGVyLWxlZnQ6IHZhcigtLWJzLWJvcmRlci13aWR0aCkgdmFyKC0tYnMtYm9yZGVyLXN0eWxlKSB2YXIoLS1icy1ib3JkZXItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc3RhcnQtMCB7XG4gIGJvcmRlci1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItcHJpbWFyeSB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1icy1wcmltYXJ5LXJnYiksIHZhcigtLWJzLWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1zZWNvbmRhcnkge1xuICAtLWJzLWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYnMtc2Vjb25kYXJ5LXJnYiksIHZhcigtLWJzLWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1zdWNjZXNzIHtcbiAgLS1icy1ib3JkZXItb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWJzLXN1Y2Nlc3MtcmdiKSwgdmFyKC0tYnMtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWluZm8ge1xuICAtLWJzLWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYnMtaW5mby1yZ2IpLCB2YXIoLS1icy1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItd2FybmluZyB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1icy13YXJuaW5nLXJnYiksIHZhcigtLWJzLWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1kYW5nZXIge1xuICAtLWJzLWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYnMtZGFuZ2VyLXJnYiksIHZhcigtLWJzLWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1saWdodCB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1icy1saWdodC1yZ2IpLCB2YXIoLS1icy1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItZGFyayB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1icy1kYXJrLXJnYiksIHZhcigtLWJzLWJvcmRlci1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1ibGFjayB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1icy1ibGFjay1yZ2IpLCB2YXIoLS1icy1ib3JkZXItb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItd2hpdGUge1xuICAtLWJzLWJvcmRlci1vcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYnMtd2hpdGUtcmdiKSwgdmFyKC0tYnMtYm9yZGVyLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLXByaW1hcnktc3VidGxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5LWJvcmRlci1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc2Vjb25kYXJ5LXN1YnRsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJvcmRlci1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItc3VjY2Vzcy1zdWJ0bGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLXN1Y2Nlc3MtYm9yZGVyLXN1YnRsZSkgIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1pbmZvLXN1YnRsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtaW5mby1ib3JkZXItc3VidGxlKSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLXdhcm5pbmctc3VidGxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy13YXJuaW5nLWJvcmRlci1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItZGFuZ2VyLXN1YnRsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnMtZGFuZ2VyLWJvcmRlci1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItbGlnaHQtc3VidGxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1saWdodC1ib3JkZXItc3VidGxlKSAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWRhcmstc3VidGxlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1kYXJrLWJvcmRlci1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItMSB7XG4gIGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItMiB7XG4gIGJvcmRlci13aWR0aDogMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItMyB7XG4gIGJvcmRlci13aWR0aDogM3B4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItNCB7XG4gIGJvcmRlci13aWR0aDogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItNSB7XG4gIGJvcmRlci13aWR0aDogNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItb3BhY2l0eS0xMCB7XG4gIC0tYnMtYm9yZGVyLW9wYWNpdHk6IDAuMTtcbn1cblxuLmJvcmRlci1vcGFjaXR5LTI1IHtcbiAgLS1icy1ib3JkZXItb3BhY2l0eTogMC4yNTtcbn1cblxuLmJvcmRlci1vcGFjaXR5LTUwIHtcbiAgLS1icy1ib3JkZXItb3BhY2l0eTogMC41O1xufVxuXG4uYm9yZGVyLW9wYWNpdHktNzUge1xuICAtLWJzLWJvcmRlci1vcGFjaXR5OiAwLjc1O1xufVxuXG4uYm9yZGVyLW9wYWNpdHktMTAwIHtcbiAgLS1icy1ib3JkZXItb3BhY2l0eTogMTtcbn1cblxuLnctMjUge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG5cbi53LTUwIHtcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4udy03NSB7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbn1cblxuLnctMTAwIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnctYXV0byB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tdy0xMDAge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnZ3LTEwMCB7XG4gIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xufVxuXG4ubWluLXZ3LTEwMCB7XG4gIG1pbi13aWR0aDogMTAwdncgIWltcG9ydGFudDtcbn1cblxuLmgtMjUge1xuICBoZWlnaHQ6IDI1JSAhaW1wb3J0YW50O1xufVxuXG4uaC01MCB7XG4gIGhlaWdodDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLTc1IHtcbiAgaGVpZ2h0OiA3NSUgIWltcG9ydGFudDtcbn1cblxuLmgtMTAwIHtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5oLWF1dG8ge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm1oLTEwMCB7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLnZoLTEwMCB7XG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbn1cblxuLm1pbi12aC0xMDAge1xuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1maWxsIHtcbiAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmZsZXgtcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LWdyb3ctMCB7XG4gIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1ncm93LTEge1xuICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtc2hyaW5rLTAge1xuICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1zaHJpbmstMSB7XG4gIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XG59XG5cbi5mbGV4LXdyYXAge1xuICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtbm93cmFwIHtcbiAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtd3JhcC1yZXZlcnNlIHtcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbn1cblxuLmp1c3RpZnktY29udGVudC1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWVuZCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cblxuLmp1c3RpZnktY29udGVudC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbn1cblxuLmp1c3RpZnktY29udGVudC1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xufVxuXG4uanVzdGlmeS1jb250ZW50LWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWl0ZW1zLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1pdGVtcy1zdHJldGNoIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtc3RhcnQge1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1jb250ZW50LWVuZCB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1jb250ZW50LWNlbnRlciB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1iZXR3ZWVuIHtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tY29udGVudC1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbn1cblxuLmFsaWduLWNvbnRlbnQtc3RyZXRjaCB7XG4gIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtYXV0byB7XG4gIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmFsaWduLXNlbGYtc3RhcnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLWNlbnRlciB7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4uYWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG59XG5cbi5vcmRlci1maXJzdCB7XG4gIG9yZGVyOiAtMSAhaW1wb3J0YW50O1xufVxuXG4ub3JkZXItMCB7XG4gIG9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5vcmRlci0xIHtcbiAgb3JkZXI6IDEgIWltcG9ydGFudDtcbn1cblxuLm9yZGVyLTIge1xuICBvcmRlcjogMiAhaW1wb3J0YW50O1xufVxuXG4ub3JkZXItMyB7XG4gIG9yZGVyOiAzICFpbXBvcnRhbnQ7XG59XG5cbi5vcmRlci00IHtcbiAgb3JkZXI6IDQgIWltcG9ydGFudDtcbn1cblxuLm9yZGVyLTUge1xuICBvcmRlcjogNSAhaW1wb3J0YW50O1xufVxuXG4ub3JkZXItbGFzdCB7XG4gIG9yZGVyOiA2ICFpbXBvcnRhbnQ7XG59XG5cbi5tLTAge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm0tMSB7XG4gIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS0yIHtcbiAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tMyB7XG4gIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubS00IHtcbiAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm0tNSB7XG4gIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubS1hdXRvIHtcbiAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5teC0wIHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5teC0xIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5teC0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXgtMyB7XG4gIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXgtNCB7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm14LTUge1xuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm14LWF1dG8ge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm15LTAge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm15LTEge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm15LTIge1xuICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5teS0zIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5teS00IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXktNSB7XG4gIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubXktYXV0byB7XG4gIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubXQtMCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm10LTEge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0yIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tdC0zIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXQtNCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXQtNSB7XG4gIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm10LWF1dG8ge1xuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tZS0wIHtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZS0xIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tZS0yIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1lLTMge1xuICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLm1lLTQge1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWUtNSB7XG4gIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubWUtYXV0byB7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ubWItMCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1iLTEge1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0yIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0zIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWItNCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWItNSB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLm1iLWF1dG8ge1xuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5tcy0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLm1zLTEge1xuICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXMtMiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1zLTMge1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXMtNCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1zLTUge1xuICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubXMtYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5wLTAge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wLTEge1xuICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wLTIge1xuICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtMyB7XG4gIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnAtNCB7XG4gIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucC01IHtcbiAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucHgtMCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5weC0xIHtcbiAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnB4LTIge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnB4LTMge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHgtNCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHgtNSB7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5weS0wIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnB5LTEge1xuICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHktMiB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHktMyB7XG4gIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5weS00IHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5weS01IHtcbiAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnB0LTAge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ucHQtMSB7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wdC0yIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtMyB7XG4gIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wdC00IHtcbiAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHQtNSB7XG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wZS0wIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ucGUtMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBlLTIge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBlLTMge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wZS00IHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wZS01IHtcbiAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucGItMCB7XG4gIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5wYi0xIHtcbiAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTIge1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi0zIHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnBiLTQge1xuICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYi01IHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnBzLTAge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnBzLTEge1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnBzLTIge1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHMtMyB7XG4gIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucHMtNCB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wcy01IHtcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5nYXAtMCB7XG4gIGdhcDogMCAhaW1wb3J0YW50O1xufVxuXG4uZ2FwLTEge1xuICBnYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLmdhcC0yIHtcbiAgZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLmdhcC0zIHtcbiAgZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5nYXAtNCB7XG4gIGdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5nYXAtNSB7XG4gIGdhcDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ucm93LWdhcC0wIHtcbiAgcm93LWdhcDogMCAhaW1wb3J0YW50O1xufVxuXG4ucm93LWdhcC0xIHtcbiAgcm93LWdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucm93LWdhcC0yIHtcbiAgcm93LWdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3ctZ2FwLTMge1xuICByb3ctZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yb3ctZ2FwLTQge1xuICByb3ctZ2FwOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnJvdy1nYXAtNSB7XG4gIHJvdy1nYXA6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLmNvbHVtbi1nYXAtMCB7XG4gIGNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDtcbn1cblxuLmNvbHVtbi1nYXAtMSB7XG4gIGNvbHVtbi1nYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbn1cblxuLmNvbHVtbi1nYXAtMiB7XG4gIGNvbHVtbi1nYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4uY29sdW1uLWdhcC0zIHtcbiAgY29sdW1uLWdhcDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4uY29sdW1uLWdhcC00IHtcbiAgY29sdW1uLWdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jb2x1bW4tZ2FwLTUge1xuICBjb2x1bW4tZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5mb250LW1vbm9zcGFjZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1icy1mb250LW1vbm9zcGFjZSkgIWltcG9ydGFudDtcbn1cblxuLmZzLTEge1xuICBmb250LXNpemU6IGNhbGMoMS4zNzVyZW0gKyAxLjV2dykgIWltcG9ydGFudDtcbn1cblxuLmZzLTIge1xuICBmb250LXNpemU6IGNhbGMoMS4zMjVyZW0gKyAwLjl2dykgIWltcG9ydGFudDtcbn1cblxuLmZzLTMge1xuICBmb250LXNpemU6IGNhbGMoMS4zcmVtICsgMC42dncpICFpbXBvcnRhbnQ7XG59XG5cbi5mcy00IHtcbiAgZm9udC1zaXplOiBjYWxjKDEuMjc1cmVtICsgMC4zdncpICFpbXBvcnRhbnQ7XG59XG5cbi5mcy01IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5mcy02IHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5mc3QtaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbi5mc3Qtbm9ybWFsIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi5mdy1saWdodGVyIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXIgIWltcG9ydGFudDtcbn1cblxuLmZ3LWxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4uZnctbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xufVxuXG4uZnctbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xufVxuXG4uZnctc2VtaWJvbGQge1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi5mdy1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuXG4uZnctYm9sZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlciAhaW1wb3J0YW50O1xufVxuXG4ubGgtMSB7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5saC1zbSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1ICFpbXBvcnRhbnQ7XG59XG5cbi5saC1iYXNlIHtcbiAgbGluZS1oZWlnaHQ6IDEuNSAhaW1wb3J0YW50O1xufVxuXG4ubGgtbGcge1xuICBsaW5lLWhlaWdodDogMiAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1zdGFydCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtZW5kIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRlY29yYXRpb24tbm9uZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRlY29yYXRpb24tbGluZS10aHJvdWdoIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggIWltcG9ydGFudDtcbn1cblxuLnRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC13cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8qIHJ0bDpiZWdpbjpyZW1vdmUgKi9cbi50ZXh0LWJyZWFrIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbn1cblxuLyogcnRsOmVuZDpyZW1vdmUgKi9cbi50ZXh0LXByaW1hcnkge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEodmFyKC0tYnMtcHJpbWFyeS1yZ2IpLCB2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1zZWNvbmRhcnkge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEodmFyKC0tYnMtc2Vjb25kYXJ5LXJnYiksIHZhcigtLWJzLXRleHQtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXN1Y2Nlc3Mge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCB2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1pbmZvIHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKHZhcigtLWJzLWluZm8tcmdiKSwgdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtd2FybmluZyB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSh2YXIoLS1icy13YXJuaW5nLXJnYiksIHZhcigtLWJzLXRleHQtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRhbmdlciB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSwgdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEodmFyKC0tYnMtbGlnaHQtcmdiKSwgdmFyKC0tYnMtdGV4dC1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtZGFyayB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSh2YXIoLS1icy1kYXJrLXJnYiksIHZhcigtLWJzLXRleHQtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWJsYWNrIHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKHZhcigtLWJzLWJsYWNrLXJnYiksIHZhcigtLWJzLXRleHQtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKHZhcigtLWJzLXdoaXRlLXJnYiksIHZhcigtLWJzLXRleHQtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWJvZHkge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEodmFyKC0tYnMtYm9keS1jb2xvci1yZ2IpLCB2YXIoLS1icy10ZXh0LW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1tdXRlZCB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1ibGFjay01MCB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdoaXRlLTUwIHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgIWltcG9ydGFudDtcbn1cblxuLnRleHQtYm9keS1zZWNvbmRhcnkge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLnRleHQtYm9keS10ZXJ0aWFyeSB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tYnMtdGVydGlhcnktY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWJvZHktZW1waGFzaXMge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLWJzLWVtcGhhc2lzLWNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1yZXNldCB7XG4gIC0tYnMtdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1vcGFjaXR5LTI1IHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDAuMjU7XG59XG5cbi50ZXh0LW9wYWNpdHktNTAge1xuICAtLWJzLXRleHQtb3BhY2l0eTogMC41O1xufVxuXG4udGV4dC1vcGFjaXR5LTc1IHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDAuNzU7XG59XG5cbi50ZXh0LW9wYWNpdHktMTAwIHtcbiAgLS1icy10ZXh0LW9wYWNpdHk6IDE7XG59XG5cbi50ZXh0LXByaW1hcnktZW1waGFzaXMge1xuICBjb2xvcjogdmFyKC0tYnMtcHJpbWFyeS10ZXh0LWVtcGhhc2lzKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1zZWNvbmRhcnktZW1waGFzaXMge1xuICBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LXRleHQtZW1waGFzaXMpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXN1Y2Nlc3MtZW1waGFzaXMge1xuICBjb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy10ZXh0LWVtcGhhc2lzKSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1pbmZvLWVtcGhhc2lzIHtcbiAgY29sb3I6IHZhcigtLWJzLWluZm8tdGV4dC1lbXBoYXNpcykgIWltcG9ydGFudDtcbn1cblxuLnRleHQtd2FybmluZy1lbXBoYXNpcyB7XG4gIGNvbG9yOiB2YXIoLS1icy13YXJuaW5nLXRleHQtZW1waGFzaXMpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWRhbmdlci1lbXBoYXNpcyB7XG4gIGNvbG9yOiB2YXIoLS1icy1kYW5nZXItdGV4dC1lbXBoYXNpcykgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQtZW1waGFzaXMge1xuICBjb2xvcjogdmFyKC0tYnMtbGlnaHQtdGV4dC1lbXBoYXNpcykgIWltcG9ydGFudDtcbn1cblxuLnRleHQtZGFyay1lbXBoYXNpcyB7XG4gIGNvbG9yOiB2YXIoLS1icy1kYXJrLXRleHQtZW1waGFzaXMpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLW9wYWNpdHktMTAge1xuICAtLWJzLWxpbmstb3BhY2l0eTogMC4xO1xufVxuXG4ubGluay1vcGFjaXR5LTEwLWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDAuMTtcbn1cblxuLmxpbmstb3BhY2l0eS0yNSB7XG4gIC0tYnMtbGluay1vcGFjaXR5OiAwLjI1O1xufVxuXG4ubGluay1vcGFjaXR5LTI1LWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDAuMjU7XG59XG5cbi5saW5rLW9wYWNpdHktNTAge1xuICAtLWJzLWxpbmstb3BhY2l0eTogMC41O1xufVxuXG4ubGluay1vcGFjaXR5LTUwLWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDAuNTtcbn1cblxuLmxpbmstb3BhY2l0eS03NSB7XG4gIC0tYnMtbGluay1vcGFjaXR5OiAwLjc1O1xufVxuXG4ubGluay1vcGFjaXR5LTc1LWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDAuNzU7XG59XG5cbi5saW5rLW9wYWNpdHktMTAwIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDE7XG59XG5cbi5saW5rLW9wYWNpdHktMTAwLWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLW9wYWNpdHk6IDE7XG59XG5cbi5saW5rLW9mZnNldC0xIHtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjEyNWVtICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLW9mZnNldC0xLWhvdmVyOmhvdmVyIHtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjEyNWVtICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLW9mZnNldC0yIHtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjI1ZW0gIWltcG9ydGFudDtcbn1cblxuLmxpbmstb2Zmc2V0LTItaG92ZXI6aG92ZXIge1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1vZmZzZXQtMyB7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4zNzVlbSAhaW1wb3J0YW50O1xufVxuXG4ubGluay1vZmZzZXQtMy1ob3Zlcjpob3ZlciB7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4zNzVlbSAhaW1wb3J0YW50O1xufVxuXG4ubGluay11bmRlcmxpbmUtcHJpbWFyeSB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZ2JhKHZhcigtLWJzLXByaW1hcnktcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZS1zZWNvbmRhcnkge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDE7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogcmdiYSh2YXIoLS1icy1zZWNvbmRhcnktcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZS1zdWNjZXNzIHtcbiAgLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5OiAxO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHJnYmEodmFyKC0tYnMtc3VjY2Vzcy1yZ2IpLCB2YXIoLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmxpbmstdW5kZXJsaW5lLWluZm8ge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDE7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogcmdiYSh2YXIoLS1icy1pbmZvLXJnYiksIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay11bmRlcmxpbmUtd2FybmluZyB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZ2JhKHZhcigtLWJzLXdhcm5pbmctcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZS1kYW5nZXIge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDE7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogcmdiYSh2YXIoLS1icy1kYW5nZXItcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZS1saWdodCB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZ2JhKHZhcigtLWJzLWxpZ2h0LXJnYiksIHZhcigtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4ubGluay11bmRlcmxpbmUtZGFyayB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZ2JhKHZhcigtLWJzLWRhcmstcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZSB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiByZ2JhKHZhcigtLWJzLWxpbmstY29sb3ItcmdiKSwgdmFyKC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eSwgMSkpICFpbXBvcnRhbnQ7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTAge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDA7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTAtaG92ZXI6aG92ZXIge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDA7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTEwIHtcbiAgLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5OiAwLjE7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTEwLWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5OiAwLjE7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTI1IHtcbiAgLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5OiAwLjI1O1xufVxuXG4ubGluay11bmRlcmxpbmUtb3BhY2l0eS0yNS1ob3Zlcjpob3ZlciB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMC4yNTtcbn1cblxuLmxpbmstdW5kZXJsaW5lLW9wYWNpdHktNTAge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDAuNTtcbn1cblxuLmxpbmstdW5kZXJsaW5lLW9wYWNpdHktNTAtaG92ZXI6aG92ZXIge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDAuNTtcbn1cblxuLmxpbmstdW5kZXJsaW5lLW9wYWNpdHktNzUge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDAuNzU7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTc1LWhvdmVyOmhvdmVyIHtcbiAgLS1icy1saW5rLXVuZGVybGluZS1vcGFjaXR5OiAwLjc1O1xufVxuXG4ubGluay11bmRlcmxpbmUtb3BhY2l0eS0xMDAge1xuICAtLWJzLWxpbmstdW5kZXJsaW5lLW9wYWNpdHk6IDE7XG59XG5cbi5saW5rLXVuZGVybGluZS1vcGFjaXR5LTEwMC1ob3Zlcjpob3ZlciB7XG4gIC0tYnMtbGluay11bmRlcmxpbmUtb3BhY2l0eTogMTtcbn1cblxuLmJnLXByaW1hcnkge1xuICAtLWJzLWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYnMtcHJpbWFyeS1yZ2IpLCB2YXIoLS1icy1iZy1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJnLXNlY29uZGFyeSB7XG4gIC0tYnMtYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1icy1zZWNvbmRhcnktcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1zdWNjZXNzIHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLXN1Y2Nlc3MtcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1pbmZvIHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLWluZm8tcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy13YXJuaW5nIHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLXdhcm5pbmctcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYW5nZXIge1xuICAtLWJzLWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYnMtZGFuZ2VyLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYmctbGlnaHQge1xuICAtLWJzLWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tYnMtbGlnaHQtcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1kYXJrIHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLWRhcmstcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1ibGFjayB7XG4gIC0tYnMtYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1icy1ibGFjay1yZ2IpLCB2YXIoLS1icy1iZy1vcGFjaXR5KSkgIWltcG9ydGFudDtcbn1cblxuLmJnLXdoaXRlIHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLXdoaXRlLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYmctYm9keSB7XG4gIC0tYnMtYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1icy1ib2R5LWJnLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYmctdHJhbnNwYXJlbnQge1xuICAtLWJzLWJnLW9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1ib2R5LXNlY29uZGFyeSB7XG4gIC0tYnMtYmctb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1icy1zZWNvbmRhcnktYmctcmdiKSwgdmFyKC0tYnMtYmctb3BhY2l0eSkpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1ib2R5LXRlcnRpYXJ5IHtcbiAgLS1icy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWJzLXRlcnRpYXJ5LWJnLXJnYiksIHZhcigtLWJzLWJnLW9wYWNpdHkpKSAhaW1wb3J0YW50O1xufVxuXG4uYmctb3BhY2l0eS0xMCB7XG4gIC0tYnMtYmctb3BhY2l0eTogMC4xO1xufVxuXG4uYmctb3BhY2l0eS0yNSB7XG4gIC0tYnMtYmctb3BhY2l0eTogMC4yNTtcbn1cblxuLmJnLW9wYWNpdHktNTAge1xuICAtLWJzLWJnLW9wYWNpdHk6IDAuNTtcbn1cblxuLmJnLW9wYWNpdHktNzUge1xuICAtLWJzLWJnLW9wYWNpdHk6IDAuNzU7XG59XG5cbi5iZy1vcGFjaXR5LTEwMCB7XG4gIC0tYnMtYmctb3BhY2l0eTogMTtcbn1cblxuLmJnLXByaW1hcnktc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeS1iZy1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1zZWNvbmRhcnktc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnLXN1YnRsZSkgIWltcG9ydGFudDtcbn1cblxuLmJnLXN1Y2Nlc3Mtc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtc3VjY2Vzcy1iZy1zdWJ0bGUpICFpbXBvcnRhbnQ7XG59XG5cbi5iZy1pbmZvLXN1YnRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWluZm8tYmctc3VidGxlKSAhaW1wb3J0YW50O1xufVxuXG4uYmctd2FybmluZy1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy13YXJuaW5nLWJnLXN1YnRsZSkgIWltcG9ydGFudDtcbn1cblxuLmJnLWRhbmdlci1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1kYW5nZXItYmctc3VidGxlKSAhaW1wb3J0YW50O1xufVxuXG4uYmctbGlnaHQtc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtbGlnaHQtYmctc3VidGxlKSAhaW1wb3J0YW50O1xufVxuXG4uYmctZGFyay1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1icy1kYXJrLWJnLXN1YnRsZSkgIWltcG9ydGFudDtcbn1cblxuLmJnLWdyYWRpZW50IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYnMtZ3JhZGllbnQpICFpbXBvcnRhbnQ7XG59XG5cbi51c2VyLXNlbGVjdC1hbGwge1xuICB1c2VyLXNlbGVjdDogYWxsICFpbXBvcnRhbnQ7XG59XG5cbi51c2VyLXNlbGVjdC1hdXRvIHtcbiAgdXNlci1zZWxlY3Q6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnVzZXItc2VsZWN0LW5vbmUge1xuICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucGUtbm9uZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wZS1hdXRvIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC0wIHtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC0xIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1zbSkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtMiB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLTMge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC00IHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy14bCkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtNSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteHhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtcGlsbCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtdG9wIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXRvcC0wIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtMSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtc20pICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtMiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtMyB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtNCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteGwpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtNSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteHhsKSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy14eGwpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXRvcC1jaXJjbGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC10b3AtcGlsbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtZW5kIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1lbmQtMCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWVuZC0xIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtc20pICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1lbmQtMiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtZW5kLTMge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1sZykgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWVuZC00IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteGwpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1lbmQtNSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXh4bCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteHhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1lbmQtY2lyY2xlIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWVuZC1waWxsIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWJvdHRvbS0wIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tMSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tMiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tMyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tNCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tNSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXh4bCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy14eGwpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWJvdHRvbS1jaXJjbGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1ib3R0b20tcGlsbCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXBpbGwpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtc3RhcnQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1zdGFydC0wIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXN0YXJ0LTEge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXNtKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1zdGFydC0yIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtc3RhcnQtMyB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtbGcpICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXN0YXJ0LTQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1zdGFydC01IHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy14eGwpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMteHhsKSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1zdGFydC1jaXJjbGUge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXN0YXJ0LXBpbGwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLXBpbGwpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMtcGlsbCkgIWltcG9ydGFudDtcbn1cblxuLnZpc2libGUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnotbjEge1xuICB6LWluZGV4OiAtMSAhaW1wb3J0YW50O1xufVxuXG4uei0wIHtcbiAgei1pbmRleDogMCAhaW1wb3J0YW50O1xufVxuXG4uei0xIHtcbiAgei1pbmRleDogMSAhaW1wb3J0YW50O1xufVxuXG4uei0yIHtcbiAgei1pbmRleDogMiAhaW1wb3J0YW50O1xufVxuXG4uei0zIHtcbiAgei1pbmRleDogMyAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmZsb2F0LXNtLXN0YXJ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC1zbS1lbmQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbG9hdC1zbS1ub25lIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LXNtLWNvbnRhaW4ge1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC1zbS1jb3ZlciB7XG4gICAgb2JqZWN0LWZpdDogY292ZXIgIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC1zbS1maWxsIHtcbiAgICBvYmplY3QtZml0OiBmaWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQtc20tc2NhbGUge1xuICAgIG9iamVjdC1maXQ6IHNjYWxlLWRvd24gIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC1zbS1ub25lIHtcbiAgICBvYmplY3QtZml0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1pbmxpbmUtZ3JpZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWdyaWQgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXNtLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxuICAuZC1zbS1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20taW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtc20tbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1zbS1ncm93LTAge1xuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLWdyb3ctMSB7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tc2hyaW5rLTEge1xuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20td3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtc20tbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXNtLXdyYXAtcmV2ZXJzZSB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXNtLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1zbS1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1zbS1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXNtLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtc20tYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1zbS1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLXN0YXJ0IHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtc20tZW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtc20tYmV0d2VlbiB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXNtLWFyb3VuZCB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtc20tc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWF1dG8ge1xuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1zdGFydCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1zbS1jZW50ZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXNtLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItc20tZmlyc3Qge1xuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS0wIHtcbiAgICBvcmRlcjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS0yIHtcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS0zIHtcbiAgICBvcmRlcjogMyAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS01IHtcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1zbS1sYXN0IHtcbiAgICBvcmRlcjogNiAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTEge1xuICAgIG1hcmdpbjogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXNtLTIge1xuICAgIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tMyB7XG4gICAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tc20tNCB7XG4gICAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1zbS01IHtcbiAgICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1zbS1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXgtc20tMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXgtc20tMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgtc20tMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXNtLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXNtLTQge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1zbS01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1zbS1hdXRvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1zbS0wIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1zbS0xIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1zbS0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXktc20tMyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXktc20tNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXNtLTUge1xuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXNtLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXNtLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS0yIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tMyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS00IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtc20tNSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1zbS1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXNtLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1zbS0xIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUtc20tMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUtc20tMyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXNtLTQge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXNtLTUge1xuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1zbS1hdXRvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWItc20tMCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1zbS0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTIge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1zbS0zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLTQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1zbS01IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXNtLWF1dG8ge1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXMtc20tMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXMtc20tMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMtc20tMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1zbS0zIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1zbS00IHtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXNtLTUge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXNtLWF1dG8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tMCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXNtLTEge1xuICAgIHBhZGRpbmc6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS0yIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1zbS0zIHtcbiAgICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tNCB7XG4gICAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtc20tNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1zbS0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LXNtLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgtc20tMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgtc20tMyB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1zbS00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1zbS01IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXNtLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHktc20tMSB7XG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1zbS0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1zbS0zIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXNtLTQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXNtLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tMSB7XG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtc20tMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1zbS0zIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1zbS00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXNtLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXNtLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGUtc20tMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1zbS0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUtc20tMyB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1zbS00IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUtc20tNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS0wIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS0xIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1zbS0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXNtLTMge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXNtLTQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItc20tNSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMtc20tMCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXNtLTEge1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1zbS0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1zbS0zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMtc20tNCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMtc20tNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1zbS0wIHtcbiAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXNtLTEge1xuICAgIGdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtc20tMiB7XG4gICAgZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXNtLTMge1xuICAgIGdhcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtc20tNCB7XG4gICAgZ2FwOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXNtLTUge1xuICAgIGdhcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXNtLTAge1xuICAgIHJvdy1nYXA6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1zbS0xIHtcbiAgICByb3ctZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtc20tMiB7XG4gICAgcm93LWdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtc20tMyB7XG4gICAgcm93LWdhcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXNtLTQge1xuICAgIHJvdy1nYXA6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXNtLTUge1xuICAgIHJvdy1nYXA6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1zbS0wIHtcbiAgICBjb2x1bW4tZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtc20tMSB7XG4gICAgY29sdW1uLWdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXNtLTIge1xuICAgIGNvbHVtbi1nYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXNtLTMge1xuICAgIGNvbHVtbi1nYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1zbS00IHtcbiAgICBjb2x1bW4tZ2FwOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1zbS01IHtcbiAgICBjb2x1bW4tZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtc20tc3RhcnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1zbS1lbmQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtc20tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mbG9hdC1tZC1zdGFydCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQtbWQtZW5kIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQtbWQtbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC1tZC1jb250YWluIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQtbWQtY292ZXIge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQtbWQtZmlsbCB7XG4gICAgb2JqZWN0LWZpdDogZmlsbCAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LW1kLXNjYWxlIHtcbiAgICBvYmplY3QtZml0OiBzY2FsZS1kb3duICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQtbWQtbm9uZSB7XG4gICAgb2JqZWN0LWZpdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtaW5saW5lLWdyaWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ncmlkICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtdGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZC1tZC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbWQtZmxleCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLWlubGluZS1mbGV4IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLW1kLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1maWxsIHtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbWQtZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC1ncm93LTEge1xuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXNocmluay0wIHtcbiAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLXdyYXAge1xuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LW1kLW5vd3JhcCB7XG4gICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1tZC13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1tZC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbWQtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbWQtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLW1kLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbWQtc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1zdGFydCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWVuZCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1jZW50ZXIge1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWJldHdlZW4ge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1tZC1hcm91bmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LW1kLXN0cmV0Y2gge1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1hdXRvIHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbWQtc3RhcnQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1lbmQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbWQtY2VudGVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1iYXNlbGluZSB7XG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi1tZC1zdHJldGNoIHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLW1kLWZpcnN0IHtcbiAgICBvcmRlcjogLTEgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtMCB7XG4gICAgb3JkZXI6IDAgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtMSB7XG4gICAgb3JkZXI6IDEgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtMiB7XG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtMyB7XG4gICAgb3JkZXI6IDMgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtNCB7XG4gICAgb3JkZXI6IDQgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtNSB7XG4gICAgb3JkZXI6IDUgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXItbWQtbGFzdCB7XG4gICAgb3JkZXI6IDYgIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0wIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0xIHtcbiAgICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1tZC0yIHtcbiAgICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLW1kLTMge1xuICAgIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLW1kLTQge1xuICAgIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbWQtYXV0byB7XG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LW1kLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LW1kLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LW1kLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1tZC0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1tZC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgtbWQtNSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgtbWQtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXktbWQtMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXktbWQtMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXktbWQtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LW1kLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LW1kLTQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1tZC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1tZC1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1tZC0wIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LW1kLTUge1xuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbWQtYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1tZC0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWUtbWQtMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLW1kLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLW1kLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1tZC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1tZC01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUtbWQtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLW1kLTAge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC00IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbWQtNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1tZC1hdXRvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLW1kLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLW1kLTEge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLW1kLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMtbWQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMtbWQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1tZC01IHtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1tZC1hdXRvIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTAge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC1tZC0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbWQtMiB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbWQtMyB7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTQge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLW1kLTUge1xuICAgIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgtbWQtMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1tZC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LW1kLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LW1kLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgtbWQtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgtbWQtNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1tZC0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LW1kLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHktbWQtMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHktbWQtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1tZC00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1tZC01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LW1kLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LW1kLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LW1kLTIge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbWQtNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1tZC01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1tZC0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLW1kLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUtbWQtMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLW1kLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUtbWQtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLW1kLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbWQtMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGItbWQtMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbWQtMiB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1tZC00IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLW1kLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLW1kLTAge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1tZC0xIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMtbWQtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMtbWQtMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLW1kLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLW1kLTUge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtbWQtMCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1tZC0xIHtcbiAgICBnYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLW1kLTIge1xuICAgIGdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1tZC0zIHtcbiAgICBnYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLW1kLTQge1xuICAgIGdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1tZC01IHtcbiAgICBnYXA6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1tZC0wIHtcbiAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtbWQtMSB7XG4gICAgcm93LWdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLW1kLTIge1xuICAgIHJvdy1nYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLW1kLTMge1xuICAgIHJvdy1nYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1tZC00IHtcbiAgICByb3ctZ2FwOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1tZC01IHtcbiAgICByb3ctZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtbWQtMCB7XG4gICAgY29sdW1uLWdhcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLW1kLTEge1xuICAgIGNvbHVtbi1nYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1tZC0yIHtcbiAgICBjb2x1bW4tZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1tZC0zIHtcbiAgICBjb2x1bW4tZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtbWQtNCB7XG4gICAgY29sdW1uLWdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtbWQtNSB7XG4gICAgY29sdW1uLWdhcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LW1kLXN0YXJ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQtbWQtZW5kIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LW1kLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuZmxvYXQtbGctc3RhcnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LWxnLWVuZCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LWxnLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQtbGctY29udGFpbiB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbiAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LWxnLWNvdmVyIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LWxnLWZpbGwge1xuICAgIG9iamVjdC1maXQ6IGZpbGwgIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC1sZy1zY2FsZSB7XG4gICAgb2JqZWN0LWZpdDogc2NhbGUtZG93biAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LWxnLW5vbmUge1xuICAgIG9iamVjdC1maXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWlubGluZS1ncmlkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLXRhYmxlLXJvdyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtbGctdGFibGUtY2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLWxnLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1sZy1ub25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctZmlsbCB7XG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LWxnLWdyb3ctMCB7XG4gICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctZ3Jvdy0xIHtcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1zaHJpbmstMCB7XG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1zaHJpbmstMSB7XG4gICAgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC1sZy1ub3dyYXAge1xuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgtbGctd3JhcC1yZXZlcnNlIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1jZW50ZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWV2ZW5seSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHkgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMtbGctc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLWVuZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLWNlbnRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy1sZy1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLWxnLXN0cmV0Y2gge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctc3RhcnQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1lbmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctY2VudGVyIHtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1iZXR3ZWVuIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQtbGctYXJvdW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC1sZy1zdHJldGNoIHtcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctYXV0byB7XG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLXN0YXJ0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctZW5kIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLWxnLWNlbnRlciB7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctYmFzZWxpbmUge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYtbGctc3RyZXRjaCB7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci1sZy1maXJzdCB7XG4gICAgb3JkZXI6IC0xICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTAge1xuICAgIG9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTEge1xuICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTIge1xuICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTMge1xuICAgIG9yZGVyOiAzICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTQge1xuICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLTUge1xuICAgIG9yZGVyOiA1ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLWxnLWxhc3Qge1xuICAgIG9yZGVyOiA2ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbGctMCB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbGctMSB7XG4gICAgbWFyZ2luOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0tbGctMiB7XG4gICAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy0zIHtcbiAgICBtYXJnaW46IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS1sZy00IHtcbiAgICBtYXJnaW46IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLTUge1xuICAgIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLWxnLWF1dG8ge1xuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1sZy0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1sZy0xIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC1sZy0yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgtbGctMyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgtbGctNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LWxnLTUge1xuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LWxnLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LWxnLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LWxnLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LWxnLTIge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1sZy0zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS1sZy00IHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXktbGctNSB7XG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXktbGctYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQtbGctMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0xIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTIge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy0zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLTQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC1sZy01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LWxnLWF1dG8ge1xuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubWUtbGctMCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLWxnLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1sZy0yIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS1sZy0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUtbGctNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUtbGctNSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLWxnLWF1dG8ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi1sZy0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTEge1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbGctMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbGctNCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLWxnLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWItbGctYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1sZy0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1sZy0xIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy1sZy0yIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLWxnLTMge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLWxnLTQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMtbGctNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMtbGctYXV0byB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAucC1sZy0wIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAtbGctMSB7XG4gICAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLWxnLTMge1xuICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1sZy00IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC1sZy01IHtcbiAgICBwYWRkaW5nOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LWxnLTAge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHgtbGctMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1sZy0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC1sZy0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LWxnLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LWxnLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHktbGctMCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5weS1sZy0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LWxnLTIge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LWxnLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHktbGctNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHktbGctNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC1sZy0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTMge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LWxnLTQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQtbGctNSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUtbGctMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1sZy0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLWxnLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1sZy0zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLWxnLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS1sZy01IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTAge1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTEge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLWxnLTIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGItbGctNCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi1sZy01IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1sZy0wIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucHMtbGctMSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLWxnLTIge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLWxnLTMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1sZy00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy1sZy01IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLWxnLTAge1xuICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtbGctMSB7XG4gICAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1sZy0yIHtcbiAgICBnYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtbGctMyB7XG4gICAgZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC1sZy00IHtcbiAgICBnYXA6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAtbGctNSB7XG4gICAgZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtbGctMCB7XG4gICAgcm93LWdhcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLWxnLTEge1xuICAgIHJvdy1nYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1sZy0yIHtcbiAgICByb3ctZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC1sZy0zIHtcbiAgICByb3ctZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtbGctNCB7XG4gICAgcm93LWdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAtbGctNSB7XG4gICAgcm93LWdhcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLWxnLTAge1xuICAgIGNvbHVtbi1nYXA6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC1sZy0xIHtcbiAgICBjb2x1bW4tZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtbGctMiB7XG4gICAgY29sdW1uLWdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAtbGctMyB7XG4gICAgY29sdW1uLWdhcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLWxnLTQge1xuICAgIGNvbHVtbi1nYXA6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLWxnLTUge1xuICAgIGNvbHVtbi1nYXA6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1sZy1zdGFydCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LWxnLWVuZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC1sZy1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5mbG9hdC14bC1zdGFydCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQteGwtZW5kIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQteGwtbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAub2JqZWN0LWZpdC14bC1jb250YWluIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteGwtY292ZXIge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteGwtZmlsbCB7XG4gICAgb2JqZWN0LWZpdDogZmlsbCAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LXhsLXNjYWxlIHtcbiAgICBvYmplY3QtZml0OiBzY2FsZS1kb3duICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteGwtbm9uZSB7XG4gICAgb2JqZWN0LWZpdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtaW5saW5lLWdyaWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ncmlkICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtdGFibGUge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtdGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICAuZC14bC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteGwtZmxleCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLWlubGluZS1mbGV4IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXhsLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1maWxsIHtcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteGwtZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC1ncm93LTEge1xuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXNocmluay0wIHtcbiAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLXdyYXAge1xuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXhsLW5vd3JhcCB7XG4gICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14bC13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14bC1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLWJldHdlZW4ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtYXJvdW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14bC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtZW5kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXhsLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24taXRlbXMteGwtc3RyZXRjaCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1zdGFydCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXhsLWVuZCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1jZW50ZXIge1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXhsLWJldHdlZW4ge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14bC1hcm91bmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXhsLXN0cmV0Y2gge1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1hdXRvIHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtc3RhcnQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1lbmQge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteGwtY2VudGVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1iYXNlbGluZSB7XG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14bC1zdHJldGNoIHtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLXhsLWZpcnN0IHtcbiAgICBvcmRlcjogLTEgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtMCB7XG4gICAgb3JkZXI6IDAgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtMSB7XG4gICAgb3JkZXI6IDEgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtMiB7XG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtMyB7XG4gICAgb3JkZXI6IDMgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtNCB7XG4gICAgb3JkZXI6IDQgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtNSB7XG4gICAgb3JkZXI6IDUgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteGwtbGFzdCB7XG4gICAgb3JkZXI6IDYgIWltcG9ydGFudDtcbiAgfVxuICAubS14bC0wIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxuICAubS14bC0xIHtcbiAgICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14bC0yIHtcbiAgICBtYXJnaW46IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTMge1xuICAgIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXhsLTQge1xuICAgIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teGwtNSB7XG4gICAgbWFyZ2luOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teGwtYXV0byB7XG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXhsLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXhsLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXhsLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC14bC0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC14bC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgteGwtNSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXgteGwtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXkteGwtMCB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXkteGwtMSB7XG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXkteGwtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXhsLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXhsLTQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS14bC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS14bC1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14bC0wIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTMge1xuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXhsLTUge1xuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteGwtYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14bC0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWUteGwtMSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXhsLTIge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXhsLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14bC00IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14bC01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUteGwtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXhsLTAge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWIteGwtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteGwtMyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC00IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteGwtNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14bC1hdXRvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXhsLTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXhsLTEge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXhsLTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMteGwtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMteGwtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy14bC01IHtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy14bC1hdXRvIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTAge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC14bC0xIHtcbiAgICBwYWRkaW5nOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtMiB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteGwtMyB7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTQge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXhsLTUge1xuICAgIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgteGwtMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5weC14bC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LXhsLTIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LXhsLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgteGwtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgteGwtNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS14bC0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXhsLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHkteGwtMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHkteGwtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS14bC00IHtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS14bC01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTEge1xuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXhsLTIge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteGwtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteGwtNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14bC01IHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS14bC0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXhsLTEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUteGwtMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXhsLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUteGwtNCB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXhsLTUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtMSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGIteGwtMiB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14bC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14bC00IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXhsLTUge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXhsLTAge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy14bC0xIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMteGwtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMteGwtMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXhsLTQge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXhsLTUge1xuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAteGwtMCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14bC0xIHtcbiAgICBnYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXhsLTIge1xuICAgIGdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14bC0zIHtcbiAgICBnYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXhsLTQge1xuICAgIGdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14bC01IHtcbiAgICBnYXA6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC14bC0wIHtcbiAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAteGwtMSB7XG4gICAgcm93LWdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXhsLTIge1xuICAgIHJvdy1nYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXhsLTMge1xuICAgIHJvdy1nYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC14bC00IHtcbiAgICByb3ctZ2FwOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC14bC01IHtcbiAgICByb3ctZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAteGwtMCB7XG4gICAgY29sdW1uLWdhcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXhsLTEge1xuICAgIGNvbHVtbi1nYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC14bC0yIHtcbiAgICBjb2x1bW4tZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC14bC0zIHtcbiAgICBjb2x1bW4tZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAteGwtNCB7XG4gICAgY29sdW1uLWdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAteGwtNSB7XG4gICAgY29sdW1uLWdhcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXhsLXN0YXJ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQteGwtZW5kIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICB9XG4gIC50ZXh0LXhsLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgLmZsb2F0LXh4bC1zdGFydCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAuZmxvYXQteHhsLWVuZCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsb2F0LXh4bC1ub25lIHtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LXh4bC1jb250YWluIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteHhsLWNvdmVyIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICB9XG4gIC5vYmplY3QtZml0LXh4bC1maWxsIHtcbiAgICBvYmplY3QtZml0OiBmaWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteHhsLXNjYWxlIHtcbiAgICBvYmplY3QtZml0OiBzY2FsZS1kb3duICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9iamVjdC1maXQteHhsLW5vbmUge1xuICAgIG9iamVjdC1maXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC14eGwtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZC14eGwtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuZC14eGwtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteHhsLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgfVxuICAuZC14eGwtaW5saW5lLWdyaWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ncmlkICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteHhsLXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXh4bC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXh4bC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteHhsLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC14eGwtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQteHhsLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtZmlsbCB7XG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteHhsLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXh4bC1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteHhsLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtZ3Jvdy0xIHtcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZsZXgteHhsLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXh4bC13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcbiAgfVxuICAuZmxleC14eGwtbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIC5mbGV4LXh4bC13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14eGwtc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteHhsLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteHhsLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXh4bC1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuanVzdGlmeS1jb250ZW50LXh4bC1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmp1c3RpZnktY29udGVudC14eGwtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14eGwtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1pdGVtcy14eGwtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXh4bC1zdGFydCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1jb250ZW50LXh4bC1lbmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteHhsLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLWNvbnRlbnQteHhsLWJldHdlZW4ge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14eGwtYXJvdW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tY29udGVudC14eGwtc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xuICB9XG4gIC5hbGlnbi1zZWxmLXh4bC1hdXRvIHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteHhsLXN0YXJ0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteHhsLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14eGwtY2VudGVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxuICAuYWxpZ24tc2VsZi14eGwtYmFzZWxpbmUge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFsaWduLXNlbGYteHhsLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteHhsLWZpcnN0IHtcbiAgICBvcmRlcjogLTEgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteHhsLTAge1xuICAgIG9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLXh4bC0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci14eGwtMiB7XG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteHhsLTMge1xuICAgIG9yZGVyOiAzICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm9yZGVyLXh4bC00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50O1xuICB9XG4gIC5vcmRlci14eGwtNSB7XG4gICAgb3JkZXI6IDUgIWltcG9ydGFudDtcbiAgfVxuICAub3JkZXIteHhsLWxhc3Qge1xuICAgIG9yZGVyOiA2ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teHhsLTAge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXh4bC0xIHtcbiAgICBtYXJnaW46IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14eGwtMiB7XG4gICAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubS14eGwtMyB7XG4gICAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teHhsLTQge1xuICAgIG1hcmdpbjogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm0teHhsLTUge1xuICAgIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tLXh4bC1hdXRvIHtcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXgteHhsLTAge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXh4bC0xIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC14eGwtMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXh4bC0zIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC14eGwtNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm14LXh4bC01IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teC14eGwtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXkteHhsLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXh4bC0xIHtcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS14eGwtMiB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXh4bC0zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS14eGwtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm15LXh4bC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5teS14eGwtYXV0byB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubXQteHhsLTAge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXQteHhsLTEge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXQteHhsLTIge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14eGwtMyB7XG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tdC14eGwtNCB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXh4bC01IHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm10LXh4bC1hdXRvIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1lLXh4bC0wIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubWUteHhsLTEge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14eGwtMiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUteHhsLTMge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14eGwtNCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWUteHhsLTUge1xuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tZS14eGwtYXV0byB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXh4bC0wIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXh4bC0xIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1iLXh4bC0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteHhsLTMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubWIteHhsLTQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14eGwtNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tYi14eGwtYXV0byB7XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy14eGwtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgfVxuICAubXMteHhsLTEge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXh4bC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1zLXh4bC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy14eGwtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5tcy14eGwtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubXMteHhsLWF1dG8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnAteHhsLTAge1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgfVxuICAucC14eGwtMSB7XG4gICAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXh4bC0yIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC14eGwtMyB7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wLXh4bC00IHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucC14eGwtNSB7XG4gICAgcGFkZGluZzogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC14eGwtMCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5weC14eGwtMSB7XG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weC14eGwtMiB7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgteHhsLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHgteHhsLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB4LXh4bC01IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXh4bC0wIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXh4bC0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB5LXh4bC0yIHtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS14eGwtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5weS14eGwtNCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHkteHhsLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteHhsLTAge1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnB0LXh4bC0xIHtcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14eGwtMiB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wdC14eGwtMyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteHhsLTQge1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHQteHhsLTUge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXh4bC0wIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXh4bC0xIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBlLXh4bC0yIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUteHhsLTMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucGUteHhsLTQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wZS14eGwtNSB7XG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14eGwtMCB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAucGIteHhsLTEge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXh4bC0yIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBiLXh4bC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14eGwtNCB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYi14eGwtNSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucHMteHhsLTAge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy14eGwtMSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXh4bC0yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy14eGwtMyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBzLXh4bC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5wcy14eGwtNSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14eGwtMCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14eGwtMSB7XG4gICAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmdhcC14eGwtMiB7XG4gICAgZ2FwOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXh4bC0zIHtcbiAgICBnYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZ2FwLXh4bC00IHtcbiAgICBnYXA6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5nYXAteHhsLTUge1xuICAgIGdhcDogM3JlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3ctZ2FwLXh4bC0wIHtcbiAgICByb3ctZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAteHhsLTEge1xuICAgIHJvdy1nYXA6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC14eGwtMiB7XG4gICAgcm93LWdhcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAteHhsLTMge1xuICAgIHJvdy1nYXA6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAucm93LWdhcC14eGwtNCB7XG4gICAgcm93LWdhcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy1nYXAteHhsLTUge1xuICAgIHJvdy1nYXA6IDNyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY29sdW1uLWdhcC14eGwtMCB7XG4gICAgY29sdW1uLWdhcDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXh4bC0xIHtcbiAgICBjb2x1bW4tZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAteHhsLTIge1xuICAgIGNvbHVtbi1nYXA6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXh4bC0zIHtcbiAgICBjb2x1bW4tZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbHVtbi1nYXAteHhsLTQge1xuICAgIGNvbHVtbi1nYXA6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb2x1bW4tZ2FwLXh4bC01IHtcbiAgICBjb2x1bW4tZ2FwOiAzcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQteHhsLXN0YXJ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRleHQteHhsLWVuZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuICAudGV4dC14eGwtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZnMtMSB7XG4gICAgZm9udC1zaXplOiAyLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuZnMtMiB7XG4gICAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmZzLTMge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5mcy00IHtcbiAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAuZC1wcmludC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LWlubGluZS1ncmlkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LXRhYmxlLXJvdyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmQtcHJpbnQtdGFibGUtY2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIC5kLXByaW50LWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1pbmxpbmUtZmxleCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuZC1wcmludC1ub25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIVxuICogQm9vdHN0cmFwIEljb25zIHYxLjExLjMgKGh0dHBzOi8vaWNvbnMuZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gKiBDb3B5cmlnaHQgMjAxOS0yMDI0IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9pY29ucy9ibG9iL21haW4vTElDRU5TRSlcbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcImJvb3RzdHJhcC1pY29uc1wiO1xuICBzcmM6IHVybChcIi4vZm9udHMvYm9vdHN0cmFwLWljb25zLndvZmYyPzI0ZTNlYjg0ZDBiY2FmODNkNzdmOTA0Yzc4YWMxZjQ3XCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuL2ZvbnRzL2Jvb3RzdHJhcC1pY29ucy53b2ZmPzI0ZTNlYjg0ZDBiY2FmODNkNzdmOTA0Yzc4YWMxZjQ3XCIpIGZvcm1hdChcIndvZmZcIik7XG59XG4uYmk6OmJlZm9yZSxcbltjbGFzc149YmktXTo6YmVmb3JlLFxuW2NsYXNzKj1cIiBiaS1cIl06OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiYm9vdHN0cmFwLWljb25zXCIgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5iaS0xMjM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjdmXCI7XG59XG5cbi5iaS1hbGFybS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMVwiO1xufVxuXG4uYmktYWxhcm06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAyXCI7XG59XG5cbi5iaS1hbGlnbi1ib3R0b206OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAzXCI7XG59XG5cbi5iaS1hbGlnbi1jZW50ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG5cbi5iaS1hbGlnbi1lbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG5cbi5iaS1hbGlnbi1taWRkbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG5cbi5iaS1hbGlnbi1zdGFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDdcIjtcbn1cblxuLmJpLWFsaWduLXRvcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDhcIjtcbn1cblxuLmJpLWFsdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDlcIjtcbn1cblxuLmJpLWFwcC1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBhXCI7XG59XG5cbi5iaS1hcHA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBiXCI7XG59XG5cbi5iaS1hcmNoaXZlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBjXCI7XG59XG5cbi5iaS1hcmNoaXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZFwiO1xufVxuXG4uYmktYXJyb3ctOTBkZWctZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGVcIjtcbn1cblxuLmJpLWFycm93LTkwZGVnLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBmXCI7XG59XG5cbi5iaS1hcnJvdy05MGRlZy1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTBcIjtcbn1cblxuLmJpLWFycm93LTkwZGVnLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuXG4uYmktYXJyb3ctYmFyLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEyXCI7XG59XG5cbi5iaS1hcnJvdy1iYXItbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTNcIjtcbn1cblxuLmJpLWFycm93LWJhci1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cblxuLmJpLWFycm93LWJhci11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTVcIjtcbn1cblxuLmJpLWFycm93LWNsb2Nrd2lzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTZcIjtcbn1cblxuLmJpLWFycm93LWNvdW50ZXJjbG9ja3dpc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE3XCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuXG4uYmktYXJyb3ctZG93bi1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE5XCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLWxlZnQtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFhXCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLWxlZnQtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiO1xufVxuXG4uYmktYXJyb3ctZG93bi1sZWZ0LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuXG4uYmktYXJyb3ctZG93bi1sZWZ0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWRcIjtcbn1cblxuLmJpLWFycm93LWRvd24tbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWVcIjtcbn1cblxuLmJpLWFycm93LWRvd24tcmlnaHQtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFmXCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLXJpZ2h0LWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjBcIjtcbn1cblxuLmJpLWFycm93LWRvd24tcmlnaHQtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIxXCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLXJpZ2h0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjJcIjtcbn1cblxuLmJpLWFycm93LWRvd24tcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIzXCI7XG59XG5cbi5iaS1hcnJvdy1kb3duLXNob3J0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiO1xufVxuXG4uYmktYXJyb3ctZG93bi1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjVcIjtcbn1cblxuLmJpLWFycm93LWRvd24tc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNlwiO1xufVxuXG4uYmktYXJyb3ctZG93bi11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cblxuLmJpLWFycm93LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI4XCI7XG59XG5cbi5iaS1hcnJvdy1sZWZ0LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOVwiO1xufVxuXG4uYmktYXJyb3ctbGVmdC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG5cbi5iaS1hcnJvdy1sZWZ0LXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYlwiO1xufVxuXG4uYmktYXJyb3ctbGVmdC1zaG9ydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cblxuLmJpLWFycm93LWxlZnQtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5cbi5iaS1hcnJvdy1sZWZ0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmVcIjtcbn1cblxuLmJpLWFycm93LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJmXCI7XG59XG5cbi5iaS1hcnJvdy1yZXBlYXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG5cbi5iaS1hcnJvdy1yZXR1cm4tbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzFcIjtcbn1cblxuLmJpLWFycm93LXJldHVybi1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzJcIjtcbn1cblxuLmJpLWFycm93LXJpZ2h0LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzM1wiO1xufVxuXG4uYmktYXJyb3ctcmlnaHQtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuXG4uYmktYXJyb3ctcmlnaHQtc2hvcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM1XCI7XG59XG5cbi5iaS1hcnJvdy1yaWdodC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzZcIjtcbn1cblxuLmJpLWFycm93LXJpZ2h0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cblxuLmJpLWFycm93LXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiO1xufVxuXG4uYmktYXJyb3ctdXAtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XG59XG5cbi5iaS1hcnJvdy11cC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XG59XG5cbi5iaS1hcnJvdy11cC1sZWZ0LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYlwiO1xufVxuXG4uYmktYXJyb3ctdXAtbGVmdC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNjXCI7XG59XG5cbi5iaS1hcnJvdy11cC1sZWZ0LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuXG4uYmktYXJyb3ctdXAtbGVmdC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNlXCI7XG59XG5cbi5iaS1hcnJvdy11cC1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZlwiO1xufVxuXG4uYmktYXJyb3ctdXAtcmlnaHQtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQwXCI7XG59XG5cbi5iaS1hcnJvdy11cC1yaWdodC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQxXCI7XG59XG5cbi5iaS1hcnJvdy11cC1yaWdodC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDJcIjtcbn1cblxuLmJpLWFycm93LXVwLXJpZ2h0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDNcIjtcbn1cblxuLmJpLWFycm93LXVwLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NFwiO1xufVxuXG4uYmktYXJyb3ctdXAtc2hvcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ1XCI7XG59XG5cbi5iaS1hcnJvdy11cC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDZcIjtcbn1cblxuLmJpLWFycm93LXVwLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cblxuLmJpLWFycm93LXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0OFwiO1xufVxuXG4uYmktYXJyb3dzLWFuZ2xlLWNvbnRyYWN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0OVwiO1xufVxuXG4uYmktYXJyb3dzLWFuZ2xlLWV4cGFuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cblxuLmJpLWFycm93cy1jb2xsYXBzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGJcIjtcbn1cblxuLmJpLWFycm93cy1leHBhbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRjXCI7XG59XG5cbi5iaS1hcnJvd3MtZnVsbHNjcmVlbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cblxuLmJpLWFycm93cy1tb3ZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZVwiO1xufVxuXG4uYmktYXNwZWN0LXJhdGlvLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRmXCI7XG59XG5cbi5iaS1hc3BlY3QtcmF0aW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG5cbi5iaS1hc3Rlcmlzazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbn1cblxuLmJpLWF0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuXG4uYmktYXdhcmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cblxuLmJpLWF3YXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuXG4uYmktYmFjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTVcIjtcbn1cblxuLmJpLWJhY2tzcGFjZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuXG4uYmktYmFja3NwYWNlLXJldmVyc2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cblxuLmJpLWJhY2tzcGFjZS1yZXZlcnNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuXG4uYmktYmFja3NwYWNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuXG4uYmktYmFkZ2UtM2QtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWFcIjtcbn1cblxuLmJpLWJhZGdlLTNkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuXG4uYmktYmFkZ2UtNGstZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWNcIjtcbn1cblxuLmJpLWJhZGdlLTRrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZFwiO1xufVxuXG4uYmktYmFkZ2UtOGstZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWVcIjtcbn1cblxuLmJpLWJhZGdlLThrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZlwiO1xufVxuXG4uYmktYmFkZ2UtYWQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cblxuLmJpLWJhZGdlLWFkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuXG4uYmktYmFkZ2UtYXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cblxuLmJpLWJhZGdlLWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuXG4uYmktYmFkZ2UtY2MtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjRcIjtcbn1cblxuLmJpLWJhZGdlLWNjOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NVwiO1xufVxuXG4uYmktYmFkZ2UtaGQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjZcIjtcbn1cblxuLmJpLWJhZGdlLWhkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2N1wiO1xufVxuXG4uYmktYmFkZ2UtdG0tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjhcIjtcbn1cblxuLmJpLWJhZGdlLXRtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OVwiO1xufVxuXG4uYmktYmFkZ2Utdm8tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmFcIjtcbn1cblxuLmJpLWJhZGdlLXZvOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2YlwiO1xufVxuXG4uYmktYmFkZ2UtdnItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmNcIjtcbn1cblxuLmJpLWJhZGdlLXZyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZFwiO1xufVxuXG4uYmktYmFkZ2Utd2MtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmVcIjtcbn1cblxuLmJpLWJhZGdlLXdjOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2ZlwiO1xufVxuXG4uYmktYmFnLWNoZWNrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcwXCI7XG59XG5cbi5iaS1iYWctY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG5cbi5iaS1iYWctZGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MlwiO1xufVxuXG4uYmktYmFnLWRhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTczXCI7XG59XG5cbi5iaS1iYWctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzRcIjtcbn1cblxuLmJpLWJhZy1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc1XCI7XG59XG5cbi5iaS1iYWctcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzZcIjtcbn1cblxuLmJpLWJhZy14LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc3XCI7XG59XG5cbi5iaS1iYWcteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzhcIjtcbn1cblxuLmJpLWJhZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzlcIjtcbn1cblxuLmJpLWJhci1jaGFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuXG4uYmktYmFyLWNoYXJ0LWxpbmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2JcIjtcbn1cblxuLmJpLWJhci1jaGFydC1saW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3Y1wiO1xufVxuXG4uYmktYmFyLWNoYXJ0LXN0ZXBzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiO1xufVxuXG4uYmktYmFyLWNoYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZVwiO1xufVxuXG4uYmktYmFza2V0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdmXCI7XG59XG5cbi5iaS1iYXNrZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgwXCI7XG59XG5cbi5iaS1iYXNrZXQyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgxXCI7XG59XG5cbi5iaS1iYXNrZXQyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MlwiO1xufVxuXG4uYmktYmFza2V0My1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiO1xufVxuXG4uYmktYmFza2V0Mzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cblxuLmJpLWJhdHRlcnktY2hhcmdpbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG5cbi5iaS1iYXR0ZXJ5LWZ1bGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg2XCI7XG59XG5cbi5iaS1iYXR0ZXJ5LWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg3XCI7XG59XG5cbi5iaS1iYXR0ZXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OFwiO1xufVxuXG4uYmktYmVsbC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OVwiO1xufVxuXG4uYmktYmVsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGFcIjtcbn1cblxuLmJpLWJlemllcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGJcIjtcbn1cblxuLmJpLWJlemllcjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThjXCI7XG59XG5cbi5iaS1iaWN5Y2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZFwiO1xufVxuXG4uYmktYmlub2N1bGFycy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZVwiO1xufVxuXG4uYmktYmlub2N1bGFyczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGZcIjtcbn1cblxuLmJpLWJsb2NrcXVvdGUtbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTBcIjtcbn1cblxuLmJpLWJsb2NrcXVvdGUtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5cbi5iaS1ib29rLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkyXCI7XG59XG5cbi5iaS1ib29rLWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkzXCI7XG59XG5cbi5iaS1ib29rOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NFwiO1xufVxuXG4uYmktYm9va21hcmstY2hlY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTVcIjtcbn1cblxuLmJpLWJvb2ttYXJrLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NlwiO1xufVxuXG4uYmktYm9va21hcmstZGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5N1wiO1xufVxuXG4uYmktYm9va21hcmstZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOThcIjtcbn1cblxuLmJpLWJvb2ttYXJrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7XG59XG5cbi5iaS1ib29rbWFyay1oZWFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YVwiO1xufVxuXG4uYmktYm9va21hcmstaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTliXCI7XG59XG5cbi5iaS1ib29rbWFyay1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTljXCI7XG59XG5cbi5iaS1ib29rbWFyay1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZFwiO1xufVxuXG4uYmktYm9va21hcmstc3Rhci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZVwiO1xufVxuXG4uYmktYm9va21hcmstc3Rhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWZcIjtcbn1cblxuLmJpLWJvb2ttYXJrLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTBcIjtcbn1cblxuLmJpLWJvb2ttYXJrLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWExXCI7XG59XG5cbi5iaS1ib29rbWFyazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTJcIjtcbn1cblxuLmJpLWJvb2ttYXJrcy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhM1wiO1xufVxuXG4uYmktYm9va21hcmtzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNFwiO1xufVxuXG4uYmktYm9va3NoZWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNVwiO1xufVxuXG4uYmktYm9vdHN0cmFwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE2XCI7XG59XG5cbi5iaS1ib290c3RyYXAtcmVib290OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhN1wiO1xufVxuXG4uYmktYm9vdHN0cmFwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhOFwiO1xufVxuXG4uYmktYm9yZGVyLWFsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cblxuLmJpLWJvcmRlci1ib3R0b206OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFhXCI7XG59XG5cbi5iaS1ib3JkZXItY2VudGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuXG4uYmktYm9yZGVyLWlubmVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuXG4uYmktYm9yZGVyLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG5cbi5iaS1ib3JkZXItbWlkZGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZVwiO1xufVxuXG4uYmktYm9yZGVyLW91dGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZlwiO1xufVxuXG4uYmktYm9yZGVyLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMFwiO1xufVxuXG4uYmktYm9yZGVyLXN0eWxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMVwiO1xufVxuXG4uYmktYm9yZGVyLXRvcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cblxuLmJpLWJvcmRlci13aWR0aDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjNcIjtcbn1cblxuLmJpLWJvcmRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjRcIjtcbn1cblxuLmJpLWJvdW5kaW5nLWJveC1jaXJjbGVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuXG4uYmktYm91bmRpbmctYm94OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNlwiO1xufVxuXG4uYmktYm94LWFycm93LWRvd24tbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjdcIjtcbn1cblxuLmJpLWJveC1hcnJvdy1kb3duLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuXG4uYmktYm94LWFycm93LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI5XCI7XG59XG5cbi5iaS1ib3gtYXJyb3ctaW4tZG93bi1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYVwiO1xufVxuXG4uYmktYm94LWFycm93LWluLWRvd24tcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJiXCI7XG59XG5cbi5iaS1ib3gtYXJyb3ctaW4tZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmNcIjtcbn1cblxuLmJpLWJveC1hcnJvdy1pbi1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuXG4uYmktYm94LWFycm93LWluLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZVwiO1xufVxuXG4uYmktYm94LWFycm93LWluLXVwLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJmXCI7XG59XG5cbi5iaS1ib3gtYXJyb3ctaW4tdXAtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMwXCI7XG59XG5cbi5iaS1ib3gtYXJyb3ctaW4tdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7XG59XG5cbi5iaS1ib3gtYXJyb3ctbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzJcIjtcbn1cblxuLmJpLWJveC1hcnJvdy1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzNcIjtcbn1cblxuLmJpLWJveC1hcnJvdy11cC1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNFwiO1xufVxuXG4uYmktYm94LWFycm93LXVwLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNVwiO1xufVxuXG4uYmktYm94LWFycm93LXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNlwiO1xufVxuXG4uYmktYm94LXNlYW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG5cbi5iaS1ib3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG5cbi5iaS1icmFjZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM5XCI7XG59XG5cbi5iaS1icmlja3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNhXCI7XG59XG5cbi5iaS1icmllZmNhc2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2JcIjtcbn1cblxuLmJpLWJyaWVmY2FzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2NcIjtcbn1cblxuLmJpLWJyaWdodG5lc3MtYWx0LWhpZ2gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2RcIjtcbn1cblxuLmJpLWJyaWdodG5lc3MtYWx0LWhpZ2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG5cbi5iaS1icmlnaHRuZXNzLWFsdC1sb3ctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2ZcIjtcbn1cblxuLmJpLWJyaWdodG5lc3MtYWx0LWxvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDBcIjtcbn1cblxuLmJpLWJyaWdodG5lc3MtaGlnaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMVwiO1xufVxuXG4uYmktYnJpZ2h0bmVzcy1oaWdoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMlwiO1xufVxuXG4uYmktYnJpZ2h0bmVzcy1sb3ctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cblxuLmJpLWJyaWdodG5lc3MtbG93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNFwiO1xufVxuXG4uYmktYnJvYWRjYXN0LXBpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cblxuLmJpLWJyb2FkY2FzdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDZcIjtcbn1cblxuLmJpLWJydXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG5cbi5iaS1icnVzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cblxuLmJpLWJ1Y2tldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkOVwiO1xufVxuXG4uYmktYnVja2V0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkYVwiO1xufVxuXG4uYmktYnVnLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRiXCI7XG59XG5cbi5iaS1idWc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRjXCI7XG59XG5cbi5iaS1idWlsZGluZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGRcIjtcbn1cblxuLmJpLWJ1bGxzZXllOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuXG4uYmktY2FsY3VsYXRvci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZlwiO1xufVxuXG4uYmktY2FsY3VsYXRvcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTBcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWNoZWNrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUxXCI7XG59XG5cbi5iaS1jYWxlbmRhci1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWRhdGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTNcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWRhdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU0XCI7XG59XG5cbi5iaS1jYWxlbmRhci1kYXktZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWRheTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTZcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWV2ZW50LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU3XCI7XG59XG5cbi5iaS1jYWxlbmRhci1ldmVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZThcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU5XCI7XG59XG5cbi5iaS1jYWxlbmRhci1taW51cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuXG4uYmktY2FsZW5kYXItbWludXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWViXCI7XG59XG5cbi5iaS1jYWxlbmRhci1tb250aC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlY1wiO1xufVxuXG4uYmktY2FsZW5kYXItbW9udGg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVkXCI7XG59XG5cbi5iaS1jYWxlbmRhci1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVlXCI7XG59XG5cbi5iaS1jYWxlbmRhci1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZlwiO1xufVxuXG4uYmktY2FsZW5kYXItcmFuZ2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cblxuLmJpLWNhbGVuZGFyLXJhbmdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuXG4uYmktY2FsZW5kYXItd2Vlay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMlwiO1xufVxuXG4uYmktY2FsZW5kYXItd2Vlazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cblxuLmJpLWNhbGVuZGFyLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjRcIjtcbn1cblxuLmJpLWNhbGVuZGFyLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG5cbi5iaS1jYWxlbmRhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmN1wiO1xufVxuXG4uYmktY2FsZW5kYXIyLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOFwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWRhdGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1kYXRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYVwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWRheS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYlwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWRheTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmNcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1ldmVudC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZFwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWV2ZW50OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZmXCI7XG59XG5cbi5iaS1jYWxlbmRhcjItbWludXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDBcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1taW51czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1tb250aC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMlwiO1xufVxuXG4uYmktY2FsZW5kYXIyLW1vbnRoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwM1wiO1xufVxuXG4uYmktY2FsZW5kYXIyLXBsdXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDRcIjtcbn1cblxuLmJpLWNhbGVuZGFyMi1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuXG4uYmktY2FsZW5kYXIyLXJhbmdlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA2XCI7XG59XG5cbi5iaS1jYWxlbmRhcjItcmFuZ2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA3XCI7XG59XG5cbi5iaS1jYWxlbmRhcjItd2Vlay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOFwiO1xufVxuXG4uYmktY2FsZW5kYXIyLXdlZWs6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG5cbi5iaS1jYWxlbmRhcjIteC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiO1xufVxuXG4uYmktY2FsZW5kYXIyLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5cbi5iaS1jYWxlbmRhcjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBjXCI7XG59XG5cbi5iaS1jYWxlbmRhcjMtZXZlbnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGRcIjtcbn1cblxuLmJpLWNhbGVuZGFyMy1ldmVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGVcIjtcbn1cblxuLmJpLWNhbGVuZGFyMy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZlwiO1xufVxuXG4uYmktY2FsZW5kYXIzLXJhbmdlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEwXCI7XG59XG5cbi5iaS1jYWxlbmRhcjMtcmFuZ2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjExXCI7XG59XG5cbi5iaS1jYWxlbmRhcjMtd2Vlay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMlwiO1xufVxuXG4uYmktY2FsZW5kYXIzLXdlZWs6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEzXCI7XG59XG5cbi5iaS1jYWxlbmRhcjM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE0XCI7XG59XG5cbi5iaS1jYWxlbmRhcjQtZXZlbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE1XCI7XG59XG5cbi5iaS1jYWxlbmRhcjQtcmFuZ2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE2XCI7XG59XG5cbi5iaS1jYWxlbmRhcjQtd2Vlazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cblxuLmJpLWNhbGVuZGFyNDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cblxuLmJpLWNhbWVyYS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOVwiO1xufVxuXG4uYmktY2FtZXJhLXJlZWxzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFhXCI7XG59XG5cbi5iaS1jYW1lcmEtcmVlbHM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5cbi5iaS1jYW1lcmEtdmlkZW8tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWNcIjtcbn1cblxuLmJpLWNhbWVyYS12aWRlby1vZmYtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWRcIjtcbn1cblxuLmJpLWNhbWVyYS12aWRlby1vZmY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFlXCI7XG59XG5cbi5iaS1jYW1lcmEtdmlkZW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFmXCI7XG59XG5cbi5iaS1jYW1lcmE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIwXCI7XG59XG5cbi5iaS1jYW1lcmEyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuXG4uYmktY2Fwc2xvY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjJcIjtcbn1cblxuLmJpLWNhcHNsb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyM1wiO1xufVxuXG4uYmktY2FyZC1jaGVja2xpc3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG5cbi5iaS1jYXJkLWhlYWRpbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI1XCI7XG59XG5cbi5iaS1jYXJkLWltYWdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuXG4uYmktY2FyZC1saXN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyN1wiO1xufVxuXG4uYmktY2FyZC10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOFwiO1xufVxuXG4uYmktY2FyZXQtZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOVwiO1xufVxuXG4uYmktY2FyZXQtZG93bi1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmFcIjtcbn1cblxuLmJpLWNhcmV0LWRvd24tc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYlwiO1xufVxuXG4uYmktY2FyZXQtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmNcIjtcbn1cblxuLmJpLWNhcmV0LWxlZnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmRcIjtcbn1cblxuLmJpLWNhcmV0LWxlZnQtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJlXCI7XG59XG5cbi5iaS1jYXJldC1sZWZ0LXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmZcIjtcbn1cblxuLmJpLWNhcmV0LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMwXCI7XG59XG5cbi5iaS1jYXJldC1yaWdodC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMVwiO1xufVxuXG4uYmktY2FyZXQtcmlnaHQtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMyXCI7XG59XG5cbi5iaS1jYXJldC1yaWdodC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMzXCI7XG59XG5cbi5iaS1jYXJldC1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzRcIjtcbn1cblxuLmJpLWNhcmV0LXVwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM1XCI7XG59XG5cbi5iaS1jYXJldC11cC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzZcIjtcbn1cblxuLmJpLWNhcmV0LXVwLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzdcIjtcbn1cblxuLmJpLWNhcmV0LXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzOFwiO1xufVxuXG4uYmktY2FydC1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzOVwiO1xufVxuXG4uYmktY2FydC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2FcIjtcbn1cblxuLmJpLWNhcnQtZGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuXG4uYmktY2FydC1kYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzY1wiO1xufVxuXG4uYmktY2FydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzZFwiO1xufVxuXG4uYmktY2FydC1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNlXCI7XG59XG5cbi5iaS1jYXJ0LXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNmXCI7XG59XG5cbi5iaS1jYXJ0LXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDBcIjtcbn1cblxuLmJpLWNhcnQteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cblxuLmJpLWNhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQyXCI7XG59XG5cbi5iaS1jYXJ0Mjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cblxuLmJpLWNhcnQzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuXG4uYmktY2FydDQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ1XCI7XG59XG5cbi5iaS1jYXNoLXN0YWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NlwiO1xufVxuXG4uYmktY2FzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDdcIjtcbn1cblxuLmJpLWNhc3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG5cbi5iaS1jaGF0LWRvdHMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDlcIjtcbn1cblxuLmJpLWNoYXQtZG90czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGFcIjtcbn1cblxuLmJpLWNoYXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cblxuLmJpLWNoYXQtbGVmdC1kb3RzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5cbi5iaS1jaGF0LWxlZnQtZG90czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGRcIjtcbn1cblxuLmJpLWNoYXQtbGVmdC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZVwiO1xufVxuXG4uYmktY2hhdC1sZWZ0LXF1b3RlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRmXCI7XG59XG5cbi5iaS1jaGF0LWxlZnQtcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUwXCI7XG59XG5cbi5iaS1jaGF0LWxlZnQtdGV4dC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiO1xufVxuXG4uYmktY2hhdC1sZWZ0LXRleHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUyXCI7XG59XG5cbi5iaS1jaGF0LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5cbi5iaS1jaGF0LXF1b3RlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG5cbi5iaS1jaGF0LXF1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NVwiO1xufVxuXG4uYmktY2hhdC1yaWdodC1kb3RzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LWRvdHM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU3XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU4XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LXF1b3RlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU5XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LXF1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1YVwiO1xufVxuXG4uYmktY2hhdC1yaWdodC10ZXh0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LXRleHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVjXCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuXG4uYmktY2hhdC1zcXVhcmUtZG90cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZVwiO1xufVxuXG4uYmktY2hhdC1zcXVhcmUtZG90czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWZcIjtcbn1cblxuLmJpLWNoYXQtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYwXCI7XG59XG5cbi5iaS1jaGF0LXNxdWFyZS1xdW90ZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MVwiO1xufVxuXG4uYmktY2hhdC1zcXVhcmUtcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYyXCI7XG59XG5cbi5iaS1jaGF0LXNxdWFyZS10ZXh0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYzXCI7XG59XG5cbi5iaS1jaGF0LXNxdWFyZS10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NFwiO1xufVxuXG4uYmktY2hhdC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7XG59XG5cbi5iaS1jaGF0LXRleHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cblxuLmJpLWNoYXQtdGV4dDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjdcIjtcbn1cblxuLmJpLWNoYXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY4XCI7XG59XG5cbi5iaS1jaGVjay1hbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY5XCI7XG59XG5cbi5iaS1jaGVjay1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmFcIjtcbn1cblxuLmJpLWNoZWNrLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmJcIjtcbn1cblxuLmJpLWNoZWNrLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiO1xufVxuXG4uYmktY2hlY2stc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZFwiO1xufVxuXG4uYmktY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5cbi5iaS1jaGVjazItYWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZlwiO1xufVxuXG4uYmktY2hlY2syLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzBcIjtcbn1cblxuLmJpLWNoZWNrMi1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5cbi5iaS1jaGVjazI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcyXCI7XG59XG5cbi5iaS1jaGV2cm9uLWJhci1jb250cmFjdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cblxuLmJpLWNoZXZyb24tYmFyLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc0XCI7XG59XG5cbi5iaS1jaGV2cm9uLWJhci1leHBhbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc1XCI7XG59XG5cbi5iaS1jaGV2cm9uLWJhci1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NlwiO1xufVxuXG4uYmktY2hldnJvbi1iYXItcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc3XCI7XG59XG5cbi5iaS1jaGV2cm9uLWJhci11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzhcIjtcbn1cblxuLmJpLWNoZXZyb24tY29tcGFjdC1kb3duOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3OVwiO1xufVxuXG4uYmktY2hldnJvbi1jb21wYWN0LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5cbi5iaS1jaGV2cm9uLWNvbXBhY3QtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdiXCI7XG59XG5cbi5iaS1jaGV2cm9uLWNvbXBhY3QtdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdjXCI7XG59XG5cbi5iaS1jaGV2cm9uLWNvbnRyYWN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3ZFwiO1xufVxuXG4uYmktY2hldnJvbi1kb3VibGUtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2VcIjtcbn1cblxuLmJpLWNoZXZyb24tZG91YmxlLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdmXCI7XG59XG5cbi5iaS1jaGV2cm9uLWRvdWJsZS1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODBcIjtcbn1cblxuLmJpLWNoZXZyb24tZG91YmxlLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MVwiO1xufVxuXG4uYmktY2hldnJvbi1kb3duOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiO1xufVxuXG4uYmktY2hldnJvbi1leHBhbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgzXCI7XG59XG5cbi5iaS1jaGV2cm9uLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg0XCI7XG59XG5cbi5iaS1jaGV2cm9uLXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NVwiO1xufVxuXG4uYmktY2hldnJvbi11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODZcIjtcbn1cblxuLmJpLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4N1wiO1xufVxuXG4uYmktY2lyY2xlLWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg4XCI7XG59XG5cbi5iaS1jaXJjbGUtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4OVwiO1xufVxuXG4uYmktY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YVwiO1xufVxuXG4uYmktY2xpcGJvYXJkLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YlwiO1xufVxuXG4uYmktY2xpcGJvYXJkLWRhdGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhjXCI7XG59XG5cbi5iaS1jbGlwYm9hcmQtbWludXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhkXCI7XG59XG5cbi5iaS1jbGlwYm9hcmQtcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGVcIjtcbn1cblxuLmJpLWNsaXBib2FyZC14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4ZlwiO1xufVxuXG4uYmktY2xpcGJvYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MFwiO1xufVxuXG4uYmktY2xvY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTFcIjtcbn1cblxuLmJpLWNsb2NrLWhpc3Rvcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkyXCI7XG59XG5cbi5iaS1jbG9jazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTNcIjtcbn1cblxuLmJpLWNsb3VkLWFycm93LWRvd24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTRcIjtcbn1cblxuLmJpLWNsb3VkLWFycm93LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk1XCI7XG59XG5cbi5iaS1jbG91ZC1hcnJvdy11cC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NlwiO1xufVxuXG4uYmktY2xvdWQtYXJyb3ctdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk3XCI7XG59XG5cbi5iaS1jbG91ZC1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiO1xufVxuXG4uYmktY2xvdWQtY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk5XCI7XG59XG5cbi5iaS1jbG91ZC1kb3dubG9hZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5YVwiO1xufVxuXG4uYmktY2xvdWQtZG93bmxvYWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjliXCI7XG59XG5cbi5iaS1jbG91ZC1kcml6emxlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjljXCI7XG59XG5cbi5iaS1jbG91ZC1kcml6emxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZFwiO1xufVxuXG4uYmktY2xvdWQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWVcIjtcbn1cblxuLmJpLWNsb3VkLWZvZy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZlwiO1xufVxuXG4uYmktY2xvdWQtZm9nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMFwiO1xufVxuXG4uYmktY2xvdWQtZm9nMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMVwiO1xufVxuXG4uYmktY2xvdWQtZm9nMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTJcIjtcbn1cblxuLmJpLWNsb3VkLWhhaWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjtcbn1cblxuLmJpLWNsb3VkLWhhaWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE0XCI7XG59XG5cbi5iaS1jbG91ZC1oYXplLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE2XCI7XG59XG5cbi5iaS1jbG91ZC1oYXplOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhN1wiO1xufVxuXG4uYmktY2xvdWQtaGF6ZTItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYThcIjtcbn1cblxuLmJpLWNsb3VkLWxpZ2h0bmluZy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOVwiO1xufVxuXG4uYmktY2xvdWQtbGlnaHRuaW5nLXJhaW4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWFcIjtcbn1cblxuLmJpLWNsb3VkLWxpZ2h0bmluZy1yYWluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYlwiO1xufVxuXG4uYmktY2xvdWQtbGlnaHRuaW5nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhY1wiO1xufVxuXG4uYmktY2xvdWQtbWludXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWRcIjtcbn1cblxuLmJpLWNsb3VkLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZVwiO1xufVxuXG4uYmktY2xvdWQtbW9vbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhZlwiO1xufVxuXG4uYmktY2xvdWQtbW9vbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjBcIjtcbn1cblxuLmJpLWNsb3VkLXBsdXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjFcIjtcbn1cblxuLmJpLWNsb3VkLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7XG59XG5cbi5iaS1jbG91ZC1yYWluLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIzXCI7XG59XG5cbi5iaS1jbG91ZC1yYWluLWhlYXZ5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI0XCI7XG59XG5cbi5iaS1jbG91ZC1yYWluLWhlYXZ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNVwiO1xufVxuXG4uYmktY2xvdWQtcmFpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjZcIjtcbn1cblxuLmJpLWNsb3VkLXNsYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI3XCI7XG59XG5cbi5iaS1jbG91ZC1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjhcIjtcbn1cblxuLmJpLWNsb3VkLXNsZWV0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI5XCI7XG59XG5cbi5iaS1jbG91ZC1zbGVldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmFcIjtcbn1cblxuLmJpLWNsb3VkLXNub3ctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cblxuLmJpLWNsb3VkLXNub3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJjXCI7XG59XG5cbi5iaS1jbG91ZC1zdW4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmRcIjtcbn1cblxuLmJpLWNsb3VkLXN1bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmVcIjtcbn1cblxuLmJpLWNsb3VkLXVwbG9hZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZlwiO1xufVxuXG4uYmktY2xvdWQtdXBsb2FkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjMFwiO1xufVxuXG4uYmktY2xvdWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMxXCI7XG59XG5cbi5iaS1jbG91ZHMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjtcbn1cblxuLmJpLWNsb3Vkczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzNcIjtcbn1cblxuLmJpLWNsb3VkeS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNFwiO1xufVxuXG4uYmktY2xvdWR5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNVwiO1xufVxuXG4uYmktY29kZS1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzZcIjtcbn1cblxuLmJpLWNvZGUtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjN1wiO1xufVxuXG4uYmktY29kZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzhcIjtcbn1cblxuLmJpLWNvbGxlY3Rpb24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzlcIjtcbn1cblxuLmJpLWNvbGxlY3Rpb24tcGxheS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYVwiO1xufVxuXG4uYmktY29sbGVjdGlvbi1wbGF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjYlwiO1xufVxuXG4uYmktY29sbGVjdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2NcIjtcbn1cblxuLmJpLWNvbHVtbnMtZ2FwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiO1xufVxuXG4uYmktY29sdW1uczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2VcIjtcbn1cblxuLmJpLWNvbW1hbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNmXCI7XG59XG5cbi5iaS1jb21wYXNzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQwXCI7XG59XG5cbi5iaS1jb21wYXNzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkMVwiO1xufVxuXG4uYmktY29uZS1zdHJpcGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkMlwiO1xufVxuXG4uYmktY29uZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDNcIjtcbn1cblxuLmJpLWNvbnRyb2xsZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ0XCI7XG59XG5cbi5iaS1jcHUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDVcIjtcbn1cblxuLmJpLWNwdTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDZcIjtcbn1cblxuLmJpLWNyZWRpdC1jYXJkLTItYmFjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkN1wiO1xufVxuXG4uYmktY3JlZGl0LWNhcmQtMi1iYWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkOFwiO1xufVxuXG4uYmktY3JlZGl0LWNhcmQtMi1mcm9udC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkOVwiO1xufVxuXG4uYmktY3JlZGl0LWNhcmQtMi1mcm9udDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cblxuLmJpLWNyZWRpdC1jYXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRiXCI7XG59XG5cbi5iaS1jcmVkaXQtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGNcIjtcbn1cblxuLmJpLWNyb3A6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRkXCI7XG59XG5cbi5iaS1jdXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGVcIjtcbn1cblxuLmJpLWN1cC1zdHJhdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGZcIjtcbn1cblxuLmJpLWN1cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZTBcIjtcbn1cblxuLmJpLWN1cnNvci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlMVwiO1xufVxuXG4uYmktY3Vyc29yLXRleHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmUyXCI7XG59XG5cbi5iaS1jdXJzb3I6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmUzXCI7XG59XG5cbi5iaS1kYXNoLWNpcmNsZS1kb3R0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU0XCI7XG59XG5cbi5iaS1kYXNoLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiO1xufVxuXG4uYmktZGFzaC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU2XCI7XG59XG5cbi5iaS1kYXNoLXNxdWFyZS1kb3R0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU3XCI7XG59XG5cbi5iaS1kYXNoLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlOFwiO1xufVxuXG4uYmktZGFzaC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU5XCI7XG59XG5cbi5iaS1kYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlYVwiO1xufVxuXG4uYmktZGlhZ3JhbS0yLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmViXCI7XG59XG5cbi5iaS1kaWFncmFtLTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVjXCI7XG59XG5cbi5iaS1kaWFncmFtLTMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZWRcIjtcbn1cblxuLmJpLWRpYWdyYW0tMzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZWVcIjtcbn1cblxuLmJpLWRpYW1vbmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZWZcIjtcbn1cblxuLmJpLWRpYW1vbmQtaGFsZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjBcIjtcbn1cblxuLmJpLWRpYW1vbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmYxXCI7XG59XG5cbi5iaS1kaWNlLTEtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjJcIjtcbn1cblxuLmJpLWRpY2UtMTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjNcIjtcbn1cblxuLmJpLWRpY2UtMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNFwiO1xufVxuXG4uYmktZGljZS0yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuXG4uYmktZGljZS0zLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY2XCI7XG59XG5cbi5iaS1kaWNlLTM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY3XCI7XG59XG5cbi5iaS1kaWNlLTQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjhcIjtcbn1cblxuLmJpLWRpY2UtNDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjlcIjtcbn1cblxuLmJpLWRpY2UtNS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmYVwiO1xufVxuXG4uYmktZGljZS01OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmYlwiO1xufVxuXG4uYmktZGljZS02LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmZjXCI7XG59XG5cbi5iaS1kaWNlLTY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmZkXCI7XG59XG5cbi5iaS1kaXNjLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmZlXCI7XG59XG5cbi5iaS1kaXNjOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmZlwiO1xufVxuXG4uYmktZGlzY29yZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDBcIjtcbn1cblxuLmJpLWRpc3BsYXktZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDFcIjtcbn1cblxuLmJpLWRpc3BsYXk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAyXCI7XG59XG5cbi5iaS1kaXN0cmlidXRlLWhvcml6b250YWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5cbi5iaS1kaXN0cmlidXRlLXZlcnRpY2FsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwNFwiO1xufVxuXG4uYmktZG9vci1jbG9zZWQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDVcIjtcbn1cblxuLmJpLWRvb3ItY2xvc2VkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwNlwiO1xufVxuXG4uYmktZG9vci1vcGVuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA3XCI7XG59XG5cbi5iaS1kb29yLW9wZW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA4XCI7XG59XG5cbi5iaS1kb3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA5XCI7XG59XG5cbi5iaS1kb3dubG9hZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGFcIjtcbn1cblxuLmJpLWRyb3BsZXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGJcIjtcbn1cblxuLmJpLWRyb3BsZXQtaGFsZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGNcIjtcbn1cblxuLmJpLWRyb3BsZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBkXCI7XG59XG5cbi5iaS1lYXJidWRzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwZVwiO1xufVxuXG4uYmktZWFzZWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGZcIjtcbn1cblxuLmJpLWVhc2VsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxMFwiO1xufVxuXG4uYmktZWdnLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzExXCI7XG59XG5cbi5iaS1lZ2ctZnJpZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzEyXCI7XG59XG5cbi5iaS1lZ2c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzEzXCI7XG59XG5cbi5iaS1lamVjdC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxNFwiO1xufVxuXG4uYmktZWplY3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE1XCI7XG59XG5cbi5iaS1lbW9qaS1hbmdyeS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxNlwiO1xufVxuXG4uYmktZW1vamktYW5ncnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE3XCI7XG59XG5cbi5iaS1lbW9qaS1kaXp6eS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxOFwiO1xufVxuXG4uYmktZW1vamktZGl6enk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzE5XCI7XG59XG5cbi5iaS1lbW9qaS1leHByZXNzaW9ubGVzcy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxYVwiO1xufVxuXG4uYmktZW1vamktZXhwcmVzc2lvbmxlc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFiXCI7XG59XG5cbi5iaS1lbW9qaS1mcm93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxY1wiO1xufVxuXG4uYmktZW1vamktZnJvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFkXCI7XG59XG5cbi5iaS1lbW9qaS1oZWFydC1leWVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzFlXCI7XG59XG5cbi5iaS1lbW9qaS1oZWFydC1leWVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxZlwiO1xufVxuXG4uYmktZW1vamktbGF1Z2hpbmctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjBcIjtcbn1cblxuLmJpLWVtb2ppLWxhdWdoaW5nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyMVwiO1xufVxuXG4uYmktZW1vamktbmV1dHJhbC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyMlwiO1xufVxuXG4uYmktZW1vamktbmV1dHJhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjNcIjtcbn1cblxuLmJpLWVtb2ppLXNtaWxlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI0XCI7XG59XG5cbi5iaS1lbW9qaS1zbWlsZS11cHNpZGUtZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyNVwiO1xufVxuXG4uYmktZW1vamktc21pbGUtdXBzaWRlLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI2XCI7XG59XG5cbi5iaS1lbW9qaS1zbWlsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjdcIjtcbn1cblxuLmJpLWVtb2ppLXN1bmdsYXNzZXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMjhcIjtcbn1cblxuLmJpLWVtb2ppLXN1bmdsYXNzZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI5XCI7XG59XG5cbi5iaS1lbW9qaS13aW5rLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzJhXCI7XG59XG5cbi5iaS1lbW9qaS13aW5rOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMyYlwiO1xufVxuXG4uYmktZW52ZWxvcGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMmNcIjtcbn1cblxuLmJpLWVudmVsb3BlLW9wZW4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMmRcIjtcbn1cblxuLmJpLWVudmVsb3BlLW9wZW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzJlXCI7XG59XG5cbi5iaS1lbnZlbG9wZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMmZcIjtcbn1cblxuLmJpLWVyYXNlci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzMFwiO1xufVxuXG4uYmktZXJhc2VyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzMVwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzMyXCI7XG59XG5cbi5iaS1leGNsYW1hdGlvbi1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzMzXCI7XG59XG5cbi5iaS1leGNsYW1hdGlvbi1kaWFtb25kLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM0XCI7XG59XG5cbi5iaS1leGNsYW1hdGlvbi1kaWFtb25kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzNVwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tb2N0YWdvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzNlwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tb2N0YWdvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzdcIjtcbn1cblxuLmJpLWV4Y2xhbWF0aW9uLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOVwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tdHJpYW5nbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzM2FcIjtcbn1cblxuLmJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzYlwiO1xufVxuXG4uYmktZXhjbGFtYXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzNjXCI7XG59XG5cbi5iaS1leGNsdWRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzZFwiO1xufVxuXG4uYmktZXllLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzNlXCI7XG59XG5cbi5iaS1leWUtc2xhc2gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzM2ZcIjtcbn1cblxuLmJpLWV5ZS1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDBcIjtcbn1cblxuLmJpLWV5ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDFcIjtcbn1cblxuLmJpLWV5ZWRyb3BwZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzQyXCI7XG59XG5cbi5iaS1leWVnbGFzc2VzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0M1wiO1xufVxuXG4uYmktZmFjZWJvb2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzQ0XCI7XG59XG5cbi5iaS1maWxlLWFycm93LWRvd24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDVcIjtcbn1cblxuLmJpLWZpbGUtYXJyb3ctZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDZcIjtcbn1cblxuLmJpLWZpbGUtYXJyb3ctdXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNDdcIjtcbn1cblxuLmJpLWZpbGUtYXJyb3ctdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzQ4XCI7XG59XG5cbi5iaS1maWxlLWJhci1ncmFwaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0OVwiO1xufVxuXG4uYmktZmlsZS1iYXItZ3JhcGg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzRhXCI7XG59XG5cbi5iaS1maWxlLWJpbmFyeS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0YlwiO1xufVxuXG4uYmktZmlsZS1iaW5hcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzRjXCI7XG59XG5cbi5iaS1maWxlLWJyZWFrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzRkXCI7XG59XG5cbi5iaS1maWxlLWJyZWFrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0ZVwiO1xufVxuXG4uYmktZmlsZS1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM0ZlwiO1xufVxuXG4uYmktZmlsZS1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTBcIjtcbn1cblxuLmJpLWZpbGUtY29kZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1MVwiO1xufVxuXG4uYmktZmlsZS1jb2RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1MlwiO1xufVxuXG4uYmktZmlsZS1kaWZmLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzUzXCI7XG59XG5cbi5iaS1maWxlLWRpZmY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU0XCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstYXJyb3ctZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1NVwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWFycm93LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU2XCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstYXJyb3ctdXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTdcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1hcnJvdy11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1iYXItZ3JhcGgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTlcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1iYXItZ3JhcGg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVhXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstYmluYXJ5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzViXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstYmluYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1Y1wiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWJyZWFrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVkXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstYnJlYWs6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVlXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstY2hlY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWZcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjBcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1jb2RlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYxXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstY29kZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjJcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1kaWZmLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYzXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstZGlmZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjRcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1lYXNlbC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2NVwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWVhc2VsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2NlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWV4Y2VsLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY3XCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstZXhjZWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzY4XCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjlcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1mb250LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZhXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstZm9udDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmJcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1pbWFnZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2Y1wiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWltYWdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWxvY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmVcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLWxvY2syLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcwXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstbG9jazI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcxXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstbWVkaWNhbC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3MlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLW1lZGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzczXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstbWludXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzRcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1taW51czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzVcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1tdXNpYy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLW11c2ljOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3N1wiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXBlcnNvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXBlcnNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzlcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1wbGF5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdhXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcGxheTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2JcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdjXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2RcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1wb3N0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdlXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcG9zdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2ZcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1wcHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODBcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1wcHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgxXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcmljaHRleHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODJcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1yaWNodGV4dDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODNcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1ydWxlZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXJ1bGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NVwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXNsaWRlcy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4NlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXNsaWRlczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODdcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay1zcHJlYWRzaGVldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4OFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXNwcmVhZHNoZWV0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4OVwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXRleHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGFcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4YlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXdvcmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGNcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay13b3JkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4ZFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGVcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyay14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4ZlwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXppcC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MFwiO1xufVxuXG4uYmktZmlsZS1lYXJtYXJrLXppcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTFcIjtcbn1cblxuLmJpLWZpbGUtZWFybWFyazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTJcIjtcbn1cblxuLmJpLWZpbGUtZWFzZWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTNcIjtcbn1cblxuLmJpLWZpbGUtZWFzZWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk0XCI7XG59XG5cbi5iaS1maWxlLWV4Y2VsLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk1XCI7XG59XG5cbi5iaS1maWxlLWV4Y2VsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NlwiO1xufVxuXG4uYmktZmlsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5N1wiO1xufVxuXG4uYmktZmlsZS1mb250LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk4XCI7XG59XG5cbi5iaS1maWxlLWZvbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk5XCI7XG59XG5cbi5iaS1maWxlLWltYWdlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlhXCI7XG59XG5cbi5iaS1maWxlLWltYWdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5YlwiO1xufVxuXG4uYmktZmlsZS1sb2NrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzljXCI7XG59XG5cbi5iaS1maWxlLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlkXCI7XG59XG5cbi5iaS1maWxlLWxvY2syLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzllXCI7XG59XG5cbi5iaS1maWxlLWxvY2syOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZlwiO1xufVxuXG4uYmktZmlsZS1tZWRpY2FsLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EwXCI7XG59XG5cbi5iaS1maWxlLW1lZGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ExXCI7XG59XG5cbi5iaS1maWxlLW1pbnVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EyXCI7XG59XG5cbi5iaS1maWxlLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhM1wiO1xufVxuXG4uYmktZmlsZS1tdXNpYy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNFwiO1xufVxuXG4uYmktZmlsZS1tdXNpYzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjtcbn1cblxuLmJpLWZpbGUtcGVyc29uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E2XCI7XG59XG5cbi5iaS1maWxlLXBlcnNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTdcIjtcbn1cblxuLmJpLWZpbGUtcGxheS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOFwiO1xufVxuXG4uYmktZmlsZS1wbGF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOVwiO1xufVxuXG4uYmktZmlsZS1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FhXCI7XG59XG5cbi5iaS1maWxlLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FiXCI7XG59XG5cbi5iaS1maWxlLXBvc3QtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWNcIjtcbn1cblxuLmJpLWZpbGUtcG9zdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWRcIjtcbn1cblxuLmJpLWZpbGUtcHB0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FlXCI7XG59XG5cbi5iaS1maWxlLXBwdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWZcIjtcbn1cblxuLmJpLWZpbGUtcmljaHRleHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjBcIjtcbn1cblxuLmJpLWZpbGUtcmljaHRleHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IxXCI7XG59XG5cbi5iaS1maWxlLXJ1bGVkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IyXCI7XG59XG5cbi5iaS1maWxlLXJ1bGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiM1wiO1xufVxuXG4uYmktZmlsZS1zbGlkZXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjRcIjtcbn1cblxuLmJpLWZpbGUtc2xpZGVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNVwiO1xufVxuXG4uYmktZmlsZS1zcHJlYWRzaGVldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNlwiO1xufVxuXG4uYmktZmlsZS1zcHJlYWRzaGVldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjdcIjtcbn1cblxuLmJpLWZpbGUtdGV4dC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiOFwiO1xufVxuXG4uYmktZmlsZS10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiOVwiO1xufVxuXG4uYmktZmlsZS13b3JkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JhXCI7XG59XG5cbi5iaS1maWxlLXdvcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JiXCI7XG59XG5cbi5iaS1maWxlLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmNcIjtcbn1cblxuLmJpLWZpbGUteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmRcIjtcbn1cblxuLmJpLWZpbGUtemlwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JlXCI7XG59XG5cbi5iaS1maWxlLXppcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjtcbn1cblxuLmJpLWZpbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MwXCI7XG59XG5cbi5iaS1maWxlcy1hbHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MxXCI7XG59XG5cbi5iaS1maWxlczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzJcIjtcbn1cblxuLmJpLWZpbG06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MzXCI7XG59XG5cbi5iaS1maWx0ZXItY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M0XCI7XG59XG5cbi5iaS1maWx0ZXItY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNVwiO1xufVxuXG4uYmktZmlsdGVyLWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M2XCI7XG59XG5cbi5iaS1maWx0ZXItcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M3XCI7XG59XG5cbi5iaS1maWx0ZXItc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M4XCI7XG59XG5cbi5iaS1maWx0ZXItc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjOVwiO1xufVxuXG4uYmktZmlsdGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYVwiO1xufVxuXG4uYmktZmxhZy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjYlwiO1xufVxuXG4uYmktZmxhZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2NcIjtcbn1cblxuLmJpLWZsb3dlcjE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NkXCI7XG59XG5cbi5iaS1mbG93ZXIyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjZVwiO1xufVxuXG4uYmktZmxvd2VyMzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2ZcIjtcbn1cblxuLmJpLWZvbGRlci1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDBcIjtcbn1cblxuLmJpLWZvbGRlci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuXG4uYmktZm9sZGVyLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMlwiO1xufVxuXG4uYmktZm9sZGVyLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QzXCI7XG59XG5cbi5iaS1mb2xkZXItc3ltbGluay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNFwiO1xufVxuXG4uYmktZm9sZGVyLXN5bWxpbms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q1XCI7XG59XG5cbi5iaS1mb2xkZXIteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDZcIjtcbn1cblxuLmJpLWZvbGRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDdcIjtcbn1cblxuLmJpLWZvbGRlcjItb3Blbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDhcIjtcbn1cblxuLmJpLWZvbGRlcjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q5XCI7XG59XG5cbi5iaS1mb250czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGFcIjtcbn1cblxuLmJpLWZvcndhcmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGJcIjtcbn1cblxuLmJpLWZvcndhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RjXCI7XG59XG5cbi5iaS1mcm9udDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGRcIjtcbn1cblxuLmJpLWZ1bGxzY3JlZW4tZXhpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGVcIjtcbn1cblxuLmJpLWZ1bGxzY3JlZW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RmXCI7XG59XG5cbi5iaS1mdW5uZWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTBcIjtcbn1cblxuLmJpLWZ1bm5lbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTFcIjtcbn1cblxuLmJpLWdlYXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTJcIjtcbn1cblxuLmJpLWdlYXItd2lkZS1jb25uZWN0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UzXCI7XG59XG5cbi5iaS1nZWFyLXdpZGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U0XCI7XG59XG5cbi5iaS1nZWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNVwiO1xufVxuXG4uYmktZ2VtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNlwiO1xufVxuXG4uYmktZ2VvLWFsdC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlN1wiO1xufVxuXG4uYmktZ2VvLWFsdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZThcIjtcbn1cblxuLmJpLWdlby1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlOVwiO1xufVxuXG4uYmktZ2VvOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlYVwiO1xufVxuXG4uYmktZ2lmdC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlYlwiO1xufVxuXG4uYmktZ2lmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWNcIjtcbn1cblxuLmJpLWdpdGh1Yjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cblxuLmJpLWdsb2JlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZVwiO1xufVxuXG4uYmktZ2xvYmUyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZlwiO1xufVxuXG4uYmktZ29vZ2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmMFwiO1xufVxuXG4uYmktZ3JhcGgtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjFcIjtcbn1cblxuLmJpLWdyYXBoLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmMlwiO1xufVxuXG4uYmktZ3JpZC0xeDItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjNcIjtcbn1cblxuLmJpLWdyaWQtMXgyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmNFwiO1xufVxuXG4uYmktZ3JpZC0zeDItZ2FwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y1XCI7XG59XG5cbi5iaS1ncmlkLTN4Mi1nYXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y2XCI7XG59XG5cbi5iaS1ncmlkLTN4Mjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjdcIjtcbn1cblxuLmJpLWdyaWQtM3gzLWdhcC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmOFwiO1xufVxuXG4uYmktZ3JpZC0zeDMtZ2FwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmOVwiO1xufVxuXG4uYmktZ3JpZC0zeDM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZhXCI7XG59XG5cbi5iaS1ncmlkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZiXCI7XG59XG5cbi5iaS1ncmlkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmY1wiO1xufVxuXG4uYmktZ3JpcC1ob3Jpem9udGFsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZFwiO1xufVxuXG4uYmktZ3JpcC12ZXJ0aWNhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmVcIjtcbn1cblxuLmJpLWhhbW1lcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmZcIjtcbn1cblxuLmJpLWhhbmQtaW5kZXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDBcIjtcbn1cblxuLmJpLWhhbmQtaW5kZXgtdGh1bWItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDFcIjtcbn1cblxuLmJpLWhhbmQtaW5kZXgtdGh1bWI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAyXCI7XG59XG5cbi5iaS1oYW5kLWluZGV4OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwM1wiO1xufVxuXG4uYmktaGFuZC10aHVtYnMtZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwNFwiO1xufVxuXG4uYmktaGFuZC10aHVtYnMtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDVcIjtcbn1cblxuLmJpLWhhbmQtdGh1bWJzLXVwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA2XCI7XG59XG5cbi5iaS1oYW5kLXRodW1icy11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDdcIjtcbn1cblxuLmJpLWhhbmRiYWctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDhcIjtcbn1cblxuLmJpLWhhbmRiYWc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA5XCI7XG59XG5cbi5iaS1oYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwYVwiO1xufVxuXG4uYmktaGRkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBiXCI7XG59XG5cbi5iaS1oZGQtbmV0d29yay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwY1wiO1xufVxuXG4uYmktaGRkLW5ldHdvcms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBkXCI7XG59XG5cbi5iaS1oZGQtcmFjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwZVwiO1xufVxuXG4uYmktaGRkLXJhY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDBmXCI7XG59XG5cbi5iaS1oZGQtc3RhY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cblxuLmJpLWhkZC1zdGFjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTFcIjtcbn1cblxuLmJpLWhkZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTJcIjtcbn1cblxuLmJpLWhlYWRwaG9uZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEzXCI7XG59XG5cbi5iaS1oZWFkc2V0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNFwiO1xufVxuXG4uYmktaGVhcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTVcIjtcbn1cblxuLmJpLWhlYXJ0LWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE2XCI7XG59XG5cbi5iaS1oZWFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTdcIjtcbn1cblxuLmJpLWhlcHRhZ29uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE4XCI7XG59XG5cbi5iaS1oZXB0YWdvbi1oYWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOVwiO1xufVxuXG4uYmktaGVwdGFnb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFhXCI7XG59XG5cbi5iaS1oZXhhZ29uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFiXCI7XG59XG5cbi5iaS1oZXhhZ29uLWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFjXCI7XG59XG5cbi5iaS1oZXhhZ29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZFwiO1xufVxuXG4uYmktaG91cmdsYXNzLWJvdHRvbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWVcIjtcbn1cblxuLmJpLWhvdXJnbGFzcy1zcGxpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWZcIjtcbn1cblxuLmJpLWhvdXJnbGFzcy10b3A6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIwXCI7XG59XG5cbi5iaS1ob3VyZ2xhc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIxXCI7XG59XG5cbi5iaS1ob3VzZS1kb29yLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDIyXCI7XG59XG5cbi5iaS1ob3VzZS1kb29yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyM1wiO1xufVxuXG4uYmktaG91c2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjRcIjtcbn1cblxuLmJpLWhvdXNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyNVwiO1xufVxuXG4uYmktaHI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI2XCI7XG59XG5cbi5iaS1odXJyaWNhbmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI3XCI7XG59XG5cbi5iaS1pbWFnZS1hbHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI4XCI7XG59XG5cbi5iaS1pbWFnZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOVwiO1xufVxuXG4uYmktaW1hZ2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJhXCI7XG59XG5cbi5iaS1pbWFnZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJiXCI7XG59XG5cbi5iaS1pbmJveC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyY1wiO1xufVxuXG4uYmktaW5ib3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJkXCI7XG59XG5cbi5iaS1pbmJveGVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJlXCI7XG59XG5cbi5iaS1pbmJveGVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZlwiO1xufVxuXG4uYmktaW5mby1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzBcIjtcbn1cblxuLmJpLWluZm8tY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMVwiO1xufVxuXG4uYmktaW5mby1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzJcIjtcbn1cblxuLmJpLWluZm8tc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzM1wiO1xufVxuXG4uYmktaW5mbzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzRcIjtcbn1cblxuLmJpLWlucHV0LWN1cnNvci10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzNVwiO1xufVxuXG4uYmktaW5wdXQtY3Vyc29yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzNlwiO1xufVxuXG4uYmktaW5zdGFncmFtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzN1wiO1xufVxuXG4uYmktaW50ZXJzZWN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzOFwiO1xufVxuXG4uYmktam91cm5hbC1hbGJ1bTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzlcIjtcbn1cblxuLmJpLWpvdXJuYWwtYXJyb3ctZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2FcIjtcbn1cblxuLmJpLWpvdXJuYWwtYXJyb3ctdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNiXCI7XG59XG5cbi5iaS1qb3VybmFsLWJvb2ttYXJrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNjXCI7XG59XG5cbi5iaS1qb3VybmFsLWJvb2ttYXJrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzZFwiO1xufVxuXG4uYmktam91cm5hbC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2VcIjtcbn1cblxuLmJpLWpvdXJuYWwtY29kZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2ZcIjtcbn1cblxuLmJpLWpvdXJuYWwtbWVkaWNhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDBcIjtcbn1cblxuLmJpLWpvdXJuYWwtbWludXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQxXCI7XG59XG5cbi5iaS1qb3VybmFsLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQyXCI7XG59XG5cbi5iaS1qb3VybmFsLXJpY2h0ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0M1wiO1xufVxuXG4uYmktam91cm5hbC10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0NFwiO1xufVxuXG4uYmktam91cm5hbC14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0NVwiO1xufVxuXG4uYmktam91cm5hbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDZcIjtcbn1cblxuLmJpLWpvdXJuYWxzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0N1wiO1xufVxuXG4uYmktam95c3RpY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ4XCI7XG59XG5cbi5iaS1qdXN0aWZ5LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ5XCI7XG59XG5cbi5iaS1qdXN0aWZ5LXJpZ2h0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0YVwiO1xufVxuXG4uYmktanVzdGlmeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NGJcIjtcbn1cblxuLmJpLWthbmJhbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0Y1wiO1xufVxuXG4uYmkta2FuYmFuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0ZFwiO1xufVxuXG4uYmkta2V5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRlXCI7XG59XG5cbi5iaS1rZXk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRmXCI7XG59XG5cbi5iaS1rZXlib2FyZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MFwiO1xufVxuXG4uYmkta2V5Ym9hcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUxXCI7XG59XG5cbi5iaS1sYWRkZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUyXCI7XG59XG5cbi5iaS1sYW1wLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDUzXCI7XG59XG5cbi5iaS1sYW1wOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1NFwiO1xufVxuXG4uYmktbGFwdG9wLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDU1XCI7XG59XG5cbi5iaS1sYXB0b3A6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDU2XCI7XG59XG5cbi5iaS1sYXllci1iYWNrd2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTdcIjtcbn1cblxuLmJpLWxheWVyLWZvcndhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDU4XCI7XG59XG5cbi5iaS1sYXllcnMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTlcIjtcbn1cblxuLmJpLWxheWVycy1oYWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1YVwiO1xufVxuXG4uYmktbGF5ZXJzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1YlwiO1xufVxuXG4uYmktbGF5b3V0LXNpZGViYXItaW5zZXQtcmV2ZXJzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWNcIjtcbn1cblxuLmJpLWxheW91dC1zaWRlYmFyLWluc2V0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1ZFwiO1xufVxuXG4uYmktbGF5b3V0LXNpZGViYXItcmV2ZXJzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWVcIjtcbn1cblxuLmJpLWxheW91dC1zaWRlYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1ZlwiO1xufVxuXG4uYmktbGF5b3V0LXNwbGl0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MFwiO1xufVxuXG4uYmktbGF5b3V0LXRleHQtc2lkZWJhci1yZXZlcnNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MVwiO1xufVxuXG4uYmktbGF5b3V0LXRleHQtc2lkZWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NjJcIjtcbn1cblxuLmJpLWxheW91dC10ZXh0LXdpbmRvdy1yZXZlcnNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2M1wiO1xufVxuXG4uYmktbGF5b3V0LXRleHQtd2luZG93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2NFwiO1xufVxuXG4uYmktbGF5b3V0LXRocmVlLWNvbHVtbnM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDY1XCI7XG59XG5cbi5iaS1sYXlvdXQtd3RmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2NlwiO1xufVxuXG4uYmktbGlmZS1wcmVzZXJ2ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDY3XCI7XG59XG5cbi5iaS1saWdodGJ1bGItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NjhcIjtcbn1cblxuLmJpLWxpZ2h0YnVsYi1vZmYtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NjlcIjtcbn1cblxuLmJpLWxpZ2h0YnVsYi1vZmY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZhXCI7XG59XG5cbi5iaS1saWdodGJ1bGI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZiXCI7XG59XG5cbi5iaS1saWdodG5pbmctY2hhcmdlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZjXCI7XG59XG5cbi5iaS1saWdodG5pbmctY2hhcmdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2ZFwiO1xufVxuXG4uYmktbGlnaHRuaW5nLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZlXCI7XG59XG5cbi5iaS1saWdodG5pbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZmXCI7XG59XG5cbi5iaS1saW5rLTQ1ZGVnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3MFwiO1xufVxuXG4uYmktbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzFcIjtcbn1cblxuLmJpLWxpbmtlZGluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3MlwiO1xufVxuXG4uYmktbGlzdC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzNcIjtcbn1cblxuLmJpLWxpc3QtbmVzdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3NFwiO1xufVxuXG4uYmktbGlzdC1vbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzVcIjtcbn1cblxuLmJpLWxpc3Qtc3RhcnM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc2XCI7XG59XG5cbi5iaS1saXN0LXRhc2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc3XCI7XG59XG5cbi5iaS1saXN0LXVsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3OFwiO1xufVxuXG4uYmktbGlzdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzlcIjtcbn1cblxuLmJpLWxvY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2FcIjtcbn1cblxuLmJpLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDdiXCI7XG59XG5cbi5iaS1tYWlsYm94OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3Y1wiO1xufVxuXG4uYmktbWFpbGJveDI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDdkXCI7XG59XG5cbi5iaS1tYXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2VcIjtcbn1cblxuLmJpLW1hcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2ZcIjtcbn1cblxuLmJpLW1hcmtkb3duLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDgwXCI7XG59XG5cbi5iaS1tYXJrZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODFcIjtcbn1cblxuLmJpLW1hc2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDgyXCI7XG59XG5cbi5iaS1tZWdhcGhvbmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODNcIjtcbn1cblxuLmJpLW1lZ2FwaG9uZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODRcIjtcbn1cblxuLmJpLW1lbnUtYXBwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg1XCI7XG59XG5cbi5iaS1tZW51LWFwcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODZcIjtcbn1cblxuLmJpLW1lbnUtYnV0dG9uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg3XCI7XG59XG5cbi5iaS1tZW51LWJ1dHRvbi13aWRlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg4XCI7XG59XG5cbi5iaS1tZW51LWJ1dHRvbi13aWRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4OVwiO1xufVxuXG4uYmktbWVudS1idXR0b246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhhXCI7XG59XG5cbi5iaS1tZW51LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhiXCI7XG59XG5cbi5iaS1tZW51LXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4Y1wiO1xufVxuXG4uYmktbWljLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhkXCI7XG59XG5cbi5iaS1taWMtbXV0ZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4ZVwiO1xufVxuXG4uYmktbWljLW11dGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhmXCI7XG59XG5cbi5iaS1taWM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDkwXCI7XG59XG5cbi5iaS1taW5lY2FydC1sb2FkZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDkxXCI7XG59XG5cbi5iaS1taW5lY2FydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTJcIjtcbn1cblxuLmJpLW1vaXN0dXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5M1wiO1xufVxuXG4uYmktbW9vbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NFwiO1xufVxuXG4uYmktbW9vbi1zdGFycy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NVwiO1xufVxuXG4uYmktbW9vbi1zdGFyczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTZcIjtcbn1cblxuLmJpLW1vb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDk3XCI7XG59XG5cbi5iaS1tb3VzZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5OFwiO1xufVxuXG4uYmktbW91c2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDk5XCI7XG59XG5cbi5iaS1tb3VzZTItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OWFcIjtcbn1cblxuLmJpLW1vdXNlMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OWJcIjtcbn1cblxuLmJpLW1vdXNlMy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5Y1wiO1xufVxuXG4uYmktbW91c2UzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5ZFwiO1xufVxuXG4uYmktbXVzaWMtbm90ZS1iZWFtZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDllXCI7XG59XG5cbi5iaS1tdXNpYy1ub3RlLWxpc3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDlmXCI7XG59XG5cbi5iaS1tdXNpYy1ub3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRhMFwiO1xufVxuXG4uYmktbXVzaWMtcGxheWVyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGExXCI7XG59XG5cbi5iaS1tdXNpYy1wbGF5ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGEyXCI7XG59XG5cbi5iaS1uZXdzcGFwZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGEzXCI7XG59XG5cbi5iaS1ub2RlLW1pbnVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGE0XCI7XG59XG5cbi5iaS1ub2RlLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRhNVwiO1xufVxuXG4uYmktbm9kZS1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGE2XCI7XG59XG5cbi5iaS1ub2RlLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGE3XCI7XG59XG5cbi5iaS1udXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YThcIjtcbn1cblxuLmJpLW51dDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YTlcIjtcbn1cblxuLmJpLW9jdGFnb24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YWFcIjtcbn1cblxuLmJpLW9jdGFnb24taGFsZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YWJcIjtcbn1cblxuLmJpLW9jdGFnb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGFjXCI7XG59XG5cbi5iaS1vcHRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGFkXCI7XG59XG5cbi5iaS1vdXRsZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGFlXCI7XG59XG5cbi5iaS1wYWludC1idWNrZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGFmXCI7XG59XG5cbi5iaS1wYWxldHRlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGIwXCI7XG59XG5cbi5iaS1wYWxldHRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiMVwiO1xufVxuXG4uYmktcGFsZXR0ZTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGIyXCI7XG59XG5cbi5iaS1wYXBlcmNsaXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGIzXCI7XG59XG5cbi5iaS1wYXJhZ3JhcGg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGI0XCI7XG59XG5cbi5iaS1wYXRjaC1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiNVwiO1xufVxuXG4uYmktcGF0Y2gtY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGI2XCI7XG59XG5cbi5iaS1wYXRjaC1leGNsYW1hdGlvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiN1wiO1xufVxuXG4uYmktcGF0Y2gtZXhjbGFtYXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGI4XCI7XG59XG5cbi5iaS1wYXRjaC1taW51cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiOVwiO1xufVxuXG4uYmktcGF0Y2gtbWludXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGJhXCI7XG59XG5cbi5iaS1wYXRjaC1wbHVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGJiXCI7XG59XG5cbi5iaS1wYXRjaC1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiY1wiO1xufVxuXG4uYmktcGF0Y2gtcXVlc3Rpb24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YmRcIjtcbn1cblxuLmJpLXBhdGNoLXF1ZXN0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiZVwiO1xufVxuXG4uYmktcGF1c2UtYnRuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGJmXCI7XG59XG5cbi5iaS1wYXVzZS1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGMwXCI7XG59XG5cbi5iaS1wYXVzZS1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YzFcIjtcbn1cblxuLmJpLXBhdXNlLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YzJcIjtcbn1cblxuLmJpLXBhdXNlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGMzXCI7XG59XG5cbi5iaS1wYXVzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YzRcIjtcbn1cblxuLmJpLXBlYWNlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGM1XCI7XG59XG5cbi5iaS1wZWFjZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YzZcIjtcbn1cblxuLmJpLXBlbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjN1wiO1xufVxuXG4uYmktcGVuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjOFwiO1xufVxuXG4uYmktcGVuY2lsLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGM5XCI7XG59XG5cbi5iaS1wZW5jaWwtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjYVwiO1xufVxuXG4uYmktcGVuY2lsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjYlwiO1xufVxuXG4uYmktcGVudGFnb24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0Y2NcIjtcbn1cblxuLmJpLXBlbnRhZ29uLWhhbGY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGNkXCI7XG59XG5cbi5iaS1wZW50YWdvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0Y2VcIjtcbn1cblxuLmJpLXBlb3BsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjZlwiO1xufVxuXG4uYmktcGVvcGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkMFwiO1xufVxuXG4uYmktcGVyY2VudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZDFcIjtcbn1cblxuLmJpLXBlcnNvbi1iYWRnZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkMlwiO1xufVxuXG4uYmktcGVyc29uLWJhZGdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkM1wiO1xufVxuXG4uYmktcGVyc29uLWJvdW5kaW5nLWJveDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZDRcIjtcbn1cblxuLmJpLXBlcnNvbi1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkNVwiO1xufVxuXG4uYmktcGVyc29uLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkNlwiO1xufVxuXG4uYmktcGVyc29uLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZDdcIjtcbn1cblxuLmJpLXBlcnNvbi1kYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGQ4XCI7XG59XG5cbi5iaS1wZXJzb24tZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZDlcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkYVwiO1xufVxuXG4uYmktcGVyc29uLWxpbmVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGRiXCI7XG59XG5cbi5iaS1wZXJzb24tcGx1cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkY1wiO1xufVxuXG4uYmktcGVyc29uLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGRkXCI7XG59XG5cbi5iaS1wZXJzb24tc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkZVwiO1xufVxuXG4uYmktcGVyc29uLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZGZcIjtcbn1cblxuLmJpLXBlcnNvbi14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlMFwiO1xufVxuXG4uYmktcGVyc29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlMVwiO1xufVxuXG4uYmktcGhvbmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTJcIjtcbn1cblxuLmJpLXBob25lLWxhbmRzY2FwZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlM1wiO1xufVxuXG4uYmktcGhvbmUtbGFuZHNjYXBlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlNFwiO1xufVxuXG4uYmktcGhvbmUtdmlicmF0ZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlNVwiO1xufVxuXG4uYmktcGhvbmUtdmlicmF0ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTZcIjtcbn1cblxuLmJpLXBob25lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlN1wiO1xufVxuXG4uYmktcGllLWNoYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGU4XCI7XG59XG5cbi5iaS1waWUtY2hhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGU5XCI7XG59XG5cbi5iaS1waW4tYW5nbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZWFcIjtcbn1cblxuLmJpLXBpbi1hbmdsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZWJcIjtcbn1cblxuLmJpLXBpbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlY1wiO1xufVxuXG4uYmktcGluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlZFwiO1xufVxuXG4uYmktcGlwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGVlXCI7XG59XG5cbi5iaS1waXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGVmXCI7XG59XG5cbi5iaS1wbGF5LWJ0bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmMFwiO1xufVxuXG4uYmktcGxheS1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGYxXCI7XG59XG5cbi5iaS1wbGF5LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmMlwiO1xufVxuXG4uYmktcGxheS1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGYzXCI7XG59XG5cbi5iaS1wbGF5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGY0XCI7XG59XG5cbi5iaS1wbGF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmNVwiO1xufVxuXG4uYmktcGx1Zy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmNlwiO1xufVxuXG4uYmktcGx1Zzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjdcIjtcbn1cblxuLmJpLXBsdXMtY2lyY2xlLWRvdHRlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjhcIjtcbn1cblxuLmJpLXBsdXMtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGY5XCI7XG59XG5cbi5iaS1wbHVzLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmFcIjtcbn1cblxuLmJpLXBsdXMtc3F1YXJlLWRvdHRlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmJcIjtcbn1cblxuLmJpLXBsdXMtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGZjXCI7XG59XG5cbi5iaS1wbHVzLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmRcIjtcbn1cblxuLmJpLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGZlXCI7XG59XG5cbi5iaS1wb3dlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmZcIjtcbn1cblxuLmJpLXByaW50ZXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDBcIjtcbn1cblxuLmJpLXByaW50ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTAxXCI7XG59XG5cbi5iaS1wdXp6bGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDJcIjtcbn1cblxuLmJpLXB1enpsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDNcIjtcbn1cblxuLmJpLXF1ZXN0aW9uLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwNFwiO1xufVxuXG4uYmktcXVlc3Rpb24tY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwNVwiO1xufVxuXG4uYmktcXVlc3Rpb24tZGlhbW9uZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwNlwiO1xufVxuXG4uYmktcXVlc3Rpb24tZGlhbW9uZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDdcIjtcbn1cblxuLmJpLXF1ZXN0aW9uLW9jdGFnb24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDhcIjtcbn1cblxuLmJpLXF1ZXN0aW9uLW9jdGFnb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTA5XCI7XG59XG5cbi5iaS1xdWVzdGlvbi1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGFcIjtcbn1cblxuLmJpLXF1ZXN0aW9uLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGJcIjtcbn1cblxuLmJpLXF1ZXN0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwY1wiO1xufVxuXG4uYmktcmFpbmJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGRcIjtcbn1cblxuLmJpLXJlY2VpcHQtY3V0b2ZmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwZVwiO1xufVxuXG4uYmktcmVjZWlwdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGZcIjtcbn1cblxuLmJpLXJlY2VwdGlvbi0wOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxMFwiO1xufVxuXG4uYmktcmVjZXB0aW9uLTE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTExXCI7XG59XG5cbi5iaS1yZWNlcHRpb24tMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MTJcIjtcbn1cblxuLmJpLXJlY2VwdGlvbi0zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxM1wiO1xufVxuXG4uYmktcmVjZXB0aW9uLTQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTE0XCI7XG59XG5cbi5iaS1yZWNvcmQtYnRuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTE1XCI7XG59XG5cbi5iaS1yZWNvcmQtYnRuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxNlwiO1xufVxuXG4uYmktcmVjb3JkLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxN1wiO1xufVxuXG4uYmktcmVjb3JkLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MThcIjtcbn1cblxuLmJpLXJlY29yZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxOVwiO1xufVxuXG4uYmktcmVjb3JkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxYVwiO1xufVxuXG4uYmktcmVjb3JkMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxYlwiO1xufVxuXG4uYmktcmVjb3JkMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MWNcIjtcbn1cblxuLmJpLXJlcGx5LWFsbC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxZFwiO1xufVxuXG4uYmktcmVwbHktYWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxZVwiO1xufVxuXG4uYmktcmVwbHktZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MWZcIjtcbn1cblxuLmJpLXJlcGx5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyMFwiO1xufVxuXG4uYmktcnNzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTIxXCI7XG59XG5cbi5iaS1yc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTIyXCI7XG59XG5cbi5iaS1ydWxlcnM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTIzXCI7XG59XG5cbi5iaS1zYXZlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTI0XCI7XG59XG5cbi5iaS1zYXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyNVwiO1xufVxuXG4uYmktc2F2ZTItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjZcIjtcbn1cblxuLmJpLXNhdmUyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyN1wiO1xufVxuXG4uYmktc2Npc3NvcnM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTI4XCI7XG59XG5cbi5iaS1zY3Jld2RyaXZlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjlcIjtcbn1cblxuLmJpLXNlYXJjaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MmFcIjtcbn1cblxuLmJpLXNlZ21lbnRlZC1uYXY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTJiXCI7XG59XG5cbi5iaS1zZXJ2ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTJjXCI7XG59XG5cbi5iaS1zaGFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyZFwiO1xufVxuXG4uYmktc2hhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTJlXCI7XG59XG5cbi5iaS1zaGllbGQtY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTJmXCI7XG59XG5cbi5iaS1zaGllbGQtZXhjbGFtYXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTMwXCI7XG59XG5cbi5iaS1zaGllbGQtZmlsbC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzFcIjtcbn1cblxuLmJpLXNoaWVsZC1maWxsLWV4Y2xhbWF0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzMlwiO1xufVxuXG4uYmktc2hpZWxkLWZpbGwtbWludXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTMzXCI7XG59XG5cbi5iaS1zaGllbGQtZmlsbC1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzNFwiO1xufVxuXG4uYmktc2hpZWxkLWZpbGwteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzVcIjtcbn1cblxuLmJpLXNoaWVsZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzNlwiO1xufVxuXG4uYmktc2hpZWxkLWxvY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzdcIjtcbn1cblxuLmJpLXNoaWVsZC1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzOFwiO1xufVxuXG4uYmktc2hpZWxkLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzOVwiO1xufVxuXG4uYmktc2hpZWxkLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTNhXCI7XG59XG5cbi5iaS1zaGllbGQtc2hhZGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzYlwiO1xufVxuXG4uYmktc2hpZWxkLXNsYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTNjXCI7XG59XG5cbi5iaS1zaGllbGQtc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTNkXCI7XG59XG5cbi5iaS1zaGllbGQteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1M2VcIjtcbn1cblxuLmJpLXNoaWVsZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1M2ZcIjtcbn1cblxuLmJpLXNoaWZ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQwXCI7XG59XG5cbi5iaS1zaGlmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDFcIjtcbn1cblxuLmJpLXNob3Atd2luZG93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0MlwiO1xufVxuXG4uYmktc2hvcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDNcIjtcbn1cblxuLmJpLXNodWZmbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQ0XCI7XG59XG5cbi5iaS1zaWducG9zdC0yLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQ1XCI7XG59XG5cbi5iaS1zaWducG9zdC0yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0NlwiO1xufVxuXG4uYmktc2lnbnBvc3QtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDdcIjtcbn1cblxuLmJpLXNpZ25wb3N0LXNwbGl0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQ4XCI7XG59XG5cbi5iaS1zaWducG9zdC1zcGxpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDlcIjtcbn1cblxuLmJpLXNpZ25wb3N0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0YVwiO1xufVxuXG4uYmktc2ltLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTRiXCI7XG59XG5cbi5iaS1zaW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTRjXCI7XG59XG5cbi5iaS1za2lwLWJhY2t3YXJkLWJ0bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0ZFwiO1xufVxuXG4uYmktc2tpcC1iYWNrd2FyZC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTRlXCI7XG59XG5cbi5iaS1za2lwLWJhY2t3YXJkLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0ZlwiO1xufVxuXG4uYmktc2tpcC1iYWNrd2FyZC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTUwXCI7XG59XG5cbi5iaS1za2lwLWJhY2t3YXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTUxXCI7XG59XG5cbi5iaS1za2lwLWJhY2t3YXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1MlwiO1xufVxuXG4uYmktc2tpcC1lbmQtYnRuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTUzXCI7XG59XG5cbi5iaS1za2lwLWVuZC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTU0XCI7XG59XG5cbi5iaS1za2lwLWVuZC1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTVcIjtcbn1cblxuLmJpLXNraXAtZW5kLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTZcIjtcbn1cblxuLmJpLXNraXAtZW5kLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTU3XCI7XG59XG5cbi5iaS1za2lwLWVuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NThcIjtcbn1cblxuLmJpLXNraXAtZm9yd2FyZC1idG4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTlcIjtcbn1cblxuLmJpLXNraXAtZm9yd2FyZC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTVhXCI7XG59XG5cbi5iaS1za2lwLWZvcndhcmQtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTViXCI7XG59XG5cbi5iaS1za2lwLWZvcndhcmQtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1Y1wiO1xufVxuXG4uYmktc2tpcC1mb3J3YXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTVkXCI7XG59XG5cbi5iaS1za2lwLWZvcndhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTVlXCI7XG59XG5cbi5iaS1za2lwLXN0YXJ0LWJ0bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1ZlwiO1xufVxuXG4uYmktc2tpcC1zdGFydC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYwXCI7XG59XG5cbi5iaS1za2lwLXN0YXJ0LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2MVwiO1xufVxuXG4uYmktc2tpcC1zdGFydC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYyXCI7XG59XG5cbi5iaS1za2lwLXN0YXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYzXCI7XG59XG5cbi5iaS1za2lwLXN0YXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2NFwiO1xufVxuXG4uYmktc2xhY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTY1XCI7XG59XG5cbi5iaS1zbGFzaC1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NjZcIjtcbn1cblxuLmJpLXNsYXNoLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NjdcIjtcbn1cblxuLmJpLXNsYXNoLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2OFwiO1xufVxuXG4uYmktc2xhc2gtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2OVwiO1xufVxuXG4uYmktc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTZhXCI7XG59XG5cbi5iaS1zbGlkZXJzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2YlwiO1xufVxuXG4uYmktc21hcnR3YXRjaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NmNcIjtcbn1cblxuLmJpLXNub3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTZkXCI7XG59XG5cbi5iaS1zbm93Mjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NmVcIjtcbn1cblxuLmJpLXNub3czOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2ZlwiO1xufVxuXG4uYmktc29ydC1hbHBoYS1kb3duLWFsdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzBcIjtcbn1cblxuLmJpLXNvcnQtYWxwaGEtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzFcIjtcbn1cblxuLmJpLXNvcnQtYWxwaGEtdXAtYWx0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3MlwiO1xufVxuXG4uYmktc29ydC1hbHBoYS11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzNcIjtcbn1cblxuLmJpLXNvcnQtZG93bi1hbHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc0XCI7XG59XG5cbi5iaS1zb3J0LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc1XCI7XG59XG5cbi5iaS1zb3J0LW51bWVyaWMtZG93bi1hbHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc2XCI7XG59XG5cbi5iaS1zb3J0LW51bWVyaWMtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzdcIjtcbn1cblxuLmJpLXNvcnQtbnVtZXJpYy11cC1hbHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc4XCI7XG59XG5cbi5iaS1zb3J0LW51bWVyaWMtdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc5XCI7XG59XG5cbi5iaS1zb3J0LXVwLWFsdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1N2FcIjtcbn1cblxuLmJpLXNvcnQtdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdiXCI7XG59XG5cbi5iaS1zb3VuZHdhdmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdjXCI7XG59XG5cbi5iaS1zcGVha2VyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdkXCI7XG59XG5cbi5iaS1zcGVha2VyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3ZVwiO1xufVxuXG4uYmktc3BlZWRvbWV0ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdmXCI7XG59XG5cbi5iaS1zcGVlZG9tZXRlcjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTgwXCI7XG59XG5cbi5iaS1zcGVsbGNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4MVwiO1xufVxuXG4uYmktc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTgyXCI7XG59XG5cbi5iaS1zcXVhcmUtaGFsZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODNcIjtcbn1cblxuLmJpLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODRcIjtcbn1cblxuLmJpLXN0YWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4NVwiO1xufVxuXG4uYmktc3Rhci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4NlwiO1xufVxuXG4uYmktc3Rhci1oYWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4N1wiO1xufVxuXG4uYmktc3Rhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODhcIjtcbn1cblxuLmJpLXN0YXJzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4OVwiO1xufVxuXG4uYmktc3RpY2tpZXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OGFcIjtcbn1cblxuLmJpLXN0aWNraWVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4YlwiO1xufVxuXG4uYmktc3RpY2t5LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThjXCI7XG59XG5cbi5iaS1zdGlja3k6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThkXCI7XG59XG5cbi5iaS1zdG9wLWJ0bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4ZVwiO1xufVxuXG4uYmktc3RvcC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThmXCI7XG59XG5cbi5iaS1zdG9wLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5MFwiO1xufVxuXG4uYmktc3RvcC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTkxXCI7XG59XG5cbi5iaS1zdG9wLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTkyXCI7XG59XG5cbi5iaS1zdG9wOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5M1wiO1xufVxuXG4uYmktc3RvcGxpZ2h0cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5NFwiO1xufVxuXG4uYmktc3RvcGxpZ2h0czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTVcIjtcbn1cblxuLmJpLXN0b3B3YXRjaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5NlwiO1xufVxuXG4uYmktc3RvcHdhdGNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5N1wiO1xufVxuXG4uYmktc3VidHJhY3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTk4XCI7XG59XG5cbi5iaS1zdWl0LWNsdWItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTlcIjtcbn1cblxuLmJpLXN1aXQtY2x1Yjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWFcIjtcbn1cblxuLmJpLXN1aXQtZGlhbW9uZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5YlwiO1xufVxuXG4uYmktc3VpdC1kaWFtb25kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5Y1wiO1xufVxuXG4uYmktc3VpdC1oZWFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5ZFwiO1xufVxuXG4uYmktc3VpdC1oZWFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWVcIjtcbn1cblxuLmJpLXN1aXQtc3BhZGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWZcIjtcbn1cblxuLmJpLXN1aXQtc3BhZGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWEwXCI7XG59XG5cbi5iaS1zdW4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YTFcIjtcbn1cblxuLmJpLXN1bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YTJcIjtcbn1cblxuLmJpLXN1bmdsYXNzZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWEzXCI7XG59XG5cbi5iaS1zdW5yaXNlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE0XCI7XG59XG5cbi5iaS1zdW5yaXNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhNVwiO1xufVxuXG4uYmktc3Vuc2V0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE2XCI7XG59XG5cbi5iaS1zdW5zZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE3XCI7XG59XG5cbi5iaS1zeW1tZXRyeS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhOFwiO1xufVxuXG4uYmktc3ltbWV0cnktdmVydGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE5XCI7XG59XG5cbi5iaS10YWJsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWFcIjtcbn1cblxuLmJpLXRhYmxldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhYlwiO1xufVxuXG4uYmktdGFibGV0LWxhbmRzY2FwZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhY1wiO1xufVxuXG4uYmktdGFibGV0LWxhbmRzY2FwZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWRcIjtcbn1cblxuLmJpLXRhYmxldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWVcIjtcbn1cblxuLmJpLXRhZy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhZlwiO1xufVxuXG4uYmktdGFnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViMFwiO1xufVxuXG4uYmktdGFncy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViMVwiO1xufVxuXG4uYmktdGFnczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YjJcIjtcbn1cblxuLmJpLXRlbGVncmFtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViM1wiO1xufVxuXG4uYmktdGVsZXBob25lLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWI0XCI7XG59XG5cbi5iaS10ZWxlcGhvbmUtZm9yd2FyZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViNVwiO1xufVxuXG4uYmktdGVsZXBob25lLWZvcndhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWI2XCI7XG59XG5cbi5iaS10ZWxlcGhvbmUtaW5ib3VuZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViN1wiO1xufVxuXG4uYmktdGVsZXBob25lLWluYm91bmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWI4XCI7XG59XG5cbi5iaS10ZWxlcGhvbmUtbWludXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YjlcIjtcbn1cblxuLmJpLXRlbGVwaG9uZS1taW51czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YmFcIjtcbn1cblxuLmJpLXRlbGVwaG9uZS1vdXRib3VuZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViYlwiO1xufVxuXG4uYmktdGVsZXBob25lLW91dGJvdW5kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViY1wiO1xufVxuXG4uYmktdGVsZXBob25lLXBsdXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YmRcIjtcbn1cblxuLmJpLXRlbGVwaG9uZS1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViZVwiO1xufVxuXG4uYmktdGVsZXBob25lLXgtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YmZcIjtcbn1cblxuLmJpLXRlbGVwaG9uZS14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjMFwiO1xufVxuXG4uYmktdGVsZXBob25lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjMVwiO1xufVxuXG4uYmktdGVybWluYWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzJcIjtcbn1cblxuLmJpLXRlcm1pbmFsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjM1wiO1xufVxuXG4uYmktdGV4dC1jZW50ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM0XCI7XG59XG5cbi5iaS10ZXh0LWluZGVudC1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjNVwiO1xufVxuXG4uYmktdGV4dC1pbmRlbnQtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM2XCI7XG59XG5cbi5iaS10ZXh0LWxlZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM3XCI7XG59XG5cbi5iaS10ZXh0LXBhcmFncmFwaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzhcIjtcbn1cblxuLmJpLXRleHQtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM5XCI7XG59XG5cbi5iaS10ZXh0YXJlYS1yZXNpemU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWNhXCI7XG59XG5cbi5iaS10ZXh0YXJlYS10OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjYlwiO1xufVxuXG4uYmktdGV4dGFyZWE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWNjXCI7XG59XG5cbi5iaS10aGVybW9tZXRlci1oYWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjZFwiO1xufVxuXG4uYmktdGhlcm1vbWV0ZXItaGlnaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1Y2VcIjtcbn1cblxuLmJpLXRoZXJtb21ldGVyLWxvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1Y2ZcIjtcbn1cblxuLmJpLXRoZXJtb21ldGVyLXNub3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWQwXCI7XG59XG5cbi5iaS10aGVybW9tZXRlci1zdW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWQxXCI7XG59XG5cbi5iaS10aGVybW9tZXRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZDJcIjtcbn1cblxuLmJpLXRocmVlLWRvdHMtdmVydGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWQzXCI7XG59XG5cbi5iaS10aHJlZS1kb3RzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVkNFwiO1xufVxuXG4uYmktdG9nZ2xlLW9mZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZDVcIjtcbn1cblxuLmJpLXRvZ2dsZS1vbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZDZcIjtcbn1cblxuLmJpLXRvZ2dsZTItb2ZmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVkN1wiO1xufVxuXG4uYmktdG9nZ2xlMi1vbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZDhcIjtcbn1cblxuLmJpLXRvZ2dsZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWQ5XCI7XG59XG5cbi5iaS10b2dnbGVzMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZGFcIjtcbn1cblxuLmJpLXRvb2xzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVkYlwiO1xufVxuXG4uYmktdG9ybmFkbzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZGNcIjtcbn1cblxuLmJpLXRyYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWRkXCI7XG59XG5cbi5iaS10cmFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZGVcIjtcbn1cblxuLmJpLXRyYXNoMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVkZlwiO1xufVxuXG4uYmktdHJhc2gyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVlMFwiO1xufVxuXG4uYmktdHJlZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVlMVwiO1xufVxuXG4uYmktdHJlZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZTJcIjtcbn1cblxuLmJpLXRyaWFuZ2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWUzXCI7XG59XG5cbi5iaS10cmlhbmdsZS1oYWxmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVlNFwiO1xufVxuXG4uYmktdHJpYW5nbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWU1XCI7XG59XG5cbi5iaS10cm9waHktZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZTZcIjtcbn1cblxuLmJpLXRyb3BoeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZTdcIjtcbn1cblxuLmJpLXRyb3BpY2FsLXN0b3JtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVlOFwiO1xufVxuXG4uYmktdHJ1Y2stZmxhdGJlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZTlcIjtcbn1cblxuLmJpLXRydWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVlYVwiO1xufVxuXG4uYmktdHN1bmFtaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZWJcIjtcbn1cblxuLmJpLXR2LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWVjXCI7XG59XG5cbi5iaS10djo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZWRcIjtcbn1cblxuLmJpLXR3aXRjaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZWVcIjtcbn1cblxuLmJpLXR3aXR0ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWVmXCI7XG59XG5cbi5iaS10eXBlLWJvbGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWYwXCI7XG59XG5cbi5iaS10eXBlLWgxOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmMVwiO1xufVxuXG4uYmktdHlwZS1oMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZjJcIjtcbn1cblxuLmJpLXR5cGUtaDM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWYzXCI7XG59XG5cbi5iaS10eXBlLWl0YWxpYzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZjRcIjtcbn1cblxuLmJpLXR5cGUtc3RyaWtldGhyb3VnaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZjVcIjtcbn1cblxuLmJpLXR5cGUtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmNlwiO1xufVxuXG4uYmktdHlwZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZjdcIjtcbn1cblxuLmJpLXVpLWNoZWNrcy1ncmlkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmOFwiO1xufVxuXG4uYmktdWktY2hlY2tzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmOVwiO1xufVxuXG4uYmktdWktcmFkaW9zLWdyaWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWZhXCI7XG59XG5cbi5iaS11aS1yYWRpb3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWZiXCI7XG59XG5cbi5iaS11bWJyZWxsYS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmY1wiO1xufVxuXG4uYmktdW1icmVsbGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWZkXCI7XG59XG5cbi5iaS11bmlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ZmVcIjtcbn1cblxuLmJpLXVubG9jay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVmZlwiO1xufVxuXG4uYmktdW5sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwMFwiO1xufVxuXG4uYmktdXBjLXNjYW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAxXCI7XG59XG5cbi5iaS11cGM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAyXCI7XG59XG5cbi5iaS11cGxvYWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjAzXCI7XG59XG5cbi5iaS12ZWN0b3ItcGVuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNFwiO1xufVxuXG4uYmktdmlldy1saXN0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNVwiO1xufVxuXG4uYmktdmlldy1zdGFja2VkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwNlwiO1xufVxuXG4uYmktdmlueWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MDdcIjtcbn1cblxuLmJpLXZpbnlsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwOFwiO1xufVxuXG4uYmktdm9pY2VtYWlsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwOVwiO1xufVxuXG4uYmktdm9sdW1lLWRvd24tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MGFcIjtcbn1cblxuLmJpLXZvbHVtZS1kb3duOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwYlwiO1xufVxuXG4uYmktdm9sdW1lLW11dGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MGNcIjtcbn1cblxuLmJpLXZvbHVtZS1tdXRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwZFwiO1xufVxuXG4uYmktdm9sdW1lLW9mZi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYwZVwiO1xufVxuXG4uYmktdm9sdW1lLW9mZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MGZcIjtcbn1cblxuLmJpLXZvbHVtZS11cC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxMFwiO1xufVxuXG4uYmktdm9sdW1lLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxMVwiO1xufVxuXG4uYmktdnI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjEyXCI7XG59XG5cbi5iaS13YWxsZXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTNcIjtcbn1cblxuLmJpLXdhbGxldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTRcIjtcbn1cblxuLmJpLXdhbGxldDI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE1XCI7XG59XG5cbi5iaS13YXRjaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MTZcIjtcbn1cblxuLmJpLXdhdGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxN1wiO1xufVxuXG4uYmktd2hhdHNhcHA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE4XCI7XG59XG5cbi5iaS13aWZpLTE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjE5XCI7XG59XG5cbi5iaS13aWZpLTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjFhXCI7XG59XG5cbi5iaS13aWZpLW9mZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MWJcIjtcbn1cblxuLmJpLXdpZmk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjFjXCI7XG59XG5cbi5iaS13aW5kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYxZFwiO1xufVxuXG4uYmktd2luZG93LWRvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjFlXCI7XG59XG5cbi5iaS13aW5kb3ctc2lkZWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MWZcIjtcbn1cblxuLmJpLXdpbmRvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjBcIjtcbn1cblxuLmJpLXdyZW5jaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjFcIjtcbn1cblxuLmJpLXgtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjIyXCI7XG59XG5cbi5iaS14LWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MjNcIjtcbn1cblxuLmJpLXgtZGlhbW9uZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyNFwiO1xufVxuXG4uYmkteC1kaWFtb25kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyNVwiO1xufVxuXG4uYmkteC1vY3RhZ29uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI2XCI7XG59XG5cbi5iaS14LW9jdGFnb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI3XCI7XG59XG5cbi5iaS14LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyOFwiO1xufVxuXG4uYmkteC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjI5XCI7XG59XG5cbi5iaS14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYyYVwiO1xufVxuXG4uYmkteW91dHViZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MmJcIjtcbn1cblxuLmJpLXpvb20taW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjJjXCI7XG59XG5cbi5iaS16b29tLW91dDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MmRcIjtcbn1cblxuLmJpLWJhbms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjJlXCI7XG59XG5cbi5iaS1iYW5rMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MmZcIjtcbn1cblxuLmJpLWJlbGwtc2xhc2gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzBcIjtcbn1cblxuLmJpLWJlbGwtc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjMxXCI7XG59XG5cbi5iaS1jYXNoLWNvaW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjMyXCI7XG59XG5cbi5iaS1jaGVjay1sZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzNcIjtcbn1cblxuLmJpLWNvaW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM0XCI7XG59XG5cbi5iaS1jdXJyZW5jeS1iaXRjb2luOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzNVwiO1xufVxuXG4uYmktY3VycmVuY3ktZG9sbGFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzNlwiO1xufVxuXG4uYmktY3VycmVuY3ktZXVybzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2MzdcIjtcbn1cblxuLmJpLWN1cnJlbmN5LWV4Y2hhbmdlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzOFwiO1xufVxuXG4uYmktY3VycmVuY3ktcG91bmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjM5XCI7XG59XG5cbi5iaS1jdXJyZW5jeS15ZW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjNhXCI7XG59XG5cbi5iaS1kYXNoLWxnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzYlwiO1xufVxuXG4uYmktZXhjbGFtYXRpb24tbGc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjNjXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcGRmLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjNkXCI7XG59XG5cbi5iaS1maWxlLWVhcm1hcmstcGRmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjYzZVwiO1xufVxuXG4uYmktZmlsZS1wZGYtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2M2ZcIjtcbn1cblxuLmJpLWZpbGUtcGRmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0MFwiO1xufVxuXG4uYmktZ2VuZGVyLWFtYmlndW91czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDFcIjtcbn1cblxuLmJpLWdlbmRlci1mZW1hbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQyXCI7XG59XG5cbi5iaS1nZW5kZXItbWFsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDNcIjtcbn1cblxuLmJpLWdlbmRlci10cmFuczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NDRcIjtcbn1cblxuLmJpLWhlYWRzZXQtdnI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQ1XCI7XG59XG5cbi5iaS1pbmZvLWxnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0NlwiO1xufVxuXG4uYmktbWFzdG9kb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQ3XCI7XG59XG5cbi5iaS1tZXNzZW5nZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQ4XCI7XG59XG5cbi5iaS1waWdneS1iYW5rLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjQ5XCI7XG59XG5cbi5iaS1waWdneS1iYW5rOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0YVwiO1xufVxuXG4uYmktcGluLW1hcC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY0YlwiO1xufVxuXG4uYmktcGluLW1hcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NGNcIjtcbn1cblxuLmJpLXBsdXMtbGc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjRkXCI7XG59XG5cbi5iaS1xdWVzdGlvbi1sZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NGVcIjtcbn1cblxuLmJpLXJlY3ljbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjRmXCI7XG59XG5cbi5iaS1yZWRkaXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjUwXCI7XG59XG5cbi5iaS1zYWZlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjUxXCI7XG59XG5cbi5iaS1zYWZlMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY1MlwiO1xufVxuXG4uYmktc2FmZTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjUzXCI7XG59XG5cbi5iaS1zZC1jYXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjU0XCI7XG59XG5cbi5iaS1zZC1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY1NVwiO1xufVxuXG4uYmktc2t5cGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjU2XCI7XG59XG5cbi5iaS1zbGFzaC1sZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NTdcIjtcbn1cblxuLmJpLXRyYW5zbGF0ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NThcIjtcbn1cblxuLmJpLXgtbGc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjU5XCI7XG59XG5cbi5iaS1zYWZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY1YVwiO1xufVxuXG4uYmktYXBwbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjViXCI7XG59XG5cbi5iaS1taWNyb3NvZnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjVkXCI7XG59XG5cbi5iaS13aW5kb3dzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY1ZVwiO1xufVxuXG4uYmktYmVoYW5jZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NWNcIjtcbn1cblxuLmJpLWRyaWJiYmxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY1ZlwiO1xufVxuXG4uYmktbGluZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjBcIjtcbn1cblxuLmJpLW1lZGl1bTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjFcIjtcbn1cblxuLmJpLXBheXBhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjJcIjtcbn1cblxuLmJpLXBpbnRlcmVzdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjNcIjtcbn1cblxuLmJpLXNpZ25hbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjRcIjtcbn1cblxuLmJpLXNuYXBjaGF0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2NVwiO1xufVxuXG4uYmktc3BvdGlmeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NjZcIjtcbn1cblxuLmJpLXN0YWNrLW92ZXJmbG93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2N1wiO1xufVxuXG4uYmktc3RyYXZhOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2OFwiO1xufVxuXG4uYmktd29yZHByZXNzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2OVwiO1xufVxuXG4uYmktdmltZW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjZhXCI7XG59XG5cbi5iaS1hY3Rpdml0eTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NmJcIjtcbn1cblxuLmJpLWVhc2VsMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2Y1wiO1xufVxuXG4uYmktZWFzZWwyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY2ZFwiO1xufVxuXG4uYmktZWFzZWwzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjZlXCI7XG59XG5cbi5iaS1lYXNlbDM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjZmXCI7XG59XG5cbi5iaS1mYW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjcwXCI7XG59XG5cbi5iaS1maW5nZXJwcmludDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NzFcIjtcbn1cblxuLmJpLWdyYXBoLWRvd24tYXJyb3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjcyXCI7XG59XG5cbi5iaS1ncmFwaC11cC1hcnJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NzNcIjtcbn1cblxuLmJpLWh5cG5vdGl6ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NzRcIjtcbn1cblxuLmJpLW1hZ2ljOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY3NVwiO1xufVxuXG4uYmktcGVyc29uLXJvbG9kZXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjc2XCI7XG59XG5cbi5iaS1wZXJzb24tdmlkZW86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjc3XCI7XG59XG5cbi5iaS1wZXJzb24tdmlkZW8yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY3OFwiO1xufVxuXG4uYmktcGVyc29uLXZpZGVvMzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2NzlcIjtcbn1cblxuLmJpLXBlcnNvbi13b3Jrc3BhY2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjdhXCI7XG59XG5cbi5iaS1yYWRpb2FjdGl2ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2N2JcIjtcbn1cblxuLmJpLXdlYmNhbS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY3Y1wiO1xufVxuXG4uYmktd2ViY2FtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY3ZFwiO1xufVxuXG4uYmkteWluLXlhbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjdlXCI7XG59XG5cbi5iaS1iYW5kYWlkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjgwXCI7XG59XG5cbi5iaS1iYW5kYWlkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4MVwiO1xufVxuXG4uYmktYmx1ZXRvb3RoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4MlwiO1xufVxuXG4uYmktYm9keS10ZXh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4M1wiO1xufVxuXG4uYmktYm9vbWJveDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ODRcIjtcbn1cblxuLmJpLWJveGVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4NVwiO1xufVxuXG4uYmktZHBhZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4NlwiO1xufVxuXG4uYmktZHBhZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ODdcIjtcbn1cblxuLmJpLWVhci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4OFwiO1xufVxuXG4uYmktZWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4OVwiO1xufVxuXG4uYmktZW52ZWxvcGUtY2hlY2stZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OGJcIjtcbn1cblxuLmJpLWVudmVsb3BlLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4Y1wiO1xufVxuXG4uYmktZW52ZWxvcGUtZGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY4ZVwiO1xufVxuXG4uYmktZW52ZWxvcGUtZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OGZcIjtcbn1cblxuLmJpLWVudmVsb3BlLWV4Y2xhbWF0aW9uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjkxXCI7XG59XG5cbi5iaS1lbnZlbG9wZS1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OTJcIjtcbn1cblxuLmJpLWVudmVsb3BlLXBsdXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OTNcIjtcbn1cblxuLmJpLWVudmVsb3BlLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjk0XCI7XG59XG5cbi5iaS1lbnZlbG9wZS1zbGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5NlwiO1xufVxuXG4uYmktZW52ZWxvcGUtc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjk3XCI7XG59XG5cbi5iaS1lbnZlbG9wZS14LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjk5XCI7XG59XG5cbi5iaS1lbnZlbG9wZS14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5YVwiO1xufVxuXG4uYmktZXhwbGljaXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OWJcIjtcbn1cblxuLmJpLWV4cGxpY2l0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5Y1wiO1xufVxuXG4uYmktZ2l0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5ZFwiO1xufVxuXG4uYmktaW5maW5pdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjllXCI7XG59XG5cbi5iaS1saXN0LWNvbHVtbnMtcmV2ZXJzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2OWZcIjtcbn1cblxuLmJpLWxpc3QtY29sdW1uczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YTBcIjtcbn1cblxuLmJpLW1ldGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmExXCI7XG59XG5cbi5iaS1uaW50ZW5kby1zd2l0Y2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmE0XCI7XG59XG5cbi5iaS1wYy1kaXNwbGF5LWhvcml6b250YWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmE1XCI7XG59XG5cbi5iaS1wYy1kaXNwbGF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZhNlwiO1xufVxuXG4uYmktcGMtaG9yaXpvbnRhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YTdcIjtcbn1cblxuLmJpLXBjOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZhOFwiO1xufVxuXG4uYmktcGxheXN0YXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmE5XCI7XG59XG5cbi5iaS1wbHVzLXNsYXNoLW1pbnVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZhYVwiO1xufVxuXG4uYmktcHJvamVjdG9yLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmFiXCI7XG59XG5cbi5iaS1wcm9qZWN0b3I6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmFjXCI7XG59XG5cbi5iaS1xci1jb2RlLXNjYW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmFkXCI7XG59XG5cbi5iaS1xci1jb2RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZhZVwiO1xufVxuXG4uYmktcXVvcmE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmFmXCI7XG59XG5cbi5iaS1xdW90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YjBcIjtcbn1cblxuLmJpLXJvYm90OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiMVwiO1xufVxuXG4uYmktc2VuZC1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiMlwiO1xufVxuXG4uYmktc2VuZC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YjNcIjtcbn1cblxuLmJpLXNlbmQtZGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiNFwiO1xufVxuXG4uYmktc2VuZC1kYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiNVwiO1xufVxuXG4uYmktc2VuZC1leGNsYW1hdGlvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiN1wiO1xufVxuXG4uYmktc2VuZC1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YjhcIjtcbn1cblxuLmJpLXNlbmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YjlcIjtcbn1cblxuLmJpLXNlbmQtcGx1cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiYVwiO1xufVxuXG4uYmktc2VuZC1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiYlwiO1xufVxuXG4uYmktc2VuZC1zbGFzaC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiY1wiO1xufVxuXG4uYmktc2VuZC1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YmRcIjtcbn1cblxuLmJpLXNlbmQteC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiZVwiO1xufVxuXG4uYmktc2VuZC14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZiZlwiO1xufVxuXG4uYmktc2VuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YzBcIjtcbn1cblxuLmJpLXN0ZWFtOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjMVwiO1xufVxuXG4uYmktdGVybWluYWwtZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YzNcIjtcbn1cblxuLmJpLXRlcm1pbmFsLXBsdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmM0XCI7XG59XG5cbi5iaS10ZXJtaW5hbC1zcGxpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2YzVcIjtcbn1cblxuLmJpLXRpY2tldC1kZXRhaWxlZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjNlwiO1xufVxuXG4uYmktdGlja2V0LWRldGFpbGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjN1wiO1xufVxuXG4uYmktdGlja2V0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmM4XCI7XG59XG5cbi5iaS10aWNrZXQtcGVyZm9yYXRlZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjOVwiO1xufVxuXG4uYmktdGlja2V0LXBlcmZvcmF0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmNhXCI7XG59XG5cbi5iaS10aWNrZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmNiXCI7XG59XG5cbi5iaS10aWt0b2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmNjXCI7XG59XG5cbi5iaS13aW5kb3ctZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2Y2RcIjtcbn1cblxuLmJpLXdpbmRvdy1kZXNrdG9wOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjZVwiO1xufVxuXG4uYmktd2luZG93LWZ1bGxzY3JlZW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmNmXCI7XG59XG5cbi5iaS13aW5kb3ctcGx1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDBcIjtcbn1cblxuLmJpLXdpbmRvdy1zcGxpdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDFcIjtcbn1cblxuLmJpLXdpbmRvdy1zdGFjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDJcIjtcbn1cblxuLmJpLXdpbmRvdy14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZkM1wiO1xufVxuXG4uYmkteGJveDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDRcIjtcbn1cblxuLmJpLWV0aGVybmV0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZkNVwiO1xufVxuXG4uYmktaGRtaS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZkNlwiO1xufVxuXG4uYmktaGRtaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDdcIjtcbn1cblxuLmJpLXVzYi1jLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmQ4XCI7XG59XG5cbi5iaS11c2ItYzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZDlcIjtcbn1cblxuLmJpLXVzYi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZkYVwiO1xufVxuXG4uYmktdXNiLXBsdWctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZGJcIjtcbn1cblxuLmJpLXVzYi1wbHVnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZkY1wiO1xufVxuXG4uYmktdXNiLXN5bWJvbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZGRcIjtcbn1cblxuLmJpLXVzYjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZGVcIjtcbn1cblxuLmJpLWJvb21ib3gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZGZcIjtcbn1cblxuLmJpLWRpc3BsYXlwb3J0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlMVwiO1xufVxuXG4uYmktZ3B1LWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmUyXCI7XG59XG5cbi5iaS1tZW1vcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmUzXCI7XG59XG5cbi5iaS1tb2RlbS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlNFwiO1xufVxuXG4uYmktbW9kZW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmU1XCI7XG59XG5cbi5iaS1tb3RoZXJib2FyZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlNlwiO1xufVxuXG4uYmktbW90aGVyYm9hcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmU3XCI7XG59XG5cbi5iaS1vcHRpY2FsLWF1ZGlvLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmU4XCI7XG59XG5cbi5iaS1vcHRpY2FsLWF1ZGlvOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlOVwiO1xufVxuXG4uYmktcGNpLWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmVhXCI7XG59XG5cbi5iaS1yb3V0ZXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZWJcIjtcbn1cblxuLmJpLXJvdXRlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZWNcIjtcbn1cblxuLmJpLXRodW5kZXJib2x0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmVmXCI7XG59XG5cbi5iaS10aHVuZGVyYm9sdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZjBcIjtcbn1cblxuLmJpLXVzYi1kcml2ZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZmMVwiO1xufVxuXG4uYmktdXNiLWRyaXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZmMlwiO1xufVxuXG4uYmktdXNiLW1pY3JvLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmYzXCI7XG59XG5cbi5iaS11c2ItbWljcm86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmY0XCI7XG59XG5cbi5iaS11c2ItbWluaS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZmNVwiO1xufVxuXG4uYmktdXNiLW1pbmk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmY2XCI7XG59XG5cbi5iaS1jbG91ZC1oYXplMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZjdcIjtcbn1cblxuLmJpLWRldmljZS1oZGQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZjhcIjtcbn1cblxuLmJpLWRldmljZS1oZGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmY5XCI7XG59XG5cbi5iaS1kZXZpY2Utc3NkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmZhXCI7XG59XG5cbi5iaS1kZXZpY2Utc3NkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZmYlwiO1xufVxuXG4uYmktZGlzcGxheXBvcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZmNcIjtcbn1cblxuLmJpLW1vcnRhcmJvYXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmZkXCI7XG59XG5cbi5iaS1tb3J0YXJib2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZmVcIjtcbn1cblxuLmJpLXRlcm1pbmFsLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmZmXCI7XG59XG5cbi5iaS1hcnJvdy10aHJvdWdoLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzAwXCI7XG59XG5cbi5iaS1hcnJvdy10aHJvdWdoLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcwMVwiO1xufVxuXG4uYmktYmFkZ2Utc2QtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MDJcIjtcbn1cblxuLmJpLWJhZGdlLXNkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcwM1wiO1xufVxuXG4uYmktYmFnLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzA0XCI7XG59XG5cbi5iaS1iYWctaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzA1XCI7XG59XG5cbi5iaS1iYWxsb29uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzA2XCI7XG59XG5cbi5iaS1iYWxsb29uLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzA3XCI7XG59XG5cbi5iaS1iYWxsb29uLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcwOFwiO1xufVxuXG4uYmktYmFsbG9vbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MDlcIjtcbn1cblxuLmJpLWJveDItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MGFcIjtcbn1cblxuLmJpLWJveDItaGVhcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MGJcIjtcbn1cblxuLmJpLWJveDItaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzBjXCI7XG59XG5cbi5iaS1ib3gyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcwZFwiO1xufVxuXG4uYmktYnJhY2VzLWFzdGVyaXNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcwZVwiO1xufVxuXG4uYmktY2FsZW5kYXItaGVhcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MGZcIjtcbn1cblxuLmJpLWNhbGVuZGFyLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcxMFwiO1xufVxuXG4uYmktY2FsZW5kYXIyLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzExXCI7XG59XG5cbi5iaS1jYWxlbmRhcjItaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzEyXCI7XG59XG5cbi5iaS1jaGF0LWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzEzXCI7XG59XG5cbi5iaS1jaGF0LWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcxNFwiO1xufVxuXG4uYmktY2hhdC1sZWZ0LWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzE1XCI7XG59XG5cbi5iaS1jaGF0LWxlZnQtaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzE2XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzE3XCI7XG59XG5cbi5iaS1jaGF0LXJpZ2h0LWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcxOFwiO1xufVxuXG4uYmktY2hhdC1zcXVhcmUtaGVhcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MTlcIjtcbn1cblxuLmJpLWNoYXQtc3F1YXJlLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcxYVwiO1xufVxuXG4uYmktY2xpcGJvYXJkLWNoZWNrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzFiXCI7XG59XG5cbi5iaS1jbGlwYm9hcmQtZGF0YS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcxY1wiO1xufVxuXG4uYmktY2xpcGJvYXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzFkXCI7XG59XG5cbi5iaS1jbGlwYm9hcmQtaGVhcnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MWVcIjtcbn1cblxuLmJpLWNsaXBib2FyZC1oZWFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MWZcIjtcbn1cblxuLmJpLWNsaXBib2FyZC1taW51cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyMFwiO1xufVxuXG4uYmktY2xpcGJvYXJkLXBsdXMtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MjFcIjtcbn1cblxuLmJpLWNsaXBib2FyZC1wdWxzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MjJcIjtcbn1cblxuLmJpLWNsaXBib2FyZC14LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzIzXCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWNoZWNrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzI0XCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyNVwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1kYXRhLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzI2XCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWRhdGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzI3XCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzI4XCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzI5XCI7XG59XG5cbi5iaS1jbGlwYm9hcmQyLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyYVwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1taW51cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyYlwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1taW51czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MmNcIjtcbn1cblxuLmJpLWNsaXBib2FyZDItcGx1cy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyZFwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1wbHVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyZVwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1wdWxzZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjcyZlwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi1wdWxzZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MzBcIjtcbn1cblxuLmJpLWNsaXBib2FyZDIteC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczMVwiO1xufVxuXG4uYmktY2xpcGJvYXJkMi14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczMlwiO1xufVxuXG4uYmktY2xpcGJvYXJkMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MzNcIjtcbn1cblxuLmJpLWVtb2ppLWtpc3MtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3MzRcIjtcbn1cblxuLmJpLWVtb2ppLWtpc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzM1XCI7XG59XG5cbi5iaS1lbnZlbG9wZS1oZWFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczNlwiO1xufVxuXG4uYmktZW52ZWxvcGUtaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzM3XCI7XG59XG5cbi5iaS1lbnZlbG9wZS1vcGVuLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzM4XCI7XG59XG5cbi5iaS1lbnZlbG9wZS1vcGVuLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczOVwiO1xufVxuXG4uYmktZW52ZWxvcGUtcGFwZXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3M2FcIjtcbn1cblxuLmJpLWVudmVsb3BlLXBhcGVyLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzNiXCI7XG59XG5cbi5iaS1lbnZlbG9wZS1wYXBlci1oZWFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3M2NcIjtcbn1cblxuLmJpLWVudmVsb3BlLXBhcGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczZFwiO1xufVxuXG4uYmktZmlsZXR5cGUtYWFjOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjczZVwiO1xufVxuXG4uYmktZmlsZXR5cGUtYWk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzNmXCI7XG59XG5cbi5iaS1maWxldHlwZS1ibXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzQwXCI7XG59XG5cbi5iaS1maWxldHlwZS1jczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NDFcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWNzczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NDJcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWNzdjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NDNcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWRvYzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NDRcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWRvY3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzQ1XCI7XG59XG5cbi5iaS1maWxldHlwZS1leGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzQ2XCI7XG59XG5cbi5iaS1maWxldHlwZS1naWY6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzQ3XCI7XG59XG5cbi5iaS1maWxldHlwZS1oZWljOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc0OFwiO1xufVxuXG4uYmktZmlsZXR5cGUtaHRtbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NDlcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWphdmE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzRhXCI7XG59XG5cbi5iaS1maWxldHlwZS1qcGc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzRiXCI7XG59XG5cbi5iaS1maWxldHlwZS1qczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NGNcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWpzeDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NGRcIjtcbn1cblxuLmJpLWZpbGV0eXBlLWtleTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NGVcIjtcbn1cblxuLmJpLWZpbGV0eXBlLW00cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NGZcIjtcbn1cblxuLmJpLWZpbGV0eXBlLW1kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1MFwiO1xufVxuXG4uYmktZmlsZXR5cGUtbWR4OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1MVwiO1xufVxuXG4uYmktZmlsZXR5cGUtbW92OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1MlwiO1xufVxuXG4uYmktZmlsZXR5cGUtbXAzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1M1wiO1xufVxuXG4uYmktZmlsZXR5cGUtbXA0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1NFwiO1xufVxuXG4uYmktZmlsZXR5cGUtb3RmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1NVwiO1xufVxuXG4uYmktZmlsZXR5cGUtcGRmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1NlwiO1xufVxuXG4uYmktZmlsZXR5cGUtcGhwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1N1wiO1xufVxuXG4uYmktZmlsZXR5cGUtcG5nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1OFwiO1xufVxuXG4uYmktZmlsZXR5cGUtcHB0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1YVwiO1xufVxuXG4uYmktZmlsZXR5cGUtcHNkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc1YlwiO1xufVxuXG4uYmktZmlsZXR5cGUtcHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzVjXCI7XG59XG5cbi5iaS1maWxldHlwZS1yYXc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzVkXCI7XG59XG5cbi5iaS1maWxldHlwZS1yYjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NWVcIjtcbn1cblxuLmJpLWZpbGV0eXBlLXNhc3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzVmXCI7XG59XG5cbi5iaS1maWxldHlwZS1zY3NzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2MFwiO1xufVxuXG4uYmktZmlsZXR5cGUtc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzYxXCI7XG59XG5cbi5iaS1maWxldHlwZS1zdmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzYyXCI7XG59XG5cbi5iaS1maWxldHlwZS10aWZmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2M1wiO1xufVxuXG4uYmktZmlsZXR5cGUtdHN4OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2NFwiO1xufVxuXG4uYmktZmlsZXR5cGUtdHRmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2NVwiO1xufVxuXG4uYmktZmlsZXR5cGUtdHh0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2NlwiO1xufVxuXG4uYmktZmlsZXR5cGUtd2F2OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2N1wiO1xufVxuXG4uYmktZmlsZXR5cGUtd29mZjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NjhcIjtcbn1cblxuLmJpLWZpbGV0eXBlLXhsczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NmFcIjtcbn1cblxuLmJpLWZpbGV0eXBlLXhtbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NmJcIjtcbn1cblxuLmJpLWZpbGV0eXBlLXltbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NmNcIjtcbn1cblxuLmJpLWhlYXJ0LWFycm93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2ZFwiO1xufVxuXG4uYmktaGVhcnQtcHVsc2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NmVcIjtcbn1cblxuLmJpLWhlYXJ0LXB1bHNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc2ZlwiO1xufVxuXG4uYmktaGVhcnRicmVhay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc3MFwiO1xufVxuXG4uYmktaGVhcnRicmVhazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NzFcIjtcbn1cblxuLmJpLWhlYXJ0czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NzJcIjtcbn1cblxuLmJpLWhvc3BpdGFsLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzczXCI7XG59XG5cbi5iaS1ob3NwaXRhbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NzRcIjtcbn1cblxuLmJpLWhvdXNlLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzc1XCI7XG59XG5cbi5iaS1ob3VzZS1oZWFydDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NzZcIjtcbn1cblxuLmJpLWluY29nbml0bzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NzdcIjtcbn1cblxuLmJpLW1hZ25ldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc3OFwiO1xufVxuXG4uYmktbWFnbmV0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc3OVwiO1xufVxuXG4uYmktcGVyc29uLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc3YVwiO1xufVxuXG4uYmktcGVyc29uLWhlYXJ0czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3N2JcIjtcbn1cblxuLmJpLXBob25lLWZsaXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzdjXCI7XG59XG5cbi5iaS1wbHVnaW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzdkXCI7XG59XG5cbi5iaS1wb3N0YWdlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzdlXCI7XG59XG5cbi5iaS1wb3N0YWdlLWhlYXJ0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzdmXCI7XG59XG5cbi5iaS1wb3N0YWdlLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4MFwiO1xufVxuXG4uYmktcG9zdGFnZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ODFcIjtcbn1cblxuLmJpLXBvc3RjYXJkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzgyXCI7XG59XG5cbi5iaS1wb3N0Y2FyZC1oZWFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4M1wiO1xufVxuXG4uYmktcG9zdGNhcmQtaGVhcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzg0XCI7XG59XG5cbi5iaS1wb3N0Y2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ODVcIjtcbn1cblxuLmJpLXNlYXJjaC1oZWFydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4NlwiO1xufVxuXG4uYmktc2VhcmNoLWhlYXJ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4N1wiO1xufVxuXG4uYmktc2xpZGVyczItdmVydGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzg4XCI7XG59XG5cbi5iaS1zbGlkZXJzMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ODlcIjtcbn1cblxuLmJpLXRyYXNoMy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4YVwiO1xufVxuXG4uYmktdHJhc2gzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4YlwiO1xufVxuXG4uYmktdmFsZW50aW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4Y1wiO1xufVxuXG4uYmktdmFsZW50aW5lMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3OGRcIjtcbn1cblxuLmJpLXdyZW5jaC1hZGp1c3RhYmxlLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4ZVwiO1xufVxuXG4uYmktd3JlbmNoLWFkanVzdGFibGUtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc4ZlwiO1xufVxuXG4uYmktd3JlbmNoLWFkanVzdGFibGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzkwXCI7XG59XG5cbi5iaS1maWxldHlwZS1qc29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5MVwiO1xufVxuXG4uYmktZmlsZXR5cGUtcHB0eDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3OTJcIjtcbn1cblxuLmJpLWZpbGV0eXBlLXhsc3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzkzXCI7XG59XG5cbi5iaS0xLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5NlwiO1xufVxuXG4uYmktMS1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzk3XCI7XG59XG5cbi5iaS0xLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5OFwiO1xufVxuXG4uYmktMS1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzk5XCI7XG59XG5cbi5iaS0yLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5Y1wiO1xufVxuXG4uYmktMi1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzlkXCI7XG59XG5cbi5iaS0yLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5ZVwiO1xufVxuXG4uYmktMi1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzlmXCI7XG59XG5cbi5iaS0zLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhMlwiO1xufVxuXG4uYmktMy1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2EzXCI7XG59XG5cbi5iaS0zLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhNFwiO1xufVxuXG4uYmktMy1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2E1XCI7XG59XG5cbi5iaS00LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhOFwiO1xufVxuXG4uYmktNC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2E5XCI7XG59XG5cbi5iaS00LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhYVwiO1xufVxuXG4uYmktNC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2FiXCI7XG59XG5cbi5iaS01LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhZVwiO1xufVxuXG4uYmktNS1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2FmXCI7XG59XG5cbi5iaS01LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiMFwiO1xufVxuXG4uYmktNS1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2IxXCI7XG59XG5cbi5iaS02LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiNFwiO1xufVxuXG4uYmktNi1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2I1XCI7XG59XG5cbi5iaS02LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiNlwiO1xufVxuXG4uYmktNi1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2I3XCI7XG59XG5cbi5iaS03LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiYVwiO1xufVxuXG4uYmktNy1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2JiXCI7XG59XG5cbi5iaS03LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiY1wiO1xufVxuXG4uYmktNy1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2JkXCI7XG59XG5cbi5iaS04LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjMFwiO1xufVxuXG4uYmktOC1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2MxXCI7XG59XG5cbi5iaS04LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjMlwiO1xufVxuXG4uYmktOC1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2MzXCI7XG59XG5cbi5iaS05LWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjNlwiO1xufVxuXG4uYmktOS1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2M3XCI7XG59XG5cbi5iaS05LXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjOFwiO1xufVxuXG4uYmktOS1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2M5XCI7XG59XG5cbi5iaS1haXJwbGFuZS1lbmdpbmVzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2NhXCI7XG59XG5cbi5iaS1haXJwbGFuZS1lbmdpbmVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjYlwiO1xufVxuXG4uYmktYWlycGxhbmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3Y2NcIjtcbn1cblxuLmJpLWFpcnBsYW5lOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjZFwiO1xufVxuXG4uYmktYWxleGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2NlXCI7XG59XG5cbi5iaS1hbGlwYXk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2NmXCI7XG59XG5cbi5iaS1hbmRyb2lkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkMFwiO1xufVxuXG4uYmktYW5kcm9pZDI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2QxXCI7XG59XG5cbi5iaS1ib3gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZDJcIjtcbn1cblxuLmJpLWJveC1zZWFtLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2QzXCI7XG59XG5cbi5iaS1icm93c2VyLWNocm9tZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZDRcIjtcbn1cblxuLmJpLWJyb3dzZXItZWRnZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZDVcIjtcbn1cblxuLmJpLWJyb3dzZXItZmlyZWZveDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZDZcIjtcbn1cblxuLmJpLWJyb3dzZXItc2FmYXJpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkN1wiO1xufVxuXG4uYmktYy1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZGFcIjtcbn1cblxuLmJpLWMtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkYlwiO1xufVxuXG4uYmktYy1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZGNcIjtcbn1cblxuLmJpLWMtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkZFwiO1xufVxuXG4uYmktY2Fwc3VsZS1waWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkZVwiO1xufVxuXG4uYmktY2Fwc3VsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZGZcIjtcbn1cblxuLmJpLWNhci1mcm9udC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdlMFwiO1xufVxuXG4uYmktY2FyLWZyb250OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdlMVwiO1xufVxuXG4uYmktY2Fzc2V0dGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZTJcIjtcbn1cblxuLmJpLWNhc3NldHRlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdlM1wiO1xufVxuXG4uYmktY2MtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2U2XCI7XG59XG5cbi5iaS1jYy1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2U3XCI7XG59XG5cbi5iaS1jYy1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZThcIjtcbn1cblxuLmJpLWNjLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZTlcIjtcbn1cblxuLmJpLWN1cC1ob3QtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZWFcIjtcbn1cblxuLmJpLWN1cC1ob3Q6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2ViXCI7XG59XG5cbi5iaS1jdXJyZW5jeS1ydXBlZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZWNcIjtcbn1cblxuLmJpLWRyb3Bib3g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2VkXCI7XG59XG5cbi5iaS1lc2NhcGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2VlXCI7XG59XG5cbi5iaS1mYXN0LWZvcndhcmQtYnRuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2VmXCI7XG59XG5cbi5iaS1mYXN0LWZvcndhcmQtYnRuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmMFwiO1xufVxuXG4uYmktZmFzdC1mb3J3YXJkLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmMVwiO1xufVxuXG4uYmktZmFzdC1mb3J3YXJkLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZjJcIjtcbn1cblxuLmJpLWZhc3QtZm9yd2FyZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmM1wiO1xufVxuXG4uYmktZmFzdC1mb3J3YXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmNFwiO1xufVxuXG4uYmktZmlsZXR5cGUtc3FsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmNVwiO1xufVxuXG4uYmktZmlyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZjZcIjtcbn1cblxuLmJpLWdvb2dsZS1wbGF5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmN1wiO1xufVxuXG4uYmktaC1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZmFcIjtcbn1cblxuLmJpLWgtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmYlwiO1xufVxuXG4uYmktaC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZmNcIjtcbn1cblxuLmJpLWgtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmZFwiO1xufVxuXG4uYmktaW5kZW50OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmZVwiO1xufVxuXG4uYmktbHVuZ3MtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZmZcIjtcbn1cblxuLmJpLWx1bmdzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwMFwiO1xufVxuXG4uYmktbWljcm9zb2Z0LXRlYW1zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwMVwiO1xufVxuXG4uYmktcC1jaXJjbGUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MDRcIjtcbn1cblxuLmJpLXAtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwNVwiO1xufVxuXG4uYmktcC1zcXVhcmUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MDZcIjtcbn1cblxuLmJpLXAtc3F1YXJlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwN1wiO1xufVxuXG4uYmktcGFzcy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwOFwiO1xufVxuXG4uYmktcGFzczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MDlcIjtcbn1cblxuLmJpLXByZXNjcmlwdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MGFcIjtcbn1cblxuLmJpLXByZXNjcmlwdGlvbjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODBiXCI7XG59XG5cbi5iaS1yLWNpcmNsZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgwZVwiO1xufVxuXG4uYmktci1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODBmXCI7XG59XG5cbi5iaS1yLXNxdWFyZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgxMFwiO1xufVxuXG4uYmktci1zcXVhcmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODExXCI7XG59XG5cbi5iaS1yZXBlYXQtMTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MTJcIjtcbn1cblxuLmJpLXJlcGVhdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MTNcIjtcbn1cblxuLmJpLXJld2luZC1idG4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MTRcIjtcbn1cblxuLmJpLXJld2luZC1idG46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODE1XCI7XG59XG5cbi5iaS1yZXdpbmQtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODE2XCI7XG59XG5cbi5iaS1yZXdpbmQtY2lyY2xlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgxN1wiO1xufVxuXG4uYmktcmV3aW5kLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODE4XCI7XG59XG5cbi5iaS1yZXdpbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODE5XCI7XG59XG5cbi5iaS10cmFpbi1mcmVpZ2h0LWZyb250LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODFhXCI7XG59XG5cbi5iaS10cmFpbi1mcmVpZ2h0LWZyb250OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgxYlwiO1xufVxuXG4uYmktdHJhaW4tZnJvbnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MWNcIjtcbn1cblxuLmJpLXRyYWluLWZyb250OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgxZFwiO1xufVxuXG4uYmktdHJhaW4tbGlnaHRyYWlsLWZyb250LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODFlXCI7XG59XG5cbi5iaS10cmFpbi1saWdodHJhaWwtZnJvbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODFmXCI7XG59XG5cbi5iaS10cnVjay1mcm9udC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyMFwiO1xufVxuXG4uYmktdHJ1Y2stZnJvbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODIxXCI7XG59XG5cbi5iaS11YnVudHU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODIyXCI7XG59XG5cbi5iaS11bmluZGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MjNcIjtcbn1cblxuLmJpLXVuaXR5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyNFwiO1xufVxuXG4uYmktdW5pdmVyc2FsLWFjY2Vzcy1jaXJjbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODI1XCI7XG59XG5cbi5iaS11bml2ZXJzYWwtYWNjZXNzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyNlwiO1xufVxuXG4uYmktdmlydXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODI3XCI7XG59XG5cbi5iaS12aXJ1czI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODI4XCI7XG59XG5cbi5iaS13ZWNoYXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODI5XCI7XG59XG5cbi5iaS15ZWxwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyYVwiO1xufVxuXG4uYmktc2lnbi1zdG9wLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODJiXCI7XG59XG5cbi5iaS1zaWduLXN0b3AtbGlnaHRzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODJjXCI7XG59XG5cbi5iaS1zaWduLXN0b3AtbGlnaHRzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyZFwiO1xufVxuXG4uYmktc2lnbi1zdG9wOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgyZVwiO1xufVxuXG4uYmktc2lnbi10dXJuLWxlZnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MmZcIjtcbn1cblxuLmJpLXNpZ24tdHVybi1sZWZ0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgzMFwiO1xufVxuXG4uYmktc2lnbi10dXJuLXJpZ2h0LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODMxXCI7XG59XG5cbi5iaS1zaWduLXR1cm4tcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODMyXCI7XG59XG5cbi5iaS1zaWduLXR1cm4tc2xpZ2h0LWxlZnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MzNcIjtcbn1cblxuLmJpLXNpZ24tdHVybi1zbGlnaHQtbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MzRcIjtcbn1cblxuLmJpLXNpZ24tdHVybi1zbGlnaHQtcmlnaHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MzVcIjtcbn1cblxuLmJpLXNpZ24tdHVybi1zbGlnaHQtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODM2XCI7XG59XG5cbi5iaS1zaWduLXlpZWxkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODM3XCI7XG59XG5cbi5iaS1zaWduLXlpZWxkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgzOFwiO1xufVxuXG4uYmktZXYtc3RhdGlvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjgzOVwiO1xufVxuXG4uYmktZXYtc3RhdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4M2FcIjtcbn1cblxuLmJpLWZ1ZWwtcHVtcC1kaWVzZWwtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4M2JcIjtcbn1cblxuLmJpLWZ1ZWwtcHVtcC1kaWVzZWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODNjXCI7XG59XG5cbi5iaS1mdWVsLXB1bXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4M2RcIjtcbn1cblxuLmJpLWZ1ZWwtcHVtcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4M2VcIjtcbn1cblxuLmJpLTAtY2lyY2xlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODNmXCI7XG59XG5cbi5iaS0wLWNpcmNsZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NDBcIjtcbn1cblxuLmJpLTAtc3F1YXJlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODQxXCI7XG59XG5cbi5iaS0wLXNxdWFyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NDJcIjtcbn1cblxuLmJpLXJvY2tldC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0M1wiO1xufVxuXG4uYmktcm9ja2V0LXRha2VvZmYtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NDRcIjtcbn1cblxuLmJpLXJvY2tldC10YWtlb2ZmOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0NVwiO1xufVxuXG4uYmktcm9ja2V0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0NlwiO1xufVxuXG4uYmktc3RyaXBlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0N1wiO1xufVxuXG4uYmktc3Vic2NyaXB0OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0OFwiO1xufVxuXG4uYmktc3VwZXJzY3JpcHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODQ5XCI7XG59XG5cbi5iaS10cmVsbG86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODRhXCI7XG59XG5cbi5iaS1lbnZlbG9wZS1hdC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg0YlwiO1xufVxuXG4uYmktZW52ZWxvcGUtYXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODRjXCI7XG59XG5cbi5iaS1yZWdleDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NGRcIjtcbn1cblxuLmJpLXRleHQtd3JhcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NGVcIjtcbn1cblxuLmJpLXNpZ24tZGVhZC1lbmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NGZcIjtcbn1cblxuLmJpLXNpZ24tZGVhZC1lbmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODUwXCI7XG59XG5cbi5iaS1zaWduLWRvLW5vdC1lbnRlci1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg1MVwiO1xufVxuXG4uYmktc2lnbi1kby1ub3QtZW50ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODUyXCI7XG59XG5cbi5iaS1zaWduLWludGVyc2VjdGlvbi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg1M1wiO1xufVxuXG4uYmktc2lnbi1pbnRlcnNlY3Rpb24tc2lkZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg1NFwiO1xufVxuXG4uYmktc2lnbi1pbnRlcnNlY3Rpb24tc2lkZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NTVcIjtcbn1cblxuLmJpLXNpZ24taW50ZXJzZWN0aW9uLXQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NTZcIjtcbn1cblxuLmJpLXNpZ24taW50ZXJzZWN0aW9uLXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODU3XCI7XG59XG5cbi5iaS1zaWduLWludGVyc2VjdGlvbi15LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODU4XCI7XG59XG5cbi5iaS1zaWduLWludGVyc2VjdGlvbi15OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg1OVwiO1xufVxuXG4uYmktc2lnbi1pbnRlcnNlY3Rpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODVhXCI7XG59XG5cbi5iaS1zaWduLW1lcmdlLWxlZnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NWJcIjtcbn1cblxuLmJpLXNpZ24tbWVyZ2UtbGVmdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NWNcIjtcbn1cblxuLmJpLXNpZ24tbWVyZ2UtcmlnaHQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NWRcIjtcbn1cblxuLmJpLXNpZ24tbWVyZ2UtcmlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODVlXCI7XG59XG5cbi5iaS1zaWduLW5vLWxlZnQtdHVybi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg1ZlwiO1xufVxuXG4uYmktc2lnbi1uby1sZWZ0LXR1cm46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODYwXCI7XG59XG5cbi5iaS1zaWduLW5vLXBhcmtpbmctZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NjFcIjtcbn1cblxuLmJpLXNpZ24tbm8tcGFya2luZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NjJcIjtcbn1cblxuLmJpLXNpZ24tbm8tcmlnaHQtdHVybi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg2M1wiO1xufVxuXG4uYmktc2lnbi1uby1yaWdodC10dXJuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg2NFwiO1xufVxuXG4uYmktc2lnbi1yYWlscm9hZC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg2NVwiO1xufVxuXG4uYmktc2lnbi1yYWlscm9hZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NjZcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWFkZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NjdcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg2OFwiO1xufVxuXG4uYmktYnVpbGRpbmctZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NjlcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODZhXCI7XG59XG5cbi5iaS1idWlsZGluZy1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NmJcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGwtYWRkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg2Y1wiO1xufVxuXG4uYmktYnVpbGRpbmctZmlsbC1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NmRcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGwtZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NmVcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGwtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NmZcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGwtZXhjbGFtYXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODcwXCI7XG59XG5cbi5iaS1idWlsZGluZy1maWxsLWdlYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODcxXCI7XG59XG5cbi5iaS1idWlsZGluZy1maWxsLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODcyXCI7XG59XG5cbi5iaS1idWlsZGluZy1maWxsLXNsYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg3M1wiO1xufVxuXG4uYmktYnVpbGRpbmctZmlsbC11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NzRcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGwteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NzVcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODc2XCI7XG59XG5cbi5iaS1idWlsZGluZy1nZWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg3N1wiO1xufVxuXG4uYmktYnVpbGRpbmctbG9jazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4NzhcIjtcbn1cblxuLmJpLWJ1aWxkaW5nLXNsYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg3OVwiO1xufVxuXG4uYmktYnVpbGRpbmctdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODdhXCI7XG59XG5cbi5iaS1idWlsZGluZy14OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg3YlwiO1xufVxuXG4uYmktYnVpbGRpbmdzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODdjXCI7XG59XG5cbi5iaS1idWlsZGluZ3M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODdkXCI7XG59XG5cbi5iaS1idXMtZnJvbnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4N2VcIjtcbn1cblxuLmJpLWJ1cy1mcm9udDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4N2ZcIjtcbn1cblxuLmJpLWV2LWZyb250LWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODgwXCI7XG59XG5cbi5iaS1ldi1mcm9udDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ODFcIjtcbn1cblxuLmJpLWdsb2JlLWFtZXJpY2FzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg4MlwiO1xufVxuXG4uYmktZ2xvYmUtYXNpYS1hdXN0cmFsaWE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODgzXCI7XG59XG5cbi5iaS1nbG9iZS1jZW50cmFsLXNvdXRoLWFzaWE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODg0XCI7XG59XG5cbi5iaS1nbG9iZS1ldXJvcGUtYWZyaWNhOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg4NVwiO1xufVxuXG4uYmktaG91c2UtYWRkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODg2XCI7XG59XG5cbi5iaS1ob3VzZS1hZGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODg3XCI7XG59XG5cbi5iaS1ob3VzZS1jaGVjay1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg4OFwiO1xufVxuXG4uYmktaG91c2UtY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODg5XCI7XG59XG5cbi5iaS1ob3VzZS1kYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODhhXCI7XG59XG5cbi5iaS1ob3VzZS1kYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg4YlwiO1xufVxuXG4uYmktaG91c2UtZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg4Y1wiO1xufVxuXG4uYmktaG91c2UtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OGRcIjtcbn1cblxuLmJpLWhvdXNlLWV4Y2xhbWF0aW9uLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODhlXCI7XG59XG5cbi5iaS1ob3VzZS1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OGZcIjtcbn1cblxuLmJpLWhvdXNlLWdlYXItZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OTBcIjtcbn1cblxuLmJpLWhvdXNlLWdlYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODkxXCI7XG59XG5cbi5iaS1ob3VzZS1sb2NrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODkyXCI7XG59XG5cbi5iaS1ob3VzZS1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg5M1wiO1xufVxuXG4uYmktaG91c2Utc2xhc2gtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OTRcIjtcbn1cblxuLmJpLWhvdXNlLXNsYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg5NVwiO1xufVxuXG4uYmktaG91c2UtdXAtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OTZcIjtcbn1cblxuLmJpLWhvdXNlLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg5N1wiO1xufVxuXG4uYmktaG91c2UteC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg5OFwiO1xufVxuXG4uYmktaG91c2UteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OTlcIjtcbn1cblxuLmJpLXBlcnNvbi1hZGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODlhXCI7XG59XG5cbi5iaS1wZXJzb24tZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OWJcIjtcbn1cblxuLmJpLXBlcnNvbi1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OWNcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsLWFkZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OWRcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsLWNoZWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjg5ZVwiO1xufVxuXG4uYmktcGVyc29uLWZpbGwtZGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4OWZcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGEwXCI7XG59XG5cbi5iaS1wZXJzb24tZmlsbC1leGNsYW1hdGlvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YTFcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsLWdlYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGEyXCI7XG59XG5cbi5iaS1wZXJzb24tZmlsbC1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhhM1wiO1xufVxuXG4uYmktcGVyc29uLWZpbGwtc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGE0XCI7XG59XG5cbi5iaS1wZXJzb24tZmlsbC11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YTVcIjtcbn1cblxuLmJpLXBlcnNvbi1maWxsLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGE2XCI7XG59XG5cbi5iaS1wZXJzb24tZ2Vhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YTdcIjtcbn1cblxuLmJpLXBlcnNvbi1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhhOFwiO1xufVxuXG4uYmktcGVyc29uLXNsYXNoOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhhOVwiO1xufVxuXG4uYmktcGVyc29uLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhhYVwiO1xufVxuXG4uYmktc2Nvb3Rlcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YWJcIjtcbn1cblxuLmJpLXRheGktZnJvbnQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YWNcIjtcbn1cblxuLmJpLXRheGktZnJvbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGFkXCI7XG59XG5cbi5iaS1hbWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGFlXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1hZGQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGFmXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1jaGVjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YjBcIjtcbn1cblxuLmJpLWRhdGFiYXNlLWRhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGIxXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1kb3duOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhiMlwiO1xufVxuXG4uYmktZGF0YWJhc2UtZXhjbGFtYXRpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGIzXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsLWFkZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YjRcIjtcbn1cblxuLmJpLWRhdGFiYXNlLWZpbGwtY2hlY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGI1XCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsLWRhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGI2XCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGI3XCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsLWV4Y2xhbWF0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhiOFwiO1xufVxuXG4uYmktZGF0YWJhc2UtZmlsbC1nZWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhiOVwiO1xufVxuXG4uYmktZGF0YWJhc2UtZmlsbC1sb2NrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhiYVwiO1xufVxuXG4uYmktZGF0YWJhc2UtZmlsbC1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YmJcIjtcbn1cblxuLmJpLWRhdGFiYXNlLWZpbGwtdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGJjXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsLXg6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGJkXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhiZVwiO1xufVxuXG4uYmktZGF0YWJhc2UtZ2Vhcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YmZcIjtcbn1cblxuLmJpLWRhdGFiYXNlLWxvY2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGMwXCI7XG59XG5cbi5iaS1kYXRhYmFzZS1zbGFzaDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YzFcIjtcbn1cblxuLmJpLWRhdGFiYXNlLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhjMlwiO1xufVxuXG4uYmktZGF0YWJhc2UteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YzNcIjtcbn1cblxuLmJpLWRhdGFiYXNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhjNFwiO1xufVxuXG4uYmktaG91c2VzLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGM1XCI7XG59XG5cbi5iaS1ob3VzZXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGM2XCI7XG59XG5cbi5iaS1udmlkaWE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGM3XCI7XG59XG5cbi5iaS1wZXJzb24tdmNhcmQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YzhcIjtcbn1cblxuLmJpLXBlcnNvbi12Y2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4YzlcIjtcbn1cblxuLmJpLXNpbmEtd2VpYm86OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGNhXCI7XG59XG5cbi5iaS10ZW5jZW50LXFxOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhjYlwiO1xufVxuXG4uYmktd2lraXBlZGlhOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhjY1wiO1xufVxuXG4uYmktYWxwaGFiZXQtdXBwZXJjYXNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNVwiO1xufVxuXG4uYmktYWxwaGFiZXQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjhhXCI7XG59XG5cbi5iaS1hbWF6b246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjhkXCI7XG59XG5cbi5iaS1hcnJvd3MtY29sbGFwc2UtdmVydGljYWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNjkwXCI7XG59XG5cbi5iaS1hcnJvd3MtZXhwYW5kLXZlcnRpY2FsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5NVwiO1xufVxuXG4uYmktYXJyb3dzLXZlcnRpY2FsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjY5OFwiO1xufVxuXG4uYmktYXJyb3dzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZhMlwiO1xufVxuXG4uYmktYmFuLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmEzXCI7XG59XG5cbi5iaS1iYW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNmI2XCI7XG59XG5cbi5iaS1iaW5nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZjMlwiO1xufVxuXG4uYmktY2FrZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY2ZTBcIjtcbn1cblxuLmJpLWNha2UyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlZFwiO1xufVxuXG4uYmktY29va2llOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjZlZVwiO1xufVxuXG4uYmktY29weTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NTlcIjtcbn1cblxuLmJpLWNyb3NzaGFpcjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3NjlcIjtcbn1cblxuLmJpLWNyb3NzaGFpcjI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzk0XCI7XG59XG5cbi5iaS1lbW9qaS1hc3RvbmlzaGVkLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNzk1XCI7XG59XG5cbi5iaS1lbW9qaS1hc3RvbmlzaGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5YVwiO1xufVxuXG4uYmktZW1vamktZ3JpbWFjZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjc5YlwiO1xufVxuXG4uYmktZW1vamktZ3JpbWFjZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3YTBcIjtcbn1cblxuLmJpLWVtb2ppLWdyaW4tZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3YTFcIjtcbn1cblxuLmJpLWVtb2ppLWdyaW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2E2XCI7XG59XG5cbi5iaS1lbW9qaS1zdXJwcmlzZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdhN1wiO1xufVxuXG4uYmktZW1vamktc3VycHJpc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2FjXCI7XG59XG5cbi5iaS1lbW9qaS10ZWFyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2FkXCI7XG59XG5cbi5iaS1lbW9qaS10ZWFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiMlwiO1xufVxuXG4uYmktZW52ZWxvcGUtYXJyb3ctZG93bi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdiM1wiO1xufVxuXG4uYmktZW52ZWxvcGUtYXJyb3ctZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3YjhcIjtcbn1cblxuLmJpLWVudmVsb3BlLWFycm93LXVwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2I5XCI7XG59XG5cbi5iaS1lbnZlbG9wZS1hcnJvdy11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3YmVcIjtcbn1cblxuLmJpLWZlYXRoZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmN2JmXCI7XG59XG5cbi5iaS1mZWF0aGVyMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3YzRcIjtcbn1cblxuLmJpLWZsb3BweS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdjNVwiO1xufVxuXG4uYmktZmxvcHB5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkOFwiO1xufVxuXG4uYmktZmxvcHB5Mi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdkOVwiO1xufVxuXG4uYmktZmxvcHB5Mjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZTRcIjtcbn1cblxuLmJpLWdpdGxhYjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY3ZTVcIjtcbn1cblxuLmJpLWhpZ2hsaWdodGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjdmOFwiO1xufVxuXG4uYmktbWFya2VyLXRpcDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MDJcIjtcbn1cblxuLmJpLW52bWUtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MDNcIjtcbn1cblxuLmJpLW52bWU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmODBjXCI7XG59XG5cbi5iaS1vcGVuY29sbGVjdGl2ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4MGRcIjtcbn1cblxuLmJpLXBjaS1jYXJkLW5ldHdvcms6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGNkXCI7XG59XG5cbi5iaS1wY2ktY2FyZC1zb3VuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4Y2VcIjtcbn1cblxuLmJpLXJhZGFyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhjZlwiO1xufVxuXG4uYmktc2VuZC1hcnJvdy1kb3duLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGQwXCI7XG59XG5cbi5iaS1zZW5kLWFycm93LWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGQxXCI7XG59XG5cbi5iaS1zZW5kLWFycm93LXVwLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGQyXCI7XG59XG5cbi5iaS1zZW5kLWFycm93LXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhkM1wiO1xufVxuXG4uYmktc2ltLXNsYXNoLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGQ0XCI7XG59XG5cbi5iaS1zaW0tc2xhc2g6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGQ1XCI7XG59XG5cbi5iaS1zb3VyY2Vmb3JnZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZDZcIjtcbn1cblxuLmJpLXN1YnN0YWNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhkN1wiO1xufVxuXG4uYmktdGhyZWFkcy1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhkOFwiO1xufVxuXG4uYmktdGhyZWFkczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZDlcIjtcbn1cblxuLmJpLXRyYW5zcGFyZW5jeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZGFcIjtcbn1cblxuLmJpLXR3aXR0ZXIteDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZGJcIjtcbn1cblxuLmJpLXR5cGUtaDQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGRjXCI7XG59XG5cbi5iaS10eXBlLWg1OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhkZFwiO1xufVxuXG4uYmktdHlwZS1oNjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZGVcIjtcbn1cblxuLmJpLWJhY2twYWNrLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGRmXCI7XG59XG5cbi5iaS1iYWNrcGFjazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZTBcIjtcbn1cblxuLmJpLWJhY2twYWNrMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhlMVwiO1xufVxuXG4uYmktYmFja3BhY2syOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhlMlwiO1xufVxuXG4uYmktYmFja3BhY2szLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGUzXCI7XG59XG5cbi5iaS1iYWNrcGFjazM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGU0XCI7XG59XG5cbi5iaS1iYWNrcGFjazQtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZTVcIjtcbn1cblxuLmJpLWJhY2twYWNrNDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZTZcIjtcbn1cblxuLmJpLWJyaWxsaWFuY2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGU3XCI7XG59XG5cbi5iaS1jYWtlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGU4XCI7XG59XG5cbi5iaS1jYWtlMi1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhlOVwiO1xufVxuXG4uYmktZHVmZmxlLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGVhXCI7XG59XG5cbi5iaS1kdWZmbGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGViXCI7XG59XG5cbi5iaS1leHBvc3VyZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZWNcIjtcbn1cblxuLmJpLWdlbmRlci1uZXV0ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGVkXCI7XG59XG5cbi5iaS1oaWdobGlnaHRzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhlZVwiO1xufVxuXG4uYmktbHVnZ2FnZS1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhlZlwiO1xufVxuXG4uYmktbHVnZ2FnZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjBcIjtcbn1cblxuLmJpLW1haWxib3gtZmxhZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjFcIjtcbn1cblxuLmJpLW1haWxib3gyLWZsYWc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGYyXCI7XG59XG5cbi5iaS1ub2lzZS1yZWR1Y3Rpb246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGYzXCI7XG59XG5cbi5iaS1wYXNzcG9ydC1maWxsOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhmNFwiO1xufVxuXG4uYmktcGFzc3BvcnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGY1XCI7XG59XG5cbi5iaS1wZXJzb24tYXJtcy11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjZcIjtcbn1cblxuLmJpLXBlcnNvbi1yYWlzZWQtaGFuZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjdcIjtcbn1cblxuLmJpLXBlcnNvbi1zdGFuZGluZy1kcmVzczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjhcIjtcbn1cblxuLmJpLXBlcnNvbi1zdGFuZGluZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZjlcIjtcbn1cblxuLmJpLXBlcnNvbi13YWxraW5nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhmYVwiO1xufVxuXG4uYmktcGVyc29uLXdoZWVsY2hhaXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZiXCI7XG59XG5cbi5iaS1zaGFkb3dzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjhmY1wiO1xufVxuXG4uYmktc3VpdGNhc2UtZmlsbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZmRcIjtcbn1cblxuLmJpLXN1aXRjYXNlLWxnLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZlXCI7XG59XG5cbi5iaS1zdWl0Y2FzZS1sZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZmZcIjtcbn1cblxuLmJpLXN1aXRjYXNlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIu+kgFwiO1xufVxuXG4uYmktc3VpdGNhc2UyLWZpbGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi76SBXCI7XG59XG5cbi5iaS1zdWl0Y2FzZTI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi76SCXCI7XG59XG5cbi5iaS12aWduZXR0ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCLvpINcIjtcbn1cbiJdfQ== */
\ No newline at end of file
diff --git a/spec/dummy/app/assets/builds/application.js b/spec/dummy/app/assets/builds/application.js
new file mode 100644
index 0000000..7a73305
--- /dev/null
+++ b/spec/dummy/app/assets/builds/application.js
@@ -0,0 +1,13703 @@
+(() => {
+ var __create = Object.create;
+ var __defProp = Object.defineProperty;
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
+ var __esm = (fn2, res) => function __init() {
+ return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res;
+ };
+ var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+ };
+ var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+ };
+ var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+
+ // node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js
+ var require_rails_ujs = __commonJS({
+ "node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js"(exports, module) {
+ (function() {
+ var context = this;
+ (function() {
+ (function() {
+ this.Rails = {
+ linkClickSelector: "a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",
+ buttonClickSelector: {
+ selector: "button[data-remote]:not([form]), button[data-confirm]:not([form])",
+ exclude: "form button"
+ },
+ inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]",
+ formSubmitSelector: "form:not([data-turbo=true])",
+ formInputClickSelector: "form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",
+ formDisableSelector: "input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",
+ formEnableSelector: "input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",
+ fileInputSelector: "input[name][type=file]:not([disabled])",
+ linkDisableSelector: "a[data-disable-with], a[data-disable]",
+ buttonDisableSelector: "button[data-remote][data-disable-with], button[data-remote][data-disable]"
+ };
+ }).call(this);
+ }).call(context);
+ var Rails2 = context.Rails;
+ (function() {
+ (function() {
+ var nonce;
+ nonce = null;
+ Rails2.loadCSPNonce = function() {
+ var ref;
+ return nonce = (ref = document.querySelector("meta[name=csp-nonce]")) != null ? ref.content : void 0;
+ };
+ Rails2.cspNonce = function() {
+ return nonce != null ? nonce : Rails2.loadCSPNonce();
+ };
+ }).call(this);
+ (function() {
+ var expando, m;
+ m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;
+ Rails2.matches = function(element, selector) {
+ if (selector.exclude != null) {
+ return m.call(element, selector.selector) && !m.call(element, selector.exclude);
+ } else {
+ return m.call(element, selector);
+ }
+ };
+ expando = "_ujsData";
+ Rails2.getData = function(element, key) {
+ var ref;
+ return (ref = element[expando]) != null ? ref[key] : void 0;
+ };
+ Rails2.setData = function(element, key, value) {
+ if (element[expando] == null) {
+ element[expando] = {};
+ }
+ return element[expando][key] = value;
+ };
+ Rails2.isContentEditable = function(element) {
+ var isEditable;
+ isEditable = false;
+ while (true) {
+ if (element.isContentEditable) {
+ isEditable = true;
+ break;
+ }
+ element = element.parentElement;
+ if (!element) {
+ break;
+ }
+ }
+ return isEditable;
+ };
+ Rails2.$ = function(selector) {
+ return Array.prototype.slice.call(document.querySelectorAll(selector));
+ };
+ }).call(this);
+ (function() {
+ var $, csrfParam, csrfToken;
+ $ = Rails2.$;
+ csrfToken = Rails2.csrfToken = function() {
+ var meta;
+ meta = document.querySelector("meta[name=csrf-token]");
+ return meta && meta.content;
+ };
+ csrfParam = Rails2.csrfParam = function() {
+ var meta;
+ meta = document.querySelector("meta[name=csrf-param]");
+ return meta && meta.content;
+ };
+ Rails2.CSRFProtection = function(xhr) {
+ var token;
+ token = csrfToken();
+ if (token != null) {
+ return xhr.setRequestHeader("X-CSRF-Token", token);
+ }
+ };
+ Rails2.refreshCSRFTokens = function() {
+ var param, token;
+ token = csrfToken();
+ param = csrfParam();
+ if (token != null && param != null) {
+ return $('form input[name="' + param + '"]').forEach(function(input) {
+ return input.value = token;
+ });
+ }
+ };
+ }).call(this);
+ (function() {
+ var CustomEvent2, fire, matches, preventDefault;
+ matches = Rails2.matches;
+ CustomEvent2 = window.CustomEvent;
+ if (typeof CustomEvent2 !== "function") {
+ CustomEvent2 = function(event, params) {
+ var evt;
+ evt = document.createEvent("CustomEvent");
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+ return evt;
+ };
+ CustomEvent2.prototype = window.Event.prototype;
+ preventDefault = CustomEvent2.prototype.preventDefault;
+ CustomEvent2.prototype.preventDefault = function() {
+ var result;
+ result = preventDefault.call(this);
+ if (this.cancelable && !this.defaultPrevented) {
+ Object.defineProperty(this, "defaultPrevented", {
+ get: function() {
+ return true;
+ }
+ });
+ }
+ return result;
+ };
+ }
+ fire = Rails2.fire = function(obj, name, data) {
+ var event;
+ event = new CustomEvent2(name, {
+ bubbles: true,
+ cancelable: true,
+ detail: data
+ });
+ obj.dispatchEvent(event);
+ return !event.defaultPrevented;
+ };
+ Rails2.stopEverything = function(e) {
+ fire(e.target, "ujs:everythingStopped");
+ e.preventDefault();
+ e.stopPropagation();
+ return e.stopImmediatePropagation();
+ };
+ Rails2.delegate = function(element, selector, eventType, handler) {
+ return element.addEventListener(eventType, function(e) {
+ var target;
+ target = e.target;
+ while (!(!(target instanceof Element) || matches(target, selector))) {
+ target = target.parentNode;
+ }
+ if (target instanceof Element && handler.call(target, e) === false) {
+ e.preventDefault();
+ return e.stopPropagation();
+ }
+ });
+ };
+ }).call(this);
+ (function() {
+ var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;
+ cspNonce = Rails2.cspNonce, CSRFProtection = Rails2.CSRFProtection, fire = Rails2.fire;
+ AcceptHeaders = {
+ "*": "*/*",
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript",
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ };
+ Rails2.ajax = function(options) {
+ var xhr;
+ options = prepareOptions(options);
+ xhr = createXHR(options, function() {
+ var ref, response;
+ response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader("Content-Type"));
+ if (Math.floor(xhr.status / 100) === 2) {
+ if (typeof options.success === "function") {
+ options.success(response, xhr.statusText, xhr);
+ }
+ } else {
+ if (typeof options.error === "function") {
+ options.error(response, xhr.statusText, xhr);
+ }
+ }
+ return typeof options.complete === "function" ? options.complete(xhr, xhr.statusText) : void 0;
+ });
+ if (options.beforeSend != null && !options.beforeSend(xhr, options)) {
+ return false;
+ }
+ if (xhr.readyState === XMLHttpRequest.OPENED) {
+ return xhr.send(options.data);
+ }
+ };
+ prepareOptions = function(options) {
+ options.url = options.url || location.href;
+ options.type = options.type.toUpperCase();
+ if (options.type === "GET" && options.data) {
+ if (options.url.indexOf("?") < 0) {
+ options.url += "?" + options.data;
+ } else {
+ options.url += "&" + options.data;
+ }
+ }
+ if (AcceptHeaders[options.dataType] == null) {
+ options.dataType = "*";
+ }
+ options.accept = AcceptHeaders[options.dataType];
+ if (options.dataType !== "*") {
+ options.accept += ", */*; q=0.01";
+ }
+ return options;
+ };
+ createXHR = function(options, done) {
+ var xhr;
+ xhr = new XMLHttpRequest();
+ xhr.open(options.type, options.url, true);
+ xhr.setRequestHeader("Accept", options.accept);
+ if (typeof options.data === "string") {
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ }
+ if (!options.crossDomain) {
+ xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ CSRFProtection(xhr);
+ }
+ xhr.withCredentials = !!options.withCredentials;
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+ return done(xhr);
+ }
+ };
+ return xhr;
+ };
+ processResponse = function(response, type) {
+ var parser, script;
+ if (typeof response === "string" && typeof type === "string") {
+ if (type.match(/\bjson\b/)) {
+ try {
+ response = JSON.parse(response);
+ } catch (error2) {
+ }
+ } else if (type.match(/\b(?:java|ecma)script\b/)) {
+ script = document.createElement("script");
+ script.setAttribute("nonce", cspNonce());
+ script.text = response;
+ document.head.appendChild(script).parentNode.removeChild(script);
+ } else if (type.match(/\b(xml|html|svg)\b/)) {
+ parser = new DOMParser();
+ type = type.replace(/;.+/, "");
+ try {
+ response = parser.parseFromString(response, type);
+ } catch (error2) {
+ }
+ }
+ }
+ return response;
+ };
+ Rails2.href = function(element) {
+ return element.href;
+ };
+ Rails2.isCrossDomain = function(url) {
+ var e, originAnchor, urlAnchor;
+ originAnchor = document.createElement("a");
+ originAnchor.href = location.href;
+ urlAnchor = document.createElement("a");
+ try {
+ urlAnchor.href = url;
+ return !((!urlAnchor.protocol || urlAnchor.protocol === ":") && !urlAnchor.host || originAnchor.protocol + "//" + originAnchor.host === urlAnchor.protocol + "//" + urlAnchor.host);
+ } catch (error2) {
+ e = error2;
+ return true;
+ }
+ };
+ }).call(this);
+ (function() {
+ var matches, toArray2;
+ matches = Rails2.matches;
+ toArray2 = function(e) {
+ return Array.prototype.slice.call(e);
+ };
+ Rails2.serializeElement = function(element, additionalParam) {
+ var inputs, params;
+ inputs = [element];
+ if (matches(element, "form")) {
+ inputs = toArray2(element.elements);
+ }
+ params = [];
+ inputs.forEach(function(input) {
+ if (!input.name || input.disabled) {
+ return;
+ }
+ if (matches(input, "fieldset[disabled] *")) {
+ return;
+ }
+ if (matches(input, "select")) {
+ return toArray2(input.options).forEach(function(option) {
+ if (option.selected) {
+ return params.push({
+ name: input.name,
+ value: option.value
+ });
+ }
+ });
+ } else if (input.checked || ["radio", "checkbox", "submit"].indexOf(input.type) === -1) {
+ return params.push({
+ name: input.name,
+ value: input.value
+ });
+ }
+ });
+ if (additionalParam) {
+ params.push(additionalParam);
+ }
+ return params.map(function(param) {
+ if (param.name != null) {
+ return encodeURIComponent(param.name) + "=" + encodeURIComponent(param.value);
+ } else {
+ return param;
+ }
+ }).join("&");
+ };
+ Rails2.formElements = function(form, selector) {
+ if (matches(form, "form")) {
+ return toArray2(form.elements).filter(function(el) {
+ return matches(el, selector);
+ });
+ } else {
+ return toArray2(form.querySelectorAll(selector));
+ }
+ };
+ }).call(this);
+ (function() {
+ var allowAction, fire, stopEverything;
+ fire = Rails2.fire, stopEverything = Rails2.stopEverything;
+ Rails2.handleConfirm = function(e) {
+ if (!allowAction(this)) {
+ return stopEverything(e);
+ }
+ };
+ Rails2.confirm = function(message, element) {
+ return confirm(message);
+ };
+ allowAction = function(element) {
+ var answer, callback, message;
+ message = element.getAttribute("data-confirm");
+ if (!message) {
+ return true;
+ }
+ answer = false;
+ if (fire(element, "confirm")) {
+ try {
+ answer = Rails2.confirm(message, element);
+ } catch (error2) {
+ }
+ callback = fire(element, "confirm:complete", [answer]);
+ }
+ return answer && callback;
+ };
+ }).call(this);
+ (function() {
+ var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;
+ matches = Rails2.matches, getData = Rails2.getData, setData = Rails2.setData, stopEverything = Rails2.stopEverything, formElements = Rails2.formElements, isContentEditable = Rails2.isContentEditable;
+ Rails2.handleDisabledElement = function(e) {
+ var element;
+ element = this;
+ if (element.disabled) {
+ return stopEverything(e);
+ }
+ };
+ Rails2.enableElement = function(e) {
+ var element;
+ if (e instanceof Event) {
+ if (isXhrRedirect(e)) {
+ return;
+ }
+ element = e.target;
+ } else {
+ element = e;
+ }
+ if (isContentEditable(element)) {
+ return;
+ }
+ if (matches(element, Rails2.linkDisableSelector)) {
+ return enableLinkElement(element);
+ } else if (matches(element, Rails2.buttonDisableSelector) || matches(element, Rails2.formEnableSelector)) {
+ return enableFormElement(element);
+ } else if (matches(element, Rails2.formSubmitSelector)) {
+ return enableFormElements(element);
+ }
+ };
+ Rails2.disableElement = function(e) {
+ var element;
+ element = e instanceof Event ? e.target : e;
+ if (isContentEditable(element)) {
+ return;
+ }
+ if (matches(element, Rails2.linkDisableSelector)) {
+ return disableLinkElement(element);
+ } else if (matches(element, Rails2.buttonDisableSelector) || matches(element, Rails2.formDisableSelector)) {
+ return disableFormElement(element);
+ } else if (matches(element, Rails2.formSubmitSelector)) {
+ return disableFormElements(element);
+ }
+ };
+ disableLinkElement = function(element) {
+ var replacement;
+ if (getData(element, "ujs:disabled")) {
+ return;
+ }
+ replacement = element.getAttribute("data-disable-with");
+ if (replacement != null) {
+ setData(element, "ujs:enable-with", element.innerHTML);
+ element.innerHTML = replacement;
+ }
+ element.addEventListener("click", stopEverything);
+ return setData(element, "ujs:disabled", true);
+ };
+ enableLinkElement = function(element) {
+ var originalText;
+ originalText = getData(element, "ujs:enable-with");
+ if (originalText != null) {
+ element.innerHTML = originalText;
+ setData(element, "ujs:enable-with", null);
+ }
+ element.removeEventListener("click", stopEverything);
+ return setData(element, "ujs:disabled", null);
+ };
+ disableFormElements = function(form) {
+ return formElements(form, Rails2.formDisableSelector).forEach(disableFormElement);
+ };
+ disableFormElement = function(element) {
+ var replacement;
+ if (getData(element, "ujs:disabled")) {
+ return;
+ }
+ replacement = element.getAttribute("data-disable-with");
+ if (replacement != null) {
+ if (matches(element, "button")) {
+ setData(element, "ujs:enable-with", element.innerHTML);
+ element.innerHTML = replacement;
+ } else {
+ setData(element, "ujs:enable-with", element.value);
+ element.value = replacement;
+ }
+ }
+ element.disabled = true;
+ return setData(element, "ujs:disabled", true);
+ };
+ enableFormElements = function(form) {
+ return formElements(form, Rails2.formEnableSelector).forEach(enableFormElement);
+ };
+ enableFormElement = function(element) {
+ var originalText;
+ originalText = getData(element, "ujs:enable-with");
+ if (originalText != null) {
+ if (matches(element, "button")) {
+ element.innerHTML = originalText;
+ } else {
+ element.value = originalText;
+ }
+ setData(element, "ujs:enable-with", null);
+ }
+ element.disabled = false;
+ return setData(element, "ujs:disabled", null);
+ };
+ isXhrRedirect = function(event) {
+ var ref, xhr;
+ xhr = (ref = event.detail) != null ? ref[0] : void 0;
+ return (xhr != null ? xhr.getResponseHeader("X-Xhr-Redirect") : void 0) != null;
+ };
+ }).call(this);
+ (function() {
+ var isContentEditable, stopEverything;
+ stopEverything = Rails2.stopEverything;
+ isContentEditable = Rails2.isContentEditable;
+ Rails2.handleMethod = function(e) {
+ var csrfParam, csrfToken, form, formContent, href, link, method;
+ link = this;
+ method = link.getAttribute("data-method");
+ if (!method) {
+ return;
+ }
+ if (isContentEditable(this)) {
+ return;
+ }
+ href = Rails2.href(link);
+ csrfToken = Rails2.csrfToken();
+ csrfParam = Rails2.csrfParam();
+ form = document.createElement("form");
+ formContent = "";
+ if (csrfParam != null && csrfToken != null && !Rails2.isCrossDomain(href)) {
+ formContent += "";
+ }
+ formContent += '';
+ form.method = "post";
+ form.action = href;
+ form.target = link.target;
+ form.innerHTML = formContent;
+ form.style.display = "none";
+ document.body.appendChild(form);
+ form.querySelector('[type="submit"]').click();
+ return stopEverything(e);
+ };
+ }).call(this);
+ (function() {
+ var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything, slice = [].slice;
+ matches = Rails2.matches, getData = Rails2.getData, setData = Rails2.setData, fire = Rails2.fire, stopEverything = Rails2.stopEverything, ajax = Rails2.ajax, isCrossDomain = Rails2.isCrossDomain, serializeElement = Rails2.serializeElement, isContentEditable = Rails2.isContentEditable;
+ isRemote = function(element) {
+ var value;
+ value = element.getAttribute("data-remote");
+ return value != null && value !== "false";
+ };
+ Rails2.handleRemote = function(e) {
+ var button, data, dataType, element, method, url, withCredentials;
+ element = this;
+ if (!isRemote(element)) {
+ return true;
+ }
+ if (!fire(element, "ajax:before")) {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ if (isContentEditable(element)) {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ withCredentials = element.getAttribute("data-with-credentials");
+ dataType = element.getAttribute("data-type") || "script";
+ if (matches(element, Rails2.formSubmitSelector)) {
+ button = getData(element, "ujs:submit-button");
+ method = getData(element, "ujs:submit-button-formmethod") || element.method;
+ url = getData(element, "ujs:submit-button-formaction") || element.getAttribute("action") || location.href;
+ if (method.toUpperCase() === "GET") {
+ url = url.replace(/\?.*$/, "");
+ }
+ if (element.enctype === "multipart/form-data") {
+ data = new FormData(element);
+ if (button != null) {
+ data.append(button.name, button.value);
+ }
+ } else {
+ data = serializeElement(element, button);
+ }
+ setData(element, "ujs:submit-button", null);
+ setData(element, "ujs:submit-button-formmethod", null);
+ setData(element, "ujs:submit-button-formaction", null);
+ } else if (matches(element, Rails2.buttonClickSelector) || matches(element, Rails2.inputChangeSelector)) {
+ method = element.getAttribute("data-method");
+ url = element.getAttribute("data-url");
+ data = serializeElement(element, element.getAttribute("data-params"));
+ } else {
+ method = element.getAttribute("data-method");
+ url = Rails2.href(element);
+ data = element.getAttribute("data-params");
+ }
+ ajax({
+ type: method || "GET",
+ url,
+ data,
+ dataType,
+ beforeSend: function(xhr, options) {
+ if (fire(element, "ajax:beforeSend", [xhr, options])) {
+ return fire(element, "ajax:send", [xhr]);
+ } else {
+ fire(element, "ajax:stopped");
+ return false;
+ }
+ },
+ success: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:success", args);
+ },
+ error: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:error", args);
+ },
+ complete: function() {
+ var args;
+ args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
+ return fire(element, "ajax:complete", args);
+ },
+ crossDomain: isCrossDomain(url),
+ withCredentials: withCredentials != null && withCredentials !== "false"
+ });
+ return stopEverything(e);
+ };
+ Rails2.formSubmitButtonClick = function(e) {
+ var button, form;
+ button = this;
+ form = button.form;
+ if (!form) {
+ return;
+ }
+ if (button.name) {
+ setData(form, "ujs:submit-button", {
+ name: button.name,
+ value: button.value
+ });
+ }
+ setData(form, "ujs:formnovalidate-button", button.formNoValidate);
+ setData(form, "ujs:submit-button-formaction", button.getAttribute("formaction"));
+ return setData(form, "ujs:submit-button-formmethod", button.getAttribute("formmethod"));
+ };
+ Rails2.preventInsignificantClick = function(e) {
+ var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;
+ link = this;
+ method = (link.getAttribute("data-method") || "GET").toUpperCase();
+ data = link.getAttribute("data-params");
+ metaClick = e.metaKey || e.ctrlKey;
+ insignificantMetaClick = metaClick && method === "GET" && !data;
+ nonPrimaryMouseClick = e.button != null && e.button !== 0;
+ if (nonPrimaryMouseClick || insignificantMetaClick) {
+ return e.stopImmediatePropagation();
+ }
+ };
+ }).call(this);
+ (function() {
+ var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;
+ fire = Rails2.fire, delegate = Rails2.delegate, getData = Rails2.getData, $ = Rails2.$, refreshCSRFTokens = Rails2.refreshCSRFTokens, CSRFProtection = Rails2.CSRFProtection, loadCSPNonce = Rails2.loadCSPNonce, enableElement = Rails2.enableElement, disableElement = Rails2.disableElement, handleDisabledElement = Rails2.handleDisabledElement, handleConfirm = Rails2.handleConfirm, preventInsignificantClick = Rails2.preventInsignificantClick, handleRemote = Rails2.handleRemote, formSubmitButtonClick = Rails2.formSubmitButtonClick, handleMethod = Rails2.handleMethod;
+ if (typeof jQuery !== "undefined" && jQuery !== null && jQuery.ajax != null) {
+ if (jQuery.rails) {
+ throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");
+ }
+ jQuery.rails = Rails2;
+ jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {
+ if (!options.crossDomain) {
+ return CSRFProtection(xhr);
+ }
+ });
+ }
+ Rails2.start = function() {
+ if (window._rails_loaded) {
+ throw new Error("rails-ujs has already been loaded!");
+ }
+ window.addEventListener("pageshow", function() {
+ $(Rails2.formEnableSelector).forEach(function(el) {
+ if (getData(el, "ujs:disabled")) {
+ return enableElement(el);
+ }
+ });
+ return $(Rails2.linkDisableSelector).forEach(function(el) {
+ if (getData(el, "ujs:disabled")) {
+ return enableElement(el);
+ }
+ });
+ });
+ delegate(document, Rails2.linkDisableSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.linkDisableSelector, "ajax:stopped", enableElement);
+ delegate(document, Rails2.buttonDisableSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.buttonDisableSelector, "ajax:stopped", enableElement);
+ delegate(document, Rails2.linkClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.linkClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.linkClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.linkClickSelector, "click", disableElement);
+ delegate(document, Rails2.linkClickSelector, "click", handleRemote);
+ delegate(document, Rails2.linkClickSelector, "click", handleMethod);
+ delegate(document, Rails2.buttonClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.buttonClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.buttonClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.buttonClickSelector, "click", disableElement);
+ delegate(document, Rails2.buttonClickSelector, "click", handleRemote);
+ delegate(document, Rails2.inputChangeSelector, "change", handleDisabledElement);
+ delegate(document, Rails2.inputChangeSelector, "change", handleConfirm);
+ delegate(document, Rails2.inputChangeSelector, "change", handleRemote);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleDisabledElement);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleConfirm);
+ delegate(document, Rails2.formSubmitSelector, "submit", handleRemote);
+ delegate(document, Rails2.formSubmitSelector, "submit", function(e) {
+ return setTimeout(function() {
+ return disableElement(e);
+ }, 13);
+ });
+ delegate(document, Rails2.formSubmitSelector, "ajax:send", disableElement);
+ delegate(document, Rails2.formSubmitSelector, "ajax:complete", enableElement);
+ delegate(document, Rails2.formInputClickSelector, "click", preventInsignificantClick);
+ delegate(document, Rails2.formInputClickSelector, "click", handleDisabledElement);
+ delegate(document, Rails2.formInputClickSelector, "click", handleConfirm);
+ delegate(document, Rails2.formInputClickSelector, "click", formSubmitButtonClick);
+ document.addEventListener("DOMContentLoaded", refreshCSRFTokens);
+ document.addEventListener("DOMContentLoaded", loadCSPNonce);
+ return window._rails_loaded = true;
+ };
+ if (window.Rails === Rails2 && fire(document, "rails:attachBindings")) {
+ Rails2.start();
+ }
+ }).call(this);
+ }).call(this);
+ if (typeof module === "object" && module.exports) {
+ module.exports = Rails2;
+ } else if (typeof define === "function" && define.amd) {
+ define(Rails2);
+ }
+ }).call(exports);
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/adapters.js
+ var adapters_default;
+ var init_adapters = __esm({
+ "node_modules/@rails/actioncable/src/adapters.js"() {
+ adapters_default = {
+ logger: self.console,
+ WebSocket: self.WebSocket
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/logger.js
+ var logger_default;
+ var init_logger = __esm({
+ "node_modules/@rails/actioncable/src/logger.js"() {
+ init_adapters();
+ logger_default = {
+ log(...messages) {
+ if (this.enabled) {
+ messages.push(Date.now());
+ adapters_default.logger.log("[ActionCable]", ...messages);
+ }
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/connection_monitor.js
+ var now, secondsSince, ConnectionMonitor, connection_monitor_default;
+ var init_connection_monitor = __esm({
+ "node_modules/@rails/actioncable/src/connection_monitor.js"() {
+ init_logger();
+ now = () => (/* @__PURE__ */ new Date()).getTime();
+ secondsSince = (time) => (now() - time) / 1e3;
+ ConnectionMonitor = class {
+ constructor(connection) {
+ this.visibilityDidChange = this.visibilityDidChange.bind(this);
+ this.connection = connection;
+ this.reconnectAttempts = 0;
+ }
+ start() {
+ if (!this.isRunning()) {
+ this.startedAt = now();
+ delete this.stoppedAt;
+ this.startPolling();
+ addEventListener("visibilitychange", this.visibilityDidChange);
+ logger_default.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);
+ }
+ }
+ stop() {
+ if (this.isRunning()) {
+ this.stoppedAt = now();
+ this.stopPolling();
+ removeEventListener("visibilitychange", this.visibilityDidChange);
+ logger_default.log("ConnectionMonitor stopped");
+ }
+ }
+ isRunning() {
+ return this.startedAt && !this.stoppedAt;
+ }
+ recordPing() {
+ this.pingedAt = now();
+ }
+ recordConnect() {
+ this.reconnectAttempts = 0;
+ this.recordPing();
+ delete this.disconnectedAt;
+ logger_default.log("ConnectionMonitor recorded connect");
+ }
+ recordDisconnect() {
+ this.disconnectedAt = now();
+ logger_default.log("ConnectionMonitor recorded disconnect");
+ }
+ // Private
+ startPolling() {
+ this.stopPolling();
+ this.poll();
+ }
+ stopPolling() {
+ clearTimeout(this.pollTimeout);
+ }
+ poll() {
+ this.pollTimeout = setTimeout(
+ () => {
+ this.reconnectIfStale();
+ this.poll();
+ },
+ this.getPollInterval()
+ );
+ }
+ getPollInterval() {
+ const { staleThreshold, reconnectionBackoffRate } = this.constructor;
+ const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));
+ const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;
+ const jitter = jitterMax * Math.random();
+ return staleThreshold * 1e3 * backoff * (1 + jitter);
+ }
+ reconnectIfStale() {
+ if (this.connectionIsStale()) {
+ logger_default.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);
+ this.reconnectAttempts++;
+ if (this.disconnectedRecently()) {
+ logger_default.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);
+ } else {
+ logger_default.log("ConnectionMonitor reopening");
+ this.connection.reopen();
+ }
+ }
+ }
+ get refreshedAt() {
+ return this.pingedAt ? this.pingedAt : this.startedAt;
+ }
+ connectionIsStale() {
+ return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;
+ }
+ disconnectedRecently() {
+ return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;
+ }
+ visibilityDidChange() {
+ if (document.visibilityState === "visible") {
+ setTimeout(
+ () => {
+ if (this.connectionIsStale() || !this.connection.isOpen()) {
+ logger_default.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);
+ this.connection.reopen();
+ }
+ },
+ 200
+ );
+ }
+ }
+ };
+ ConnectionMonitor.staleThreshold = 6;
+ ConnectionMonitor.reconnectionBackoffRate = 0.15;
+ connection_monitor_default = ConnectionMonitor;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/internal.js
+ var internal_default;
+ var init_internal = __esm({
+ "node_modules/@rails/actioncable/src/internal.js"() {
+ internal_default = {
+ "message_types": {
+ "welcome": "welcome",
+ "disconnect": "disconnect",
+ "ping": "ping",
+ "confirmation": "confirm_subscription",
+ "rejection": "reject_subscription"
+ },
+ "disconnect_reasons": {
+ "unauthorized": "unauthorized",
+ "invalid_request": "invalid_request",
+ "server_restart": "server_restart"
+ },
+ "default_mount_path": "/cable",
+ "protocols": [
+ "actioncable-v1-json",
+ "actioncable-unsupported"
+ ]
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/connection.js
+ var message_types, protocols, supportedProtocols, indexOf, Connection, connection_default;
+ var init_connection = __esm({
+ "node_modules/@rails/actioncable/src/connection.js"() {
+ init_adapters();
+ init_connection_monitor();
+ init_internal();
+ init_logger();
+ ({ message_types, protocols } = internal_default);
+ supportedProtocols = protocols.slice(0, protocols.length - 1);
+ indexOf = [].indexOf;
+ Connection = class {
+ constructor(consumer2) {
+ this.open = this.open.bind(this);
+ this.consumer = consumer2;
+ this.subscriptions = this.consumer.subscriptions;
+ this.monitor = new connection_monitor_default(this);
+ this.disconnected = true;
+ }
+ send(data) {
+ if (this.isOpen()) {
+ this.webSocket.send(JSON.stringify(data));
+ return true;
+ } else {
+ return false;
+ }
+ }
+ open() {
+ if (this.isActive()) {
+ logger_default.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);
+ return false;
+ } else {
+ logger_default.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`);
+ if (this.webSocket) {
+ this.uninstallEventHandlers();
+ }
+ this.webSocket = new adapters_default.WebSocket(this.consumer.url, protocols);
+ this.installEventHandlers();
+ this.monitor.start();
+ return true;
+ }
+ }
+ close({ allowReconnect } = { allowReconnect: true }) {
+ if (!allowReconnect) {
+ this.monitor.stop();
+ }
+ if (this.isOpen()) {
+ return this.webSocket.close();
+ }
+ }
+ reopen() {
+ logger_default.log(`Reopening WebSocket, current state is ${this.getState()}`);
+ if (this.isActive()) {
+ try {
+ return this.close();
+ } catch (error2) {
+ logger_default.log("Failed to reopen WebSocket", error2);
+ } finally {
+ logger_default.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);
+ setTimeout(this.open, this.constructor.reopenDelay);
+ }
+ } else {
+ return this.open();
+ }
+ }
+ getProtocol() {
+ if (this.webSocket) {
+ return this.webSocket.protocol;
+ }
+ }
+ isOpen() {
+ return this.isState("open");
+ }
+ isActive() {
+ return this.isState("open", "connecting");
+ }
+ // Private
+ isProtocolSupported() {
+ return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;
+ }
+ isState(...states) {
+ return indexOf.call(states, this.getState()) >= 0;
+ }
+ getState() {
+ if (this.webSocket) {
+ for (let state in adapters_default.WebSocket) {
+ if (adapters_default.WebSocket[state] === this.webSocket.readyState) {
+ return state.toLowerCase();
+ }
+ }
+ }
+ return null;
+ }
+ installEventHandlers() {
+ for (let eventName in this.events) {
+ const handler = this.events[eventName].bind(this);
+ this.webSocket[`on${eventName}`] = handler;
+ }
+ }
+ uninstallEventHandlers() {
+ for (let eventName in this.events) {
+ this.webSocket[`on${eventName}`] = function() {
+ };
+ }
+ }
+ };
+ Connection.reopenDelay = 500;
+ Connection.prototype.events = {
+ message(event) {
+ if (!this.isProtocolSupported()) {
+ return;
+ }
+ const { identifier, message, reason, reconnect, type } = JSON.parse(event.data);
+ switch (type) {
+ case message_types.welcome:
+ this.monitor.recordConnect();
+ return this.subscriptions.reload();
+ case message_types.disconnect:
+ logger_default.log(`Disconnecting. Reason: ${reason}`);
+ return this.close({ allowReconnect: reconnect });
+ case message_types.ping:
+ return this.monitor.recordPing();
+ case message_types.confirmation:
+ this.subscriptions.confirmSubscription(identifier);
+ return this.subscriptions.notify(identifier, "connected");
+ case message_types.rejection:
+ return this.subscriptions.reject(identifier);
+ default:
+ return this.subscriptions.notify(identifier, "received", message);
+ }
+ },
+ open() {
+ logger_default.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);
+ this.disconnected = false;
+ if (!this.isProtocolSupported()) {
+ logger_default.log("Protocol is unsupported. Stopping monitor and disconnecting.");
+ return this.close({ allowReconnect: false });
+ }
+ },
+ close(event) {
+ logger_default.log("WebSocket onclose event");
+ if (this.disconnected) {
+ return;
+ }
+ this.disconnected = true;
+ this.monitor.recordDisconnect();
+ return this.subscriptions.notifyAll("disconnected", { willAttemptReconnect: this.monitor.isRunning() });
+ },
+ error() {
+ logger_default.log("WebSocket onerror event");
+ }
+ };
+ connection_default = Connection;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscription.js
+ var extend, Subscription;
+ var init_subscription = __esm({
+ "node_modules/@rails/actioncable/src/subscription.js"() {
+ extend = function(object, properties) {
+ if (properties != null) {
+ for (let key in properties) {
+ const value = properties[key];
+ object[key] = value;
+ }
+ }
+ return object;
+ };
+ Subscription = class {
+ constructor(consumer2, params = {}, mixin) {
+ this.consumer = consumer2;
+ this.identifier = JSON.stringify(params);
+ extend(this, mixin);
+ }
+ // Perform a channel action with the optional data passed as an attribute
+ perform(action, data = {}) {
+ data.action = action;
+ return this.send(data);
+ }
+ send(data) {
+ return this.consumer.send({ command: "message", identifier: this.identifier, data: JSON.stringify(data) });
+ }
+ unsubscribe() {
+ return this.consumer.subscriptions.remove(this);
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscription_guarantor.js
+ var SubscriptionGuarantor, subscription_guarantor_default;
+ var init_subscription_guarantor = __esm({
+ "node_modules/@rails/actioncable/src/subscription_guarantor.js"() {
+ init_logger();
+ SubscriptionGuarantor = class {
+ constructor(subscriptions) {
+ this.subscriptions = subscriptions;
+ this.pendingSubscriptions = [];
+ }
+ guarantee(subscription) {
+ if (this.pendingSubscriptions.indexOf(subscription) == -1) {
+ logger_default.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);
+ this.pendingSubscriptions.push(subscription);
+ } else {
+ logger_default.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);
+ }
+ this.startGuaranteeing();
+ }
+ forget(subscription) {
+ logger_default.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);
+ this.pendingSubscriptions = this.pendingSubscriptions.filter((s) => s !== subscription);
+ }
+ startGuaranteeing() {
+ this.stopGuaranteeing();
+ this.retrySubscribing();
+ }
+ stopGuaranteeing() {
+ clearTimeout(this.retryTimeout);
+ }
+ retrySubscribing() {
+ this.retryTimeout = setTimeout(
+ () => {
+ if (this.subscriptions && typeof this.subscriptions.subscribe === "function") {
+ this.pendingSubscriptions.map((subscription) => {
+ logger_default.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);
+ this.subscriptions.subscribe(subscription);
+ });
+ }
+ },
+ 500
+ );
+ }
+ };
+ subscription_guarantor_default = SubscriptionGuarantor;
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/subscriptions.js
+ var Subscriptions;
+ var init_subscriptions = __esm({
+ "node_modules/@rails/actioncable/src/subscriptions.js"() {
+ init_subscription();
+ init_subscription_guarantor();
+ init_logger();
+ Subscriptions = class {
+ constructor(consumer2) {
+ this.consumer = consumer2;
+ this.guarantor = new subscription_guarantor_default(this);
+ this.subscriptions = [];
+ }
+ create(channelName, mixin) {
+ const channel = channelName;
+ const params = typeof channel === "object" ? channel : { channel };
+ const subscription = new Subscription(this.consumer, params, mixin);
+ return this.add(subscription);
+ }
+ // Private
+ add(subscription) {
+ this.subscriptions.push(subscription);
+ this.consumer.ensureActiveConnection();
+ this.notify(subscription, "initialized");
+ this.subscribe(subscription);
+ return subscription;
+ }
+ remove(subscription) {
+ this.forget(subscription);
+ if (!this.findAll(subscription.identifier).length) {
+ this.sendCommand(subscription, "unsubscribe");
+ }
+ return subscription;
+ }
+ reject(identifier) {
+ return this.findAll(identifier).map((subscription) => {
+ this.forget(subscription);
+ this.notify(subscription, "rejected");
+ return subscription;
+ });
+ }
+ forget(subscription) {
+ this.guarantor.forget(subscription);
+ this.subscriptions = this.subscriptions.filter((s) => s !== subscription);
+ return subscription;
+ }
+ findAll(identifier) {
+ return this.subscriptions.filter((s) => s.identifier === identifier);
+ }
+ reload() {
+ return this.subscriptions.map((subscription) => this.subscribe(subscription));
+ }
+ notifyAll(callbackName, ...args) {
+ return this.subscriptions.map((subscription) => this.notify(subscription, callbackName, ...args));
+ }
+ notify(subscription, callbackName, ...args) {
+ let subscriptions;
+ if (typeof subscription === "string") {
+ subscriptions = this.findAll(subscription);
+ } else {
+ subscriptions = [subscription];
+ }
+ return subscriptions.map((subscription2) => typeof subscription2[callbackName] === "function" ? subscription2[callbackName](...args) : void 0);
+ }
+ subscribe(subscription) {
+ if (this.sendCommand(subscription, "subscribe")) {
+ this.guarantor.guarantee(subscription);
+ }
+ }
+ confirmSubscription(identifier) {
+ logger_default.log(`Subscription confirmed ${identifier}`);
+ this.findAll(identifier).map((subscription) => this.guarantor.forget(subscription));
+ }
+ sendCommand(subscription, command) {
+ const { identifier } = subscription;
+ return this.consumer.send({ command, identifier });
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/consumer.js
+ function createWebSocketURL(url) {
+ if (typeof url === "function") {
+ url = url();
+ }
+ if (url && !/^wss?:/i.test(url)) {
+ const a = document.createElement("a");
+ a.href = url;
+ a.href = a.href;
+ a.protocol = a.protocol.replace("http", "ws");
+ return a.href;
+ } else {
+ return url;
+ }
+ }
+ var Consumer;
+ var init_consumer = __esm({
+ "node_modules/@rails/actioncable/src/consumer.js"() {
+ init_connection();
+ init_subscriptions();
+ Consumer = class {
+ constructor(url) {
+ this._url = url;
+ this.subscriptions = new Subscriptions(this);
+ this.connection = new connection_default(this);
+ }
+ get url() {
+ return createWebSocketURL(this._url);
+ }
+ send(data) {
+ return this.connection.send(data);
+ }
+ connect() {
+ return this.connection.open();
+ }
+ disconnect() {
+ return this.connection.close({ allowReconnect: false });
+ }
+ ensureActiveConnection() {
+ if (!this.connection.isActive()) {
+ return this.connection.open();
+ }
+ }
+ };
+ }
+ });
+
+ // node_modules/@rails/actioncable/src/index.js
+ var src_exports = {};
+ __export(src_exports, {
+ Connection: () => connection_default,
+ ConnectionMonitor: () => connection_monitor_default,
+ Consumer: () => Consumer,
+ INTERNAL: () => internal_default,
+ Subscription: () => Subscription,
+ SubscriptionGuarantor: () => subscription_guarantor_default,
+ Subscriptions: () => Subscriptions,
+ adapters: () => adapters_default,
+ createConsumer: () => createConsumer,
+ createWebSocketURL: () => createWebSocketURL,
+ getConfig: () => getConfig,
+ logger: () => logger_default
+ });
+ function createConsumer(url = getConfig("url") || internal_default.default_mount_path) {
+ return new Consumer(url);
+ }
+ function getConfig(name) {
+ const element = document.head.querySelector(`meta[name='action-cable-${name}']`);
+ if (element) {
+ return element.getAttribute("content");
+ }
+ }
+ var init_src = __esm({
+ "node_modules/@rails/actioncable/src/index.js"() {
+ init_connection();
+ init_connection_monitor();
+ init_consumer();
+ init_internal();
+ init_subscription();
+ init_subscriptions();
+ init_subscription_guarantor();
+ init_adapters();
+ init_logger();
+ }
+ });
+
+ // node_modules/debounce/index.js
+ var require_debounce = __commonJS({
+ "node_modules/debounce/index.js"(exports, module) {
+ function debounce3(func, wait, immediate) {
+ var timeout, args, context, timestamp, result;
+ if (null == wait)
+ wait = 100;
+ function later() {
+ var last = Date.now() - timestamp;
+ if (last < wait && last >= 0) {
+ timeout = setTimeout(later, wait - last);
+ } else {
+ timeout = null;
+ if (!immediate) {
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ }
+ }
+ ;
+ var debounced = function() {
+ context = this;
+ args = arguments;
+ timestamp = Date.now();
+ var callNow = immediate && !timeout;
+ if (!timeout)
+ timeout = setTimeout(later, wait);
+ if (callNow) {
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ return result;
+ };
+ debounced.clear = function() {
+ if (timeout) {
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ };
+ debounced.flush = function() {
+ if (timeout) {
+ result = func.apply(context, args);
+ context = args = null;
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ };
+ return debounced;
+ }
+ debounce3.debounce = debounce3;
+ module.exports = debounce3;
+ }
+ });
+
+ // app/javascript/application.js
+ var import_ujs = __toESM(require_rails_ujs());
+
+ // node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js
+ var sparkMd5 = {
+ exports: {}
+ };
+ (function(module, exports) {
+ (function(factory) {
+ {
+ module.exports = factory();
+ }
+ })(function(undefined$1) {
+ var hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
+ function md5cycle(x, k) {
+ var a = x[0], b = x[1], c = x[2], d = x[3];
+ a += (b & c | ~b & d) + k[0] - 680876936 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[1] - 389564586 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[2] + 606105819 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[4] - 176418897 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[7] - 45705983 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[10] - 42063 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
+ a = (a << 7 | a >>> 25) + b | 0;
+ d += (a & b | ~a & c) + k[13] - 40341101 | 0;
+ d = (d << 12 | d >>> 20) + a | 0;
+ c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
+ c = (c << 17 | c >>> 15) + d | 0;
+ b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
+ b = (b << 22 | b >>> 10) + c | 0;
+ a += (b & d | c & ~d) + k[1] - 165796510 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[11] + 643717713 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[0] - 373897302 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[5] - 701558691 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[10] + 38016083 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[15] - 660478335 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[4] - 405537848 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[9] + 568446438 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[3] - 187363961 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
+ a = (a << 5 | a >>> 27) + b | 0;
+ d += (a & c | b & ~c) + k[2] - 51403784 | 0;
+ d = (d << 9 | d >>> 23) + a | 0;
+ c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
+ c = (c << 14 | c >>> 18) + d | 0;
+ b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
+ b = (b << 20 | b >>> 12) + c | 0;
+ a += (b ^ c ^ d) + k[5] - 378558 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[14] - 35309556 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[7] - 155497632 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[13] + 681279174 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[0] - 358537222 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[3] - 722521979 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[6] + 76029189 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (b ^ c ^ d) + k[9] - 640364487 | 0;
+ a = (a << 4 | a >>> 28) + b | 0;
+ d += (a ^ b ^ c) + k[12] - 421815835 | 0;
+ d = (d << 11 | d >>> 21) + a | 0;
+ c += (d ^ a ^ b) + k[15] + 530742520 | 0;
+ c = (c << 16 | c >>> 16) + d | 0;
+ b += (c ^ d ^ a) + k[2] - 995338651 | 0;
+ b = (b << 23 | b >>> 9) + c | 0;
+ a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
+ a = (a << 6 | a >>> 26) + b | 0;
+ d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
+ d = (d << 10 | d >>> 22) + a | 0;
+ c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
+ c = (c << 15 | c >>> 17) + d | 0;
+ b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
+ b = (b << 21 | b >>> 11) + c | 0;
+ x[0] = a + x[0] | 0;
+ x[1] = b + x[1] | 0;
+ x[2] = c + x[2] | 0;
+ x[3] = d + x[3] | 0;
+ }
+ function md5blk(s) {
+ var md5blks = [], i;
+ for (i = 0; i < 64; i += 4) {
+ md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
+ }
+ return md5blks;
+ }
+ function md5blk_array(a) {
+ var md5blks = [], i;
+ for (i = 0; i < 64; i += 4) {
+ md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
+ }
+ return md5blks;
+ }
+ function md51(s) {
+ var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
+ for (i = 64; i <= n; i += 64) {
+ md5cycle(state, md5blk(s.substring(i - 64, i)));
+ }
+ s = s.substring(i - 64);
+ length = s.length;
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
+ }
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(state, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = n * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(state, tail);
+ return state;
+ }
+ function md51_array(a) {
+ var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
+ for (i = 64; i <= n; i += 64) {
+ md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
+ }
+ a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
+ length = a.length;
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= a[i] << (i % 4 << 3);
+ }
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(state, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = n * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(state, tail);
+ return state;
+ }
+ function rhex(n) {
+ var s = "", j;
+ for (j = 0; j < 4; j += 1) {
+ s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
+ }
+ return s;
+ }
+ function hex(x) {
+ var i;
+ for (i = 0; i < x.length; i += 1) {
+ x[i] = rhex(x[i]);
+ }
+ return x.join("");
+ }
+ if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592")
+ ;
+ if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
+ (function() {
+ function clamp(val, length) {
+ val = val | 0 || 0;
+ if (val < 0) {
+ return Math.max(val + length, 0);
+ }
+ return Math.min(val, length);
+ }
+ ArrayBuffer.prototype.slice = function(from, to) {
+ var length = this.byteLength, begin = clamp(from, length), end2 = length, num, target, targetArray, sourceArray;
+ if (to !== undefined$1) {
+ end2 = clamp(to, length);
+ }
+ if (begin > end2) {
+ return new ArrayBuffer(0);
+ }
+ num = end2 - begin;
+ target = new ArrayBuffer(num);
+ targetArray = new Uint8Array(target);
+ sourceArray = new Uint8Array(this, begin, num);
+ targetArray.set(sourceArray);
+ return target;
+ };
+ })();
+ }
+ function toUtf8(str) {
+ if (/[\u0080-\uFFFF]/.test(str)) {
+ str = unescape(encodeURIComponent(str));
+ }
+ return str;
+ }
+ function utf8Str2ArrayBuffer(str, returnUInt8Array) {
+ var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
+ for (i = 0; i < length; i += 1) {
+ arr[i] = str.charCodeAt(i);
+ }
+ return returnUInt8Array ? arr : buff;
+ }
+ function arrayBuffer2Utf8Str(buff) {
+ return String.fromCharCode.apply(null, new Uint8Array(buff));
+ }
+ function concatenateArrayBuffers(first, second, returnUInt8Array) {
+ var result = new Uint8Array(first.byteLength + second.byteLength);
+ result.set(new Uint8Array(first));
+ result.set(new Uint8Array(second), first.byteLength);
+ return returnUInt8Array ? result : result.buffer;
+ }
+ function hexToBinaryString(hex2) {
+ var bytes = [], length = hex2.length, x;
+ for (x = 0; x < length - 1; x += 2) {
+ bytes.push(parseInt(hex2.substr(x, 2), 16));
+ }
+ return String.fromCharCode.apply(String, bytes);
+ }
+ function SparkMD52() {
+ this.reset();
+ }
+ SparkMD52.prototype.append = function(str) {
+ this.appendBinary(toUtf8(str));
+ return this;
+ };
+ SparkMD52.prototype.appendBinary = function(contents) {
+ this._buff += contents;
+ this._length += contents.length;
+ var length = this._buff.length, i;
+ for (i = 64; i <= length; i += 64) {
+ md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
+ }
+ this._buff = this._buff.substring(i - 64);
+ return this;
+ };
+ SparkMD52.prototype.end = function(raw) {
+ var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
+ }
+ this._finish(tail, length);
+ ret = hex(this._hash);
+ if (raw) {
+ ret = hexToBinaryString(ret);
+ }
+ this.reset();
+ return ret;
+ };
+ SparkMD52.prototype.reset = function() {
+ this._buff = "";
+ this._length = 0;
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
+ return this;
+ };
+ SparkMD52.prototype.getState = function() {
+ return {
+ buff: this._buff,
+ length: this._length,
+ hash: this._hash.slice()
+ };
+ };
+ SparkMD52.prototype.setState = function(state) {
+ this._buff = state.buff;
+ this._length = state.length;
+ this._hash = state.hash;
+ return this;
+ };
+ SparkMD52.prototype.destroy = function() {
+ delete this._hash;
+ delete this._buff;
+ delete this._length;
+ };
+ SparkMD52.prototype._finish = function(tail, length) {
+ var i = length, tmp, lo, hi;
+ tail[i >> 2] |= 128 << (i % 4 << 3);
+ if (i > 55) {
+ md5cycle(this._hash, tail);
+ for (i = 0; i < 16; i += 1) {
+ tail[i] = 0;
+ }
+ }
+ tmp = this._length * 8;
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+ lo = parseInt(tmp[2], 16);
+ hi = parseInt(tmp[1], 16) || 0;
+ tail[14] = lo;
+ tail[15] = hi;
+ md5cycle(this._hash, tail);
+ };
+ SparkMD52.hash = function(str, raw) {
+ return SparkMD52.hashBinary(toUtf8(str), raw);
+ };
+ SparkMD52.hashBinary = function(content, raw) {
+ var hash3 = md51(content), ret = hex(hash3);
+ return raw ? hexToBinaryString(ret) : ret;
+ };
+ SparkMD52.ArrayBuffer = function() {
+ this.reset();
+ };
+ SparkMD52.ArrayBuffer.prototype.append = function(arr) {
+ var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;
+ this._length += arr.byteLength;
+ for (i = 64; i <= length; i += 64) {
+ md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
+ }
+ this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
+ return this;
+ };
+ SparkMD52.ArrayBuffer.prototype.end = function(raw) {
+ var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
+ for (i = 0; i < length; i += 1) {
+ tail[i >> 2] |= buff[i] << (i % 4 << 3);
+ }
+ this._finish(tail, length);
+ ret = hex(this._hash);
+ if (raw) {
+ ret = hexToBinaryString(ret);
+ }
+ this.reset();
+ return ret;
+ };
+ SparkMD52.ArrayBuffer.prototype.reset = function() {
+ this._buff = new Uint8Array(0);
+ this._length = 0;
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
+ return this;
+ };
+ SparkMD52.ArrayBuffer.prototype.getState = function() {
+ var state = SparkMD52.prototype.getState.call(this);
+ state.buff = arrayBuffer2Utf8Str(state.buff);
+ return state;
+ };
+ SparkMD52.ArrayBuffer.prototype.setState = function(state) {
+ state.buff = utf8Str2ArrayBuffer(state.buff, true);
+ return SparkMD52.prototype.setState.call(this, state);
+ };
+ SparkMD52.ArrayBuffer.prototype.destroy = SparkMD52.prototype.destroy;
+ SparkMD52.ArrayBuffer.prototype._finish = SparkMD52.prototype._finish;
+ SparkMD52.ArrayBuffer.hash = function(arr, raw) {
+ var hash3 = md51_array(new Uint8Array(arr)), ret = hex(hash3);
+ return raw ? hexToBinaryString(ret) : ret;
+ };
+ return SparkMD52;
+ });
+ })(sparkMd5);
+ var SparkMD5 = sparkMd5.exports;
+ var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;
+ var FileChecksum = class _FileChecksum {
+ static create(file, callback) {
+ const instance = new _FileChecksum(file);
+ instance.create(callback);
+ }
+ constructor(file) {
+ this.file = file;
+ this.chunkSize = 2097152;
+ this.chunkCount = Math.ceil(this.file.size / this.chunkSize);
+ this.chunkIndex = 0;
+ }
+ create(callback) {
+ this.callback = callback;
+ this.md5Buffer = new SparkMD5.ArrayBuffer();
+ this.fileReader = new FileReader();
+ this.fileReader.addEventListener("load", (event) => this.fileReaderDidLoad(event));
+ this.fileReader.addEventListener("error", (event) => this.fileReaderDidError(event));
+ this.readNextChunk();
+ }
+ fileReaderDidLoad(event) {
+ this.md5Buffer.append(event.target.result);
+ if (!this.readNextChunk()) {
+ const binaryDigest = this.md5Buffer.end(true);
+ const base64digest = btoa(binaryDigest);
+ this.callback(null, base64digest);
+ }
+ }
+ fileReaderDidError(event) {
+ this.callback(`Error reading ${this.file.name}`);
+ }
+ readNextChunk() {
+ if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {
+ const start4 = this.chunkIndex * this.chunkSize;
+ const end2 = Math.min(start4 + this.chunkSize, this.file.size);
+ const bytes = fileSlice.call(this.file, start4, end2);
+ this.fileReader.readAsArrayBuffer(bytes);
+ this.chunkIndex++;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ };
+ function getMetaValue(name) {
+ const element = findElement(document.head, `meta[name="${name}"]`);
+ if (element) {
+ return element.getAttribute("content");
+ }
+ }
+ function findElements(root, selector) {
+ if (typeof root == "string") {
+ selector = root;
+ root = document;
+ }
+ const elements = root.querySelectorAll(selector);
+ return toArray(elements);
+ }
+ function findElement(root, selector) {
+ if (typeof root == "string") {
+ selector = root;
+ root = document;
+ }
+ return root.querySelector(selector);
+ }
+ function dispatchEvent2(element, type, eventInit = {}) {
+ const { disabled } = element;
+ const { bubbles, cancelable, detail } = eventInit;
+ const event = document.createEvent("Event");
+ event.initEvent(type, bubbles || true, cancelable || true);
+ event.detail = detail || {};
+ try {
+ element.disabled = false;
+ element.dispatchEvent(event);
+ } finally {
+ element.disabled = disabled;
+ }
+ return event;
+ }
+ function toArray(value) {
+ if (Array.isArray(value)) {
+ return value;
+ } else if (Array.from) {
+ return Array.from(value);
+ } else {
+ return [].slice.call(value);
+ }
+ }
+ var BlobRecord = class {
+ constructor(file, checksum, url) {
+ this.file = file;
+ this.attributes = {
+ filename: file.name,
+ content_type: file.type || "application/octet-stream",
+ byte_size: file.size,
+ checksum
+ };
+ this.xhr = new XMLHttpRequest();
+ this.xhr.open("POST", url, true);
+ this.xhr.responseType = "json";
+ this.xhr.setRequestHeader("Content-Type", "application/json");
+ this.xhr.setRequestHeader("Accept", "application/json");
+ this.xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
+ const csrfToken = getMetaValue("csrf-token");
+ if (csrfToken != void 0) {
+ this.xhr.setRequestHeader("X-CSRF-Token", csrfToken);
+ }
+ this.xhr.addEventListener("load", (event) => this.requestDidLoad(event));
+ this.xhr.addEventListener("error", (event) => this.requestDidError(event));
+ }
+ get status() {
+ return this.xhr.status;
+ }
+ get response() {
+ const { responseType, response } = this.xhr;
+ if (responseType == "json") {
+ return response;
+ } else {
+ return JSON.parse(response);
+ }
+ }
+ create(callback) {
+ this.callback = callback;
+ this.xhr.send(JSON.stringify({
+ blob: this.attributes
+ }));
+ }
+ requestDidLoad(event) {
+ if (this.status >= 200 && this.status < 300) {
+ const { response } = this;
+ const { direct_upload } = response;
+ delete response.direct_upload;
+ this.attributes = response;
+ this.directUploadData = direct_upload;
+ this.callback(null, this.toJSON());
+ } else {
+ this.requestDidError(event);
+ }
+ }
+ requestDidError(event) {
+ this.callback(`Error creating Blob for "${this.file.name}". Status: ${this.status}`);
+ }
+ toJSON() {
+ const result = {};
+ for (const key in this.attributes) {
+ result[key] = this.attributes[key];
+ }
+ return result;
+ }
+ };
+ var BlobUpload = class {
+ constructor(blob) {
+ this.blob = blob;
+ this.file = blob.file;
+ const { url, headers } = blob.directUploadData;
+ this.xhr = new XMLHttpRequest();
+ this.xhr.open("PUT", url, true);
+ this.xhr.responseType = "text";
+ for (const key in headers) {
+ this.xhr.setRequestHeader(key, headers[key]);
+ }
+ this.xhr.addEventListener("load", (event) => this.requestDidLoad(event));
+ this.xhr.addEventListener("error", (event) => this.requestDidError(event));
+ }
+ create(callback) {
+ this.callback = callback;
+ this.xhr.send(this.file.slice());
+ }
+ requestDidLoad(event) {
+ const { status, response } = this.xhr;
+ if (status >= 200 && status < 300) {
+ this.callback(null, response);
+ } else {
+ this.requestDidError(event);
+ }
+ }
+ requestDidError(event) {
+ this.callback(`Error storing "${this.file.name}". Status: ${this.xhr.status}`);
+ }
+ };
+ var id = 0;
+ var DirectUpload = class {
+ constructor(file, url, delegate) {
+ this.id = ++id;
+ this.file = file;
+ this.url = url;
+ this.delegate = delegate;
+ }
+ create(callback) {
+ FileChecksum.create(this.file, (error2, checksum) => {
+ if (error2) {
+ callback(error2);
+ return;
+ }
+ const blob = new BlobRecord(this.file, checksum, this.url);
+ notify(this.delegate, "directUploadWillCreateBlobWithXHR", blob.xhr);
+ blob.create((error3) => {
+ if (error3) {
+ callback(error3);
+ } else {
+ const upload = new BlobUpload(blob);
+ notify(this.delegate, "directUploadWillStoreFileWithXHR", upload.xhr);
+ upload.create((error4) => {
+ if (error4) {
+ callback(error4);
+ } else {
+ callback(null, blob.toJSON());
+ }
+ });
+ }
+ });
+ });
+ }
+ };
+ function notify(object, methodName, ...messages) {
+ if (object && typeof object[methodName] == "function") {
+ return object[methodName](...messages);
+ }
+ }
+ var DirectUploadController = class {
+ constructor(input, file) {
+ this.input = input;
+ this.file = file;
+ this.directUpload = new DirectUpload(this.file, this.url, this);
+ this.dispatch("initialize");
+ }
+ start(callback) {
+ const hiddenInput = document.createElement("input");
+ hiddenInput.type = "hidden";
+ hiddenInput.name = this.input.name;
+ this.input.insertAdjacentElement("beforebegin", hiddenInput);
+ this.dispatch("start");
+ this.directUpload.create((error2, attributes) => {
+ if (error2) {
+ hiddenInput.parentNode.removeChild(hiddenInput);
+ this.dispatchError(error2);
+ } else {
+ hiddenInput.value = attributes.signed_id;
+ }
+ this.dispatch("end");
+ callback(error2);
+ });
+ }
+ uploadRequestDidProgress(event) {
+ const progress = event.loaded / event.total * 100;
+ if (progress) {
+ this.dispatch("progress", {
+ progress
+ });
+ }
+ }
+ get url() {
+ return this.input.getAttribute("data-direct-upload-url");
+ }
+ dispatch(name, detail = {}) {
+ detail.file = this.file;
+ detail.id = this.directUpload.id;
+ return dispatchEvent2(this.input, `direct-upload:${name}`, {
+ detail
+ });
+ }
+ dispatchError(error2) {
+ const event = this.dispatch("error", {
+ error: error2
+ });
+ if (!event.defaultPrevented) {
+ alert(error2);
+ }
+ }
+ directUploadWillCreateBlobWithXHR(xhr) {
+ this.dispatch("before-blob-request", {
+ xhr
+ });
+ }
+ directUploadWillStoreFileWithXHR(xhr) {
+ this.dispatch("before-storage-request", {
+ xhr
+ });
+ xhr.upload.addEventListener("progress", (event) => this.uploadRequestDidProgress(event));
+ }
+ };
+ var inputSelector = "input[type=file][data-direct-upload-url]:not([disabled])";
+ var DirectUploadsController = class {
+ constructor(form) {
+ this.form = form;
+ this.inputs = findElements(form, inputSelector).filter((input) => input.files.length);
+ }
+ start(callback) {
+ const controllers = this.createDirectUploadControllers();
+ const startNextController = () => {
+ const controller = controllers.shift();
+ if (controller) {
+ controller.start((error2) => {
+ if (error2) {
+ callback(error2);
+ this.dispatch("end");
+ } else {
+ startNextController();
+ }
+ });
+ } else {
+ callback();
+ this.dispatch("end");
+ }
+ };
+ this.dispatch("start");
+ startNextController();
+ }
+ createDirectUploadControllers() {
+ const controllers = [];
+ this.inputs.forEach((input) => {
+ toArray(input.files).forEach((file) => {
+ const controller = new DirectUploadController(input, file);
+ controllers.push(controller);
+ });
+ });
+ return controllers;
+ }
+ dispatch(name, detail = {}) {
+ return dispatchEvent2(this.form, `direct-uploads:${name}`, {
+ detail
+ });
+ }
+ };
+ var processingAttribute = "data-direct-uploads-processing";
+ var submitButtonsByForm = /* @__PURE__ */ new WeakMap();
+ var started = false;
+ function start() {
+ if (!started) {
+ started = true;
+ document.addEventListener("click", didClick, true);
+ document.addEventListener("submit", didSubmitForm, true);
+ document.addEventListener("ajax:before", didSubmitRemoteElement);
+ }
+ }
+ function didClick(event) {
+ const { target } = event;
+ if ((target.tagName == "INPUT" || target.tagName == "BUTTON") && target.type == "submit" && target.form) {
+ submitButtonsByForm.set(target.form, target);
+ }
+ }
+ function didSubmitForm(event) {
+ handleFormSubmissionEvent(event);
+ }
+ function didSubmitRemoteElement(event) {
+ if (event.target.tagName == "FORM") {
+ handleFormSubmissionEvent(event);
+ }
+ }
+ function handleFormSubmissionEvent(event) {
+ const form = event.target;
+ if (form.hasAttribute(processingAttribute)) {
+ event.preventDefault();
+ return;
+ }
+ const controller = new DirectUploadsController(form);
+ const { inputs } = controller;
+ if (inputs.length) {
+ event.preventDefault();
+ form.setAttribute(processingAttribute, "");
+ inputs.forEach(disable);
+ controller.start((error2) => {
+ form.removeAttribute(processingAttribute);
+ if (error2) {
+ inputs.forEach(enable);
+ } else {
+ submitForm(form);
+ }
+ });
+ }
+ }
+ function submitForm(form) {
+ let button = submitButtonsByForm.get(form) || findElement(form, "input[type=submit], button[type=submit]");
+ if (button) {
+ const { disabled } = button;
+ button.disabled = false;
+ button.focus();
+ button.click();
+ button.disabled = disabled;
+ } else {
+ button = document.createElement("input");
+ button.type = "submit";
+ button.style.display = "none";
+ form.appendChild(button);
+ button.click();
+ form.removeChild(button);
+ }
+ submitButtonsByForm.delete(form);
+ }
+ function disable(input) {
+ input.disabled = true;
+ }
+ function enable(input) {
+ input.disabled = false;
+ }
+ function autostart() {
+ if (window.ActiveStorage) {
+ start();
+ }
+ }
+ setTimeout(autostart, 1);
+
+ // node_modules/@popperjs/core/lib/index.js
+ var lib_exports = {};
+ __export(lib_exports, {
+ afterMain: () => afterMain,
+ afterRead: () => afterRead,
+ afterWrite: () => afterWrite,
+ applyStyles: () => applyStyles_default,
+ arrow: () => arrow_default,
+ auto: () => auto,
+ basePlacements: () => basePlacements,
+ beforeMain: () => beforeMain,
+ beforeRead: () => beforeRead,
+ beforeWrite: () => beforeWrite,
+ bottom: () => bottom,
+ clippingParents: () => clippingParents,
+ computeStyles: () => computeStyles_default,
+ createPopper: () => createPopper3,
+ createPopperBase: () => createPopper,
+ createPopperLite: () => createPopper2,
+ detectOverflow: () => detectOverflow,
+ end: () => end,
+ eventListeners: () => eventListeners_default,
+ flip: () => flip_default,
+ hide: () => hide_default,
+ left: () => left,
+ main: () => main,
+ modifierPhases: () => modifierPhases,
+ offset: () => offset_default,
+ placements: () => placements,
+ popper: () => popper,
+ popperGenerator: () => popperGenerator,
+ popperOffsets: () => popperOffsets_default,
+ preventOverflow: () => preventOverflow_default,
+ read: () => read,
+ reference: () => reference,
+ right: () => right,
+ start: () => start2,
+ top: () => top,
+ variationPlacements: () => variationPlacements,
+ viewport: () => viewport,
+ write: () => write
+ });
+
+ // node_modules/@popperjs/core/lib/enums.js
+ var top = "top";
+ var bottom = "bottom";
+ var right = "right";
+ var left = "left";
+ var auto = "auto";
+ var basePlacements = [top, bottom, right, left];
+ var start2 = "start";
+ var end = "end";
+ var clippingParents = "clippingParents";
+ var viewport = "viewport";
+ var popper = "popper";
+ var reference = "reference";
+ var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
+ return acc.concat([placement + "-" + start2, placement + "-" + end]);
+ }, []);
+ var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
+ return acc.concat([placement, placement + "-" + start2, placement + "-" + end]);
+ }, []);
+ var beforeRead = "beforeRead";
+ var read = "read";
+ var afterRead = "afterRead";
+ var beforeMain = "beforeMain";
+ var main = "main";
+ var afterMain = "afterMain";
+ var beforeWrite = "beforeWrite";
+ var write = "write";
+ var afterWrite = "afterWrite";
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
+
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
+ function getNodeName(element) {
+ return element ? (element.nodeName || "").toLowerCase() : null;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindow.js
+ function getWindow(node) {
+ if (node == null) {
+ return window;
+ }
+ if (node.toString() !== "[object Window]") {
+ var ownerDocument = node.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView || window : window;
+ }
+ return node;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
+ function isElement(node) {
+ var OwnElement = getWindow(node).Element;
+ return node instanceof OwnElement || node instanceof Element;
+ }
+ function isHTMLElement(node) {
+ var OwnElement = getWindow(node).HTMLElement;
+ return node instanceof OwnElement || node instanceof HTMLElement;
+ }
+ function isShadowRoot(node) {
+ if (typeof ShadowRoot === "undefined") {
+ return false;
+ }
+ var OwnElement = getWindow(node).ShadowRoot;
+ return node instanceof OwnElement || node instanceof ShadowRoot;
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/applyStyles.js
+ function applyStyles(_ref) {
+ var state = _ref.state;
+ Object.keys(state.elements).forEach(function(name) {
+ var style = state.styles[name] || {};
+ var attributes = state.attributes[name] || {};
+ var element = state.elements[name];
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(name2) {
+ var value = attributes[name2];
+ if (value === false) {
+ element.removeAttribute(name2);
+ } else {
+ element.setAttribute(name2, value === true ? "" : value);
+ }
+ });
+ });
+ }
+ function effect(_ref2) {
+ var state = _ref2.state;
+ var initialStyles = {
+ popper: {
+ position: state.options.strategy,
+ left: "0",
+ top: "0",
+ margin: "0"
+ },
+ arrow: {
+ position: "absolute"
+ },
+ reference: {}
+ };
+ Object.assign(state.elements.popper.style, initialStyles.popper);
+ state.styles = initialStyles;
+ if (state.elements.arrow) {
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
+ }
+ return function() {
+ Object.keys(state.elements).forEach(function(name) {
+ var element = state.elements[name];
+ var attributes = state.attributes[name] || {};
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
+ var style = styleProperties.reduce(function(style2, property) {
+ style2[property] = "";
+ return style2;
+ }, {});
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(attribute) {
+ element.removeAttribute(attribute);
+ });
+ });
+ };
+ }
+ var applyStyles_default = {
+ name: "applyStyles",
+ enabled: true,
+ phase: "write",
+ fn: applyStyles,
+ effect,
+ requires: ["computeStyles"]
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getBasePlacement.js
+ function getBasePlacement(placement) {
+ return placement.split("-")[0];
+ }
+
+ // node_modules/@popperjs/core/lib/utils/math.js
+ var max = Math.max;
+ var min = Math.min;
+ var round = Math.round;
+
+ // node_modules/@popperjs/core/lib/utils/userAgent.js
+ function getUAString() {
+ var uaData = navigator.userAgentData;
+ if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
+ return uaData.brands.map(function(item) {
+ return item.brand + "/" + item.version;
+ }).join(" ");
+ }
+ return navigator.userAgent;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js
+ function isLayoutViewport() {
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
+ function getBoundingClientRect(element, includeScale, isFixedStrategy) {
+ if (includeScale === void 0) {
+ includeScale = false;
+ }
+ if (isFixedStrategy === void 0) {
+ isFixedStrategy = false;
+ }
+ var clientRect = element.getBoundingClientRect();
+ var scaleX = 1;
+ var scaleY = 1;
+ if (includeScale && isHTMLElement(element)) {
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
+ }
+ var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
+ var width = clientRect.width / scaleX;
+ var height = clientRect.height / scaleY;
+ return {
+ width,
+ height,
+ top: y,
+ right: x + width,
+ bottom: y + height,
+ left: x,
+ x,
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
+ function getLayoutRect(element) {
+ var clientRect = getBoundingClientRect(element);
+ var width = element.offsetWidth;
+ var height = element.offsetHeight;
+ if (Math.abs(clientRect.width - width) <= 1) {
+ width = clientRect.width;
+ }
+ if (Math.abs(clientRect.height - height) <= 1) {
+ height = clientRect.height;
+ }
+ return {
+ x: element.offsetLeft,
+ y: element.offsetTop,
+ width,
+ height
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/contains.js
+ function contains(parent, child) {
+ var rootNode = child.getRootNode && child.getRootNode();
+ if (parent.contains(child)) {
+ return true;
+ } else if (rootNode && isShadowRoot(rootNode)) {
+ var next = child;
+ do {
+ if (next && parent.isSameNode(next)) {
+ return true;
+ }
+ next = next.parentNode || next.host;
+ } while (next);
+ }
+ return false;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
+ function getComputedStyle2(element) {
+ return getWindow(element).getComputedStyle(element);
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
+ function isTableElement(element) {
+ return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
+ function getDocumentElement(element) {
+ return ((isElement(element) ? element.ownerDocument : (
+ // $FlowFixMe[prop-missing]
+ element.document
+ )) || window.document).documentElement;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
+ function getParentNode(element) {
+ if (getNodeName(element) === "html") {
+ return element;
+ }
+ return (
+ // this is a quicker (but less type safe) way to save quite some bytes from the bundle
+ // $FlowFixMe[incompatible-return]
+ // $FlowFixMe[prop-missing]
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
+ element.parentNode || // DOM Element detected
+ (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
+ getDocumentElement(element)
+ );
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
+ function getTrueOffsetParent(element) {
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
+ getComputedStyle2(element).position === "fixed") {
+ return null;
+ }
+ return element.offsetParent;
+ }
+ function getContainingBlock(element) {
+ var isFirefox = /firefox/i.test(getUAString());
+ var isIE = /Trident/i.test(getUAString());
+ if (isIE && isHTMLElement(element)) {
+ var elementCss = getComputedStyle2(element);
+ if (elementCss.position === "fixed") {
+ return null;
+ }
+ }
+ var currentNode = getParentNode(element);
+ if (isShadowRoot(currentNode)) {
+ currentNode = currentNode.host;
+ }
+ while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
+ var css = getComputedStyle2(currentNode);
+ if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
+ return currentNode;
+ } else {
+ currentNode = currentNode.parentNode;
+ }
+ }
+ return null;
+ }
+ function getOffsetParent(element) {
+ var window2 = getWindow(element);
+ var offsetParent = getTrueOffsetParent(element);
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") {
+ offsetParent = getTrueOffsetParent(offsetParent);
+ }
+ if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) {
+ return window2;
+ }
+ return offsetParent || getContainingBlock(element) || window2;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
+ function getMainAxisFromPlacement(placement) {
+ return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
+ }
+
+ // node_modules/@popperjs/core/lib/utils/within.js
+ function within(min2, value, max2) {
+ return max(min2, min(value, max2));
+ }
+ function withinMaxClamp(min2, value, max2) {
+ var v = within(min2, value, max2);
+ return v > max2 ? max2 : v;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
+ function getFreshSideObject() {
+ return {
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
+ function mergePaddingObject(paddingObject) {
+ return Object.assign({}, getFreshSideObject(), paddingObject);
+ }
+
+ // node_modules/@popperjs/core/lib/utils/expandToHashMap.js
+ function expandToHashMap(value, keys) {
+ return keys.reduce(function(hashMap, key) {
+ hashMap[key] = value;
+ return hashMap;
+ }, {});
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/arrow.js
+ var toPaddingObject = function toPaddingObject2(padding, state) {
+ padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : padding;
+ return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+ };
+ function arrow(_ref) {
+ var _state$modifiersData$;
+ var state = _ref.state, name = _ref.name, options = _ref.options;
+ var arrowElement = state.elements.arrow;
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var basePlacement = getBasePlacement(state.placement);
+ var axis = getMainAxisFromPlacement(basePlacement);
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
+ var len = isVertical ? "height" : "width";
+ if (!arrowElement || !popperOffsets2) {
+ return;
+ }
+ var paddingObject = toPaddingObject(options.padding, state);
+ var arrowRect = getLayoutRect(arrowElement);
+ var minProp = axis === "y" ? top : left;
+ var maxProp = axis === "y" ? bottom : right;
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
+ var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
+ var arrowOffsetParent = getOffsetParent(arrowElement);
+ var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
+ var centerToReference = endDiff / 2 - startDiff / 2;
+ var min2 = paddingObject[minProp];
+ var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
+ var offset2 = within(min2, center, max2);
+ var axisProp = axis;
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
+ }
+ function effect2(_ref2) {
+ var state = _ref2.state, options = _ref2.options;
+ var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
+ if (arrowElement == null) {
+ return;
+ }
+ if (typeof arrowElement === "string") {
+ arrowElement = state.elements.popper.querySelector(arrowElement);
+ if (!arrowElement) {
+ return;
+ }
+ }
+ if (!contains(state.elements.popper, arrowElement)) {
+ return;
+ }
+ state.elements.arrow = arrowElement;
+ }
+ var arrow_default = {
+ name: "arrow",
+ enabled: true,
+ phase: "main",
+ fn: arrow,
+ effect: effect2,
+ requires: ["popperOffsets"],
+ requiresIfExists: ["preventOverflow"]
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getVariation.js
+ function getVariation(placement) {
+ return placement.split("-")[1];
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/computeStyles.js
+ var unsetSides = {
+ top: "auto",
+ right: "auto",
+ bottom: "auto",
+ left: "auto"
+ };
+ function roundOffsetsByDPR(_ref, win) {
+ var x = _ref.x, y = _ref.y;
+ var dpr = win.devicePixelRatio || 1;
+ return {
+ x: round(x * dpr) / dpr || 0,
+ y: round(y * dpr) / dpr || 0
+ };
+ }
+ function mapToStyles(_ref2) {
+ var _Object$assign2;
+ var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
+ var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
+ var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
+ x,
+ y
+ }) : {
+ x,
+ y
+ };
+ x = _ref3.x;
+ y = _ref3.y;
+ var hasX = offsets.hasOwnProperty("x");
+ var hasY = offsets.hasOwnProperty("y");
+ var sideX = left;
+ var sideY = top;
+ var win = window;
+ if (adaptive) {
+ var offsetParent = getOffsetParent(popper2);
+ var heightProp = "clientHeight";
+ var widthProp = "clientWidth";
+ if (offsetParent === getWindow(popper2)) {
+ offsetParent = getDocumentElement(popper2);
+ if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") {
+ heightProp = "scrollHeight";
+ widthProp = "scrollWidth";
+ }
+ }
+ offsetParent = offsetParent;
+ if (placement === top || (placement === left || placement === right) && variation === end) {
+ sideY = bottom;
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : (
+ // $FlowFixMe[prop-missing]
+ offsetParent[heightProp]
+ );
+ y -= offsetY - popperRect.height;
+ y *= gpuAcceleration ? 1 : -1;
+ }
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
+ sideX = right;
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : (
+ // $FlowFixMe[prop-missing]
+ offsetParent[widthProp]
+ );
+ x -= offsetX - popperRect.width;
+ x *= gpuAcceleration ? 1 : -1;
+ }
+ }
+ var commonStyles = Object.assign({
+ position
+ }, adaptive && unsetSides);
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
+ x,
+ y
+ }, getWindow(popper2)) : {
+ x,
+ y
+ };
+ x = _ref4.x;
+ y = _ref4.y;
+ if (gpuAcceleration) {
+ var _Object$assign;
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
+ }
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
+ }
+ function computeStyles(_ref5) {
+ var state = _ref5.state, options = _ref5.options;
+ var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
+ var commonStyles = {
+ placement: getBasePlacement(state.placement),
+ variation: getVariation(state.placement),
+ popper: state.elements.popper,
+ popperRect: state.rects.popper,
+ gpuAcceleration,
+ isFixed: state.options.strategy === "fixed"
+ };
+ if (state.modifiersData.popperOffsets != null) {
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.popperOffsets,
+ position: state.options.strategy,
+ adaptive,
+ roundOffsets
+ })));
+ }
+ if (state.modifiersData.arrow != null) {
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.arrow,
+ position: "absolute",
+ adaptive: false,
+ roundOffsets
+ })));
+ }
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-placement": state.placement
+ });
+ }
+ var computeStyles_default = {
+ name: "computeStyles",
+ enabled: true,
+ phase: "beforeWrite",
+ fn: computeStyles,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/eventListeners.js
+ var passive = {
+ passive: true
+ };
+ function effect3(_ref) {
+ var state = _ref.state, instance = _ref.instance, options = _ref.options;
+ var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
+ var window2 = getWindow(state.elements.popper);
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.addEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.addEventListener("resize", instance.update, passive);
+ }
+ return function() {
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.removeEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.removeEventListener("resize", instance.update, passive);
+ }
+ };
+ }
+ var eventListeners_default = {
+ name: "eventListeners",
+ enabled: true,
+ phase: "write",
+ fn: function fn() {
+ },
+ effect: effect3,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
+ var hash = {
+ left: "right",
+ right: "left",
+ bottom: "top",
+ top: "bottom"
+ };
+ function getOppositePlacement(placement) {
+ return placement.replace(/left|right|bottom|top/g, function(matched) {
+ return hash[matched];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
+ var hash2 = {
+ start: "end",
+ end: "start"
+ };
+ function getOppositeVariationPlacement(placement) {
+ return placement.replace(/start|end/g, function(matched) {
+ return hash2[matched];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
+ function getWindowScroll(node) {
+ var win = getWindow(node);
+ var scrollLeft = win.pageXOffset;
+ var scrollTop = win.pageYOffset;
+ return {
+ scrollLeft,
+ scrollTop
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
+ function getWindowScrollBarX(element) {
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
+ function getViewportRect(element, strategy) {
+ var win = getWindow(element);
+ var html = getDocumentElement(element);
+ var visualViewport = win.visualViewport;
+ var width = html.clientWidth;
+ var height = html.clientHeight;
+ var x = 0;
+ var y = 0;
+ if (visualViewport) {
+ width = visualViewport.width;
+ height = visualViewport.height;
+ var layoutViewport = isLayoutViewport();
+ if (layoutViewport || !layoutViewport && strategy === "fixed") {
+ x = visualViewport.offsetLeft;
+ y = visualViewport.offsetTop;
+ }
+ }
+ return {
+ width,
+ height,
+ x: x + getWindowScrollBarX(element),
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
+ function getDocumentRect(element) {
+ var _element$ownerDocumen;
+ var html = getDocumentElement(element);
+ var winScroll = getWindowScroll(element);
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
+ var y = -winScroll.scrollTop;
+ if (getComputedStyle2(body || html).direction === "rtl") {
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
+ }
+ return {
+ width,
+ height,
+ x,
+ y
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
+ function isScrollParent(element) {
+ var _getComputedStyle = getComputedStyle2(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
+ function getScrollParent(node) {
+ if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
+ return node.ownerDocument.body;
+ }
+ if (isHTMLElement(node) && isScrollParent(node)) {
+ return node;
+ }
+ return getScrollParent(getParentNode(node));
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
+ function listScrollParents(element, list) {
+ var _element$ownerDocumen;
+ if (list === void 0) {
+ list = [];
+ }
+ var scrollParent = getScrollParent(element);
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
+ var win = getWindow(scrollParent);
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
+ var updatedList = list.concat(target);
+ return isBody ? updatedList : (
+ // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
+ updatedList.concat(listScrollParents(getParentNode(target)))
+ );
+ }
+
+ // node_modules/@popperjs/core/lib/utils/rectToClientRect.js
+ function rectToClientRect(rect) {
+ return Object.assign({}, rect, {
+ left: rect.x,
+ top: rect.y,
+ right: rect.x + rect.width,
+ bottom: rect.y + rect.height
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
+ function getInnerBoundingClientRect(element, strategy) {
+ var rect = getBoundingClientRect(element, false, strategy === "fixed");
+ rect.top = rect.top + element.clientTop;
+ rect.left = rect.left + element.clientLeft;
+ rect.bottom = rect.top + element.clientHeight;
+ rect.right = rect.left + element.clientWidth;
+ rect.width = element.clientWidth;
+ rect.height = element.clientHeight;
+ rect.x = rect.left;
+ rect.y = rect.top;
+ return rect;
+ }
+ function getClientRectFromMixedType(element, clippingParent, strategy) {
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
+ }
+ function getClippingParents(element) {
+ var clippingParents2 = listScrollParents(getParentNode(element));
+ var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0;
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
+ if (!isElement(clipperElement)) {
+ return [];
+ }
+ return clippingParents2.filter(function(clippingParent) {
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
+ });
+ }
+ function getClippingRect(element, boundary, rootBoundary, strategy) {
+ var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
+ var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
+ var firstClippingParent = clippingParents2[0];
+ var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
+ accRect.top = max(rect.top, accRect.top);
+ accRect.right = min(rect.right, accRect.right);
+ accRect.bottom = min(rect.bottom, accRect.bottom);
+ accRect.left = max(rect.left, accRect.left);
+ return accRect;
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
+ clippingRect.width = clippingRect.right - clippingRect.left;
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
+ clippingRect.x = clippingRect.left;
+ clippingRect.y = clippingRect.top;
+ return clippingRect;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/computeOffsets.js
+ function computeOffsets(_ref) {
+ var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
+ var basePlacement = placement ? getBasePlacement(placement) : null;
+ var variation = placement ? getVariation(placement) : null;
+ var commonX = reference2.x + reference2.width / 2 - element.width / 2;
+ var commonY = reference2.y + reference2.height / 2 - element.height / 2;
+ var offsets;
+ switch (basePlacement) {
+ case top:
+ offsets = {
+ x: commonX,
+ y: reference2.y - element.height
+ };
+ break;
+ case bottom:
+ offsets = {
+ x: commonX,
+ y: reference2.y + reference2.height
+ };
+ break;
+ case right:
+ offsets = {
+ x: reference2.x + reference2.width,
+ y: commonY
+ };
+ break;
+ case left:
+ offsets = {
+ x: reference2.x - element.width,
+ y: commonY
+ };
+ break;
+ default:
+ offsets = {
+ x: reference2.x,
+ y: reference2.y
+ };
+ }
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
+ if (mainAxis != null) {
+ var len = mainAxis === "y" ? "height" : "width";
+ switch (variation) {
+ case start2:
+ offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
+ break;
+ case end:
+ offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
+ break;
+ default:
+ }
+ }
+ return offsets;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/detectOverflow.js
+ function detectOverflow(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
+ var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+ var altContext = elementContext === popper ? reference : popper;
+ var popperRect = state.rects.popper;
+ var element = state.elements[altBoundary ? altContext : elementContext];
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
+ var popperOffsets2 = computeOffsets({
+ reference: referenceClientRect,
+ element: popperRect,
+ strategy: "absolute",
+ placement
+ });
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
+ var overflowOffsets = {
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
+ };
+ var offsetData = state.modifiersData.offset;
+ if (elementContext === popper && offsetData) {
+ var offset2 = offsetData[placement];
+ Object.keys(overflowOffsets).forEach(function(key) {
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
+ var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
+ overflowOffsets[key] += offset2[axis] * multiply;
+ });
+ }
+ return overflowOffsets;
+ }
+
+ // node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
+ function computeAutoPlacement(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
+ var variation = getVariation(placement);
+ var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
+ return getVariation(placement2) === variation;
+ }) : basePlacements;
+ var allowedPlacements = placements2.filter(function(placement2) {
+ return allowedAutoPlacements.indexOf(placement2) >= 0;
+ });
+ if (allowedPlacements.length === 0) {
+ allowedPlacements = placements2;
+ }
+ var overflows = allowedPlacements.reduce(function(acc, placement2) {
+ acc[placement2] = detectOverflow(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding
+ })[getBasePlacement(placement2)];
+ return acc;
+ }, {});
+ return Object.keys(overflows).sort(function(a, b) {
+ return overflows[a] - overflows[b];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/flip.js
+ function getExpandedFallbackPlacements(placement) {
+ if (getBasePlacement(placement) === auto) {
+ return [];
+ }
+ var oppositePlacement = getOppositePlacement(placement);
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
+ }
+ function flip(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ if (state.modifiersData[name]._skip) {
+ return;
+ }
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
+ var preferredPlacement = state.options.placement;
+ var basePlacement = getBasePlacement(preferredPlacement);
+ var isBasePlacement = basePlacement === preferredPlacement;
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
+ var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
+ return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding,
+ flipVariations,
+ allowedAutoPlacements
+ }) : placement2);
+ }, []);
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var checksMap = /* @__PURE__ */ new Map();
+ var makeFallbackChecks = true;
+ var firstFittingPlacement = placements2[0];
+ for (var i = 0; i < placements2.length; i++) {
+ var placement = placements2[i];
+ var _basePlacement = getBasePlacement(placement);
+ var isStartVariation = getVariation(placement) === start2;
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
+ var len = isVertical ? "width" : "height";
+ var overflow = detectOverflow(state, {
+ placement,
+ boundary,
+ rootBoundary,
+ altBoundary,
+ padding
+ });
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
+ if (referenceRect[len] > popperRect[len]) {
+ mainVariationSide = getOppositePlacement(mainVariationSide);
+ }
+ var altVariationSide = getOppositePlacement(mainVariationSide);
+ var checks = [];
+ if (checkMainAxis) {
+ checks.push(overflow[_basePlacement] <= 0);
+ }
+ if (checkAltAxis) {
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
+ }
+ if (checks.every(function(check) {
+ return check;
+ })) {
+ firstFittingPlacement = placement;
+ makeFallbackChecks = false;
+ break;
+ }
+ checksMap.set(placement, checks);
+ }
+ if (makeFallbackChecks) {
+ var numberOfChecks = flipVariations ? 3 : 1;
+ var _loop = function _loop2(_i2) {
+ var fittingPlacement = placements2.find(function(placement2) {
+ var checks2 = checksMap.get(placement2);
+ if (checks2) {
+ return checks2.slice(0, _i2).every(function(check) {
+ return check;
+ });
+ }
+ });
+ if (fittingPlacement) {
+ firstFittingPlacement = fittingPlacement;
+ return "break";
+ }
+ };
+ for (var _i = numberOfChecks; _i > 0; _i--) {
+ var _ret = _loop(_i);
+ if (_ret === "break")
+ break;
+ }
+ }
+ if (state.placement !== firstFittingPlacement) {
+ state.modifiersData[name]._skip = true;
+ state.placement = firstFittingPlacement;
+ state.reset = true;
+ }
+ }
+ var flip_default = {
+ name: "flip",
+ enabled: true,
+ phase: "main",
+ fn: flip,
+ requiresIfExists: ["offset"],
+ data: {
+ _skip: false
+ }
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/hide.js
+ function getSideOffsets(overflow, rect, preventedOffsets) {
+ if (preventedOffsets === void 0) {
+ preventedOffsets = {
+ x: 0,
+ y: 0
+ };
+ }
+ return {
+ top: overflow.top - rect.height - preventedOffsets.y,
+ right: overflow.right - rect.width + preventedOffsets.x,
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
+ left: overflow.left - rect.width - preventedOffsets.x
+ };
+ }
+ function isAnySideFullyClipped(overflow) {
+ return [top, right, bottom, left].some(function(side) {
+ return overflow[side] >= 0;
+ });
+ }
+ function hide(_ref) {
+ var state = _ref.state, name = _ref.name;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var preventedOffsets = state.modifiersData.preventOverflow;
+ var referenceOverflow = detectOverflow(state, {
+ elementContext: "reference"
+ });
+ var popperAltOverflow = detectOverflow(state, {
+ altBoundary: true
+ });
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
+ state.modifiersData[name] = {
+ referenceClippingOffsets,
+ popperEscapeOffsets,
+ isReferenceHidden,
+ hasPopperEscaped
+ };
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-reference-hidden": isReferenceHidden,
+ "data-popper-escaped": hasPopperEscaped
+ });
+ }
+ var hide_default = {
+ name: "hide",
+ enabled: true,
+ phase: "main",
+ requiresIfExists: ["preventOverflow"],
+ fn: hide
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/offset.js
+ function distanceAndSkiddingToXY(placement, rects, offset2) {
+ var basePlacement = getBasePlacement(placement);
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
+ var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
+ placement
+ })) : offset2, skidding = _ref[0], distance = _ref[1];
+ skidding = skidding || 0;
+ distance = (distance || 0) * invertDistance;
+ return [left, right].indexOf(basePlacement) >= 0 ? {
+ x: distance,
+ y: skidding
+ } : {
+ x: skidding,
+ y: distance
+ };
+ }
+ function offset(_ref2) {
+ var state = _ref2.state, options = _ref2.options, name = _ref2.name;
+ var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
+ var data = placements.reduce(function(acc, placement) {
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
+ return acc;
+ }, {});
+ var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
+ if (state.modifiersData.popperOffsets != null) {
+ state.modifiersData.popperOffsets.x += x;
+ state.modifiersData.popperOffsets.y += y;
+ }
+ state.modifiersData[name] = data;
+ }
+ var offset_default = {
+ name: "offset",
+ enabled: true,
+ phase: "main",
+ requires: ["popperOffsets"],
+ fn: offset
+ };
+
+ // node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
+ function popperOffsets(_ref) {
+ var state = _ref.state, name = _ref.name;
+ state.modifiersData[name] = computeOffsets({
+ reference: state.rects.reference,
+ element: state.rects.popper,
+ strategy: "absolute",
+ placement: state.placement
+ });
+ }
+ var popperOffsets_default = {
+ name: "popperOffsets",
+ enabled: true,
+ phase: "read",
+ fn: popperOffsets,
+ data: {}
+ };
+
+ // node_modules/@popperjs/core/lib/utils/getAltAxis.js
+ function getAltAxis(axis) {
+ return axis === "x" ? "y" : "x";
+ }
+
+ // node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
+ function preventOverflow(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
+ var overflow = detectOverflow(state, {
+ boundary,
+ rootBoundary,
+ padding,
+ altBoundary
+ });
+ var basePlacement = getBasePlacement(state.placement);
+ var variation = getVariation(state.placement);
+ var isBasePlacement = !variation;
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
+ var altAxis = getAltAxis(mainAxis);
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : tetherOffset;
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
+ mainAxis: tetherOffsetValue,
+ altAxis: tetherOffsetValue
+ } : Object.assign({
+ mainAxis: 0,
+ altAxis: 0
+ }, tetherOffsetValue);
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
+ var data = {
+ x: 0,
+ y: 0
+ };
+ if (!popperOffsets2) {
+ return;
+ }
+ if (checkMainAxis) {
+ var _offsetModifierState$;
+ var mainSide = mainAxis === "y" ? top : left;
+ var altSide = mainAxis === "y" ? bottom : right;
+ var len = mainAxis === "y" ? "height" : "width";
+ var offset2 = popperOffsets2[mainAxis];
+ var min2 = offset2 + overflow[mainSide];
+ var max2 = offset2 - overflow[altSide];
+ var additive = tether ? -popperRect[len] / 2 : 0;
+ var minLen = variation === start2 ? referenceRect[len] : popperRect[len];
+ var maxLen = variation === start2 ? -popperRect[len] : -referenceRect[len];
+ var arrowElement = state.elements.arrow;
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
+ width: 0,
+ height: 0
+ };
+ var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
+ var arrowPaddingMax = arrowPaddingObject[altSide];
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
+ var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
+ var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
+ var tetherMax = offset2 + maxOffset - offsetModifierValue;
+ var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2);
+ popperOffsets2[mainAxis] = preventedOffset;
+ data[mainAxis] = preventedOffset - offset2;
+ }
+ if (checkAltAxis) {
+ var _offsetModifierState$2;
+ var _mainSide = mainAxis === "x" ? top : left;
+ var _altSide = mainAxis === "x" ? bottom : right;
+ var _offset = popperOffsets2[altAxis];
+ var _len = altAxis === "y" ? "height" : "width";
+ var _min = _offset + overflow[_mainSide];
+ var _max = _offset - overflow[_altSide];
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
+ popperOffsets2[altAxis] = _preventedOffset;
+ data[altAxis] = _preventedOffset - _offset;
+ }
+ state.modifiersData[name] = data;
+ }
+ var preventOverflow_default = {
+ name: "preventOverflow",
+ enabled: true,
+ phase: "main",
+ fn: preventOverflow,
+ requiresIfExists: ["offset"]
+ };
+
+ // node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
+ function getHTMLElementScroll(element) {
+ return {
+ scrollLeft: element.scrollLeft,
+ scrollTop: element.scrollTop
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
+ function getNodeScroll(node) {
+ if (node === getWindow(node) || !isHTMLElement(node)) {
+ return getWindowScroll(node);
+ } else {
+ return getHTMLElementScroll(node);
+ }
+ }
+
+ // node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
+ function isElementScaled(element) {
+ var rect = element.getBoundingClientRect();
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
+ return scaleX !== 1 || scaleY !== 1;
+ }
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
+ if (isFixed === void 0) {
+ isFixed = false;
+ }
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
+ var documentElement = getDocumentElement(offsetParent);
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
+ var scroll = {
+ scrollLeft: 0,
+ scrollTop: 0
+ };
+ var offsets = {
+ x: 0,
+ y: 0
+ };
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
+ if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
+ isScrollParent(documentElement)) {
+ scroll = getNodeScroll(offsetParent);
+ }
+ if (isHTMLElement(offsetParent)) {
+ offsets = getBoundingClientRect(offsetParent, true);
+ offsets.x += offsetParent.clientLeft;
+ offsets.y += offsetParent.clientTop;
+ } else if (documentElement) {
+ offsets.x = getWindowScrollBarX(documentElement);
+ }
+ }
+ return {
+ x: rect.left + scroll.scrollLeft - offsets.x,
+ y: rect.top + scroll.scrollTop - offsets.y,
+ width: rect.width,
+ height: rect.height
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/orderModifiers.js
+ function order(modifiers) {
+ var map = /* @__PURE__ */ new Map();
+ var visited = /* @__PURE__ */ new Set();
+ var result = [];
+ modifiers.forEach(function(modifier) {
+ map.set(modifier.name, modifier);
+ });
+ function sort(modifier) {
+ visited.add(modifier.name);
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
+ requires.forEach(function(dep) {
+ if (!visited.has(dep)) {
+ var depModifier = map.get(dep);
+ if (depModifier) {
+ sort(depModifier);
+ }
+ }
+ });
+ result.push(modifier);
+ }
+ modifiers.forEach(function(modifier) {
+ if (!visited.has(modifier.name)) {
+ sort(modifier);
+ }
+ });
+ return result;
+ }
+ function orderModifiers(modifiers) {
+ var orderedModifiers = order(modifiers);
+ return modifierPhases.reduce(function(acc, phase) {
+ return acc.concat(orderedModifiers.filter(function(modifier) {
+ return modifier.phase === phase;
+ }));
+ }, []);
+ }
+
+ // node_modules/@popperjs/core/lib/utils/debounce.js
+ function debounce(fn2) {
+ var pending;
+ return function() {
+ if (!pending) {
+ pending = new Promise(function(resolve) {
+ Promise.resolve().then(function() {
+ pending = void 0;
+ resolve(fn2());
+ });
+ });
+ }
+ return pending;
+ };
+ }
+
+ // node_modules/@popperjs/core/lib/utils/mergeByName.js
+ function mergeByName(modifiers) {
+ var merged = modifiers.reduce(function(merged2, current) {
+ var existing = merged2[current.name];
+ merged2[current.name] = existing ? Object.assign({}, existing, current, {
+ options: Object.assign({}, existing.options, current.options),
+ data: Object.assign({}, existing.data, current.data)
+ }) : current;
+ return merged2;
+ }, {});
+ return Object.keys(merged).map(function(key) {
+ return merged[key];
+ });
+ }
+
+ // node_modules/@popperjs/core/lib/createPopper.js
+ var DEFAULT_OPTIONS = {
+ placement: "bottom",
+ modifiers: [],
+ strategy: "absolute"
+ };
+ function areValidElements() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+ return !args.some(function(element) {
+ return !(element && typeof element.getBoundingClientRect === "function");
+ });
+ }
+ function popperGenerator(generatorOptions) {
+ if (generatorOptions === void 0) {
+ generatorOptions = {};
+ }
+ var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers3 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions2 = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
+ return function createPopper4(reference2, popper2, options) {
+ if (options === void 0) {
+ options = defaultOptions2;
+ }
+ var state = {
+ placement: "bottom",
+ orderedModifiers: [],
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions2),
+ modifiersData: {},
+ elements: {
+ reference: reference2,
+ popper: popper2
+ },
+ attributes: {},
+ styles: {}
+ };
+ var effectCleanupFns = [];
+ var isDestroyed = false;
+ var instance = {
+ state,
+ setOptions: function setOptions(setOptionsAction) {
+ var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
+ cleanupModifierEffects();
+ state.options = Object.assign({}, defaultOptions2, state.options, options2);
+ state.scrollParents = {
+ reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
+ popper: listScrollParents(popper2)
+ };
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers3, state.options.modifiers)));
+ state.orderedModifiers = orderedModifiers.filter(function(m) {
+ return m.enabled;
+ });
+ runModifierEffects();
+ return instance.update();
+ },
+ // Sync update – it will always be executed, even if not necessary. This
+ // is useful for low frequency updates where sync behavior simplifies the
+ // logic.
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
+ // prefer the async Popper#update method
+ forceUpdate: function forceUpdate() {
+ if (isDestroyed) {
+ return;
+ }
+ var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
+ if (!areValidElements(reference3, popper3)) {
+ return;
+ }
+ state.rects = {
+ reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
+ popper: getLayoutRect(popper3)
+ };
+ state.reset = false;
+ state.placement = state.options.placement;
+ state.orderedModifiers.forEach(function(modifier) {
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
+ });
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
+ if (state.reset === true) {
+ state.reset = false;
+ index = -1;
+ continue;
+ }
+ var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
+ if (typeof fn2 === "function") {
+ state = fn2({
+ state,
+ options: _options,
+ name,
+ instance
+ }) || state;
+ }
+ }
+ },
+ // Async and optimistically optimized update – it will not be executed if
+ // not necessary (debounced to run at most once-per-tick)
+ update: debounce(function() {
+ return new Promise(function(resolve) {
+ instance.forceUpdate();
+ resolve(state);
+ });
+ }),
+ destroy: function destroy() {
+ cleanupModifierEffects();
+ isDestroyed = true;
+ }
+ };
+ if (!areValidElements(reference2, popper2)) {
+ return instance;
+ }
+ instance.setOptions(options).then(function(state2) {
+ if (!isDestroyed && options.onFirstUpdate) {
+ options.onFirstUpdate(state2);
+ }
+ });
+ function runModifierEffects() {
+ state.orderedModifiers.forEach(function(_ref) {
+ var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect4 = _ref.effect;
+ if (typeof effect4 === "function") {
+ var cleanupFn = effect4({
+ state,
+ name,
+ instance,
+ options: options2
+ });
+ var noopFn = function noopFn2() {
+ };
+ effectCleanupFns.push(cleanupFn || noopFn);
+ }
+ });
+ }
+ function cleanupModifierEffects() {
+ effectCleanupFns.forEach(function(fn2) {
+ return fn2();
+ });
+ effectCleanupFns = [];
+ }
+ return instance;
+ };
+ }
+ var createPopper = /* @__PURE__ */ popperGenerator();
+
+ // node_modules/@popperjs/core/lib/popper-lite.js
+ var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default];
+ var createPopper2 = /* @__PURE__ */ popperGenerator({
+ defaultModifiers
+ });
+
+ // node_modules/@popperjs/core/lib/popper.js
+ var defaultModifiers2 = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default];
+ var createPopper3 = /* @__PURE__ */ popperGenerator({
+ defaultModifiers: defaultModifiers2
+ });
+
+ // node_modules/bootstrap/dist/js/bootstrap.esm.js
+ var elementMap = /* @__PURE__ */ new Map();
+ var Data = {
+ set(element, key, instance) {
+ if (!elementMap.has(element)) {
+ elementMap.set(element, /* @__PURE__ */ new Map());
+ }
+ const instanceMap = elementMap.get(element);
+ if (!instanceMap.has(key) && instanceMap.size !== 0) {
+ console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
+ return;
+ }
+ instanceMap.set(key, instance);
+ },
+ get(element, key) {
+ if (elementMap.has(element)) {
+ return elementMap.get(element).get(key) || null;
+ }
+ return null;
+ },
+ remove(element, key) {
+ if (!elementMap.has(element)) {
+ return;
+ }
+ const instanceMap = elementMap.get(element);
+ instanceMap.delete(key);
+ if (instanceMap.size === 0) {
+ elementMap.delete(element);
+ }
+ }
+ };
+ var MAX_UID = 1e6;
+ var MILLISECONDS_MULTIPLIER = 1e3;
+ var TRANSITION_END = "transitionend";
+ var parseSelector = (selector) => {
+ if (selector && window.CSS && window.CSS.escape) {
+ selector = selector.replace(/#([^\s"#']+)/g, (match, id2) => `#${CSS.escape(id2)}`);
+ }
+ return selector;
+ };
+ var toType = (object) => {
+ if (object === null || object === void 0) {
+ return `${object}`;
+ }
+ return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
+ };
+ var getUID = (prefix) => {
+ do {
+ prefix += Math.floor(Math.random() * MAX_UID);
+ } while (document.getElementById(prefix));
+ return prefix;
+ };
+ var getTransitionDurationFromElement = (element) => {
+ if (!element) {
+ return 0;
+ }
+ let {
+ transitionDuration,
+ transitionDelay
+ } = window.getComputedStyle(element);
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
+ const floatTransitionDelay = Number.parseFloat(transitionDelay);
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ }
+ transitionDuration = transitionDuration.split(",")[0];
+ transitionDelay = transitionDelay.split(",")[0];
+ return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+ };
+ var triggerTransitionEnd = (element) => {
+ element.dispatchEvent(new Event(TRANSITION_END));
+ };
+ var isElement2 = (object) => {
+ if (!object || typeof object !== "object") {
+ return false;
+ }
+ if (typeof object.jquery !== "undefined") {
+ object = object[0];
+ }
+ return typeof object.nodeType !== "undefined";
+ };
+ var getElement = (object) => {
+ if (isElement2(object)) {
+ return object.jquery ? object[0] : object;
+ }
+ if (typeof object === "string" && object.length > 0) {
+ return document.querySelector(parseSelector(object));
+ }
+ return null;
+ };
+ var isVisible = (element) => {
+ if (!isElement2(element) || element.getClientRects().length === 0) {
+ return false;
+ }
+ const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible";
+ const closedDetails = element.closest("details:not([open])");
+ if (!closedDetails) {
+ return elementIsVisible;
+ }
+ if (closedDetails !== element) {
+ const summary = element.closest("summary");
+ if (summary && summary.parentNode !== closedDetails) {
+ return false;
+ }
+ if (summary === null) {
+ return false;
+ }
+ }
+ return elementIsVisible;
+ };
+ var isDisabled = (element) => {
+ if (!element || element.nodeType !== Node.ELEMENT_NODE) {
+ return true;
+ }
+ if (element.classList.contains("disabled")) {
+ return true;
+ }
+ if (typeof element.disabled !== "undefined") {
+ return element.disabled;
+ }
+ return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false";
+ };
+ var findShadowRoot = (element) => {
+ if (!document.documentElement.attachShadow) {
+ return null;
+ }
+ if (typeof element.getRootNode === "function") {
+ const root = element.getRootNode();
+ return root instanceof ShadowRoot ? root : null;
+ }
+ if (element instanceof ShadowRoot) {
+ return element;
+ }
+ if (!element.parentNode) {
+ return null;
+ }
+ return findShadowRoot(element.parentNode);
+ };
+ var noop = () => {
+ };
+ var reflow = (element) => {
+ element.offsetHeight;
+ };
+ var getjQuery = () => {
+ if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) {
+ return window.jQuery;
+ }
+ return null;
+ };
+ var DOMContentLoadedCallbacks = [];
+ var onDOMContentLoaded = (callback) => {
+ if (document.readyState === "loading") {
+ if (!DOMContentLoadedCallbacks.length) {
+ document.addEventListener("DOMContentLoaded", () => {
+ for (const callback2 of DOMContentLoadedCallbacks) {
+ callback2();
+ }
+ });
+ }
+ DOMContentLoadedCallbacks.push(callback);
+ } else {
+ callback();
+ }
+ };
+ var isRTL = () => document.documentElement.dir === "rtl";
+ var defineJQueryPlugin = (plugin) => {
+ onDOMContentLoaded(() => {
+ const $ = getjQuery();
+ if ($) {
+ const name = plugin.NAME;
+ const JQUERY_NO_CONFLICT = $.fn[name];
+ $.fn[name] = plugin.jQueryInterface;
+ $.fn[name].Constructor = plugin;
+ $.fn[name].noConflict = () => {
+ $.fn[name] = JQUERY_NO_CONFLICT;
+ return plugin.jQueryInterface;
+ };
+ }
+ });
+ };
+ var execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
+ return typeof possibleCallback === "function" ? possibleCallback(...args) : defaultValue;
+ };
+ var executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
+ if (!waitForTransition) {
+ execute(callback);
+ return;
+ }
+ const durationPadding = 5;
+ const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
+ let called = false;
+ const handler = ({
+ target
+ }) => {
+ if (target !== transitionElement) {
+ return;
+ }
+ called = true;
+ transitionElement.removeEventListener(TRANSITION_END, handler);
+ execute(callback);
+ };
+ transitionElement.addEventListener(TRANSITION_END, handler);
+ setTimeout(() => {
+ if (!called) {
+ triggerTransitionEnd(transitionElement);
+ }
+ }, emulatedDuration);
+ };
+ var getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
+ const listLength = list.length;
+ let index = list.indexOf(activeElement);
+ if (index === -1) {
+ return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
+ }
+ index += shouldGetNext ? 1 : -1;
+ if (isCycleAllowed) {
+ index = (index + listLength) % listLength;
+ }
+ return list[Math.max(0, Math.min(index, listLength - 1))];
+ };
+ var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
+ var stripNameRegex = /\..*/;
+ var stripUidRegex = /::\d+$/;
+ var eventRegistry = {};
+ var uidEvent = 1;
+ var customEvents = {
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+ };
+ var nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
+ function makeEventUid(element, uid) {
+ return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
+ }
+ function getElementEvents(element) {
+ const uid = makeEventUid(element);
+ element.uidEvent = uid;
+ eventRegistry[uid] = eventRegistry[uid] || {};
+ return eventRegistry[uid];
+ }
+ function bootstrapHandler(element, fn2) {
+ return function handler(event) {
+ hydrateObj(event, {
+ delegateTarget: element
+ });
+ if (handler.oneOff) {
+ EventHandler.off(element, event.type, fn2);
+ }
+ return fn2.apply(element, [event]);
+ };
+ }
+ function bootstrapDelegationHandler(element, selector, fn2) {
+ return function handler(event) {
+ const domElements = element.querySelectorAll(selector);
+ for (let {
+ target
+ } = event; target && target !== this; target = target.parentNode) {
+ for (const domElement of domElements) {
+ if (domElement !== target) {
+ continue;
+ }
+ hydrateObj(event, {
+ delegateTarget: target
+ });
+ if (handler.oneOff) {
+ EventHandler.off(element, event.type, selector, fn2);
+ }
+ return fn2.apply(target, [event]);
+ }
+ }
+ };
+ }
+ function findHandler(events, callable, delegationSelector = null) {
+ return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector);
+ }
+ function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
+ const isDelegated = typeof handler === "string";
+ const callable = isDelegated ? delegationFunction : handler || delegationFunction;
+ let typeEvent = getTypeEvent(originalTypeEvent);
+ if (!nativeEvents.has(typeEvent)) {
+ typeEvent = originalTypeEvent;
+ }
+ return [isDelegated, callable, typeEvent];
+ }
+ function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
+ if (typeof originalTypeEvent !== "string" || !element) {
+ return;
+ }
+ let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
+ if (originalTypeEvent in customEvents) {
+ const wrapFunction = (fn3) => {
+ return function(event) {
+ if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
+ return fn3.call(this, event);
+ }
+ };
+ };
+ callable = wrapFunction(callable);
+ }
+ const events = getElementEvents(element);
+ const handlers = events[typeEvent] || (events[typeEvent] = {});
+ const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
+ if (previousFunction) {
+ previousFunction.oneOff = previousFunction.oneOff && oneOff;
+ return;
+ }
+ const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ""));
+ const fn2 = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
+ fn2.delegationSelector = isDelegated ? handler : null;
+ fn2.callable = callable;
+ fn2.oneOff = oneOff;
+ fn2.uidEvent = uid;
+ handlers[uid] = fn2;
+ element.addEventListener(typeEvent, fn2, isDelegated);
+ }
+ function removeHandler(element, events, typeEvent, handler, delegationSelector) {
+ const fn2 = findHandler(events[typeEvent], handler, delegationSelector);
+ if (!fn2) {
+ return;
+ }
+ element.removeEventListener(typeEvent, fn2, Boolean(delegationSelector));
+ delete events[typeEvent][fn2.uidEvent];
+ }
+ function removeNamespacedHandlers(element, events, typeEvent, namespace) {
+ const storeElementEvent = events[typeEvent] || {};
+ for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
+ if (handlerKey.includes(namespace)) {
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
+ }
+ }
+ }
+ function getTypeEvent(event) {
+ event = event.replace(stripNameRegex, "");
+ return customEvents[event] || event;
+ }
+ var EventHandler = {
+ on(element, event, handler, delegationFunction) {
+ addHandler(element, event, handler, delegationFunction, false);
+ },
+ one(element, event, handler, delegationFunction) {
+ addHandler(element, event, handler, delegationFunction, true);
+ },
+ off(element, originalTypeEvent, handler, delegationFunction) {
+ if (typeof originalTypeEvent !== "string" || !element) {
+ return;
+ }
+ const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
+ const inNamespace = typeEvent !== originalTypeEvent;
+ const events = getElementEvents(element);
+ const storeElementEvent = events[typeEvent] || {};
+ const isNamespace = originalTypeEvent.startsWith(".");
+ if (typeof callable !== "undefined") {
+ if (!Object.keys(storeElementEvent).length) {
+ return;
+ }
+ removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
+ return;
+ }
+ if (isNamespace) {
+ for (const elementEvent of Object.keys(events)) {
+ removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
+ }
+ }
+ for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
+ const handlerKey = keyHandlers.replace(stripUidRegex, "");
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
+ }
+ }
+ },
+ trigger(element, event, args) {
+ if (typeof event !== "string" || !element) {
+ return null;
+ }
+ const $ = getjQuery();
+ const typeEvent = getTypeEvent(event);
+ const inNamespace = event !== typeEvent;
+ let jQueryEvent = null;
+ let bubbles = true;
+ let nativeDispatch = true;
+ let defaultPrevented = false;
+ if (inNamespace && $) {
+ jQueryEvent = $.Event(event, args);
+ $(element).trigger(jQueryEvent);
+ bubbles = !jQueryEvent.isPropagationStopped();
+ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
+ defaultPrevented = jQueryEvent.isDefaultPrevented();
+ }
+ const evt = hydrateObj(new Event(event, {
+ bubbles,
+ cancelable: true
+ }), args);
+ if (defaultPrevented) {
+ evt.preventDefault();
+ }
+ if (nativeDispatch) {
+ element.dispatchEvent(evt);
+ }
+ if (evt.defaultPrevented && jQueryEvent) {
+ jQueryEvent.preventDefault();
+ }
+ return evt;
+ }
+ };
+ function hydrateObj(obj, meta = {}) {
+ for (const [key, value] of Object.entries(meta)) {
+ try {
+ obj[key] = value;
+ } catch (_unused) {
+ Object.defineProperty(obj, key, {
+ configurable: true,
+ get() {
+ return value;
+ }
+ });
+ }
+ }
+ return obj;
+ }
+ function normalizeData(value) {
+ if (value === "true") {
+ return true;
+ }
+ if (value === "false") {
+ return false;
+ }
+ if (value === Number(value).toString()) {
+ return Number(value);
+ }
+ if (value === "" || value === "null") {
+ return null;
+ }
+ if (typeof value !== "string") {
+ return value;
+ }
+ try {
+ return JSON.parse(decodeURIComponent(value));
+ } catch (_unused) {
+ return value;
+ }
+ }
+ function normalizeDataKey(key) {
+ return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);
+ }
+ var Manipulator = {
+ setDataAttribute(element, key, value) {
+ element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
+ },
+ removeDataAttribute(element, key) {
+ element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
+ },
+ getDataAttributes(element) {
+ if (!element) {
+ return {};
+ }
+ const attributes = {};
+ const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig"));
+ for (const key of bsKeys) {
+ let pureKey = key.replace(/^bs/, "");
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
+ attributes[pureKey] = normalizeData(element.dataset[key]);
+ }
+ return attributes;
+ },
+ getDataAttribute(element, key) {
+ return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
+ }
+ };
+ var Config = class {
+ // Getters
+ static get Default() {
+ return {};
+ }
+ static get DefaultType() {
+ return {};
+ }
+ static get NAME() {
+ throw new Error('You have to implement the static method "NAME", for each component!');
+ }
+ _getConfig(config) {
+ config = this._mergeConfigObj(config);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ _configAfterMerge(config) {
+ return config;
+ }
+ _mergeConfigObj(config, element) {
+ const jsonConfig = isElement2(element) ? Manipulator.getDataAttribute(element, "config") : {};
+ return {
+ ...this.constructor.Default,
+ ...typeof jsonConfig === "object" ? jsonConfig : {},
+ ...isElement2(element) ? Manipulator.getDataAttributes(element) : {},
+ ...typeof config === "object" ? config : {}
+ };
+ }
+ _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
+ for (const [property, expectedTypes] of Object.entries(configTypes)) {
+ const value = config[property];
+ const valueType = isElement2(value) ? "element" : toType(value);
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
+ }
+ }
+ }
+ };
+ var VERSION = "5.3.0";
+ var BaseComponent = class extends Config {
+ constructor(element, config) {
+ super();
+ element = getElement(element);
+ if (!element) {
+ return;
+ }
+ this._element = element;
+ this._config = this._getConfig(config);
+ Data.set(this._element, this.constructor.DATA_KEY, this);
+ }
+ // Public
+ dispose() {
+ Data.remove(this._element, this.constructor.DATA_KEY);
+ EventHandler.off(this._element, this.constructor.EVENT_KEY);
+ for (const propertyName of Object.getOwnPropertyNames(this)) {
+ this[propertyName] = null;
+ }
+ }
+ _queueCallback(callback, element, isAnimated = true) {
+ executeAfterTransition(callback, element, isAnimated);
+ }
+ _getConfig(config) {
+ config = this._mergeConfigObj(config, this._element);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ // Static
+ static getInstance(element) {
+ return Data.get(getElement(element), this.DATA_KEY);
+ }
+ static getOrCreateInstance(element, config = {}) {
+ return this.getInstance(element) || new this(element, typeof config === "object" ? config : null);
+ }
+ static get VERSION() {
+ return VERSION;
+ }
+ static get DATA_KEY() {
+ return `bs.${this.NAME}`;
+ }
+ static get EVENT_KEY() {
+ return `.${this.DATA_KEY}`;
+ }
+ static eventName(name) {
+ return `${name}${this.EVENT_KEY}`;
+ }
+ };
+ var getSelector = (element) => {
+ let selector = element.getAttribute("data-bs-target");
+ if (!selector || selector === "#") {
+ let hrefAttribute = element.getAttribute("href");
+ if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) {
+ return null;
+ }
+ if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) {
+ hrefAttribute = `#${hrefAttribute.split("#")[1]}`;
+ }
+ selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null;
+ }
+ return parseSelector(selector);
+ };
+ var SelectorEngine = {
+ find(selector, element = document.documentElement) {
+ return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
+ },
+ findOne(selector, element = document.documentElement) {
+ return Element.prototype.querySelector.call(element, selector);
+ },
+ children(element, selector) {
+ return [].concat(...element.children).filter((child) => child.matches(selector));
+ },
+ parents(element, selector) {
+ const parents = [];
+ let ancestor = element.parentNode.closest(selector);
+ while (ancestor) {
+ parents.push(ancestor);
+ ancestor = ancestor.parentNode.closest(selector);
+ }
+ return parents;
+ },
+ prev(element, selector) {
+ let previous = element.previousElementSibling;
+ while (previous) {
+ if (previous.matches(selector)) {
+ return [previous];
+ }
+ previous = previous.previousElementSibling;
+ }
+ return [];
+ },
+ // TODO: this is now unused; remove later along with prev()
+ next(element, selector) {
+ let next = element.nextElementSibling;
+ while (next) {
+ if (next.matches(selector)) {
+ return [next];
+ }
+ next = next.nextElementSibling;
+ }
+ return [];
+ },
+ focusableChildren(element) {
+ const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector) => `${selector}:not([tabindex^="-"])`).join(",");
+ return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));
+ },
+ getSelectorFromElement(element) {
+ const selector = getSelector(element);
+ if (selector) {
+ return SelectorEngine.findOne(selector) ? selector : null;
+ }
+ return null;
+ },
+ getElementFromSelector(element) {
+ const selector = getSelector(element);
+ return selector ? SelectorEngine.findOne(selector) : null;
+ },
+ getMultipleElementsFromSelector(element) {
+ const selector = getSelector(element);
+ return selector ? SelectorEngine.find(selector) : [];
+ }
+ };
+ var enableDismissTrigger = (component, method = "hide") => {
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
+ const name = component.NAME;
+ EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) {
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
+ const instance = component.getOrCreateInstance(target);
+ instance[method]();
+ });
+ };
+ var NAME$f = "alert";
+ var DATA_KEY$a = "bs.alert";
+ var EVENT_KEY$b = `.${DATA_KEY$a}`;
+ var EVENT_CLOSE = `close${EVENT_KEY$b}`;
+ var EVENT_CLOSED = `closed${EVENT_KEY$b}`;
+ var CLASS_NAME_FADE$5 = "fade";
+ var CLASS_NAME_SHOW$8 = "show";
+ var Alert = class _Alert extends BaseComponent {
+ // Getters
+ static get NAME() {
+ return NAME$f;
+ }
+ // Public
+ close() {
+ const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
+ if (closeEvent.defaultPrevented) {
+ return;
+ }
+ this._element.classList.remove(CLASS_NAME_SHOW$8);
+ const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
+ this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
+ }
+ // Private
+ _destroyElement() {
+ this._element.remove();
+ EventHandler.trigger(this._element, EVENT_CLOSED);
+ this.dispose();
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Alert.getOrCreateInstance(this);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ });
+ }
+ };
+ enableDismissTrigger(Alert, "close");
+ defineJQueryPlugin(Alert);
+ var NAME$e = "button";
+ var DATA_KEY$9 = "bs.button";
+ var EVENT_KEY$a = `.${DATA_KEY$9}`;
+ var DATA_API_KEY$6 = ".data-api";
+ var CLASS_NAME_ACTIVE$3 = "active";
+ var SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
+ var EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
+ var Button = class _Button extends BaseComponent {
+ // Getters
+ static get NAME() {
+ return NAME$e;
+ }
+ // Public
+ toggle() {
+ this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Button.getOrCreateInstance(this);
+ if (config === "toggle") {
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => {
+ event.preventDefault();
+ const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
+ const data = Button.getOrCreateInstance(button);
+ data.toggle();
+ });
+ defineJQueryPlugin(Button);
+ var NAME$d = "swipe";
+ var EVENT_KEY$9 = ".bs.swipe";
+ var EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
+ var EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
+ var EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
+ var EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
+ var EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
+ var POINTER_TYPE_TOUCH = "touch";
+ var POINTER_TYPE_PEN = "pen";
+ var CLASS_NAME_POINTER_EVENT = "pointer-event";
+ var SWIPE_THRESHOLD = 40;
+ var Default$c = {
+ endCallback: null,
+ leftCallback: null,
+ rightCallback: null
+ };
+ var DefaultType$c = {
+ endCallback: "(function|null)",
+ leftCallback: "(function|null)",
+ rightCallback: "(function|null)"
+ };
+ var Swipe = class _Swipe extends Config {
+ constructor(element, config) {
+ super();
+ this._element = element;
+ if (!element || !_Swipe.isSupported()) {
+ return;
+ }
+ this._config = this._getConfig(config);
+ this._deltaX = 0;
+ this._supportPointerEvents = Boolean(window.PointerEvent);
+ this._initEvents();
+ }
+ // Getters
+ static get Default() {
+ return Default$c;
+ }
+ static get DefaultType() {
+ return DefaultType$c;
+ }
+ static get NAME() {
+ return NAME$d;
+ }
+ // Public
+ dispose() {
+ EventHandler.off(this._element, EVENT_KEY$9);
+ }
+ // Private
+ _start(event) {
+ if (!this._supportPointerEvents) {
+ this._deltaX = event.touches[0].clientX;
+ return;
+ }
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX;
+ }
+ }
+ _end(event) {
+ if (this._eventIsPointerPenTouch(event)) {
+ this._deltaX = event.clientX - this._deltaX;
+ }
+ this._handleSwipe();
+ execute(this._config.endCallback);
+ }
+ _move(event) {
+ this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
+ }
+ _handleSwipe() {
+ const absDeltaX = Math.abs(this._deltaX);
+ if (absDeltaX <= SWIPE_THRESHOLD) {
+ return;
+ }
+ const direction = absDeltaX / this._deltaX;
+ this._deltaX = 0;
+ if (!direction) {
+ return;
+ }
+ execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
+ }
+ _initEvents() {
+ if (this._supportPointerEvents) {
+ EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));
+ EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
+ } else {
+ EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));
+ EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));
+ EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));
+ }
+ }
+ _eventIsPointerPenTouch(event) {
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
+ }
+ // Static
+ static isSupported() {
+ return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
+ }
+ };
+ var NAME$c = "carousel";
+ var DATA_KEY$8 = "bs.carousel";
+ var EVENT_KEY$8 = `.${DATA_KEY$8}`;
+ var DATA_API_KEY$5 = ".data-api";
+ var ARROW_LEFT_KEY$1 = "ArrowLeft";
+ var ARROW_RIGHT_KEY$1 = "ArrowRight";
+ var TOUCHEVENT_COMPAT_WAIT = 500;
+ var ORDER_NEXT = "next";
+ var ORDER_PREV = "prev";
+ var DIRECTION_LEFT = "left";
+ var DIRECTION_RIGHT = "right";
+ var EVENT_SLIDE = `slide${EVENT_KEY$8}`;
+ var EVENT_SLID = `slid${EVENT_KEY$8}`;
+ var EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
+ var EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
+ var EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
+ var EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
+ var EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
+ var EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
+ var CLASS_NAME_CAROUSEL = "carousel";
+ var CLASS_NAME_ACTIVE$2 = "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 SELECTOR_ACTIVE = ".active";
+ var SELECTOR_ITEM = ".carousel-item";
+ var SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
+ var SELECTOR_ITEM_IMG = ".carousel-item img";
+ var SELECTOR_INDICATORS = ".carousel-indicators";
+ var SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]";
+ var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
+ var KEY_TO_DIRECTION = {
+ [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
+ [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
+ };
+ var Default$b = {
+ interval: 5e3,
+ keyboard: true,
+ pause: "hover",
+ ride: false,
+ touch: true,
+ wrap: true
+ };
+ var DefaultType$b = {
+ interval: "(number|boolean)",
+ // TODO:v6 remove boolean support
+ keyboard: "boolean",
+ pause: "(string|boolean)",
+ ride: "(boolean|string)",
+ touch: "boolean",
+ wrap: "boolean"
+ };
+ var Carousel = class _Carousel extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._interval = null;
+ this._activeElement = null;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this._swipeHelper = null;
+ this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
+ this._addEventListeners();
+ if (this._config.ride === CLASS_NAME_CAROUSEL) {
+ this.cycle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$b;
+ }
+ static get DefaultType() {
+ return DefaultType$b;
+ }
+ static get NAME() {
+ return NAME$c;
+ }
+ // Public
+ next() {
+ this._slide(ORDER_NEXT);
+ }
+ nextWhenVisible() {
+ if (!document.hidden && isVisible(this._element)) {
+ this.next();
+ }
+ }
+ prev() {
+ this._slide(ORDER_PREV);
+ }
+ pause() {
+ if (this._isSliding) {
+ triggerTransitionEnd(this._element);
+ }
+ this._clearInterval();
+ }
+ cycle() {
+ this._clearInterval();
+ this._updateInterval();
+ this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
+ }
+ _maybeEnableCycle() {
+ if (!this._config.ride) {
+ return;
+ }
+ if (this._isSliding) {
+ EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
+ return;
+ }
+ this.cycle();
+ }
+ to(index) {
+ const items = this._getItems();
+ if (index > items.length - 1 || index < 0) {
+ return;
+ }
+ if (this._isSliding) {
+ EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
+ return;
+ }
+ const activeIndex = this._getItemIndex(this._getActive());
+ if (activeIndex === index) {
+ return;
+ }
+ const order2 = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
+ this._slide(order2, items[index]);
+ }
+ dispose() {
+ if (this._swipeHelper) {
+ this._swipeHelper.dispose();
+ }
+ super.dispose();
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.defaultInterval = config.interval;
+ return config;
+ }
+ _addEventListeners() {
+ if (this._config.keyboard) {
+ EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event));
+ }
+ if (this._config.pause === "hover") {
+ EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
+ EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
+ }
+ if (this._config.touch && Swipe.isSupported()) {
+ this._addTouchEventListeners();
+ }
+ }
+ _addTouchEventListeners() {
+ for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
+ EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());
+ }
+ const endCallBack = () => {
+ if (this._config.pause !== "hover") {
+ return;
+ }
+ this.pause();
+ if (this.touchTimeout) {
+ clearTimeout(this.touchTimeout);
+ }
+ this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
+ };
+ const swipeConfig = {
+ leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
+ rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
+ endCallback: endCallBack
+ };
+ this._swipeHelper = new Swipe(this._element, swipeConfig);
+ }
+ _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+ const direction = KEY_TO_DIRECTION[event.key];
+ if (direction) {
+ event.preventDefault();
+ this._slide(this._directionToOrder(direction));
+ }
+ }
+ _getItemIndex(element) {
+ return this._getItems().indexOf(element);
+ }
+ _setActiveIndicatorElement(index) {
+ if (!this._indicatorsElement) {
+ return;
+ }
+ const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
+ activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
+ activeIndicator.removeAttribute("aria-current");
+ const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
+ if (newActiveIndicator) {
+ newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
+ newActiveIndicator.setAttribute("aria-current", "true");
+ }
+ }
+ _updateInterval() {
+ const element = this._activeElement || this._getActive();
+ if (!element) {
+ return;
+ }
+ const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10);
+ this._config.interval = elementInterval || this._config.defaultInterval;
+ }
+ _slide(order2, element = null) {
+ if (this._isSliding) {
+ return;
+ }
+ const activeElement = this._getActive();
+ const isNext = order2 === ORDER_NEXT;
+ const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
+ if (nextElement === activeElement) {
+ return;
+ }
+ const nextElementIndex = this._getItemIndex(nextElement);
+ const triggerEvent = (eventName) => {
+ return EventHandler.trigger(this._element, eventName, {
+ relatedTarget: nextElement,
+ direction: this._orderToDirection(order2),
+ from: this._getItemIndex(activeElement),
+ to: nextElementIndex
+ });
+ };
+ const slideEvent = triggerEvent(EVENT_SLIDE);
+ if (slideEvent.defaultPrevented) {
+ return;
+ }
+ if (!activeElement || !nextElement) {
+ return;
+ }
+ const isCycling = Boolean(this._interval);
+ this.pause();
+ this._isSliding = true;
+ this._setActiveIndicatorElement(nextElementIndex);
+ this._activeElement = nextElement;
+ const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
+ const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
+ nextElement.classList.add(orderClassName);
+ reflow(nextElement);
+ activeElement.classList.add(directionalClassName);
+ nextElement.classList.add(directionalClassName);
+ const completeCallBack = () => {
+ nextElement.classList.remove(directionalClassName, orderClassName);
+ nextElement.classList.add(CLASS_NAME_ACTIVE$2);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
+ this._isSliding = false;
+ triggerEvent(EVENT_SLID);
+ };
+ this._queueCallback(completeCallBack, activeElement, this._isAnimated());
+ if (isCycling) {
+ this.cycle();
+ }
+ }
+ _isAnimated() {
+ return this._element.classList.contains(CLASS_NAME_SLIDE);
+ }
+ _getActive() {
+ return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
+ }
+ _getItems() {
+ return SelectorEngine.find(SELECTOR_ITEM, this._element);
+ }
+ _clearInterval() {
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+ }
+ _directionToOrder(direction) {
+ if (isRTL()) {
+ return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
+ }
+ return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
+ }
+ _orderToDirection(order2) {
+ if (isRTL()) {
+ return order2 === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ return order2 === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Carousel.getOrCreateInstance(this, config);
+ if (typeof config === "number") {
+ data.to(config);
+ return;
+ }
+ if (typeof config === "string") {
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
+ return;
+ }
+ event.preventDefault();
+ const carousel = Carousel.getOrCreateInstance(target);
+ const slideIndex = this.getAttribute("data-bs-slide-to");
+ if (slideIndex) {
+ carousel.to(slideIndex);
+ carousel._maybeEnableCycle();
+ return;
+ }
+ if (Manipulator.getDataAttribute(this, "slide") === "next") {
+ carousel.next();
+ carousel._maybeEnableCycle();
+ return;
+ }
+ carousel.prev();
+ carousel._maybeEnableCycle();
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
+ const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
+ for (const carousel of carousels) {
+ Carousel.getOrCreateInstance(carousel);
+ }
+ });
+ defineJQueryPlugin(Carousel);
+ var NAME$b = "collapse";
+ var DATA_KEY$7 = "bs.collapse";
+ var EVENT_KEY$7 = `.${DATA_KEY$7}`;
+ var DATA_API_KEY$4 = ".data-api";
+ var EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
+ var EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
+ var EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
+ var EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
+ var EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
+ var CLASS_NAME_SHOW$7 = "show";
+ var CLASS_NAME_COLLAPSE = "collapse";
+ var CLASS_NAME_COLLAPSING = "collapsing";
+ var CLASS_NAME_COLLAPSED = "collapsed";
+ var CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
+ var CLASS_NAME_HORIZONTAL = "collapse-horizontal";
+ var WIDTH = "width";
+ var HEIGHT = "height";
+ var SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing";
+ var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
+ var Default$a = {
+ parent: null,
+ toggle: true
+ };
+ var DefaultType$a = {
+ parent: "(null|element)",
+ toggle: "boolean"
+ };
+ var Collapse = class _Collapse extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._isTransitioning = false;
+ this._triggerArray = [];
+ const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
+ for (const elem of toggleList) {
+ const selector = SelectorEngine.getSelectorFromElement(elem);
+ const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element);
+ if (selector !== null && filterElement.length) {
+ this._triggerArray.push(elem);
+ }
+ }
+ this._initializeChildren();
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
+ }
+ if (this._config.toggle) {
+ this.toggle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$a;
+ }
+ static get DefaultType() {
+ return DefaultType$a;
+ }
+ static get NAME() {
+ return NAME$b;
+ }
+ // Public
+ toggle() {
+ if (this._isShown()) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ }
+ show() {
+ if (this._isTransitioning || this._isShown()) {
+ return;
+ }
+ let activeChildren = [];
+ if (this._config.parent) {
+ activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => _Collapse.getOrCreateInstance(element, {
+ toggle: false
+ }));
+ }
+ if (activeChildren.length && activeChildren[0]._isTransitioning) {
+ return;
+ }
+ const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+ for (const activeInstance of activeChildren) {
+ activeInstance.hide();
+ }
+ const dimension = this._getDimension();
+ this._element.classList.remove(CLASS_NAME_COLLAPSE);
+ this._element.classList.add(CLASS_NAME_COLLAPSING);
+ this._element.style[dimension] = 0;
+ this._addAriaAndCollapsedClass(this._triggerArray, true);
+ this._isTransitioning = true;
+ const complete = () => {
+ this._isTransitioning = false;
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
+ this._element.style[dimension] = "";
+ EventHandler.trigger(this._element, EVENT_SHOWN$6);
+ };
+ const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ const scrollSize = `scroll${capitalizedDimension}`;
+ this._queueCallback(complete, this._element, true);
+ this._element.style[dimension] = `${this._element[scrollSize]}px`;
+ }
+ hide() {
+ if (this._isTransitioning || !this._isShown()) {
+ return;
+ }
+ const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+ const 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$7);
+ for (const trigger of this._triggerArray) {
+ const element = SelectorEngine.getElementFromSelector(trigger);
+ if (element && !this._isShown(element)) {
+ this._addAriaAndCollapsedClass([trigger], false);
+ }
+ }
+ this._isTransitioning = true;
+ const complete = () => {
+ this._isTransitioning = false;
+ this._element.classList.remove(CLASS_NAME_COLLAPSING);
+ this._element.classList.add(CLASS_NAME_COLLAPSE);
+ EventHandler.trigger(this._element, EVENT_HIDDEN$6);
+ };
+ this._element.style[dimension] = "";
+ this._queueCallback(complete, this._element, true);
+ }
+ _isShown(element = this._element) {
+ return element.classList.contains(CLASS_NAME_SHOW$7);
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.toggle = Boolean(config.toggle);
+ config.parent = getElement(config.parent);
+ return config;
+ }
+ _getDimension() {
+ return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
+ }
+ _initializeChildren() {
+ if (!this._config.parent) {
+ return;
+ }
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
+ for (const element of children) {
+ const selected = SelectorEngine.getElementFromSelector(element);
+ if (selected) {
+ this._addAriaAndCollapsedClass([element], this._isShown(selected));
+ }
+ }
+ }
+ _getFirstLevelChildren(selector) {
+ const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
+ return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element));
+ }
+ _addAriaAndCollapsedClass(triggerArray, isOpen) {
+ if (!triggerArray.length) {
+ return;
+ }
+ for (const element of triggerArray) {
+ element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
+ element.setAttribute("aria-expanded", isOpen);
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ const _config = {};
+ if (typeof config === "string" && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+ return this.each(function() {
+ const data = _Collapse.getOrCreateInstance(this, _config);
+ if (typeof config === "string") {
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ }
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) {
+ if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") {
+ event.preventDefault();
+ }
+ for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
+ Collapse.getOrCreateInstance(element, {
+ toggle: false
+ }).toggle();
+ }
+ });
+ defineJQueryPlugin(Collapse);
+ var NAME$a = "dropdown";
+ var DATA_KEY$6 = "bs.dropdown";
+ var EVENT_KEY$6 = `.${DATA_KEY$6}`;
+ var DATA_API_KEY$3 = ".data-api";
+ var ESCAPE_KEY$2 = "Escape";
+ var TAB_KEY$1 = "Tab";
+ var ARROW_UP_KEY$1 = "ArrowUp";
+ var ARROW_DOWN_KEY$1 = "ArrowDown";
+ var RIGHT_MOUSE_BUTTON = 2;
+ var EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
+ var EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
+ var EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
+ var EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
+ var EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
+ var CLASS_NAME_SHOW$6 = "show";
+ var CLASS_NAME_DROPUP = "dropup";
+ var CLASS_NAME_DROPEND = "dropend";
+ var CLASS_NAME_DROPSTART = "dropstart";
+ var CLASS_NAME_DROPUP_CENTER = "dropup-center";
+ var CLASS_NAME_DROPDOWN_CENTER = "dropdown-center";
+ var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
+ var SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
+ var SELECTOR_MENU = ".dropdown-menu";
+ var SELECTOR_NAVBAR = ".navbar";
+ 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 PLACEMENT_TOPCENTER = "top";
+ var PLACEMENT_BOTTOMCENTER = "bottom";
+ var Default$9 = {
+ autoClose: true,
+ boundary: "clippingParents",
+ display: "dynamic",
+ offset: [0, 2],
+ popperConfig: null,
+ reference: "toggle"
+ };
+ var DefaultType$9 = {
+ autoClose: "(boolean|string)",
+ boundary: "(string|element)",
+ display: "string",
+ offset: "(array|string|function)",
+ popperConfig: "(null|object|function)",
+ reference: "(string|element|object)"
+ };
+ var Dropdown = class _Dropdown extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._popper = null;
+ this._parent = this._element.parentNode;
+ this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
+ this._inNavbar = this._detectNavbar();
+ }
+ // Getters
+ static get Default() {
+ return Default$9;
+ }
+ static get DefaultType() {
+ return DefaultType$9;
+ }
+ static get NAME() {
+ return NAME$a;
+ }
+ // Public
+ toggle() {
+ return this._isShown() ? this.hide() : this.show();
+ }
+ show() {
+ if (isDisabled(this._element) || this._isShown()) {
+ return;
+ }
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._createPopper();
+ if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.on(element, "mouseover", noop);
+ }
+ }
+ this._element.focus();
+ this._element.setAttribute("aria-expanded", true);
+ this._menu.classList.add(CLASS_NAME_SHOW$6);
+ this._element.classList.add(CLASS_NAME_SHOW$6);
+ EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
+ }
+ hide() {
+ if (isDisabled(this._element) || !this._isShown()) {
+ return;
+ }
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ this._completeHide(relatedTarget);
+ }
+ dispose() {
+ if (this._popper) {
+ this._popper.destroy();
+ }
+ super.dispose();
+ }
+ update() {
+ this._inNavbar = this._detectNavbar();
+ if (this._popper) {
+ this._popper.update();
+ }
+ }
+ // Private
+ _completeHide(relatedTarget) {
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.off(element, "mouseover", noop);
+ }
+ }
+ if (this._popper) {
+ this._popper.destroy();
+ }
+ this._menu.classList.remove(CLASS_NAME_SHOW$6);
+ this._element.classList.remove(CLASS_NAME_SHOW$6);
+ this._element.setAttribute("aria-expanded", "false");
+ Manipulator.removeDataAttribute(this._menu, "popper");
+ EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
+ }
+ _getConfig(config) {
+ config = super._getConfig(config);
+ if (typeof config.reference === "object" && !isElement2(config.reference) && typeof config.reference.getBoundingClientRect !== "function") {
+ throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
+ }
+ return config;
+ }
+ _createPopper() {
+ if (typeof lib_exports === "undefined") {
+ throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
+ }
+ let referenceElement = this._element;
+ if (this._config.reference === "parent") {
+ referenceElement = this._parent;
+ } else if (isElement2(this._config.reference)) {
+ referenceElement = getElement(this._config.reference);
+ } else if (typeof this._config.reference === "object") {
+ referenceElement = this._config.reference;
+ }
+ const popperConfig = this._getPopperConfig();
+ this._popper = createPopper3(referenceElement, this._menu, popperConfig);
+ }
+ _isShown() {
+ return this._menu.classList.contains(CLASS_NAME_SHOW$6);
+ }
+ _getPlacement() {
+ const parentDropdown = this._parent;
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
+ return PLACEMENT_RIGHT;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
+ return PLACEMENT_LEFT;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
+ return PLACEMENT_TOPCENTER;
+ }
+ if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
+ return PLACEMENT_BOTTOMCENTER;
+ }
+ const 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;
+ }
+ _detectNavbar() {
+ return this._element.closest(SELECTOR_NAVBAR) !== null;
+ }
+ _getOffset() {
+ const {
+ offset: offset2
+ } = this._config;
+ if (typeof offset2 === "string") {
+ return offset2.split(",").map((value) => Number.parseInt(value, 10));
+ }
+ if (typeof offset2 === "function") {
+ return (popperData) => offset2(popperData, this._element);
+ }
+ return offset2;
+ }
+ _getPopperConfig() {
+ const defaultBsPopperConfig = {
+ placement: this._getPlacement(),
+ modifiers: [{
+ name: "preventOverflow",
+ options: {
+ boundary: this._config.boundary
+ }
+ }, {
+ name: "offset",
+ options: {
+ offset: this._getOffset()
+ }
+ }]
+ };
+ if (this._inNavbar || this._config.display === "static") {
+ Manipulator.setDataAttribute(this._menu, "popper", "static");
+ defaultBsPopperConfig.modifiers = [{
+ name: "applyStyles",
+ enabled: false
+ }];
+ }
+ return {
+ ...defaultBsPopperConfig,
+ ...execute(this._config.popperConfig, [defaultBsPopperConfig])
+ };
+ }
+ _selectMenuItem({
+ key,
+ target
+ }) {
+ const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element));
+ if (!items.length) {
+ return;
+ }
+ getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Dropdown.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ static clearMenus(event) {
+ if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) {
+ return;
+ }
+ const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
+ for (const toggle of openToggles) {
+ const context = _Dropdown.getInstance(toggle);
+ if (!context || context._config.autoClose === false) {
+ continue;
+ }
+ const composedPath = event.composedPath();
+ const isMenuTarget = composedPath.includes(context._menu);
+ if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) {
+ continue;
+ }
+ if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
+ continue;
+ }
+ const relatedTarget = {
+ relatedTarget: context._element
+ };
+ if (event.type === "click") {
+ relatedTarget.clickEvent = event;
+ }
+ context._completeHide(relatedTarget);
+ }
+ }
+ static dataApiKeydownHandler(event) {
+ const isInput = /input|textarea/i.test(event.target.tagName);
+ const isEscapeEvent = event.key === ESCAPE_KEY$2;
+ const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
+ if (!isUpOrDownEvent && !isEscapeEvent) {
+ return;
+ }
+ if (isInput && !isEscapeEvent) {
+ return;
+ }
+ event.preventDefault();
+ const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
+ const instance = _Dropdown.getOrCreateInstance(getToggleButton);
+ if (isUpOrDownEvent) {
+ event.stopPropagation();
+ instance.show();
+ instance._selectMenuItem(event);
+ return;
+ }
+ if (instance._isShown()) {
+ event.stopPropagation();
+ instance.hide();
+ getToggleButton.focus();
+ }
+ }
+ };
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
+ EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
+ EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
+ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) {
+ event.preventDefault();
+ Dropdown.getOrCreateInstance(this).toggle();
+ });
+ defineJQueryPlugin(Dropdown);
+ var NAME$9 = "backdrop";
+ var CLASS_NAME_FADE$4 = "fade";
+ var CLASS_NAME_SHOW$5 = "show";
+ var EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
+ var Default$8 = {
+ className: "modal-backdrop",
+ clickCallback: null,
+ isAnimated: false,
+ isVisible: true,
+ // if false, we use the backdrop helper without adding any element to the dom
+ rootElement: "body"
+ // give the choice to place backdrop under different elements
+ };
+ var DefaultType$8 = {
+ className: "string",
+ clickCallback: "(function|null)",
+ isAnimated: "boolean",
+ isVisible: "boolean",
+ rootElement: "(element|string)"
+ };
+ var Backdrop = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ this._isAppended = false;
+ this._element = null;
+ }
+ // Getters
+ static get Default() {
+ return Default$8;
+ }
+ static get DefaultType() {
+ return DefaultType$8;
+ }
+ static get NAME() {
+ return NAME$9;
+ }
+ // Public
+ show(callback) {
+ if (!this._config.isVisible) {
+ execute(callback);
+ return;
+ }
+ this._append();
+ const element = this._getElement();
+ if (this._config.isAnimated) {
+ reflow(element);
+ }
+ element.classList.add(CLASS_NAME_SHOW$5);
+ this._emulateAnimation(() => {
+ execute(callback);
+ });
+ }
+ hide(callback) {
+ if (!this._config.isVisible) {
+ execute(callback);
+ return;
+ }
+ this._getElement().classList.remove(CLASS_NAME_SHOW$5);
+ this._emulateAnimation(() => {
+ this.dispose();
+ execute(callback);
+ });
+ }
+ dispose() {
+ if (!this._isAppended) {
+ return;
+ }
+ EventHandler.off(this._element, EVENT_MOUSEDOWN);
+ this._element.remove();
+ this._isAppended = false;
+ }
+ // Private
+ _getElement() {
+ if (!this._element) {
+ const backdrop = document.createElement("div");
+ backdrop.className = this._config.className;
+ if (this._config.isAnimated) {
+ backdrop.classList.add(CLASS_NAME_FADE$4);
+ }
+ this._element = backdrop;
+ }
+ return this._element;
+ }
+ _configAfterMerge(config) {
+ config.rootElement = getElement(config.rootElement);
+ return config;
+ }
+ _append() {
+ if (this._isAppended) {
+ return;
+ }
+ const element = this._getElement();
+ this._config.rootElement.append(element);
+ EventHandler.on(element, EVENT_MOUSEDOWN, () => {
+ execute(this._config.clickCallback);
+ });
+ this._isAppended = true;
+ }
+ _emulateAnimation(callback) {
+ executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
+ }
+ };
+ var NAME$8 = "focustrap";
+ var DATA_KEY$5 = "bs.focustrap";
+ var EVENT_KEY$5 = `.${DATA_KEY$5}`;
+ var EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
+ var EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
+ var TAB_KEY = "Tab";
+ var TAB_NAV_FORWARD = "forward";
+ var TAB_NAV_BACKWARD = "backward";
+ var Default$7 = {
+ autofocus: true,
+ trapElement: null
+ // The element to trap focus inside of
+ };
+ var DefaultType$7 = {
+ autofocus: "boolean",
+ trapElement: "element"
+ };
+ var FocusTrap = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ this._isActive = false;
+ this._lastTabNavDirection = null;
+ }
+ // Getters
+ static get Default() {
+ return Default$7;
+ }
+ static get DefaultType() {
+ return DefaultType$7;
+ }
+ static get NAME() {
+ return NAME$8;
+ }
+ // Public
+ activate() {
+ if (this._isActive) {
+ return;
+ }
+ if (this._config.autofocus) {
+ this._config.trapElement.focus();
+ }
+ EventHandler.off(document, EVENT_KEY$5);
+ EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event));
+ EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
+ this._isActive = true;
+ }
+ deactivate() {
+ if (!this._isActive) {
+ return;
+ }
+ this._isActive = false;
+ EventHandler.off(document, EVENT_KEY$5);
+ }
+ // Private
+ _handleFocusin(event) {
+ const {
+ trapElement
+ } = this._config;
+ if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
+ return;
+ }
+ const elements = SelectorEngine.focusableChildren(trapElement);
+ if (elements.length === 0) {
+ trapElement.focus();
+ } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
+ elements[elements.length - 1].focus();
+ } else {
+ elements[0].focus();
+ }
+ }
+ _handleKeydown(event) {
+ if (event.key !== TAB_KEY) {
+ return;
+ }
+ this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
+ }
+ };
+ var SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top";
+ var SELECTOR_STICKY_CONTENT = ".sticky-top";
+ var PROPERTY_PADDING = "padding-right";
+ var PROPERTY_MARGIN = "margin-right";
+ var ScrollBarHelper = class {
+ constructor() {
+ this._element = document.body;
+ }
+ // Public
+ getWidth() {
+ const documentWidth = document.documentElement.clientWidth;
+ return Math.abs(window.innerWidth - documentWidth);
+ }
+ hide() {
+ const width = this.getWidth();
+ this._disableOverFlow();
+ this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
+ this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
+ this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width);
+ }
+ reset() {
+ this._resetElementAttributes(this._element, "overflow");
+ this._resetElementAttributes(this._element, PROPERTY_PADDING);
+ this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
+ this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
+ }
+ isOverflowing() {
+ return this.getWidth() > 0;
+ }
+ // Private
+ _disableOverFlow() {
+ this._saveInitialAttribute(this._element, "overflow");
+ this._element.style.overflow = "hidden";
+ }
+ _setElementAttributes(selector, styleProperty, callback) {
+ const scrollbarWidth = this.getWidth();
+ const manipulationCallBack = (element) => {
+ if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
+ return;
+ }
+ this._saveInitialAttribute(element, styleProperty);
+ const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
+ element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
+ };
+ this._applyManipulationCallback(selector, manipulationCallBack);
+ }
+ _saveInitialAttribute(element, styleProperty) {
+ const actualValue = element.style.getPropertyValue(styleProperty);
+ if (actualValue) {
+ Manipulator.setDataAttribute(element, styleProperty, actualValue);
+ }
+ }
+ _resetElementAttributes(selector, styleProperty) {
+ const manipulationCallBack = (element) => {
+ const value = Manipulator.getDataAttribute(element, styleProperty);
+ if (value === null) {
+ element.style.removeProperty(styleProperty);
+ return;
+ }
+ Manipulator.removeDataAttribute(element, styleProperty);
+ element.style.setProperty(styleProperty, value);
+ };
+ this._applyManipulationCallback(selector, manipulationCallBack);
+ }
+ _applyManipulationCallback(selector, callBack) {
+ if (isElement2(selector)) {
+ callBack(selector);
+ return;
+ }
+ for (const sel of SelectorEngine.find(selector, this._element)) {
+ callBack(sel);
+ }
+ }
+ };
+ var NAME$7 = "modal";
+ var DATA_KEY$4 = "bs.modal";
+ var EVENT_KEY$4 = `.${DATA_KEY$4}`;
+ var DATA_API_KEY$2 = ".data-api";
+ var ESCAPE_KEY$1 = "Escape";
+ var EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
+ var EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
+ var EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
+ var EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
+ var EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
+ var EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
+ var EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
+ var EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
+ var EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
+ var EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
+ var CLASS_NAME_OPEN = "modal-open";
+ var CLASS_NAME_FADE$3 = "fade";
+ var CLASS_NAME_SHOW$4 = "show";
+ var CLASS_NAME_STATIC = "modal-static";
+ var OPEN_SELECTOR$1 = ".modal.show";
+ var SELECTOR_DIALOG = ".modal-dialog";
+ var SELECTOR_MODAL_BODY = ".modal-body";
+ var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
+ var Default$6 = {
+ backdrop: true,
+ focus: true,
+ keyboard: true
+ };
+ var DefaultType$6 = {
+ backdrop: "(boolean|string)",
+ focus: "boolean",
+ keyboard: "boolean"
+ };
+ var Modal = class _Modal extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
+ this._backdrop = this._initializeBackDrop();
+ this._focustrap = this._initializeFocusTrap();
+ this._isShown = false;
+ this._isTransitioning = false;
+ this._scrollBar = new ScrollBarHelper();
+ this._addEventListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default$6;
+ }
+ static get DefaultType() {
+ return DefaultType$6;
+ }
+ static get NAME() {
+ return NAME$7;
+ }
+ // Public
+ toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+ show(relatedTarget) {
+ if (this._isShown || this._isTransitioning) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
+ relatedTarget
+ });
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = true;
+ this._isTransitioning = true;
+ this._scrollBar.hide();
+ document.body.classList.add(CLASS_NAME_OPEN);
+ this._adjustDialog();
+ this._backdrop.show(() => this._showElement(relatedTarget));
+ }
+ hide() {
+ if (!this._isShown || this._isTransitioning) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = false;
+ this._isTransitioning = true;
+ this._focustrap.deactivate();
+ this._element.classList.remove(CLASS_NAME_SHOW$4);
+ this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
+ }
+ dispose() {
+ EventHandler.off(window, EVENT_KEY$4);
+ EventHandler.off(this._dialog, EVENT_KEY$4);
+ this._backdrop.dispose();
+ this._focustrap.deactivate();
+ super.dispose();
+ }
+ handleUpdate() {
+ this._adjustDialog();
+ }
+ // Private
+ _initializeBackDrop() {
+ return new Backdrop({
+ isVisible: Boolean(this._config.backdrop),
+ // 'static' option will be translated to true, and booleans will keep their value,
+ isAnimated: this._isAnimated()
+ });
+ }
+ _initializeFocusTrap() {
+ return new FocusTrap({
+ trapElement: this._element
+ });
+ }
+ _showElement(relatedTarget) {
+ if (!document.body.contains(this._element)) {
+ document.body.append(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;
+ const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
+ if (modalBody) {
+ modalBody.scrollTop = 0;
+ }
+ reflow(this._element);
+ this._element.classList.add(CLASS_NAME_SHOW$4);
+ const transitionComplete = () => {
+ if (this._config.focus) {
+ this._focustrap.activate();
+ }
+ this._isTransitioning = false;
+ EventHandler.trigger(this._element, EVENT_SHOWN$4, {
+ relatedTarget
+ });
+ };
+ this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
+ }
+ _addEventListeners() {
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => {
+ if (event.key !== ESCAPE_KEY$1) {
+ return;
+ }
+ if (this._config.keyboard) {
+ this.hide();
+ return;
+ }
+ this._triggerBackdropTransition();
+ });
+ EventHandler.on(window, EVENT_RESIZE$1, () => {
+ if (this._isShown && !this._isTransitioning) {
+ this._adjustDialog();
+ }
+ });
+ EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {
+ EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {
+ if (this._element !== event.target || this._element !== event2.target) {
+ return;
+ }
+ if (this._config.backdrop === "static") {
+ this._triggerBackdropTransition();
+ return;
+ }
+ if (this._config.backdrop) {
+ this.hide();
+ }
+ });
+ });
+ }
+ _hideModal() {
+ this._element.style.display = "none";
+ this._element.setAttribute("aria-hidden", true);
+ this._element.removeAttribute("aria-modal");
+ this._element.removeAttribute("role");
+ this._isTransitioning = false;
+ this._backdrop.hide(() => {
+ document.body.classList.remove(CLASS_NAME_OPEN);
+ this._resetAdjustments();
+ this._scrollBar.reset();
+ EventHandler.trigger(this._element, EVENT_HIDDEN$4);
+ });
+ }
+ _isAnimated() {
+ return this._element.classList.contains(CLASS_NAME_FADE$3);
+ }
+ _triggerBackdropTransition() {
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ const initialOverflowY = this._element.style.overflowY;
+ if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) {
+ return;
+ }
+ if (!isModalOverflowing) {
+ this._element.style.overflowY = "hidden";
+ }
+ this._element.classList.add(CLASS_NAME_STATIC);
+ this._queueCallback(() => {
+ this._element.classList.remove(CLASS_NAME_STATIC);
+ this._queueCallback(() => {
+ this._element.style.overflowY = initialOverflowY;
+ }, this._dialog);
+ }, this._dialog);
+ this._element.focus();
+ }
+ /**
+ * The following methods are used to handle overflowing modals
+ */
+ _adjustDialog() {
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ const scrollbarWidth = this._scrollBar.getWidth();
+ const isBodyOverflowing = scrollbarWidth > 0;
+ if (isBodyOverflowing && !isModalOverflowing) {
+ const property = isRTL() ? "paddingLeft" : "paddingRight";
+ this._element.style[property] = `${scrollbarWidth}px`;
+ }
+ if (!isBodyOverflowing && isModalOverflowing) {
+ const property = isRTL() ? "paddingRight" : "paddingLeft";
+ this._element.style[property] = `${scrollbarWidth}px`;
+ }
+ }
+ _resetAdjustments() {
+ this._element.style.paddingLeft = "";
+ this._element.style.paddingRight = "";
+ }
+ // Static
+ static jQueryInterface(config, relatedTarget) {
+ return this.each(function() {
+ const data = _Modal.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](relatedTarget);
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ EventHandler.one(target, EVENT_SHOW$4, (showEvent) => {
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ EventHandler.one(target, EVENT_HIDDEN$4, () => {
+ if (isVisible(this)) {
+ this.focus();
+ }
+ });
+ });
+ const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
+ if (alreadyOpen) {
+ Modal.getInstance(alreadyOpen).hide();
+ }
+ const data = Modal.getOrCreateInstance(target);
+ data.toggle(this);
+ });
+ enableDismissTrigger(Modal);
+ defineJQueryPlugin(Modal);
+ var NAME$6 = "offcanvas";
+ var DATA_KEY$3 = "bs.offcanvas";
+ var EVENT_KEY$3 = `.${DATA_KEY$3}`;
+ var DATA_API_KEY$1 = ".data-api";
+ var EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
+ var ESCAPE_KEY = "Escape";
+ var CLASS_NAME_SHOW$3 = "show";
+ var CLASS_NAME_SHOWING$1 = "showing";
+ var CLASS_NAME_HIDING = "hiding";
+ var CLASS_NAME_BACKDROP = "offcanvas-backdrop";
+ var OPEN_SELECTOR = ".offcanvas.show";
+ var EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
+ var EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
+ var EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
+ var EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
+ var EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
+ var EVENT_RESIZE = `resize${EVENT_KEY$3}`;
+ var EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
+ var EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
+ var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
+ var Default$5 = {
+ backdrop: true,
+ keyboard: true,
+ scroll: false
+ };
+ var DefaultType$5 = {
+ backdrop: "(boolean|string)",
+ keyboard: "boolean",
+ scroll: "boolean"
+ };
+ var Offcanvas = class _Offcanvas extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._isShown = false;
+ this._backdrop = this._initializeBackDrop();
+ this._focustrap = this._initializeFocusTrap();
+ this._addEventListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default$5;
+ }
+ static get DefaultType() {
+ return DefaultType$5;
+ }
+ static get NAME() {
+ return NAME$6;
+ }
+ // Public
+ toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+ show(relatedTarget) {
+ if (this._isShown) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
+ relatedTarget
+ });
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._isShown = true;
+ this._backdrop.show();
+ if (!this._config.scroll) {
+ new ScrollBarHelper().hide();
+ }
+ this._element.setAttribute("aria-modal", true);
+ this._element.setAttribute("role", "dialog");
+ this._element.classList.add(CLASS_NAME_SHOWING$1);
+ const completeCallBack = () => {
+ if (!this._config.scroll || this._config.backdrop) {
+ this._focustrap.activate();
+ }
+ this._element.classList.add(CLASS_NAME_SHOW$3);
+ this._element.classList.remove(CLASS_NAME_SHOWING$1);
+ EventHandler.trigger(this._element, EVENT_SHOWN$3, {
+ relatedTarget
+ });
+ };
+ this._queueCallback(completeCallBack, this._element, true);
+ }
+ hide() {
+ if (!this._isShown) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ this._focustrap.deactivate();
+ this._element.blur();
+ this._isShown = false;
+ this._element.classList.add(CLASS_NAME_HIDING);
+ this._backdrop.hide();
+ const completeCallback = () => {
+ this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
+ this._element.removeAttribute("aria-modal");
+ this._element.removeAttribute("role");
+ if (!this._config.scroll) {
+ new ScrollBarHelper().reset();
+ }
+ EventHandler.trigger(this._element, EVENT_HIDDEN$3);
+ };
+ this._queueCallback(completeCallback, this._element, true);
+ }
+ dispose() {
+ this._backdrop.dispose();
+ this._focustrap.deactivate();
+ super.dispose();
+ }
+ // Private
+ _initializeBackDrop() {
+ const clickCallback = () => {
+ if (this._config.backdrop === "static") {
+ EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
+ return;
+ }
+ this.hide();
+ };
+ const isVisible2 = Boolean(this._config.backdrop);
+ return new Backdrop({
+ className: CLASS_NAME_BACKDROP,
+ isVisible: isVisible2,
+ isAnimated: true,
+ rootElement: this._element.parentNode,
+ clickCallback: isVisible2 ? clickCallback : null
+ });
+ }
+ _initializeFocusTrap() {
+ return new FocusTrap({
+ trapElement: this._element
+ });
+ }
+ _addEventListeners() {
+ EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {
+ if (event.key !== ESCAPE_KEY) {
+ return;
+ }
+ if (this._config.keyboard) {
+ this.hide();
+ return;
+ }
+ EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
+ });
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Offcanvas.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) {
+ const target = SelectorEngine.getElementFromSelector(this);
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ EventHandler.one(target, EVENT_HIDDEN$3, () => {
+ if (isVisible(this)) {
+ this.focus();
+ }
+ });
+ const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
+ if (alreadyOpen && alreadyOpen !== target) {
+ Offcanvas.getInstance(alreadyOpen).hide();
+ }
+ const data = Offcanvas.getOrCreateInstance(target);
+ data.toggle(this);
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
+ for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
+ Offcanvas.getOrCreateInstance(selector).show();
+ }
+ });
+ EventHandler.on(window, EVENT_RESIZE, () => {
+ for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) {
+ if (getComputedStyle(element).position !== "fixed") {
+ Offcanvas.getOrCreateInstance(element).hide();
+ }
+ }
+ });
+ enableDismissTrigger(Offcanvas);
+ defineJQueryPlugin(Offcanvas);
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
+ 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: []
+ };
+ var uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]);
+ var SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
+ var allowedAttribute = (attribute, allowedAttributeList) => {
+ const attributeName = attribute.nodeName.toLowerCase();
+ if (allowedAttributeList.includes(attributeName)) {
+ if (uriAttributes.has(attributeName)) {
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
+ }
+ return true;
+ }
+ return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName));
+ };
+ function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
+ if (!unsafeHtml.length) {
+ return unsafeHtml;
+ }
+ if (sanitizeFunction && typeof sanitizeFunction === "function") {
+ return sanitizeFunction(unsafeHtml);
+ }
+ const domParser = new window.DOMParser();
+ const createdDocument = domParser.parseFromString(unsafeHtml, "text/html");
+ const elements = [].concat(...createdDocument.body.querySelectorAll("*"));
+ for (const element of elements) {
+ const elementName = element.nodeName.toLowerCase();
+ if (!Object.keys(allowList).includes(elementName)) {
+ element.remove();
+ continue;
+ }
+ const attributeList = [].concat(...element.attributes);
+ const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []);
+ for (const attribute of attributeList) {
+ if (!allowedAttribute(attribute, allowedAttributes)) {
+ element.removeAttribute(attribute.nodeName);
+ }
+ }
+ }
+ return createdDocument.body.innerHTML;
+ }
+ var NAME$5 = "TemplateFactory";
+ var Default$4 = {
+ allowList: DefaultAllowlist,
+ content: {},
+ // { selector : text , selector2 : text2 , }
+ extraClass: "",
+ html: false,
+ sanitize: true,
+ sanitizeFn: null,
+ template: ""
+ };
+ var DefaultType$4 = {
+ allowList: "object",
+ content: "object",
+ extraClass: "(string|function)",
+ html: "boolean",
+ sanitize: "boolean",
+ sanitizeFn: "(null|function)",
+ template: "string"
+ };
+ var DefaultContentType = {
+ entry: "(string|element|function|null)",
+ selector: "(string|element)"
+ };
+ var TemplateFactory = class extends Config {
+ constructor(config) {
+ super();
+ this._config = this._getConfig(config);
+ }
+ // Getters
+ static get Default() {
+ return Default$4;
+ }
+ static get DefaultType() {
+ return DefaultType$4;
+ }
+ static get NAME() {
+ return NAME$5;
+ }
+ // Public
+ getContent() {
+ return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean);
+ }
+ hasContent() {
+ return this.getContent().length > 0;
+ }
+ changeContent(content) {
+ this._checkContent(content);
+ this._config.content = {
+ ...this._config.content,
+ ...content
+ };
+ return this;
+ }
+ toHtml() {
+ const templateWrapper = document.createElement("div");
+ templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
+ for (const [selector, text] of Object.entries(this._config.content)) {
+ this._setContent(templateWrapper, text, selector);
+ }
+ const template = templateWrapper.children[0];
+ const extraClass = this._resolvePossibleFunction(this._config.extraClass);
+ if (extraClass) {
+ template.classList.add(...extraClass.split(" "));
+ }
+ return template;
+ }
+ // Private
+ _typeCheckConfig(config) {
+ super._typeCheckConfig(config);
+ this._checkContent(config.content);
+ }
+ _checkContent(arg) {
+ for (const [selector, content] of Object.entries(arg)) {
+ super._typeCheckConfig({
+ selector,
+ entry: content
+ }, DefaultContentType);
+ }
+ }
+ _setContent(template, content, selector) {
+ const templateElement = SelectorEngine.findOne(selector, template);
+ if (!templateElement) {
+ return;
+ }
+ content = this._resolvePossibleFunction(content);
+ if (!content) {
+ templateElement.remove();
+ return;
+ }
+ if (isElement2(content)) {
+ this._putElementInTemplate(getElement(content), templateElement);
+ return;
+ }
+ if (this._config.html) {
+ templateElement.innerHTML = this._maybeSanitize(content);
+ return;
+ }
+ templateElement.textContent = content;
+ }
+ _maybeSanitize(arg) {
+ return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
+ }
+ _resolvePossibleFunction(arg) {
+ return execute(arg, [this]);
+ }
+ _putElementInTemplate(element, templateElement) {
+ if (this._config.html) {
+ templateElement.innerHTML = "";
+ templateElement.append(element);
+ return;
+ }
+ templateElement.textContent = element.textContent;
+ }
+ };
+ var NAME$4 = "tooltip";
+ var DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]);
+ var CLASS_NAME_FADE$2 = "fade";
+ var CLASS_NAME_MODAL = "modal";
+ var CLASS_NAME_SHOW$2 = "show";
+ var SELECTOR_TOOLTIP_INNER = ".tooltip-inner";
+ var SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
+ var EVENT_MODAL_HIDE = "hide.bs.modal";
+ var TRIGGER_HOVER = "hover";
+ var TRIGGER_FOCUS = "focus";
+ var TRIGGER_CLICK = "click";
+ var TRIGGER_MANUAL = "manual";
+ var EVENT_HIDE$2 = "hide";
+ var EVENT_HIDDEN$2 = "hidden";
+ var EVENT_SHOW$2 = "show";
+ var EVENT_SHOWN$2 = "shown";
+ var EVENT_INSERTED = "inserted";
+ var EVENT_CLICK$1 = "click";
+ var EVENT_FOCUSIN$1 = "focusin";
+ var EVENT_FOCUSOUT$1 = "focusout";
+ var EVENT_MOUSEENTER = "mouseenter";
+ var EVENT_MOUSELEAVE = "mouseleave";
+ var AttachmentMap = {
+ AUTO: "auto",
+ TOP: "top",
+ RIGHT: isRTL() ? "left" : "right",
+ BOTTOM: "bottom",
+ LEFT: isRTL() ? "right" : "left"
+ };
+ var Default$3 = {
+ allowList: DefaultAllowlist,
+ animation: true,
+ boundary: "clippingParents",
+ container: false,
+ customClass: "",
+ delay: 0,
+ fallbackPlacements: ["top", "right", "bottom", "left"],
+ html: false,
+ offset: [0, 6],
+ placement: "top",
+ popperConfig: null,
+ sanitize: true,
+ sanitizeFn: null,
+ selector: false,
+ template: '',
+ title: "",
+ trigger: "hover focus"
+ };
+ var DefaultType$3 = {
+ allowList: "object",
+ animation: "boolean",
+ boundary: "(string|element)",
+ container: "(string|element|boolean)",
+ customClass: "(string|function)",
+ delay: "(number|object)",
+ fallbackPlacements: "array",
+ html: "boolean",
+ offset: "(array|string|function)",
+ placement: "(string|function)",
+ popperConfig: "(null|object|function)",
+ sanitize: "boolean",
+ sanitizeFn: "(null|function)",
+ selector: "(string|boolean)",
+ template: "string",
+ title: "(string|element|function)",
+ trigger: "string"
+ };
+ var Tooltip = class _Tooltip extends BaseComponent {
+ constructor(element, config) {
+ if (typeof lib_exports === "undefined") {
+ throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
+ }
+ super(element, config);
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._isHovered = null;
+ this._activeTrigger = {};
+ this._popper = null;
+ this._templateFactory = null;
+ this._newContent = null;
+ this.tip = null;
+ this._setListeners();
+ if (!this._config.selector) {
+ this._fixTitle();
+ }
+ }
+ // Getters
+ static get Default() {
+ return Default$3;
+ }
+ static get DefaultType() {
+ return DefaultType$3;
+ }
+ static get NAME() {
+ return NAME$4;
+ }
+ // Public
+ enable() {
+ this._isEnabled = true;
+ }
+ disable() {
+ this._isEnabled = false;
+ }
+ toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ }
+ toggle() {
+ if (!this._isEnabled) {
+ return;
+ }
+ this._activeTrigger.click = !this._activeTrigger.click;
+ if (this._isShown()) {
+ this._leave();
+ return;
+ }
+ this._enter();
+ }
+ dispose() {
+ clearTimeout(this._timeout);
+ EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
+ if (this._element.getAttribute("data-bs-original-title")) {
+ this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title"));
+ }
+ this._disposePopper();
+ super.dispose();
+ }
+ show() {
+ if (this._element.style.display === "none") {
+ throw new Error("Please use show on visible elements");
+ }
+ if (!(this._isWithContent() && this._isEnabled)) {
+ return;
+ }
+ const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
+ const shadowRoot = findShadowRoot(this._element);
+ const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
+ if (showEvent.defaultPrevented || !isInTheDom) {
+ return;
+ }
+ this._disposePopper();
+ const tip = this._getTipElement();
+ this._element.setAttribute("aria-describedby", tip.getAttribute("id"));
+ const {
+ container
+ } = this._config;
+ if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
+ container.append(tip);
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
+ }
+ this._popper = this._createPopper(tip);
+ tip.classList.add(CLASS_NAME_SHOW$2);
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.on(element, "mouseover", noop);
+ }
+ }
+ const complete = () => {
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
+ if (this._isHovered === false) {
+ this._leave();
+ }
+ this._isHovered = false;
+ };
+ this._queueCallback(complete, this.tip, this._isAnimated());
+ }
+ hide() {
+ if (!this._isShown()) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const tip = this._getTipElement();
+ tip.classList.remove(CLASS_NAME_SHOW$2);
+ if ("ontouchstart" in document.documentElement) {
+ for (const element of [].concat(...document.body.children)) {
+ EventHandler.off(element, "mouseover", noop);
+ }
+ }
+ this._activeTrigger[TRIGGER_CLICK] = false;
+ this._activeTrigger[TRIGGER_FOCUS] = false;
+ this._activeTrigger[TRIGGER_HOVER] = false;
+ this._isHovered = null;
+ const complete = () => {
+ if (this._isWithActiveTrigger()) {
+ return;
+ }
+ if (!this._isHovered) {
+ this._disposePopper();
+ }
+ this._element.removeAttribute("aria-describedby");
+ EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
+ };
+ this._queueCallback(complete, this.tip, this._isAnimated());
+ }
+ update() {
+ if (this._popper) {
+ this._popper.update();
+ }
+ }
+ // Protected
+ _isWithContent() {
+ return Boolean(this._getTitle());
+ }
+ _getTipElement() {
+ if (!this.tip) {
+ this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
+ }
+ return this.tip;
+ }
+ _createTipElement(content) {
+ const tip = this._getTemplateFactory(content).toHtml();
+ if (!tip) {
+ return null;
+ }
+ tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
+ tip.classList.add(`bs-${this.constructor.NAME}-auto`);
+ const tipId = getUID(this.constructor.NAME).toString();
+ tip.setAttribute("id", tipId);
+ if (this._isAnimated()) {
+ tip.classList.add(CLASS_NAME_FADE$2);
+ }
+ return tip;
+ }
+ setContent(content) {
+ this._newContent = content;
+ if (this._isShown()) {
+ this._disposePopper();
+ this.show();
+ }
+ }
+ _getTemplateFactory(content) {
+ if (this._templateFactory) {
+ this._templateFactory.changeContent(content);
+ } else {
+ this._templateFactory = new TemplateFactory({
+ ...this._config,
+ // the `content` var has to be after `this._config`
+ // to override config.content in case of popover
+ content,
+ extraClass: this._resolvePossibleFunction(this._config.customClass)
+ });
+ }
+ return this._templateFactory;
+ }
+ _getContentForTemplate() {
+ return {
+ [SELECTOR_TOOLTIP_INNER]: this._getTitle()
+ };
+ }
+ _getTitle() {
+ return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
+ }
+ // Private
+ _initializeOnDelegatedTarget(event) {
+ return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
+ }
+ _isAnimated() {
+ return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
+ }
+ _isShown() {
+ return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
+ }
+ _createPopper(tip) {
+ const placement = execute(this._config.placement, [this, tip, this._element]);
+ const attachment = AttachmentMap[placement.toUpperCase()];
+ return createPopper3(this._element, tip, this._getPopperConfig(attachment));
+ }
+ _getOffset() {
+ const {
+ offset: offset2
+ } = this._config;
+ if (typeof offset2 === "string") {
+ return offset2.split(",").map((value) => Number.parseInt(value, 10));
+ }
+ if (typeof offset2 === "function") {
+ return (popperData) => offset2(popperData, this._element);
+ }
+ return offset2;
+ }
+ _resolvePossibleFunction(arg) {
+ return execute(arg, [this._element]);
+ }
+ _getPopperConfig(attachment) {
+ const defaultBsPopperConfig = {
+ placement: attachment,
+ modifiers: [{
+ name: "flip",
+ options: {
+ 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: "preSetPlacement",
+ enabled: true,
+ phase: "beforeMain",
+ fn: (data) => {
+ this._getTipElement().setAttribute("data-popper-placement", data.state.placement);
+ }
+ }]
+ };
+ return {
+ ...defaultBsPopperConfig,
+ ...execute(this._config.popperConfig, [defaultBsPopperConfig])
+ };
+ }
+ _setListeners() {
+ const triggers = this._config.trigger.split(" ");
+ for (const trigger of triggers) {
+ if (trigger === "click") {
+ EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context.toggle();
+ });
+ } else if (trigger !== TRIGGER_MANUAL) {
+ const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
+ const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
+ EventHandler.on(this._element, eventIn, this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
+ context._enter();
+ });
+ EventHandler.on(this._element, eventOut, this._config.selector, (event) => {
+ const context = this._initializeOnDelegatedTarget(event);
+ context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
+ context._leave();
+ });
+ }
+ }
+ this._hideModalHandler = () => {
+ if (this._element) {
+ this.hide();
+ }
+ };
+ EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
+ }
+ _fixTitle() {
+ const title = this._element.getAttribute("title");
+ if (!title) {
+ return;
+ }
+ if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) {
+ this._element.setAttribute("aria-label", title);
+ }
+ this._element.setAttribute("data-bs-original-title", title);
+ this._element.removeAttribute("title");
+ }
+ _enter() {
+ if (this._isShown() || this._isHovered) {
+ this._isHovered = true;
+ return;
+ }
+ this._isHovered = true;
+ this._setTimeout(() => {
+ if (this._isHovered) {
+ this.show();
+ }
+ }, this._config.delay.show);
+ }
+ _leave() {
+ if (this._isWithActiveTrigger()) {
+ return;
+ }
+ this._isHovered = false;
+ this._setTimeout(() => {
+ if (!this._isHovered) {
+ this.hide();
+ }
+ }, this._config.delay.hide);
+ }
+ _setTimeout(handler, timeout) {
+ clearTimeout(this._timeout);
+ this._timeout = setTimeout(handler, timeout);
+ }
+ _isWithActiveTrigger() {
+ return Object.values(this._activeTrigger).includes(true);
+ }
+ _getConfig(config) {
+ const dataAttributes = Manipulator.getDataAttributes(this._element);
+ for (const dataAttribute of Object.keys(dataAttributes)) {
+ if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
+ delete dataAttributes[dataAttribute];
+ }
+ }
+ config = {
+ ...dataAttributes,
+ ...typeof config === "object" && config ? config : {}
+ };
+ config = this._mergeConfigObj(config);
+ config = this._configAfterMerge(config);
+ this._typeCheckConfig(config);
+ return config;
+ }
+ _configAfterMerge(config) {
+ config.container = config.container === false ? document.body : getElement(config.container);
+ 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();
+ }
+ return config;
+ }
+ _getDelegateConfig() {
+ const config = {};
+ for (const [key, value] of Object.entries(this._config)) {
+ if (this.constructor.Default[key] !== value) {
+ config[key] = value;
+ }
+ }
+ config.selector = false;
+ config.trigger = "manual";
+ return config;
+ }
+ _disposePopper() {
+ if (this._popper) {
+ this._popper.destroy();
+ this._popper = null;
+ }
+ if (this.tip) {
+ this.tip.remove();
+ this.tip = null;
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Tooltip.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ defineJQueryPlugin(Tooltip);
+ var NAME$3 = "popover";
+ var SELECTOR_TITLE = ".popover-header";
+ var SELECTOR_CONTENT = ".popover-body";
+ var Default$2 = {
+ ...Tooltip.Default,
+ content: "",
+ offset: [0, 8],
+ placement: "right",
+ template: '',
+ trigger: "click"
+ };
+ var DefaultType$2 = {
+ ...Tooltip.DefaultType,
+ content: "(null|string|element|function)"
+ };
+ var Popover = class _Popover extends Tooltip {
+ // Getters
+ static get Default() {
+ return Default$2;
+ }
+ static get DefaultType() {
+ return DefaultType$2;
+ }
+ static get NAME() {
+ return NAME$3;
+ }
+ // Overrides
+ _isWithContent() {
+ return this._getTitle() || this._getContent();
+ }
+ // Private
+ _getContentForTemplate() {
+ return {
+ [SELECTOR_TITLE]: this._getTitle(),
+ [SELECTOR_CONTENT]: this._getContent()
+ };
+ }
+ _getContent() {
+ return this._resolvePossibleFunction(this._config.content);
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Popover.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ defineJQueryPlugin(Popover);
+ var NAME$2 = "scrollspy";
+ var DATA_KEY$2 = "bs.scrollspy";
+ var EVENT_KEY$2 = `.${DATA_KEY$2}`;
+ var DATA_API_KEY = ".data-api";
+ var EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
+ var EVENT_CLICK = `click${EVENT_KEY$2}`;
+ var EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
+ var CLASS_NAME_DROPDOWN_ITEM = "dropdown-item";
+ var CLASS_NAME_ACTIVE$1 = "active";
+ var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
+ var SELECTOR_TARGET_LINKS = "[href]";
+ 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_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
+ var SELECTOR_DROPDOWN = ".dropdown";
+ var SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle";
+ var Default$1 = {
+ offset: null,
+ // TODO: v6 @deprecated, keep it for backwards compatibility reasons
+ rootMargin: "0px 0px -25%",
+ smoothScroll: false,
+ target: null,
+ threshold: [0.1, 0.5, 1]
+ };
+ var DefaultType$1 = {
+ offset: "(number|null)",
+ // TODO v6 @deprecated, keep it for backwards compatibility reasons
+ rootMargin: "string",
+ smoothScroll: "boolean",
+ target: "element",
+ threshold: "array"
+ };
+ var ScrollSpy = class _ScrollSpy extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._targetLinks = /* @__PURE__ */ new Map();
+ this._observableSections = /* @__PURE__ */ new Map();
+ this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element;
+ this._activeTarget = null;
+ this._observer = null;
+ this._previousScrollData = {
+ visibleEntryTop: 0,
+ parentScrollTop: 0
+ };
+ this.refresh();
+ }
+ // Getters
+ static get Default() {
+ return Default$1;
+ }
+ static get DefaultType() {
+ return DefaultType$1;
+ }
+ static get NAME() {
+ return NAME$2;
+ }
+ // Public
+ refresh() {
+ this._initializeTargetsAndObservables();
+ this._maybeEnableSmoothScroll();
+ if (this._observer) {
+ this._observer.disconnect();
+ } else {
+ this._observer = this._getNewObserver();
+ }
+ for (const section of this._observableSections.values()) {
+ this._observer.observe(section);
+ }
+ }
+ dispose() {
+ this._observer.disconnect();
+ super.dispose();
+ }
+ // Private
+ _configAfterMerge(config) {
+ config.target = getElement(config.target) || document.body;
+ config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
+ if (typeof config.threshold === "string") {
+ config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value));
+ }
+ return config;
+ }
+ _maybeEnableSmoothScroll() {
+ if (!this._config.smoothScroll) {
+ return;
+ }
+ EventHandler.off(this._config.target, EVENT_CLICK);
+ EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {
+ const observableSection = this._observableSections.get(event.target.hash);
+ if (observableSection) {
+ event.preventDefault();
+ const root = this._rootElement || window;
+ const height = observableSection.offsetTop - this._element.offsetTop;
+ if (root.scrollTo) {
+ root.scrollTo({
+ top: height,
+ behavior: "smooth"
+ });
+ return;
+ }
+ root.scrollTop = height;
+ }
+ });
+ }
+ _getNewObserver() {
+ const options = {
+ root: this._rootElement,
+ threshold: this._config.threshold,
+ rootMargin: this._config.rootMargin
+ };
+ return new IntersectionObserver((entries) => this._observerCallback(entries), options);
+ }
+ // The logic of selection
+ _observerCallback(entries) {
+ const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);
+ const activate = (entry) => {
+ this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
+ this._process(targetElement(entry));
+ };
+ const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
+ const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
+ this._previousScrollData.parentScrollTop = parentScrollTop;
+ for (const entry of entries) {
+ if (!entry.isIntersecting) {
+ this._activeTarget = null;
+ this._clearActiveClass(targetElement(entry));
+ continue;
+ }
+ const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
+ if (userScrollsDown && entryIsLowerThanPrevious) {
+ activate(entry);
+ if (!parentScrollTop) {
+ return;
+ }
+ continue;
+ }
+ if (!userScrollsDown && !entryIsLowerThanPrevious) {
+ activate(entry);
+ }
+ }
+ }
+ _initializeTargetsAndObservables() {
+ this._targetLinks = /* @__PURE__ */ new Map();
+ this._observableSections = /* @__PURE__ */ new Map();
+ const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
+ for (const anchor of targetLinks) {
+ if (!anchor.hash || isDisabled(anchor)) {
+ continue;
+ }
+ const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
+ if (isVisible(observableSection)) {
+ this._targetLinks.set(decodeURI(anchor.hash), anchor);
+ this._observableSections.set(anchor.hash, observableSection);
+ }
+ }
+ }
+ _process(target) {
+ if (this._activeTarget === target) {
+ return;
+ }
+ this._clearActiveClass(this._config.target);
+ this._activeTarget = target;
+ target.classList.add(CLASS_NAME_ACTIVE$1);
+ this._activateParents(target);
+ EventHandler.trigger(this._element, EVENT_ACTIVATE, {
+ relatedTarget: target
+ });
+ }
+ _activateParents(target) {
+ if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
+ return;
+ }
+ for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
+ for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
+ item.classList.add(CLASS_NAME_ACTIVE$1);
+ }
+ }
+ }
+ _clearActiveClass(parent) {
+ parent.classList.remove(CLASS_NAME_ACTIVE$1);
+ const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
+ for (const node of activeNodes) {
+ node.classList.remove(CLASS_NAME_ACTIVE$1);
+ }
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _ScrollSpy.getOrCreateInstance(this, config);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
+ for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
+ ScrollSpy.getOrCreateInstance(spy);
+ }
+ });
+ defineJQueryPlugin(ScrollSpy);
+ var NAME$1 = "tab";
+ var DATA_KEY$1 = "bs.tab";
+ var EVENT_KEY$1 = `.${DATA_KEY$1}`;
+ var EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
+ var EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
+ var EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
+ var EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
+ var EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
+ var EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
+ var EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
+ var ARROW_LEFT_KEY = "ArrowLeft";
+ var ARROW_RIGHT_KEY = "ArrowRight";
+ var ARROW_UP_KEY = "ArrowUp";
+ var ARROW_DOWN_KEY = "ArrowDown";
+ var CLASS_NAME_ACTIVE = "active";
+ var CLASS_NAME_FADE$1 = "fade";
+ var CLASS_NAME_SHOW$1 = "show";
+ var CLASS_DROPDOWN = "dropdown";
+ var SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle";
+ var SELECTOR_DROPDOWN_MENU = ".dropdown-menu";
+ var NOT_SELECTOR_DROPDOWN_TOGGLE = ":not(.dropdown-toggle)";
+ var SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
+ var SELECTOR_OUTER = ".nav-item, .list-group-item";
+ var SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
+ var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
+ var SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
+ var SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
+ var Tab = class _Tab extends BaseComponent {
+ constructor(element) {
+ super(element);
+ this._parent = this._element.closest(SELECTOR_TAB_PANEL);
+ if (!this._parent) {
+ return;
+ }
+ this._setInitialAttributes(this._parent, this._getChildren());
+ EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));
+ }
+ // Getters
+ static get NAME() {
+ return NAME$1;
+ }
+ // Public
+ show() {
+ const innerElem = this._element;
+ if (this._elemIsActive(innerElem)) {
+ return;
+ }
+ const active = this._getActiveElem();
+ const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
+ relatedTarget: innerElem
+ }) : null;
+ const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
+ relatedTarget: active
+ });
+ if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
+ return;
+ }
+ this._deactivate(active, innerElem);
+ this._activate(innerElem, active);
+ }
+ // Private
+ _activate(element, relatedElem) {
+ if (!element) {
+ return;
+ }
+ element.classList.add(CLASS_NAME_ACTIVE);
+ this._activate(SelectorEngine.getElementFromSelector(element));
+ const complete = () => {
+ if (element.getAttribute("role") !== "tab") {
+ element.classList.add(CLASS_NAME_SHOW$1);
+ return;
+ }
+ element.removeAttribute("tabindex");
+ element.setAttribute("aria-selected", true);
+ this._toggleDropDown(element, true);
+ EventHandler.trigger(element, EVENT_SHOWN$1, {
+ relatedTarget: relatedElem
+ });
+ };
+ this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
+ }
+ _deactivate(element, relatedElem) {
+ if (!element) {
+ return;
+ }
+ element.classList.remove(CLASS_NAME_ACTIVE);
+ element.blur();
+ this._deactivate(SelectorEngine.getElementFromSelector(element));
+ const complete = () => {
+ if (element.getAttribute("role") !== "tab") {
+ element.classList.remove(CLASS_NAME_SHOW$1);
+ return;
+ }
+ element.setAttribute("aria-selected", false);
+ element.setAttribute("tabindex", "-1");
+ this._toggleDropDown(element, false);
+ EventHandler.trigger(element, EVENT_HIDDEN$1, {
+ relatedTarget: relatedElem
+ });
+ };
+ this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
+ }
+ _keydown(event) {
+ if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
+ return;
+ }
+ event.stopPropagation();
+ event.preventDefault();
+ const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
+ const nextActiveElement = getNextActiveElement(this._getChildren().filter((element) => !isDisabled(element)), event.target, isNext, true);
+ if (nextActiveElement) {
+ nextActiveElement.focus({
+ preventScroll: true
+ });
+ _Tab.getOrCreateInstance(nextActiveElement).show();
+ }
+ }
+ _getChildren() {
+ return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
+ }
+ _getActiveElem() {
+ return this._getChildren().find((child) => this._elemIsActive(child)) || null;
+ }
+ _setInitialAttributes(parent, children) {
+ this._setAttributeIfNotExists(parent, "role", "tablist");
+ for (const child of children) {
+ this._setInitialAttributesOnChild(child);
+ }
+ }
+ _setInitialAttributesOnChild(child) {
+ child = this._getInnerElement(child);
+ const isActive = this._elemIsActive(child);
+ const outerElem = this._getOuterElement(child);
+ child.setAttribute("aria-selected", isActive);
+ if (outerElem !== child) {
+ this._setAttributeIfNotExists(outerElem, "role", "presentation");
+ }
+ if (!isActive) {
+ child.setAttribute("tabindex", "-1");
+ }
+ this._setAttributeIfNotExists(child, "role", "tab");
+ this._setInitialAttributesOnTargetPanel(child);
+ }
+ _setInitialAttributesOnTargetPanel(child) {
+ const target = SelectorEngine.getElementFromSelector(child);
+ if (!target) {
+ return;
+ }
+ this._setAttributeIfNotExists(target, "role", "tabpanel");
+ if (child.id) {
+ this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`);
+ }
+ }
+ _toggleDropDown(element, open) {
+ const outerElem = this._getOuterElement(element);
+ if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
+ return;
+ }
+ const toggle = (selector, className) => {
+ const element2 = SelectorEngine.findOne(selector, outerElem);
+ if (element2) {
+ element2.classList.toggle(className, open);
+ }
+ };
+ toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
+ toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
+ outerElem.setAttribute("aria-expanded", open);
+ }
+ _setAttributeIfNotExists(element, attribute, value) {
+ if (!element.hasAttribute(attribute)) {
+ element.setAttribute(attribute, value);
+ }
+ }
+ _elemIsActive(elem) {
+ return elem.classList.contains(CLASS_NAME_ACTIVE);
+ }
+ // Try to get the inner element (usually the .nav-link)
+ _getInnerElement(elem) {
+ return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
+ }
+ // Try to get the outer element (usually the .nav-item)
+ _getOuterElement(elem) {
+ return elem.closest(SELECTOR_OUTER) || elem;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Tab.getOrCreateInstance(this);
+ if (typeof config !== "string") {
+ return;
+ }
+ if (data[config] === void 0 || config.startsWith("_") || config === "constructor") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config]();
+ });
+ }
+ };
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) {
+ if (["A", "AREA"].includes(this.tagName)) {
+ event.preventDefault();
+ }
+ if (isDisabled(this)) {
+ return;
+ }
+ Tab.getOrCreateInstance(this).show();
+ });
+ EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
+ for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
+ Tab.getOrCreateInstance(element);
+ }
+ });
+ defineJQueryPlugin(Tab);
+ var NAME = "toast";
+ var DATA_KEY = "bs.toast";
+ var EVENT_KEY = `.${DATA_KEY}`;
+ var EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
+ var EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
+ var EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
+ var EVENT_FOCUSOUT = `focusout${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: 5e3
+ };
+ var Toast = class _Toast extends BaseComponent {
+ constructor(element, config) {
+ super(element, config);
+ this._timeout = null;
+ this._hasMouseInteraction = false;
+ this._hasKeyboardInteraction = false;
+ this._setListeners();
+ }
+ // Getters
+ static get Default() {
+ return Default;
+ }
+ static get DefaultType() {
+ return DefaultType;
+ }
+ static get NAME() {
+ return NAME;
+ }
+ // Public
+ show() {
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+ this._clearTimeout();
+ if (this._config.animation) {
+ this._element.classList.add(CLASS_NAME_FADE);
+ }
+ const complete = () => {
+ this._element.classList.remove(CLASS_NAME_SHOWING);
+ EventHandler.trigger(this._element, EVENT_SHOWN);
+ this._maybeScheduleHide();
+ };
+ this._element.classList.remove(CLASS_NAME_HIDE);
+ reflow(this._element);
+ this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
+ this._queueCallback(complete, this._element, this._config.animation);
+ }
+ hide() {
+ if (!this.isShown()) {
+ return;
+ }
+ const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+ const complete = () => {
+ this._element.classList.add(CLASS_NAME_HIDE);
+ this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
+ EventHandler.trigger(this._element, EVENT_HIDDEN);
+ };
+ this._element.classList.add(CLASS_NAME_SHOWING);
+ this._queueCallback(complete, this._element, this._config.animation);
+ }
+ dispose() {
+ this._clearTimeout();
+ if (this.isShown()) {
+ this._element.classList.remove(CLASS_NAME_SHOW);
+ }
+ super.dispose();
+ }
+ isShown() {
+ return this._element.classList.contains(CLASS_NAME_SHOW);
+ }
+ // Private
+ _maybeScheduleHide() {
+ if (!this._config.autohide) {
+ return;
+ }
+ if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
+ return;
+ }
+ this._timeout = setTimeout(() => {
+ this.hide();
+ }, this._config.delay);
+ }
+ _onInteraction(event, isInteracting) {
+ switch (event.type) {
+ case "mouseover":
+ case "mouseout": {
+ this._hasMouseInteraction = isInteracting;
+ break;
+ }
+ case "focusin":
+ case "focusout": {
+ this._hasKeyboardInteraction = isInteracting;
+ break;
+ }
+ }
+ if (isInteracting) {
+ this._clearTimeout();
+ return;
+ }
+ const nextElement = event.relatedTarget;
+ if (this._element === nextElement || this._element.contains(nextElement)) {
+ return;
+ }
+ this._maybeScheduleHide();
+ }
+ _setListeners() {
+ EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true));
+ EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false));
+ EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true));
+ EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false));
+ }
+ _clearTimeout() {
+ clearTimeout(this._timeout);
+ this._timeout = null;
+ }
+ // Static
+ static jQueryInterface(config) {
+ return this.each(function() {
+ const data = _Toast.getOrCreateInstance(this, config);
+ if (typeof config === "string") {
+ if (typeof data[config] === "undefined") {
+ throw new TypeError(`No method named "${config}"`);
+ }
+ data[config](this);
+ }
+ });
+ }
+ };
+ enableDismissTrigger(Toast);
+ defineJQueryPlugin(Toast);
+
+ // app/javascript/overview.js
+ function initializeListenersForNavDropdowns() {
+ const schoolDropdown = document.querySelector("#select-school");
+ if (schoolDropdown) {
+ document.querySelector("#select-school").addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ document.querySelector("#select-district").addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ }
+ const academicYearDropdown = document.querySelector("#select-academic-year");
+ if (academicYearDropdown) {
+ academicYearDropdown.addEventListener("change", (event) => {
+ window.location = event.target.value;
+ });
+ }
+ }
+ function initializePopovers() {
+ document.querySelectorAll('[data-bs-toggle="popover"]').forEach((popoverElement) => {
+ new Popover(popoverElement, { trigger: "hover focus" });
+ });
+ }
+
+ // app/javascript/modal.js
+ function showEmptyDatasetModal() {
+ const modal = document.querySelector(".modal");
+ if (modal) {
+ new Modal(modal).show();
+ }
+ }
+
+ // node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js
+ (function() {
+ if (window.Reflect === void 0 || window.customElements === void 0 || window.customElements.polyfillWrapFlushCallback) {
+ return;
+ }
+ const BuiltInHTMLElement = HTMLElement;
+ const wrapperForTheName = {
+ HTMLElement: function HTMLElement2() {
+ return Reflect.construct(BuiltInHTMLElement, [], this.constructor);
+ }
+ };
+ window.HTMLElement = wrapperForTheName["HTMLElement"];
+ HTMLElement.prototype = BuiltInHTMLElement.prototype;
+ HTMLElement.prototype.constructor = HTMLElement;
+ Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);
+ })();
+ (function(prototype) {
+ if (typeof prototype.requestSubmit == "function")
+ return;
+ prototype.requestSubmit = function(submitter) {
+ if (submitter) {
+ validateSubmitter(submitter, this);
+ submitter.click();
+ } else {
+ submitter = document.createElement("input");
+ submitter.type = "submit";
+ submitter.hidden = true;
+ this.appendChild(submitter);
+ submitter.click();
+ this.removeChild(submitter);
+ }
+ };
+ function validateSubmitter(submitter, form) {
+ submitter instanceof HTMLElement || raise(TypeError, "parameter 1 is not of type 'HTMLElement'");
+ submitter.type == "submit" || raise(TypeError, "The specified element is not a submit button");
+ submitter.form == form || raise(DOMException, "The specified element is not owned by this form element", "NotFoundError");
+ }
+ function raise(errorConstructor, message, name) {
+ throw new errorConstructor("Failed to execute 'requestSubmit' on 'HTMLFormElement': " + message + ".", name);
+ }
+ })(HTMLFormElement.prototype);
+ var submittersByForm = /* @__PURE__ */ new WeakMap();
+ function findSubmitterFromClickTarget(target) {
+ const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
+ const candidate = element ? element.closest("input, button") : null;
+ return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == "submit" ? candidate : null;
+ }
+ function clickCaptured(event) {
+ const submitter = findSubmitterFromClickTarget(event.target);
+ if (submitter && submitter.form) {
+ submittersByForm.set(submitter.form, submitter);
+ }
+ }
+ (function() {
+ if ("submitter" in Event.prototype)
+ return;
+ let prototype = window.Event.prototype;
+ if ("SubmitEvent" in window && /Apple Computer/.test(navigator.vendor)) {
+ prototype = window.SubmitEvent.prototype;
+ } else if ("SubmitEvent" in window) {
+ return;
+ }
+ addEventListener("click", clickCaptured, true);
+ Object.defineProperty(prototype, "submitter", {
+ get() {
+ if (this.type == "submit" && this.target instanceof HTMLFormElement) {
+ return submittersByForm.get(this.target);
+ }
+ }
+ });
+ })();
+ var FrameLoadingStyle;
+ (function(FrameLoadingStyle2) {
+ FrameLoadingStyle2["eager"] = "eager";
+ FrameLoadingStyle2["lazy"] = "lazy";
+ })(FrameLoadingStyle || (FrameLoadingStyle = {}));
+ var FrameElement = class _FrameElement extends HTMLElement {
+ static get observedAttributes() {
+ return ["disabled", "complete", "loading", "src"];
+ }
+ constructor() {
+ super();
+ this.loaded = Promise.resolve();
+ this.delegate = new _FrameElement.delegateConstructor(this);
+ }
+ connectedCallback() {
+ this.delegate.connect();
+ }
+ disconnectedCallback() {
+ this.delegate.disconnect();
+ }
+ reload() {
+ return this.delegate.sourceURLReloaded();
+ }
+ attributeChangedCallback(name) {
+ if (name == "loading") {
+ this.delegate.loadingStyleChanged();
+ } else if (name == "complete") {
+ this.delegate.completeChanged();
+ } else if (name == "src") {
+ this.delegate.sourceURLChanged();
+ } else {
+ this.delegate.disabledChanged();
+ }
+ }
+ get src() {
+ return this.getAttribute("src");
+ }
+ set src(value) {
+ if (value) {
+ this.setAttribute("src", value);
+ } else {
+ this.removeAttribute("src");
+ }
+ }
+ get loading() {
+ return frameLoadingStyleFromString(this.getAttribute("loading") || "");
+ }
+ set loading(value) {
+ if (value) {
+ this.setAttribute("loading", value);
+ } else {
+ this.removeAttribute("loading");
+ }
+ }
+ get disabled() {
+ return this.hasAttribute("disabled");
+ }
+ set disabled(value) {
+ if (value) {
+ this.setAttribute("disabled", "");
+ } else {
+ this.removeAttribute("disabled");
+ }
+ }
+ get autoscroll() {
+ return this.hasAttribute("autoscroll");
+ }
+ set autoscroll(value) {
+ if (value) {
+ this.setAttribute("autoscroll", "");
+ } else {
+ this.removeAttribute("autoscroll");
+ }
+ }
+ get complete() {
+ return !this.delegate.isLoading;
+ }
+ get isActive() {
+ return this.ownerDocument === document && !this.isPreview;
+ }
+ get isPreview() {
+ var _a, _b;
+ return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute("data-turbo-preview");
+ }
+ };
+ function frameLoadingStyleFromString(style) {
+ switch (style.toLowerCase()) {
+ case "lazy":
+ return FrameLoadingStyle.lazy;
+ default:
+ return FrameLoadingStyle.eager;
+ }
+ }
+ function expandURL(locatable) {
+ return new URL(locatable.toString(), document.baseURI);
+ }
+ function getAnchor(url) {
+ let anchorMatch;
+ if (url.hash) {
+ return url.hash.slice(1);
+ } else if (anchorMatch = url.href.match(/#(.*)$/)) {
+ return anchorMatch[1];
+ }
+ }
+ function getAction(form, submitter) {
+ const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formaction")) || form.getAttribute("action") || form.action;
+ return expandURL(action);
+ }
+ function getExtension(url) {
+ return (getLastPathComponent(url).match(/\.[^.]*$/) || [])[0] || "";
+ }
+ function isHTML(url) {
+ return !!getExtension(url).match(/^(?:|\.(?:htm|html|xhtml|php))$/);
+ }
+ function isPrefixedBy(baseURL, url) {
+ const prefix = getPrefix(url);
+ return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);
+ }
+ function locationIsVisitable(location2, rootLocation) {
+ return isPrefixedBy(location2, rootLocation) && isHTML(location2);
+ }
+ function getRequestURL(url) {
+ const anchor = getAnchor(url);
+ return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;
+ }
+ function toCacheKey(url) {
+ return getRequestURL(url);
+ }
+ function urlsAreEqual(left2, right2) {
+ return expandURL(left2).href == expandURL(right2).href;
+ }
+ function getPathComponents(url) {
+ return url.pathname.split("/").slice(1);
+ }
+ function getLastPathComponent(url) {
+ return getPathComponents(url).slice(-1)[0];
+ }
+ function getPrefix(url) {
+ return addTrailingSlash(url.origin + url.pathname);
+ }
+ function addTrailingSlash(value) {
+ return value.endsWith("/") ? value : value + "/";
+ }
+ var FetchResponse = class {
+ constructor(response) {
+ this.response = response;
+ }
+ get succeeded() {
+ return this.response.ok;
+ }
+ get failed() {
+ return !this.succeeded;
+ }
+ get clientError() {
+ return this.statusCode >= 400 && this.statusCode <= 499;
+ }
+ get serverError() {
+ return this.statusCode >= 500 && this.statusCode <= 599;
+ }
+ get redirected() {
+ return this.response.redirected;
+ }
+ get location() {
+ return expandURL(this.response.url);
+ }
+ get isHTML() {
+ return this.contentType && this.contentType.match(/^(?:text\/([^\s;,]+\b)?html|application\/xhtml\+xml)\b/);
+ }
+ get statusCode() {
+ return this.response.status;
+ }
+ get contentType() {
+ return this.header("Content-Type");
+ }
+ get responseText() {
+ return this.response.clone().text();
+ }
+ get responseHTML() {
+ if (this.isHTML) {
+ return this.response.clone().text();
+ } else {
+ return Promise.resolve(void 0);
+ }
+ }
+ header(name) {
+ return this.response.headers.get(name);
+ }
+ };
+ function activateScriptElement(element) {
+ if (element.getAttribute("data-turbo-eval") == "false") {
+ return element;
+ } else {
+ const createdScriptElement = document.createElement("script");
+ const cspNonce = getMetaContent("csp-nonce");
+ if (cspNonce) {
+ createdScriptElement.nonce = cspNonce;
+ }
+ createdScriptElement.textContent = element.textContent;
+ createdScriptElement.async = false;
+ copyElementAttributes(createdScriptElement, element);
+ return createdScriptElement;
+ }
+ }
+ function copyElementAttributes(destinationElement, sourceElement) {
+ for (const { name, value } of sourceElement.attributes) {
+ destinationElement.setAttribute(name, value);
+ }
+ }
+ function createDocumentFragment(html) {
+ const template = document.createElement("template");
+ template.innerHTML = html;
+ return template.content;
+ }
+ function dispatch(eventName, { target, cancelable, detail } = {}) {
+ const event = new CustomEvent(eventName, {
+ cancelable,
+ bubbles: true,
+ composed: true,
+ detail
+ });
+ if (target && target.isConnected) {
+ target.dispatchEvent(event);
+ } else {
+ document.documentElement.dispatchEvent(event);
+ }
+ return event;
+ }
+ function nextAnimationFrame() {
+ return new Promise((resolve) => requestAnimationFrame(() => resolve()));
+ }
+ function nextEventLoopTick() {
+ return new Promise((resolve) => setTimeout(() => resolve(), 0));
+ }
+ function nextMicrotask() {
+ return Promise.resolve();
+ }
+ function parseHTMLDocument(html = "") {
+ return new DOMParser().parseFromString(html, "text/html");
+ }
+ function unindent(strings, ...values) {
+ const lines = interpolate(strings, values).replace(/^\n/, "").split("\n");
+ const match = lines[0].match(/^\s+/);
+ const indent = match ? match[0].length : 0;
+ return lines.map((line) => line.slice(indent)).join("\n");
+ }
+ function interpolate(strings, values) {
+ return strings.reduce((result, string, i) => {
+ const value = values[i] == void 0 ? "" : values[i];
+ return result + string + value;
+ }, "");
+ }
+ function uuid() {
+ return Array.from({ length: 36 }).map((_, i) => {
+ if (i == 8 || i == 13 || i == 18 || i == 23) {
+ return "-";
+ } else if (i == 14) {
+ return "4";
+ } else if (i == 19) {
+ return (Math.floor(Math.random() * 4) + 8).toString(16);
+ } else {
+ return Math.floor(Math.random() * 15).toString(16);
+ }
+ }).join("");
+ }
+ function getAttribute(attributeName, ...elements) {
+ for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {
+ if (typeof value == "string")
+ return value;
+ }
+ return null;
+ }
+ function hasAttribute(attributeName, ...elements) {
+ return elements.some((element) => element && element.hasAttribute(attributeName));
+ }
+ function markAsBusy(...elements) {
+ for (const element of elements) {
+ if (element.localName == "turbo-frame") {
+ element.setAttribute("busy", "");
+ }
+ element.setAttribute("aria-busy", "true");
+ }
+ }
+ function clearBusyState(...elements) {
+ for (const element of elements) {
+ if (element.localName == "turbo-frame") {
+ element.removeAttribute("busy");
+ }
+ element.removeAttribute("aria-busy");
+ }
+ }
+ function waitForLoad(element, timeoutInMilliseconds = 2e3) {
+ return new Promise((resolve) => {
+ const onComplete = () => {
+ element.removeEventListener("error", onComplete);
+ element.removeEventListener("load", onComplete);
+ resolve();
+ };
+ element.addEventListener("load", onComplete, { once: true });
+ element.addEventListener("error", onComplete, { once: true });
+ setTimeout(resolve, timeoutInMilliseconds);
+ });
+ }
+ function getHistoryMethodForAction(action) {
+ switch (action) {
+ case "replace":
+ return history.replaceState;
+ case "advance":
+ case "restore":
+ return history.pushState;
+ }
+ }
+ function isAction(action) {
+ return action == "advance" || action == "replace" || action == "restore";
+ }
+ function getVisitAction(...elements) {
+ const action = getAttribute("data-turbo-action", ...elements);
+ return isAction(action) ? action : null;
+ }
+ function getMetaElement(name) {
+ return document.querySelector(`meta[name="${name}"]`);
+ }
+ function getMetaContent(name) {
+ const element = getMetaElement(name);
+ return element && element.content;
+ }
+ function setMetaContent(name, content) {
+ let element = getMetaElement(name);
+ if (!element) {
+ element = document.createElement("meta");
+ element.setAttribute("name", name);
+ document.head.appendChild(element);
+ }
+ element.setAttribute("content", content);
+ return element;
+ }
+ function findClosestRecursively(element, selector) {
+ var _a;
+ if (element instanceof Element) {
+ return element.closest(selector) || findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector);
+ }
+ }
+ var FetchMethod;
+ (function(FetchMethod2) {
+ FetchMethod2[FetchMethod2["get"] = 0] = "get";
+ FetchMethod2[FetchMethod2["post"] = 1] = "post";
+ FetchMethod2[FetchMethod2["put"] = 2] = "put";
+ FetchMethod2[FetchMethod2["patch"] = 3] = "patch";
+ FetchMethod2[FetchMethod2["delete"] = 4] = "delete";
+ })(FetchMethod || (FetchMethod = {}));
+ function fetchMethodFromString(method) {
+ switch (method.toLowerCase()) {
+ case "get":
+ return FetchMethod.get;
+ case "post":
+ return FetchMethod.post;
+ case "put":
+ return FetchMethod.put;
+ case "patch":
+ return FetchMethod.patch;
+ case "delete":
+ return FetchMethod.delete;
+ }
+ }
+ var FetchRequest = class {
+ constructor(delegate, method, location2, body = new URLSearchParams(), target = null) {
+ this.abortController = new AbortController();
+ this.resolveRequestPromise = (_value) => {
+ };
+ this.delegate = delegate;
+ this.method = method;
+ this.headers = this.defaultHeaders;
+ this.body = body;
+ this.url = location2;
+ this.target = target;
+ }
+ get location() {
+ return this.url;
+ }
+ get params() {
+ return this.url.searchParams;
+ }
+ get entries() {
+ return this.body ? Array.from(this.body.entries()) : [];
+ }
+ cancel() {
+ this.abortController.abort();
+ }
+ async perform() {
+ const { fetchOptions } = this;
+ this.delegate.prepareRequest(this);
+ await this.allowRequestToBeIntercepted(fetchOptions);
+ try {
+ this.delegate.requestStarted(this);
+ const response = await fetch(this.url.href, fetchOptions);
+ return await this.receive(response);
+ } catch (error2) {
+ if (error2.name !== "AbortError") {
+ if (this.willDelegateErrorHandling(error2)) {
+ this.delegate.requestErrored(this, error2);
+ }
+ throw error2;
+ }
+ } finally {
+ this.delegate.requestFinished(this);
+ }
+ }
+ async receive(response) {
+ const fetchResponse = new FetchResponse(response);
+ const event = dispatch("turbo:before-fetch-response", {
+ cancelable: true,
+ detail: { fetchResponse },
+ target: this.target
+ });
+ if (event.defaultPrevented) {
+ this.delegate.requestPreventedHandlingResponse(this, fetchResponse);
+ } else if (fetchResponse.succeeded) {
+ this.delegate.requestSucceededWithResponse(this, fetchResponse);
+ } else {
+ this.delegate.requestFailedWithResponse(this, fetchResponse);
+ }
+ return fetchResponse;
+ }
+ get fetchOptions() {
+ var _a;
+ return {
+ method: FetchMethod[this.method].toUpperCase(),
+ credentials: "same-origin",
+ headers: this.headers,
+ redirect: "follow",
+ body: this.isSafe ? null : this.body,
+ signal: this.abortSignal,
+ referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href
+ };
+ }
+ get defaultHeaders() {
+ return {
+ Accept: "text/html, application/xhtml+xml"
+ };
+ }
+ get isSafe() {
+ return this.method === FetchMethod.get;
+ }
+ get abortSignal() {
+ return this.abortController.signal;
+ }
+ acceptResponseType(mimeType) {
+ this.headers["Accept"] = [mimeType, this.headers["Accept"]].join(", ");
+ }
+ async allowRequestToBeIntercepted(fetchOptions) {
+ const requestInterception = new Promise((resolve) => this.resolveRequestPromise = resolve);
+ const event = dispatch("turbo:before-fetch-request", {
+ cancelable: true,
+ detail: {
+ fetchOptions,
+ url: this.url,
+ resume: this.resolveRequestPromise
+ },
+ target: this.target
+ });
+ if (event.defaultPrevented)
+ await requestInterception;
+ }
+ willDelegateErrorHandling(error2) {
+ const event = dispatch("turbo:fetch-request-error", {
+ target: this.target,
+ cancelable: true,
+ detail: { request: this, error: error2 }
+ });
+ return !event.defaultPrevented;
+ }
+ };
+ var AppearanceObserver = class {
+ constructor(delegate, element) {
+ this.started = false;
+ this.intersect = (entries) => {
+ const lastEntry = entries.slice(-1)[0];
+ if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {
+ this.delegate.elementAppearedInViewport(this.element);
+ }
+ };
+ this.delegate = delegate;
+ this.element = element;
+ this.intersectionObserver = new IntersectionObserver(this.intersect);
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ this.intersectionObserver.observe(this.element);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ this.intersectionObserver.unobserve(this.element);
+ }
+ }
+ };
+ var StreamMessage = class {
+ static wrap(message) {
+ if (typeof message == "string") {
+ return new this(createDocumentFragment(message));
+ } else {
+ return message;
+ }
+ }
+ constructor(fragment) {
+ this.fragment = importStreamElements(fragment);
+ }
+ };
+ StreamMessage.contentType = "text/vnd.turbo-stream.html";
+ function importStreamElements(fragment) {
+ for (const element of fragment.querySelectorAll("turbo-stream")) {
+ const streamElement = document.importNode(element, true);
+ for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll("script")) {
+ inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));
+ }
+ element.replaceWith(streamElement);
+ }
+ return fragment;
+ }
+ var FormSubmissionState;
+ (function(FormSubmissionState2) {
+ FormSubmissionState2[FormSubmissionState2["initialized"] = 0] = "initialized";
+ FormSubmissionState2[FormSubmissionState2["requesting"] = 1] = "requesting";
+ FormSubmissionState2[FormSubmissionState2["waiting"] = 2] = "waiting";
+ FormSubmissionState2[FormSubmissionState2["receiving"] = 3] = "receiving";
+ FormSubmissionState2[FormSubmissionState2["stopping"] = 4] = "stopping";
+ FormSubmissionState2[FormSubmissionState2["stopped"] = 5] = "stopped";
+ })(FormSubmissionState || (FormSubmissionState = {}));
+ var FormEnctype;
+ (function(FormEnctype2) {
+ FormEnctype2["urlEncoded"] = "application/x-www-form-urlencoded";
+ FormEnctype2["multipart"] = "multipart/form-data";
+ FormEnctype2["plain"] = "text/plain";
+ })(FormEnctype || (FormEnctype = {}));
+ function formEnctypeFromString(encoding) {
+ switch (encoding.toLowerCase()) {
+ case FormEnctype.multipart:
+ return FormEnctype.multipart;
+ case FormEnctype.plain:
+ return FormEnctype.plain;
+ default:
+ return FormEnctype.urlEncoded;
+ }
+ }
+ var FormSubmission = class _FormSubmission {
+ static confirmMethod(message, _element, _submitter) {
+ return Promise.resolve(confirm(message));
+ }
+ constructor(delegate, formElement, submitter, mustRedirect = false) {
+ this.state = FormSubmissionState.initialized;
+ this.delegate = delegate;
+ this.formElement = formElement;
+ this.submitter = submitter;
+ this.formData = buildFormData(formElement, submitter);
+ this.location = expandURL(this.action);
+ if (this.method == FetchMethod.get) {
+ mergeFormDataEntries(this.location, [...this.body.entries()]);
+ }
+ this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);
+ this.mustRedirect = mustRedirect;
+ }
+ get method() {
+ var _a;
+ const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("formmethod")) || this.formElement.getAttribute("method") || "";
+ return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;
+ }
+ get action() {
+ var _a;
+ const formElementAction = typeof this.formElement.action === "string" ? this.formElement.action : null;
+ if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute("formaction")) {
+ return this.submitter.getAttribute("formaction") || "";
+ } else {
+ return this.formElement.getAttribute("action") || formElementAction || "";
+ }
+ }
+ get body() {
+ if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {
+ return new URLSearchParams(this.stringFormData);
+ } else {
+ return this.formData;
+ }
+ }
+ get enctype() {
+ var _a;
+ return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("formenctype")) || this.formElement.enctype);
+ }
+ get isSafe() {
+ return this.fetchRequest.isSafe;
+ }
+ get stringFormData() {
+ return [...this.formData].reduce((entries, [name, value]) => {
+ return entries.concat(typeof value == "string" ? [[name, value]] : []);
+ }, []);
+ }
+ async start() {
+ const { initialized, requesting } = FormSubmissionState;
+ const confirmationMessage = getAttribute("data-turbo-confirm", this.submitter, this.formElement);
+ if (typeof confirmationMessage === "string") {
+ const answer = await _FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);
+ if (!answer) {
+ return;
+ }
+ }
+ if (this.state == initialized) {
+ this.state = requesting;
+ return this.fetchRequest.perform();
+ }
+ }
+ stop() {
+ const { stopping, stopped } = FormSubmissionState;
+ if (this.state != stopping && this.state != stopped) {
+ this.state = stopping;
+ this.fetchRequest.cancel();
+ return true;
+ }
+ }
+ prepareRequest(request) {
+ if (!request.isSafe) {
+ const token = getCookieValue(getMetaContent("csrf-param")) || getMetaContent("csrf-token");
+ if (token) {
+ request.headers["X-CSRF-Token"] = token;
+ }
+ }
+ if (this.requestAcceptsTurboStreamResponse(request)) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted(_request) {
+ var _a;
+ this.state = FormSubmissionState.waiting;
+ (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute("disabled", "");
+ this.setSubmitsWith();
+ dispatch("turbo:submit-start", {
+ target: this.formElement,
+ detail: { formSubmission: this }
+ });
+ this.delegate.formSubmissionStarted(this);
+ }
+ requestPreventedHandlingResponse(request, response) {
+ this.result = { success: response.succeeded, fetchResponse: response };
+ }
+ requestSucceededWithResponse(request, response) {
+ if (response.clientError || response.serverError) {
+ this.delegate.formSubmissionFailedWithResponse(this, response);
+ } else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {
+ const error2 = new Error("Form responses must redirect to another location");
+ this.delegate.formSubmissionErrored(this, error2);
+ } else {
+ this.state = FormSubmissionState.receiving;
+ this.result = { success: true, fetchResponse: response };
+ this.delegate.formSubmissionSucceededWithResponse(this, response);
+ }
+ }
+ requestFailedWithResponse(request, response) {
+ this.result = { success: false, fetchResponse: response };
+ this.delegate.formSubmissionFailedWithResponse(this, response);
+ }
+ requestErrored(request, error2) {
+ this.result = { success: false, error: error2 };
+ this.delegate.formSubmissionErrored(this, error2);
+ }
+ requestFinished(_request) {
+ var _a;
+ this.state = FormSubmissionState.stopped;
+ (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute("disabled");
+ this.resetSubmitterText();
+ dispatch("turbo:submit-end", {
+ target: this.formElement,
+ detail: Object.assign({ formSubmission: this }, this.result)
+ });
+ this.delegate.formSubmissionFinished(this);
+ }
+ setSubmitsWith() {
+ if (!this.submitter || !this.submitsWith)
+ return;
+ if (this.submitter.matches("button")) {
+ this.originalSubmitText = this.submitter.innerHTML;
+ this.submitter.innerHTML = this.submitsWith;
+ } else if (this.submitter.matches("input")) {
+ const input = this.submitter;
+ this.originalSubmitText = input.value;
+ input.value = this.submitsWith;
+ }
+ }
+ resetSubmitterText() {
+ if (!this.submitter || !this.originalSubmitText)
+ return;
+ if (this.submitter.matches("button")) {
+ this.submitter.innerHTML = this.originalSubmitText;
+ } else if (this.submitter.matches("input")) {
+ const input = this.submitter;
+ input.value = this.originalSubmitText;
+ }
+ }
+ requestMustRedirect(request) {
+ return !request.isSafe && this.mustRedirect;
+ }
+ requestAcceptsTurboStreamResponse(request) {
+ return !request.isSafe || hasAttribute("data-turbo-stream", this.submitter, this.formElement);
+ }
+ get submitsWith() {
+ var _a;
+ return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute("data-turbo-submits-with");
+ }
+ };
+ function buildFormData(formElement, submitter) {
+ const formData = new FormData(formElement);
+ const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("name");
+ const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("value");
+ if (name) {
+ formData.append(name, value || "");
+ }
+ return formData;
+ }
+ function getCookieValue(cookieName) {
+ if (cookieName != null) {
+ const cookies = document.cookie ? document.cookie.split("; ") : [];
+ const cookie = cookies.find((cookie2) => cookie2.startsWith(cookieName));
+ if (cookie) {
+ const value = cookie.split("=").slice(1).join("=");
+ return value ? decodeURIComponent(value) : void 0;
+ }
+ }
+ }
+ function responseSucceededWithoutRedirect(response) {
+ return response.statusCode == 200 && !response.redirected;
+ }
+ function mergeFormDataEntries(url, entries) {
+ const searchParams = new URLSearchParams();
+ for (const [name, value] of entries) {
+ if (value instanceof File)
+ continue;
+ searchParams.append(name, value);
+ }
+ url.search = searchParams.toString();
+ return url;
+ }
+ var Snapshot = class {
+ constructor(element) {
+ this.element = element;
+ }
+ get activeElement() {
+ return this.element.ownerDocument.activeElement;
+ }
+ get children() {
+ return [...this.element.children];
+ }
+ hasAnchor(anchor) {
+ return this.getElementForAnchor(anchor) != null;
+ }
+ getElementForAnchor(anchor) {
+ return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;
+ }
+ get isConnected() {
+ return this.element.isConnected;
+ }
+ get firstAutofocusableElement() {
+ const inertDisabledOrHidden = "[inert], :disabled, [hidden], details:not([open]), dialog:not([open])";
+ for (const element of this.element.querySelectorAll("[autofocus]")) {
+ if (element.closest(inertDisabledOrHidden) == null)
+ return element;
+ else
+ continue;
+ }
+ return null;
+ }
+ get permanentElements() {
+ return queryPermanentElementsAll(this.element);
+ }
+ getPermanentElementById(id2) {
+ return getPermanentElementById(this.element, id2);
+ }
+ getPermanentElementMapForSnapshot(snapshot) {
+ const permanentElementMap = {};
+ for (const currentPermanentElement of this.permanentElements) {
+ const { id: id2 } = currentPermanentElement;
+ const newPermanentElement = snapshot.getPermanentElementById(id2);
+ if (newPermanentElement) {
+ permanentElementMap[id2] = [currentPermanentElement, newPermanentElement];
+ }
+ }
+ return permanentElementMap;
+ }
+ };
+ function getPermanentElementById(node, id2) {
+ return node.querySelector(`#${id2}[data-turbo-permanent]`);
+ }
+ function queryPermanentElementsAll(node) {
+ return node.querySelectorAll("[id][data-turbo-permanent]");
+ }
+ var FormSubmitObserver = class {
+ constructor(delegate, eventTarget) {
+ this.started = false;
+ this.submitCaptured = () => {
+ this.eventTarget.removeEventListener("submit", this.submitBubbled, false);
+ this.eventTarget.addEventListener("submit", this.submitBubbled, false);
+ };
+ this.submitBubbled = (event) => {
+ if (!event.defaultPrevented) {
+ const form = event.target instanceof HTMLFormElement ? event.target : void 0;
+ const submitter = event.submitter || void 0;
+ if (form && submissionDoesNotDismissDialog(form, submitter) && submissionDoesNotTargetIFrame(form, submitter) && this.delegate.willSubmitForm(form, submitter)) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ this.delegate.formSubmitted(form, submitter);
+ }
+ }
+ };
+ this.delegate = delegate;
+ this.eventTarget = eventTarget;
+ }
+ start() {
+ if (!this.started) {
+ this.eventTarget.addEventListener("submit", this.submitCaptured, true);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.eventTarget.removeEventListener("submit", this.submitCaptured, true);
+ this.started = false;
+ }
+ }
+ };
+ function submissionDoesNotDismissDialog(form, submitter) {
+ const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formmethod")) || form.getAttribute("method");
+ return method != "dialog";
+ }
+ function submissionDoesNotTargetIFrame(form, submitter) {
+ if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute("formtarget")) || form.hasAttribute("target")) {
+ const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("formtarget")) || form.target;
+ for (const element of document.getElementsByName(target)) {
+ if (element instanceof HTMLIFrameElement)
+ return false;
+ }
+ return true;
+ } else {
+ return true;
+ }
+ }
+ var View = class {
+ constructor(delegate, element) {
+ this.resolveRenderPromise = (_value) => {
+ };
+ this.resolveInterceptionPromise = (_value) => {
+ };
+ this.delegate = delegate;
+ this.element = element;
+ }
+ scrollToAnchor(anchor) {
+ const element = this.snapshot.getElementForAnchor(anchor);
+ if (element) {
+ this.scrollToElement(element);
+ this.focusElement(element);
+ } else {
+ this.scrollToPosition({ x: 0, y: 0 });
+ }
+ }
+ scrollToAnchorFromLocation(location2) {
+ this.scrollToAnchor(getAnchor(location2));
+ }
+ scrollToElement(element) {
+ element.scrollIntoView();
+ }
+ focusElement(element) {
+ if (element instanceof HTMLElement) {
+ if (element.hasAttribute("tabindex")) {
+ element.focus();
+ } else {
+ element.setAttribute("tabindex", "-1");
+ element.focus();
+ element.removeAttribute("tabindex");
+ }
+ }
+ }
+ scrollToPosition({ x, y }) {
+ this.scrollRoot.scrollTo(x, y);
+ }
+ scrollToTop() {
+ this.scrollToPosition({ x: 0, y: 0 });
+ }
+ get scrollRoot() {
+ return window;
+ }
+ async render(renderer) {
+ const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;
+ if (shouldRender) {
+ try {
+ this.renderPromise = new Promise((resolve) => this.resolveRenderPromise = resolve);
+ this.renderer = renderer;
+ await this.prepareToRenderSnapshot(renderer);
+ const renderInterception = new Promise((resolve) => this.resolveInterceptionPromise = resolve);
+ const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };
+ const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);
+ if (!immediateRender)
+ await renderInterception;
+ await this.renderSnapshot(renderer);
+ this.delegate.viewRenderedSnapshot(snapshot, isPreview);
+ this.delegate.preloadOnLoadLinksForView(this.element);
+ this.finishRenderingSnapshot(renderer);
+ } finally {
+ delete this.renderer;
+ this.resolveRenderPromise(void 0);
+ delete this.renderPromise;
+ }
+ } else {
+ this.invalidate(renderer.reloadReason);
+ }
+ }
+ invalidate(reason) {
+ this.delegate.viewInvalidated(reason);
+ }
+ async prepareToRenderSnapshot(renderer) {
+ this.markAsPreview(renderer.isPreview);
+ await renderer.prepareToRender();
+ }
+ markAsPreview(isPreview) {
+ if (isPreview) {
+ this.element.setAttribute("data-turbo-preview", "");
+ } else {
+ this.element.removeAttribute("data-turbo-preview");
+ }
+ }
+ async renderSnapshot(renderer) {
+ await renderer.render();
+ }
+ finishRenderingSnapshot(renderer) {
+ renderer.finishRendering();
+ }
+ };
+ var FrameView = class extends View {
+ missing() {
+ this.element.innerHTML = `Content missing`;
+ }
+ get snapshot() {
+ return new Snapshot(this.element);
+ }
+ };
+ var LinkInterceptor = class {
+ constructor(delegate, element) {
+ this.clickBubbled = (event) => {
+ if (this.respondsToEventTarget(event.target)) {
+ this.clickEvent = event;
+ } else {
+ delete this.clickEvent;
+ }
+ };
+ this.linkClicked = (event) => {
+ if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {
+ if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {
+ this.clickEvent.preventDefault();
+ event.preventDefault();
+ this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);
+ }
+ }
+ delete this.clickEvent;
+ };
+ this.willVisit = (_event) => {
+ delete this.clickEvent;
+ };
+ this.delegate = delegate;
+ this.element = element;
+ }
+ start() {
+ this.element.addEventListener("click", this.clickBubbled);
+ document.addEventListener("turbo:click", this.linkClicked);
+ document.addEventListener("turbo:before-visit", this.willVisit);
+ }
+ stop() {
+ this.element.removeEventListener("click", this.clickBubbled);
+ document.removeEventListener("turbo:click", this.linkClicked);
+ document.removeEventListener("turbo:before-visit", this.willVisit);
+ }
+ respondsToEventTarget(target) {
+ const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
+ return element && element.closest("turbo-frame, html") == this.element;
+ }
+ };
+ var LinkClickObserver = class {
+ constructor(delegate, eventTarget) {
+ this.started = false;
+ this.clickCaptured = () => {
+ this.eventTarget.removeEventListener("click", this.clickBubbled, false);
+ this.eventTarget.addEventListener("click", this.clickBubbled, false);
+ };
+ this.clickBubbled = (event) => {
+ if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {
+ const target = event.composedPath && event.composedPath()[0] || event.target;
+ const link = this.findLinkFromClickTarget(target);
+ if (link && doesNotTargetIFrame(link)) {
+ const location2 = this.getLocationForLink(link);
+ if (this.delegate.willFollowLinkToLocation(link, location2, event)) {
+ event.preventDefault();
+ this.delegate.followedLinkToLocation(link, location2);
+ }
+ }
+ }
+ };
+ this.delegate = delegate;
+ this.eventTarget = eventTarget;
+ }
+ start() {
+ if (!this.started) {
+ this.eventTarget.addEventListener("click", this.clickCaptured, true);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.eventTarget.removeEventListener("click", this.clickCaptured, true);
+ this.started = false;
+ }
+ }
+ clickEventIsSignificant(event) {
+ return !(event.target && event.target.isContentEditable || event.defaultPrevented || event.which > 1 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey);
+ }
+ findLinkFromClickTarget(target) {
+ return findClosestRecursively(target, "a[href]:not([target^=_]):not([download])");
+ }
+ getLocationForLink(link) {
+ return expandURL(link.getAttribute("href") || "");
+ }
+ };
+ function doesNotTargetIFrame(anchor) {
+ if (anchor.hasAttribute("target")) {
+ for (const element of document.getElementsByName(anchor.target)) {
+ if (element instanceof HTMLIFrameElement)
+ return false;
+ }
+ return true;
+ } else {
+ return true;
+ }
+ }
+ var FormLinkClickObserver = class {
+ constructor(delegate, element) {
+ this.delegate = delegate;
+ this.linkInterceptor = new LinkClickObserver(this, element);
+ }
+ start() {
+ this.linkInterceptor.start();
+ }
+ stop() {
+ this.linkInterceptor.stop();
+ }
+ willFollowLinkToLocation(link, location2, originalEvent) {
+ return this.delegate.willSubmitFormLinkToLocation(link, location2, originalEvent) && link.hasAttribute("data-turbo-method");
+ }
+ followedLinkToLocation(link, location2) {
+ const form = document.createElement("form");
+ const type = "hidden";
+ for (const [name, value] of location2.searchParams) {
+ form.append(Object.assign(document.createElement("input"), { type, name, value }));
+ }
+ const action = Object.assign(location2, { search: "" });
+ form.setAttribute("data-turbo", "true");
+ form.setAttribute("action", action.href);
+ form.setAttribute("hidden", "");
+ const method = link.getAttribute("data-turbo-method");
+ if (method)
+ form.setAttribute("method", method);
+ const turboFrame = link.getAttribute("data-turbo-frame");
+ if (turboFrame)
+ form.setAttribute("data-turbo-frame", turboFrame);
+ const turboAction = getVisitAction(link);
+ if (turboAction)
+ form.setAttribute("data-turbo-action", turboAction);
+ const turboConfirm = link.getAttribute("data-turbo-confirm");
+ if (turboConfirm)
+ form.setAttribute("data-turbo-confirm", turboConfirm);
+ const turboStream = link.hasAttribute("data-turbo-stream");
+ if (turboStream)
+ form.setAttribute("data-turbo-stream", "");
+ this.delegate.submittedFormLinkToLocation(link, location2, form);
+ document.body.appendChild(form);
+ form.addEventListener("turbo:submit-end", () => form.remove(), { once: true });
+ requestAnimationFrame(() => form.requestSubmit());
+ }
+ };
+ var Bardo = class {
+ static async preservingPermanentElements(delegate, permanentElementMap, callback) {
+ const bardo = new this(delegate, permanentElementMap);
+ bardo.enter();
+ await callback();
+ bardo.leave();
+ }
+ constructor(delegate, permanentElementMap) {
+ this.delegate = delegate;
+ this.permanentElementMap = permanentElementMap;
+ }
+ enter() {
+ for (const id2 in this.permanentElementMap) {
+ const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id2];
+ this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);
+ this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);
+ }
+ }
+ leave() {
+ for (const id2 in this.permanentElementMap) {
+ const [currentPermanentElement] = this.permanentElementMap[id2];
+ this.replaceCurrentPermanentElementWithClone(currentPermanentElement);
+ this.replacePlaceholderWithPermanentElement(currentPermanentElement);
+ this.delegate.leavingBardo(currentPermanentElement);
+ }
+ }
+ replaceNewPermanentElementWithPlaceholder(permanentElement) {
+ const placeholder = createPlaceholderForPermanentElement(permanentElement);
+ permanentElement.replaceWith(placeholder);
+ }
+ replaceCurrentPermanentElementWithClone(permanentElement) {
+ const clone = permanentElement.cloneNode(true);
+ permanentElement.replaceWith(clone);
+ }
+ replacePlaceholderWithPermanentElement(permanentElement) {
+ const placeholder = this.getPlaceholderById(permanentElement.id);
+ placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);
+ }
+ getPlaceholderById(id2) {
+ return this.placeholders.find((element) => element.content == id2);
+ }
+ get placeholders() {
+ return [...document.querySelectorAll("meta[name=turbo-permanent-placeholder][content]")];
+ }
+ };
+ function createPlaceholderForPermanentElement(permanentElement) {
+ const element = document.createElement("meta");
+ element.setAttribute("name", "turbo-permanent-placeholder");
+ element.setAttribute("content", permanentElement.id);
+ return element;
+ }
+ var Renderer = class {
+ constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {
+ this.activeElement = null;
+ this.currentSnapshot = currentSnapshot;
+ this.newSnapshot = newSnapshot;
+ this.isPreview = isPreview;
+ this.willRender = willRender;
+ this.renderElement = renderElement;
+ this.promise = new Promise((resolve, reject) => this.resolvingFunctions = { resolve, reject });
+ }
+ get shouldRender() {
+ return true;
+ }
+ get reloadReason() {
+ return;
+ }
+ prepareToRender() {
+ return;
+ }
+ finishRendering() {
+ if (this.resolvingFunctions) {
+ this.resolvingFunctions.resolve();
+ delete this.resolvingFunctions;
+ }
+ }
+ async preservingPermanentElements(callback) {
+ await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);
+ }
+ focusFirstAutofocusableElement() {
+ const element = this.connectedSnapshot.firstAutofocusableElement;
+ if (elementIsFocusable(element)) {
+ element.focus();
+ }
+ }
+ enteringBardo(currentPermanentElement) {
+ if (this.activeElement)
+ return;
+ if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {
+ this.activeElement = this.currentSnapshot.activeElement;
+ }
+ }
+ leavingBardo(currentPermanentElement) {
+ if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {
+ this.activeElement.focus();
+ this.activeElement = null;
+ }
+ }
+ get connectedSnapshot() {
+ return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;
+ }
+ get currentElement() {
+ return this.currentSnapshot.element;
+ }
+ get newElement() {
+ return this.newSnapshot.element;
+ }
+ get permanentElementMap() {
+ return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);
+ }
+ };
+ function elementIsFocusable(element) {
+ return element && typeof element.focus == "function";
+ }
+ var FrameRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ var _a;
+ const destinationRange = document.createRange();
+ destinationRange.selectNodeContents(currentElement);
+ destinationRange.deleteContents();
+ const frameElement = newElement;
+ const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();
+ if (sourceRange) {
+ sourceRange.selectNodeContents(frameElement);
+ currentElement.appendChild(sourceRange.extractContents());
+ }
+ }
+ constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {
+ super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);
+ this.delegate = delegate;
+ }
+ get shouldRender() {
+ return true;
+ }
+ async render() {
+ await nextAnimationFrame();
+ this.preservingPermanentElements(() => {
+ this.loadFrameElement();
+ });
+ this.scrollFrameIntoView();
+ await nextAnimationFrame();
+ this.focusFirstAutofocusableElement();
+ await nextAnimationFrame();
+ this.activateScriptElements();
+ }
+ loadFrameElement() {
+ this.delegate.willRenderFrame(this.currentElement, this.newElement);
+ this.renderElement(this.currentElement, this.newElement);
+ }
+ scrollFrameIntoView() {
+ if (this.currentElement.autoscroll || this.newElement.autoscroll) {
+ const element = this.currentElement.firstElementChild;
+ const block = readScrollLogicalPosition(this.currentElement.getAttribute("data-autoscroll-block"), "end");
+ const behavior = readScrollBehavior(this.currentElement.getAttribute("data-autoscroll-behavior"), "auto");
+ if (element) {
+ element.scrollIntoView({ block, behavior });
+ return true;
+ }
+ }
+ return false;
+ }
+ activateScriptElements() {
+ for (const inertScriptElement of this.newScriptElements) {
+ const activatedScriptElement = activateScriptElement(inertScriptElement);
+ inertScriptElement.replaceWith(activatedScriptElement);
+ }
+ }
+ get newScriptElements() {
+ return this.currentElement.querySelectorAll("script");
+ }
+ };
+ function readScrollLogicalPosition(value, defaultValue) {
+ if (value == "end" || value == "start" || value == "center" || value == "nearest") {
+ return value;
+ } else {
+ return defaultValue;
+ }
+ }
+ function readScrollBehavior(value, defaultValue) {
+ if (value == "auto" || value == "smooth") {
+ return value;
+ } else {
+ return defaultValue;
+ }
+ }
+ var ProgressBar = class _ProgressBar {
+ static get defaultCSS() {
+ return unindent`
+ .turbo-progress-bar {
+ position: fixed;
+ display: block;
+ top: 0;
+ left: 0;
+ height: 3px;
+ background: #0076ff;
+ z-index: 2147483647;
+ transition:
+ width ${_ProgressBar.animationDuration}ms ease-out,
+ opacity ${_ProgressBar.animationDuration / 2}ms ${_ProgressBar.animationDuration / 2}ms ease-in;
+ transform: translate3d(0, 0, 0);
+ }
+ `;
+ }
+ constructor() {
+ this.hiding = false;
+ this.value = 0;
+ this.visible = false;
+ this.trickle = () => {
+ this.setValue(this.value + Math.random() / 100);
+ };
+ this.stylesheetElement = this.createStylesheetElement();
+ this.progressElement = this.createProgressElement();
+ this.installStylesheetElement();
+ this.setValue(0);
+ }
+ show() {
+ if (!this.visible) {
+ this.visible = true;
+ this.installProgressElement();
+ this.startTrickling();
+ }
+ }
+ hide() {
+ if (this.visible && !this.hiding) {
+ this.hiding = true;
+ this.fadeProgressElement(() => {
+ this.uninstallProgressElement();
+ this.stopTrickling();
+ this.visible = false;
+ this.hiding = false;
+ });
+ }
+ }
+ setValue(value) {
+ this.value = value;
+ this.refresh();
+ }
+ installStylesheetElement() {
+ document.head.insertBefore(this.stylesheetElement, document.head.firstChild);
+ }
+ installProgressElement() {
+ this.progressElement.style.width = "0";
+ this.progressElement.style.opacity = "1";
+ document.documentElement.insertBefore(this.progressElement, document.body);
+ this.refresh();
+ }
+ fadeProgressElement(callback) {
+ this.progressElement.style.opacity = "0";
+ setTimeout(callback, _ProgressBar.animationDuration * 1.5);
+ }
+ uninstallProgressElement() {
+ if (this.progressElement.parentNode) {
+ document.documentElement.removeChild(this.progressElement);
+ }
+ }
+ startTrickling() {
+ if (!this.trickleInterval) {
+ this.trickleInterval = window.setInterval(this.trickle, _ProgressBar.animationDuration);
+ }
+ }
+ stopTrickling() {
+ window.clearInterval(this.trickleInterval);
+ delete this.trickleInterval;
+ }
+ refresh() {
+ requestAnimationFrame(() => {
+ this.progressElement.style.width = `${10 + this.value * 90}%`;
+ });
+ }
+ createStylesheetElement() {
+ const element = document.createElement("style");
+ element.type = "text/css";
+ element.textContent = _ProgressBar.defaultCSS;
+ if (this.cspNonce) {
+ element.nonce = this.cspNonce;
+ }
+ return element;
+ }
+ createProgressElement() {
+ const element = document.createElement("div");
+ element.className = "turbo-progress-bar";
+ return element;
+ }
+ get cspNonce() {
+ return getMetaContent("csp-nonce");
+ }
+ };
+ ProgressBar.animationDuration = 300;
+ var HeadSnapshot = class extends Snapshot {
+ constructor() {
+ super(...arguments);
+ this.detailsByOuterHTML = this.children.filter((element) => !elementIsNoscript(element)).map((element) => elementWithoutNonce(element)).reduce((result, element) => {
+ const { outerHTML } = element;
+ const details = outerHTML in result ? result[outerHTML] : {
+ type: elementType(element),
+ tracked: elementIsTracked(element),
+ elements: []
+ };
+ return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });
+ }, {});
+ }
+ get trackedElementSignature() {
+ return Object.keys(this.detailsByOuterHTML).filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked).join("");
+ }
+ getScriptElementsNotInSnapshot(snapshot) {
+ return this.getElementsMatchingTypeNotInSnapshot("script", snapshot);
+ }
+ getStylesheetElementsNotInSnapshot(snapshot) {
+ return this.getElementsMatchingTypeNotInSnapshot("stylesheet", snapshot);
+ }
+ getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {
+ return Object.keys(this.detailsByOuterHTML).filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML)).map((outerHTML) => this.detailsByOuterHTML[outerHTML]).filter(({ type }) => type == matchedType).map(({ elements: [element] }) => element);
+ }
+ get provisionalElements() {
+ return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {
+ const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];
+ if (type == null && !tracked) {
+ return [...result, ...elements];
+ } else if (elements.length > 1) {
+ return [...result, ...elements.slice(1)];
+ } else {
+ return result;
+ }
+ }, []);
+ }
+ getMetaValue(name) {
+ const element = this.findMetaElementByName(name);
+ return element ? element.getAttribute("content") : null;
+ }
+ findMetaElementByName(name) {
+ return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {
+ const { elements: [element] } = this.detailsByOuterHTML[outerHTML];
+ return elementIsMetaElementWithName(element, name) ? element : result;
+ }, void 0);
+ }
+ };
+ function elementType(element) {
+ if (elementIsScript(element)) {
+ return "script";
+ } else if (elementIsStylesheet(element)) {
+ return "stylesheet";
+ }
+ }
+ function elementIsTracked(element) {
+ return element.getAttribute("data-turbo-track") == "reload";
+ }
+ function elementIsScript(element) {
+ const tagName = element.localName;
+ return tagName == "script";
+ }
+ function elementIsNoscript(element) {
+ const tagName = element.localName;
+ return tagName == "noscript";
+ }
+ function elementIsStylesheet(element) {
+ const tagName = element.localName;
+ return tagName == "style" || tagName == "link" && element.getAttribute("rel") == "stylesheet";
+ }
+ function elementIsMetaElementWithName(element, name) {
+ const tagName = element.localName;
+ return tagName == "meta" && element.getAttribute("name") == name;
+ }
+ function elementWithoutNonce(element) {
+ if (element.hasAttribute("nonce")) {
+ element.setAttribute("nonce", "");
+ }
+ return element;
+ }
+ var PageSnapshot = class _PageSnapshot extends Snapshot {
+ static fromHTMLString(html = "") {
+ return this.fromDocument(parseHTMLDocument(html));
+ }
+ static fromElement(element) {
+ return this.fromDocument(element.ownerDocument);
+ }
+ static fromDocument({ head, body }) {
+ return new this(body, new HeadSnapshot(head));
+ }
+ constructor(element, headSnapshot) {
+ super(element);
+ this.headSnapshot = headSnapshot;
+ }
+ clone() {
+ const clonedElement = this.element.cloneNode(true);
+ const selectElements = this.element.querySelectorAll("select");
+ const clonedSelectElements = clonedElement.querySelectorAll("select");
+ for (const [index, source] of selectElements.entries()) {
+ const clone = clonedSelectElements[index];
+ for (const option of clone.selectedOptions)
+ option.selected = false;
+ for (const option of source.selectedOptions)
+ clone.options[option.index].selected = true;
+ }
+ for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type="password"]')) {
+ clonedPasswordInput.value = "";
+ }
+ return new _PageSnapshot(clonedElement, this.headSnapshot);
+ }
+ get headElement() {
+ return this.headSnapshot.element;
+ }
+ get rootLocation() {
+ var _a;
+ const root = (_a = this.getSetting("root")) !== null && _a !== void 0 ? _a : "/";
+ return expandURL(root);
+ }
+ get cacheControlValue() {
+ return this.getSetting("cache-control");
+ }
+ get isPreviewable() {
+ return this.cacheControlValue != "no-preview";
+ }
+ get isCacheable() {
+ return this.cacheControlValue != "no-cache";
+ }
+ get isVisitable() {
+ return this.getSetting("visit-control") != "reload";
+ }
+ getSetting(name) {
+ return this.headSnapshot.getMetaValue(`turbo-${name}`);
+ }
+ };
+ var TimingMetric;
+ (function(TimingMetric2) {
+ TimingMetric2["visitStart"] = "visitStart";
+ TimingMetric2["requestStart"] = "requestStart";
+ TimingMetric2["requestEnd"] = "requestEnd";
+ TimingMetric2["visitEnd"] = "visitEnd";
+ })(TimingMetric || (TimingMetric = {}));
+ var VisitState;
+ (function(VisitState2) {
+ VisitState2["initialized"] = "initialized";
+ VisitState2["started"] = "started";
+ VisitState2["canceled"] = "canceled";
+ VisitState2["failed"] = "failed";
+ VisitState2["completed"] = "completed";
+ })(VisitState || (VisitState = {}));
+ var defaultOptions = {
+ action: "advance",
+ historyChanged: false,
+ visitCachedSnapshot: () => {
+ },
+ willRender: true,
+ updateHistory: true,
+ shouldCacheSnapshot: true,
+ acceptsStreamResponse: false
+ };
+ var SystemStatusCode;
+ (function(SystemStatusCode2) {
+ SystemStatusCode2[SystemStatusCode2["networkFailure"] = 0] = "networkFailure";
+ SystemStatusCode2[SystemStatusCode2["timeoutFailure"] = -1] = "timeoutFailure";
+ SystemStatusCode2[SystemStatusCode2["contentTypeMismatch"] = -2] = "contentTypeMismatch";
+ })(SystemStatusCode || (SystemStatusCode = {}));
+ var Visit = class {
+ constructor(delegate, location2, restorationIdentifier, options = {}) {
+ this.identifier = uuid();
+ this.timingMetrics = {};
+ this.followedRedirect = false;
+ this.historyChanged = false;
+ this.scrolled = false;
+ this.shouldCacheSnapshot = true;
+ this.acceptsStreamResponse = false;
+ this.snapshotCached = false;
+ this.state = VisitState.initialized;
+ this.delegate = delegate;
+ this.location = location2;
+ this.restorationIdentifier = restorationIdentifier || uuid();
+ const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse } = Object.assign(Object.assign({}, defaultOptions), options);
+ this.action = action;
+ this.historyChanged = historyChanged;
+ this.referrer = referrer;
+ this.snapshot = snapshot;
+ this.snapshotHTML = snapshotHTML;
+ this.response = response;
+ this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);
+ this.visitCachedSnapshot = visitCachedSnapshot;
+ this.willRender = willRender;
+ this.updateHistory = updateHistory;
+ this.scrolled = !willRender;
+ this.shouldCacheSnapshot = shouldCacheSnapshot;
+ this.acceptsStreamResponse = acceptsStreamResponse;
+ }
+ get adapter() {
+ return this.delegate.adapter;
+ }
+ get view() {
+ return this.delegate.view;
+ }
+ get history() {
+ return this.delegate.history;
+ }
+ get restorationData() {
+ return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);
+ }
+ get silent() {
+ return this.isSamePage;
+ }
+ start() {
+ if (this.state == VisitState.initialized) {
+ this.recordTimingMetric(TimingMetric.visitStart);
+ this.state = VisitState.started;
+ this.adapter.visitStarted(this);
+ this.delegate.visitStarted(this);
+ }
+ }
+ cancel() {
+ if (this.state == VisitState.started) {
+ if (this.request) {
+ this.request.cancel();
+ }
+ this.cancelRender();
+ this.state = VisitState.canceled;
+ }
+ }
+ complete() {
+ if (this.state == VisitState.started) {
+ this.recordTimingMetric(TimingMetric.visitEnd);
+ this.state = VisitState.completed;
+ this.followRedirect();
+ if (!this.followedRedirect) {
+ this.adapter.visitCompleted(this);
+ this.delegate.visitCompleted(this);
+ }
+ }
+ }
+ fail() {
+ if (this.state == VisitState.started) {
+ this.state = VisitState.failed;
+ this.adapter.visitFailed(this);
+ }
+ }
+ changeHistory() {
+ var _a;
+ if (!this.historyChanged && this.updateHistory) {
+ const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? "replace" : this.action;
+ const method = getHistoryMethodForAction(actionForHistory);
+ this.history.update(method, this.location, this.restorationIdentifier);
+ this.historyChanged = true;
+ }
+ }
+ issueRequest() {
+ if (this.hasPreloadedResponse()) {
+ this.simulateRequest();
+ } else if (this.shouldIssueRequest() && !this.request) {
+ this.request = new FetchRequest(this, FetchMethod.get, this.location);
+ this.request.perform();
+ }
+ }
+ simulateRequest() {
+ if (this.response) {
+ this.startRequest();
+ this.recordResponse();
+ this.finishRequest();
+ }
+ }
+ startRequest() {
+ this.recordTimingMetric(TimingMetric.requestStart);
+ this.adapter.visitRequestStarted(this);
+ }
+ recordResponse(response = this.response) {
+ this.response = response;
+ if (response) {
+ const { statusCode } = response;
+ if (isSuccessful(statusCode)) {
+ this.adapter.visitRequestCompleted(this);
+ } else {
+ this.adapter.visitRequestFailedWithStatusCode(this, statusCode);
+ }
+ }
+ }
+ finishRequest() {
+ this.recordTimingMetric(TimingMetric.requestEnd);
+ this.adapter.visitRequestFinished(this);
+ }
+ loadResponse() {
+ if (this.response) {
+ const { statusCode, responseHTML } = this.response;
+ this.render(async () => {
+ if (this.shouldCacheSnapshot)
+ this.cacheSnapshot();
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ if (isSuccessful(statusCode) && responseHTML != null) {
+ await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);
+ this.performScroll();
+ this.adapter.visitRendered(this);
+ this.complete();
+ } else {
+ await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);
+ this.adapter.visitRendered(this);
+ this.fail();
+ }
+ });
+ }
+ }
+ getCachedSnapshot() {
+ const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();
+ if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {
+ if (this.action == "restore" || snapshot.isPreviewable) {
+ return snapshot;
+ }
+ }
+ }
+ getPreloadedSnapshot() {
+ if (this.snapshotHTML) {
+ return PageSnapshot.fromHTMLString(this.snapshotHTML);
+ }
+ }
+ hasCachedSnapshot() {
+ return this.getCachedSnapshot() != null;
+ }
+ loadCachedSnapshot() {
+ const snapshot = this.getCachedSnapshot();
+ if (snapshot) {
+ const isPreview = this.shouldIssueRequest();
+ this.render(async () => {
+ this.cacheSnapshot();
+ if (this.isSamePage) {
+ this.adapter.visitRendered(this);
+ } else {
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ await this.view.renderPage(snapshot, isPreview, this.willRender, this);
+ this.performScroll();
+ this.adapter.visitRendered(this);
+ if (!isPreview) {
+ this.complete();
+ }
+ }
+ });
+ }
+ }
+ followRedirect() {
+ var _a;
+ if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {
+ this.adapter.visitProposedToLocation(this.redirectedToLocation, {
+ action: "replace",
+ response: this.response,
+ shouldCacheSnapshot: false,
+ willRender: false
+ });
+ this.followedRedirect = true;
+ }
+ }
+ goToSamePageAnchor() {
+ if (this.isSamePage) {
+ this.render(async () => {
+ this.cacheSnapshot();
+ this.performScroll();
+ this.changeHistory();
+ this.adapter.visitRendered(this);
+ });
+ }
+ }
+ prepareRequest(request) {
+ if (this.acceptsStreamResponse) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted() {
+ this.startRequest();
+ }
+ requestPreventedHandlingResponse(_request, _response) {
+ }
+ async requestSucceededWithResponse(request, response) {
+ const responseHTML = await response.responseHTML;
+ const { redirected, statusCode } = response;
+ if (responseHTML == void 0) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.contentTypeMismatch,
+ redirected
+ });
+ } else {
+ this.redirectedToLocation = response.redirected ? response.location : void 0;
+ this.recordResponse({ statusCode, responseHTML, redirected });
+ }
+ }
+ async requestFailedWithResponse(request, response) {
+ const responseHTML = await response.responseHTML;
+ const { redirected, statusCode } = response;
+ if (responseHTML == void 0) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.contentTypeMismatch,
+ redirected
+ });
+ } else {
+ this.recordResponse({ statusCode, responseHTML, redirected });
+ }
+ }
+ requestErrored(_request, _error) {
+ this.recordResponse({
+ statusCode: SystemStatusCode.networkFailure,
+ redirected: false
+ });
+ }
+ requestFinished() {
+ this.finishRequest();
+ }
+ performScroll() {
+ if (!this.scrolled && !this.view.forceReloaded) {
+ if (this.action == "restore") {
+ this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();
+ } else {
+ this.scrollToAnchor() || this.view.scrollToTop();
+ }
+ if (this.isSamePage) {
+ this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);
+ }
+ this.scrolled = true;
+ }
+ }
+ scrollToRestoredPosition() {
+ const { scrollPosition } = this.restorationData;
+ if (scrollPosition) {
+ this.view.scrollToPosition(scrollPosition);
+ return true;
+ }
+ }
+ scrollToAnchor() {
+ const anchor = getAnchor(this.location);
+ if (anchor != null) {
+ this.view.scrollToAnchor(anchor);
+ return true;
+ }
+ }
+ recordTimingMetric(metric) {
+ this.timingMetrics[metric] = (/* @__PURE__ */ new Date()).getTime();
+ }
+ getTimingMetrics() {
+ return Object.assign({}, this.timingMetrics);
+ }
+ getHistoryMethodForAction(action) {
+ switch (action) {
+ case "replace":
+ return history.replaceState;
+ case "advance":
+ case "restore":
+ return history.pushState;
+ }
+ }
+ hasPreloadedResponse() {
+ return typeof this.response == "object";
+ }
+ shouldIssueRequest() {
+ if (this.isSamePage) {
+ return false;
+ } else if (this.action == "restore") {
+ return !this.hasCachedSnapshot();
+ } else {
+ return this.willRender;
+ }
+ }
+ cacheSnapshot() {
+ if (!this.snapshotCached) {
+ this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));
+ this.snapshotCached = true;
+ }
+ }
+ async render(callback) {
+ this.cancelRender();
+ await new Promise((resolve) => {
+ this.frame = requestAnimationFrame(() => resolve());
+ });
+ await callback();
+ delete this.frame;
+ }
+ cancelRender() {
+ if (this.frame) {
+ cancelAnimationFrame(this.frame);
+ delete this.frame;
+ }
+ }
+ };
+ function isSuccessful(statusCode) {
+ return statusCode >= 200 && statusCode < 300;
+ }
+ var BrowserAdapter = class {
+ constructor(session2) {
+ this.progressBar = new ProgressBar();
+ this.showProgressBar = () => {
+ this.progressBar.show();
+ };
+ this.session = session2;
+ }
+ visitProposedToLocation(location2, options) {
+ this.navigator.startVisit(location2, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);
+ }
+ visitStarted(visit2) {
+ this.location = visit2.location;
+ visit2.loadCachedSnapshot();
+ visit2.issueRequest();
+ visit2.goToSamePageAnchor();
+ }
+ visitRequestStarted(visit2) {
+ this.progressBar.setValue(0);
+ if (visit2.hasCachedSnapshot() || visit2.action != "restore") {
+ this.showVisitProgressBarAfterDelay();
+ } else {
+ this.showProgressBar();
+ }
+ }
+ visitRequestCompleted(visit2) {
+ visit2.loadResponse();
+ }
+ visitRequestFailedWithStatusCode(visit2, statusCode) {
+ switch (statusCode) {
+ case SystemStatusCode.networkFailure:
+ case SystemStatusCode.timeoutFailure:
+ case SystemStatusCode.contentTypeMismatch:
+ return this.reload({
+ reason: "request_failed",
+ context: {
+ statusCode
+ }
+ });
+ default:
+ return visit2.loadResponse();
+ }
+ }
+ visitRequestFinished(_visit) {
+ this.progressBar.setValue(1);
+ this.hideVisitProgressBar();
+ }
+ visitCompleted(_visit) {
+ }
+ pageInvalidated(reason) {
+ this.reload(reason);
+ }
+ visitFailed(_visit) {
+ }
+ visitRendered(_visit) {
+ }
+ formSubmissionStarted(_formSubmission) {
+ this.progressBar.setValue(0);
+ this.showFormProgressBarAfterDelay();
+ }
+ formSubmissionFinished(_formSubmission) {
+ this.progressBar.setValue(1);
+ this.hideFormProgressBar();
+ }
+ showVisitProgressBarAfterDelay() {
+ this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);
+ }
+ hideVisitProgressBar() {
+ this.progressBar.hide();
+ if (this.visitProgressBarTimeout != null) {
+ window.clearTimeout(this.visitProgressBarTimeout);
+ delete this.visitProgressBarTimeout;
+ }
+ }
+ showFormProgressBarAfterDelay() {
+ if (this.formProgressBarTimeout == null) {
+ this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);
+ }
+ }
+ hideFormProgressBar() {
+ this.progressBar.hide();
+ if (this.formProgressBarTimeout != null) {
+ window.clearTimeout(this.formProgressBarTimeout);
+ delete this.formProgressBarTimeout;
+ }
+ }
+ reload(reason) {
+ var _a;
+ dispatch("turbo:reload", { detail: reason });
+ window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;
+ }
+ get navigator() {
+ return this.session.navigator;
+ }
+ };
+ var CacheObserver = class {
+ constructor() {
+ this.selector = "[data-turbo-temporary]";
+ this.deprecatedSelector = "[data-turbo-cache=false]";
+ this.started = false;
+ this.removeTemporaryElements = (_event) => {
+ for (const element of this.temporaryElements) {
+ element.remove();
+ }
+ };
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ addEventListener("turbo:before-cache", this.removeTemporaryElements, false);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ removeEventListener("turbo:before-cache", this.removeTemporaryElements, false);
+ }
+ }
+ get temporaryElements() {
+ return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];
+ }
+ get temporaryElementsWithDeprecation() {
+ const elements = document.querySelectorAll(this.deprecatedSelector);
+ if (elements.length) {
+ console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);
+ }
+ return [...elements];
+ }
+ };
+ var FrameRedirector = class {
+ constructor(session2, element) {
+ this.session = session2;
+ this.element = element;
+ this.linkInterceptor = new LinkInterceptor(this, element);
+ this.formSubmitObserver = new FormSubmitObserver(this, element);
+ }
+ start() {
+ this.linkInterceptor.start();
+ this.formSubmitObserver.start();
+ }
+ stop() {
+ this.linkInterceptor.stop();
+ this.formSubmitObserver.stop();
+ }
+ shouldInterceptLinkClick(element, _location, _event) {
+ return this.shouldRedirect(element);
+ }
+ linkClickIntercepted(element, url, event) {
+ const frame = this.findFrameElement(element);
+ if (frame) {
+ frame.delegate.linkClickIntercepted(element, url, event);
+ }
+ }
+ willSubmitForm(element, submitter) {
+ return element.closest("turbo-frame") == null && this.shouldSubmit(element, submitter) && this.shouldRedirect(element, submitter);
+ }
+ formSubmitted(element, submitter) {
+ const frame = this.findFrameElement(element, submitter);
+ if (frame) {
+ frame.delegate.formSubmitted(element, submitter);
+ }
+ }
+ shouldSubmit(form, submitter) {
+ var _a;
+ const action = getAction(form, submitter);
+ const meta = this.element.ownerDocument.querySelector(`meta[name="turbo-root"]`);
+ const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : "/");
+ return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);
+ }
+ shouldRedirect(element, submitter) {
+ const isNavigatable = element instanceof HTMLFormElement ? this.session.submissionIsNavigatable(element, submitter) : this.session.elementIsNavigatable(element);
+ if (isNavigatable) {
+ const frame = this.findFrameElement(element, submitter);
+ return frame ? frame != element.closest("turbo-frame") : false;
+ } else {
+ return false;
+ }
+ }
+ findFrameElement(element, submitter) {
+ const id2 = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute("data-turbo-frame")) || element.getAttribute("data-turbo-frame");
+ if (id2 && id2 != "_top") {
+ const frame = this.element.querySelector(`#${id2}:not([disabled])`);
+ if (frame instanceof FrameElement) {
+ return frame;
+ }
+ }
+ }
+ };
+ var History = class {
+ constructor(delegate) {
+ this.restorationIdentifier = uuid();
+ this.restorationData = {};
+ this.started = false;
+ this.pageLoaded = false;
+ this.onPopState = (event) => {
+ if (this.shouldHandlePopState()) {
+ const { turbo } = event.state || {};
+ if (turbo) {
+ this.location = new URL(window.location.href);
+ const { restorationIdentifier } = turbo;
+ this.restorationIdentifier = restorationIdentifier;
+ this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);
+ }
+ }
+ };
+ this.onPageLoad = async (_event) => {
+ await nextMicrotask();
+ this.pageLoaded = true;
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ addEventListener("popstate", this.onPopState, false);
+ addEventListener("load", this.onPageLoad, false);
+ this.started = true;
+ this.replace(new URL(window.location.href));
+ }
+ }
+ stop() {
+ if (this.started) {
+ removeEventListener("popstate", this.onPopState, false);
+ removeEventListener("load", this.onPageLoad, false);
+ this.started = false;
+ }
+ }
+ push(location2, restorationIdentifier) {
+ this.update(history.pushState, location2, restorationIdentifier);
+ }
+ replace(location2, restorationIdentifier) {
+ this.update(history.replaceState, location2, restorationIdentifier);
+ }
+ update(method, location2, restorationIdentifier = uuid()) {
+ const state = { turbo: { restorationIdentifier } };
+ method.call(history, state, "", location2.href);
+ this.location = location2;
+ this.restorationIdentifier = restorationIdentifier;
+ }
+ getRestorationDataForIdentifier(restorationIdentifier) {
+ return this.restorationData[restorationIdentifier] || {};
+ }
+ updateRestorationData(additionalData) {
+ const { restorationIdentifier } = this;
+ const restorationData = this.restorationData[restorationIdentifier];
+ this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);
+ }
+ assumeControlOfScrollRestoration() {
+ var _a;
+ if (!this.previousScrollRestoration) {
+ this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : "auto";
+ history.scrollRestoration = "manual";
+ }
+ }
+ relinquishControlOfScrollRestoration() {
+ if (this.previousScrollRestoration) {
+ history.scrollRestoration = this.previousScrollRestoration;
+ delete this.previousScrollRestoration;
+ }
+ }
+ shouldHandlePopState() {
+ return this.pageIsLoaded();
+ }
+ pageIsLoaded() {
+ return this.pageLoaded || document.readyState == "complete";
+ }
+ };
+ var Navigator = class {
+ constructor(delegate) {
+ this.delegate = delegate;
+ }
+ proposeVisit(location2, options = {}) {
+ if (this.delegate.allowsVisitingLocationWithAction(location2, options.action)) {
+ if (locationIsVisitable(location2, this.view.snapshot.rootLocation)) {
+ this.delegate.visitProposedToLocation(location2, options);
+ } else {
+ window.location.href = location2.toString();
+ }
+ }
+ }
+ startVisit(locatable, restorationIdentifier, options = {}) {
+ this.stop();
+ this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));
+ this.currentVisit.start();
+ }
+ submitForm(form, submitter) {
+ this.stop();
+ this.formSubmission = new FormSubmission(this, form, submitter, true);
+ this.formSubmission.start();
+ }
+ stop() {
+ if (this.formSubmission) {
+ this.formSubmission.stop();
+ delete this.formSubmission;
+ }
+ if (this.currentVisit) {
+ this.currentVisit.cancel();
+ delete this.currentVisit;
+ }
+ }
+ get adapter() {
+ return this.delegate.adapter;
+ }
+ get view() {
+ return this.delegate.view;
+ }
+ get history() {
+ return this.delegate.history;
+ }
+ formSubmissionStarted(formSubmission) {
+ if (typeof this.adapter.formSubmissionStarted === "function") {
+ this.adapter.formSubmissionStarted(formSubmission);
+ }
+ }
+ async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {
+ if (formSubmission == this.formSubmission) {
+ const responseHTML = await fetchResponse.responseHTML;
+ if (responseHTML) {
+ const shouldCacheSnapshot = formSubmission.isSafe;
+ if (!shouldCacheSnapshot) {
+ this.view.clearSnapshotCache();
+ }
+ const { statusCode, redirected } = fetchResponse;
+ const action = this.getActionForFormSubmission(formSubmission);
+ const visitOptions = {
+ action,
+ shouldCacheSnapshot,
+ response: { statusCode, responseHTML, redirected }
+ };
+ this.proposeVisit(fetchResponse.location, visitOptions);
+ }
+ }
+ }
+ async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {
+ const responseHTML = await fetchResponse.responseHTML;
+ if (responseHTML) {
+ const snapshot = PageSnapshot.fromHTMLString(responseHTML);
+ if (fetchResponse.serverError) {
+ await this.view.renderError(snapshot, this.currentVisit);
+ } else {
+ await this.view.renderPage(snapshot, false, true, this.currentVisit);
+ }
+ this.view.scrollToTop();
+ this.view.clearSnapshotCache();
+ }
+ }
+ formSubmissionErrored(formSubmission, error2) {
+ console.error(error2);
+ }
+ formSubmissionFinished(formSubmission) {
+ if (typeof this.adapter.formSubmissionFinished === "function") {
+ this.adapter.formSubmissionFinished(formSubmission);
+ }
+ }
+ visitStarted(visit2) {
+ this.delegate.visitStarted(visit2);
+ }
+ visitCompleted(visit2) {
+ this.delegate.visitCompleted(visit2);
+ }
+ locationWithActionIsSamePage(location2, action) {
+ const anchor = getAnchor(location2);
+ const currentAnchor = getAnchor(this.view.lastRenderedLocation);
+ const isRestorationToTop = action === "restore" && typeof anchor === "undefined";
+ return action !== "replace" && getRequestURL(location2) === getRequestURL(this.view.lastRenderedLocation) && (isRestorationToTop || anchor != null && anchor !== currentAnchor);
+ }
+ visitScrolledToSamePageLocation(oldURL, newURL) {
+ this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);
+ }
+ get location() {
+ return this.history.location;
+ }
+ get restorationIdentifier() {
+ return this.history.restorationIdentifier;
+ }
+ getActionForFormSubmission({ submitter, formElement }) {
+ return getVisitAction(submitter, formElement) || "advance";
+ }
+ };
+ var PageStage;
+ (function(PageStage2) {
+ PageStage2[PageStage2["initial"] = 0] = "initial";
+ PageStage2[PageStage2["loading"] = 1] = "loading";
+ PageStage2[PageStage2["interactive"] = 2] = "interactive";
+ PageStage2[PageStage2["complete"] = 3] = "complete";
+ })(PageStage || (PageStage = {}));
+ var PageObserver = class {
+ constructor(delegate) {
+ this.stage = PageStage.initial;
+ this.started = false;
+ this.interpretReadyState = () => {
+ const { readyState } = this;
+ if (readyState == "interactive") {
+ this.pageIsInteractive();
+ } else if (readyState == "complete") {
+ this.pageIsComplete();
+ }
+ };
+ this.pageWillUnload = () => {
+ this.delegate.pageWillUnload();
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ if (this.stage == PageStage.initial) {
+ this.stage = PageStage.loading;
+ }
+ document.addEventListener("readystatechange", this.interpretReadyState, false);
+ addEventListener("pagehide", this.pageWillUnload, false);
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ document.removeEventListener("readystatechange", this.interpretReadyState, false);
+ removeEventListener("pagehide", this.pageWillUnload, false);
+ this.started = false;
+ }
+ }
+ pageIsInteractive() {
+ if (this.stage == PageStage.loading) {
+ this.stage = PageStage.interactive;
+ this.delegate.pageBecameInteractive();
+ }
+ }
+ pageIsComplete() {
+ this.pageIsInteractive();
+ if (this.stage == PageStage.interactive) {
+ this.stage = PageStage.complete;
+ this.delegate.pageLoaded();
+ }
+ }
+ get readyState() {
+ return document.readyState;
+ }
+ };
+ var ScrollObserver = class {
+ constructor(delegate) {
+ this.started = false;
+ this.onScroll = () => {
+ this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ addEventListener("scroll", this.onScroll, false);
+ this.onScroll();
+ this.started = true;
+ }
+ }
+ stop() {
+ if (this.started) {
+ removeEventListener("scroll", this.onScroll, false);
+ this.started = false;
+ }
+ }
+ updatePosition(position) {
+ this.delegate.scrollPositionChanged(position);
+ }
+ };
+ var StreamMessageRenderer = class {
+ render({ fragment }) {
+ Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));
+ }
+ enteringBardo(currentPermanentElement, newPermanentElement) {
+ newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));
+ }
+ leavingBardo() {
+ }
+ };
+ function getPermanentElementMapForFragment(fragment) {
+ const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);
+ const permanentElementMap = {};
+ for (const permanentElementInDocument of permanentElementsInDocument) {
+ const { id: id2 } = permanentElementInDocument;
+ for (const streamElement of fragment.querySelectorAll("turbo-stream")) {
+ const elementInStream = getPermanentElementById(streamElement.templateElement.content, id2);
+ if (elementInStream) {
+ permanentElementMap[id2] = [permanentElementInDocument, elementInStream];
+ }
+ }
+ }
+ return permanentElementMap;
+ }
+ var StreamObserver = class {
+ constructor(delegate) {
+ this.sources = /* @__PURE__ */ new Set();
+ this.started = false;
+ this.inspectFetchResponse = (event) => {
+ const response = fetchResponseFromEvent(event);
+ if (response && fetchResponseIsStream(response)) {
+ event.preventDefault();
+ this.receiveMessageResponse(response);
+ }
+ };
+ this.receiveMessageEvent = (event) => {
+ if (this.started && typeof event.data == "string") {
+ this.receiveMessageHTML(event.data);
+ }
+ };
+ this.delegate = delegate;
+ }
+ start() {
+ if (!this.started) {
+ this.started = true;
+ addEventListener("turbo:before-fetch-response", this.inspectFetchResponse, false);
+ }
+ }
+ stop() {
+ if (this.started) {
+ this.started = false;
+ removeEventListener("turbo:before-fetch-response", this.inspectFetchResponse, false);
+ }
+ }
+ connectStreamSource(source) {
+ if (!this.streamSourceIsConnected(source)) {
+ this.sources.add(source);
+ source.addEventListener("message", this.receiveMessageEvent, false);
+ }
+ }
+ disconnectStreamSource(source) {
+ if (this.streamSourceIsConnected(source)) {
+ this.sources.delete(source);
+ source.removeEventListener("message", this.receiveMessageEvent, false);
+ }
+ }
+ streamSourceIsConnected(source) {
+ return this.sources.has(source);
+ }
+ async receiveMessageResponse(response) {
+ const html = await response.responseHTML;
+ if (html) {
+ this.receiveMessageHTML(html);
+ }
+ }
+ receiveMessageHTML(html) {
+ this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));
+ }
+ };
+ function fetchResponseFromEvent(event) {
+ var _a;
+ const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;
+ if (fetchResponse instanceof FetchResponse) {
+ return fetchResponse;
+ }
+ }
+ function fetchResponseIsStream(response) {
+ var _a;
+ const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : "";
+ return contentType.startsWith(StreamMessage.contentType);
+ }
+ var ErrorRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ const { documentElement, body } = document;
+ documentElement.replaceChild(newElement, body);
+ }
+ async render() {
+ this.replaceHeadAndBody();
+ this.activateScriptElements();
+ }
+ replaceHeadAndBody() {
+ const { documentElement, head } = document;
+ documentElement.replaceChild(this.newHead, head);
+ this.renderElement(this.currentElement, this.newElement);
+ }
+ activateScriptElements() {
+ for (const replaceableElement of this.scriptElements) {
+ const parentNode = replaceableElement.parentNode;
+ if (parentNode) {
+ const element = activateScriptElement(replaceableElement);
+ parentNode.replaceChild(element, replaceableElement);
+ }
+ }
+ }
+ get newHead() {
+ return this.newSnapshot.headSnapshot.element;
+ }
+ get scriptElements() {
+ return document.documentElement.querySelectorAll("script");
+ }
+ };
+ var PageRenderer = class extends Renderer {
+ static renderElement(currentElement, newElement) {
+ if (document.body && newElement instanceof HTMLBodyElement) {
+ document.body.replaceWith(newElement);
+ } else {
+ document.documentElement.appendChild(newElement);
+ }
+ }
+ get shouldRender() {
+ return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;
+ }
+ get reloadReason() {
+ if (!this.newSnapshot.isVisitable) {
+ return {
+ reason: "turbo_visit_control_is_reload"
+ };
+ }
+ if (!this.trackedElementsAreIdentical) {
+ return {
+ reason: "tracked_element_mismatch"
+ };
+ }
+ }
+ async prepareToRender() {
+ await this.mergeHead();
+ }
+ async render() {
+ if (this.willRender) {
+ await this.replaceBody();
+ }
+ }
+ finishRendering() {
+ super.finishRendering();
+ if (!this.isPreview) {
+ this.focusFirstAutofocusableElement();
+ }
+ }
+ get currentHeadSnapshot() {
+ return this.currentSnapshot.headSnapshot;
+ }
+ get newHeadSnapshot() {
+ return this.newSnapshot.headSnapshot;
+ }
+ get newElement() {
+ return this.newSnapshot.element;
+ }
+ async mergeHead() {
+ const mergedHeadElements = this.mergeProvisionalElements();
+ const newStylesheetElements = this.copyNewHeadStylesheetElements();
+ this.copyNewHeadScriptElements();
+ await mergedHeadElements;
+ await newStylesheetElements;
+ }
+ async replaceBody() {
+ await this.preservingPermanentElements(async () => {
+ this.activateNewBody();
+ await this.assignNewBody();
+ });
+ }
+ get trackedElementsAreIdentical() {
+ return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;
+ }
+ async copyNewHeadStylesheetElements() {
+ const loadingElements = [];
+ for (const element of this.newHeadStylesheetElements) {
+ loadingElements.push(waitForLoad(element));
+ document.head.appendChild(element);
+ }
+ await Promise.all(loadingElements);
+ }
+ copyNewHeadScriptElements() {
+ for (const element of this.newHeadScriptElements) {
+ document.head.appendChild(activateScriptElement(element));
+ }
+ }
+ async mergeProvisionalElements() {
+ const newHeadElements = [...this.newHeadProvisionalElements];
+ for (const element of this.currentHeadProvisionalElements) {
+ if (!this.isCurrentElementInElementList(element, newHeadElements)) {
+ document.head.removeChild(element);
+ }
+ }
+ for (const element of newHeadElements) {
+ document.head.appendChild(element);
+ }
+ }
+ isCurrentElementInElementList(element, elementList) {
+ for (const [index, newElement] of elementList.entries()) {
+ if (element.tagName == "TITLE") {
+ if (newElement.tagName != "TITLE") {
+ continue;
+ }
+ if (element.innerHTML == newElement.innerHTML) {
+ elementList.splice(index, 1);
+ return true;
+ }
+ }
+ if (newElement.isEqualNode(element)) {
+ elementList.splice(index, 1);
+ return true;
+ }
+ }
+ return false;
+ }
+ removeCurrentHeadProvisionalElements() {
+ for (const element of this.currentHeadProvisionalElements) {
+ document.head.removeChild(element);
+ }
+ }
+ copyNewHeadProvisionalElements() {
+ for (const element of this.newHeadProvisionalElements) {
+ document.head.appendChild(element);
+ }
+ }
+ activateNewBody() {
+ document.adoptNode(this.newElement);
+ this.activateNewBodyScriptElements();
+ }
+ activateNewBodyScriptElements() {
+ for (const inertScriptElement of this.newBodyScriptElements) {
+ const activatedScriptElement = activateScriptElement(inertScriptElement);
+ inertScriptElement.replaceWith(activatedScriptElement);
+ }
+ }
+ async assignNewBody() {
+ await this.renderElement(this.currentElement, this.newElement);
+ }
+ get newHeadStylesheetElements() {
+ return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);
+ }
+ get newHeadScriptElements() {
+ return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);
+ }
+ get currentHeadProvisionalElements() {
+ return this.currentHeadSnapshot.provisionalElements;
+ }
+ get newHeadProvisionalElements() {
+ return this.newHeadSnapshot.provisionalElements;
+ }
+ get newBodyScriptElements() {
+ return this.newElement.querySelectorAll("script");
+ }
+ };
+ var SnapshotCache = class {
+ constructor(size) {
+ this.keys = [];
+ this.snapshots = {};
+ this.size = size;
+ }
+ has(location2) {
+ return toCacheKey(location2) in this.snapshots;
+ }
+ get(location2) {
+ if (this.has(location2)) {
+ const snapshot = this.read(location2);
+ this.touch(location2);
+ return snapshot;
+ }
+ }
+ put(location2, snapshot) {
+ this.write(location2, snapshot);
+ this.touch(location2);
+ return snapshot;
+ }
+ clear() {
+ this.snapshots = {};
+ }
+ read(location2) {
+ return this.snapshots[toCacheKey(location2)];
+ }
+ write(location2, snapshot) {
+ this.snapshots[toCacheKey(location2)] = snapshot;
+ }
+ touch(location2) {
+ const key = toCacheKey(location2);
+ const index = this.keys.indexOf(key);
+ if (index > -1)
+ this.keys.splice(index, 1);
+ this.keys.unshift(key);
+ this.trim();
+ }
+ trim() {
+ for (const key of this.keys.splice(this.size)) {
+ delete this.snapshots[key];
+ }
+ }
+ };
+ var PageView = class extends View {
+ constructor() {
+ super(...arguments);
+ this.snapshotCache = new SnapshotCache(10);
+ this.lastRenderedLocation = new URL(location.href);
+ this.forceReloaded = false;
+ }
+ renderPage(snapshot, isPreview = false, willRender = true, visit2) {
+ const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);
+ if (!renderer.shouldRender) {
+ this.forceReloaded = true;
+ } else {
+ visit2 === null || visit2 === void 0 ? void 0 : visit2.changeHistory();
+ }
+ return this.render(renderer);
+ }
+ renderError(snapshot, visit2) {
+ visit2 === null || visit2 === void 0 ? void 0 : visit2.changeHistory();
+ const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);
+ return this.render(renderer);
+ }
+ clearSnapshotCache() {
+ this.snapshotCache.clear();
+ }
+ async cacheSnapshot(snapshot = this.snapshot) {
+ if (snapshot.isCacheable) {
+ this.delegate.viewWillCacheSnapshot();
+ const { lastRenderedLocation: location2 } = this;
+ await nextEventLoopTick();
+ const cachedSnapshot = snapshot.clone();
+ this.snapshotCache.put(location2, cachedSnapshot);
+ return cachedSnapshot;
+ }
+ }
+ getCachedSnapshotForLocation(location2) {
+ return this.snapshotCache.get(location2);
+ }
+ get snapshot() {
+ return PageSnapshot.fromElement(this.element);
+ }
+ };
+ var Preloader = class {
+ constructor(delegate) {
+ this.selector = "a[data-turbo-preload]";
+ this.delegate = delegate;
+ }
+ get snapshotCache() {
+ return this.delegate.navigator.view.snapshotCache;
+ }
+ start() {
+ if (document.readyState === "loading") {
+ return document.addEventListener("DOMContentLoaded", () => {
+ this.preloadOnLoadLinksForView(document.body);
+ });
+ } else {
+ this.preloadOnLoadLinksForView(document.body);
+ }
+ }
+ preloadOnLoadLinksForView(element) {
+ for (const link of element.querySelectorAll(this.selector)) {
+ this.preloadURL(link);
+ }
+ }
+ async preloadURL(link) {
+ const location2 = new URL(link.href);
+ if (this.snapshotCache.has(location2)) {
+ return;
+ }
+ try {
+ const response = await fetch(location2.toString(), { headers: { "VND.PREFETCH": "true", Accept: "text/html" } });
+ const responseText = await response.text();
+ const snapshot = PageSnapshot.fromHTMLString(responseText);
+ this.snapshotCache.put(location2, snapshot);
+ } catch (_) {
+ }
+ }
+ };
+ var Session = class {
+ constructor() {
+ this.navigator = new Navigator(this);
+ this.history = new History(this);
+ this.preloader = new Preloader(this);
+ this.view = new PageView(this, document.documentElement);
+ this.adapter = new BrowserAdapter(this);
+ this.pageObserver = new PageObserver(this);
+ this.cacheObserver = new CacheObserver();
+ this.linkClickObserver = new LinkClickObserver(this, window);
+ this.formSubmitObserver = new FormSubmitObserver(this, document);
+ this.scrollObserver = new ScrollObserver(this);
+ this.streamObserver = new StreamObserver(this);
+ this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);
+ this.frameRedirector = new FrameRedirector(this, document.documentElement);
+ this.streamMessageRenderer = new StreamMessageRenderer();
+ this.drive = true;
+ this.enabled = true;
+ this.progressBarDelay = 500;
+ this.started = false;
+ this.formMode = "on";
+ }
+ start() {
+ if (!this.started) {
+ this.pageObserver.start();
+ this.cacheObserver.start();
+ this.formLinkClickObserver.start();
+ this.linkClickObserver.start();
+ this.formSubmitObserver.start();
+ this.scrollObserver.start();
+ this.streamObserver.start();
+ this.frameRedirector.start();
+ this.history.start();
+ this.preloader.start();
+ this.started = true;
+ this.enabled = true;
+ }
+ }
+ disable() {
+ this.enabled = false;
+ }
+ stop() {
+ if (this.started) {
+ this.pageObserver.stop();
+ this.cacheObserver.stop();
+ this.formLinkClickObserver.stop();
+ this.linkClickObserver.stop();
+ this.formSubmitObserver.stop();
+ this.scrollObserver.stop();
+ this.streamObserver.stop();
+ this.frameRedirector.stop();
+ this.history.stop();
+ this.started = false;
+ }
+ }
+ registerAdapter(adapter) {
+ this.adapter = adapter;
+ }
+ visit(location2, options = {}) {
+ const frameElement = options.frame ? document.getElementById(options.frame) : null;
+ if (frameElement instanceof FrameElement) {
+ frameElement.src = location2.toString();
+ frameElement.loaded;
+ } else {
+ this.navigator.proposeVisit(expandURL(location2), options);
+ }
+ }
+ connectStreamSource(source) {
+ this.streamObserver.connectStreamSource(source);
+ }
+ disconnectStreamSource(source) {
+ this.streamObserver.disconnectStreamSource(source);
+ }
+ renderStreamMessage(message) {
+ this.streamMessageRenderer.render(StreamMessage.wrap(message));
+ }
+ clearCache() {
+ this.view.clearSnapshotCache();
+ }
+ setProgressBarDelay(delay) {
+ this.progressBarDelay = delay;
+ }
+ setFormMode(mode) {
+ this.formMode = mode;
+ }
+ get location() {
+ return this.history.location;
+ }
+ get restorationIdentifier() {
+ return this.history.restorationIdentifier;
+ }
+ historyPoppedToLocationWithRestorationIdentifier(location2, restorationIdentifier) {
+ if (this.enabled) {
+ this.navigator.startVisit(location2, restorationIdentifier, {
+ action: "restore",
+ historyChanged: true
+ });
+ } else {
+ this.adapter.pageInvalidated({
+ reason: "turbo_disabled"
+ });
+ }
+ }
+ scrollPositionChanged(position) {
+ this.history.updateRestorationData({ scrollPosition: position });
+ }
+ willSubmitFormLinkToLocation(link, location2) {
+ return this.elementIsNavigatable(link) && locationIsVisitable(location2, this.snapshot.rootLocation);
+ }
+ submittedFormLinkToLocation() {
+ }
+ willFollowLinkToLocation(link, location2, event) {
+ return this.elementIsNavigatable(link) && locationIsVisitable(location2, this.snapshot.rootLocation) && this.applicationAllowsFollowingLinkToLocation(link, location2, event);
+ }
+ followedLinkToLocation(link, location2) {
+ const action = this.getActionForLink(link);
+ const acceptsStreamResponse = link.hasAttribute("data-turbo-stream");
+ this.visit(location2.href, { action, acceptsStreamResponse });
+ }
+ allowsVisitingLocationWithAction(location2, action) {
+ return this.locationWithActionIsSamePage(location2, action) || this.applicationAllowsVisitingLocation(location2);
+ }
+ visitProposedToLocation(location2, options) {
+ extendURLWithDeprecatedProperties(location2);
+ this.adapter.visitProposedToLocation(location2, options);
+ }
+ visitStarted(visit2) {
+ if (!visit2.acceptsStreamResponse) {
+ markAsBusy(document.documentElement);
+ }
+ extendURLWithDeprecatedProperties(visit2.location);
+ if (!visit2.silent) {
+ this.notifyApplicationAfterVisitingLocation(visit2.location, visit2.action);
+ }
+ }
+ visitCompleted(visit2) {
+ clearBusyState(document.documentElement);
+ this.notifyApplicationAfterPageLoad(visit2.getTimingMetrics());
+ }
+ locationWithActionIsSamePage(location2, action) {
+ return this.navigator.locationWithActionIsSamePage(location2, action);
+ }
+ visitScrolledToSamePageLocation(oldURL, newURL) {
+ this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);
+ }
+ willSubmitForm(form, submitter) {
+ const action = getAction(form, submitter);
+ return this.submissionIsNavigatable(form, submitter) && locationIsVisitable(expandURL(action), this.snapshot.rootLocation);
+ }
+ formSubmitted(form, submitter) {
+ this.navigator.submitForm(form, submitter);
+ }
+ pageBecameInteractive() {
+ this.view.lastRenderedLocation = this.location;
+ this.notifyApplicationAfterPageLoad();
+ }
+ pageLoaded() {
+ this.history.assumeControlOfScrollRestoration();
+ }
+ pageWillUnload() {
+ this.history.relinquishControlOfScrollRestoration();
+ }
+ receivedMessageFromStream(message) {
+ this.renderStreamMessage(message);
+ }
+ viewWillCacheSnapshot() {
+ var _a;
+ if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {
+ this.notifyApplicationBeforeCachingSnapshot();
+ }
+ }
+ allowsImmediateRender({ element }, options) {
+ const event = this.notifyApplicationBeforeRender(element, options);
+ const { defaultPrevented, detail: { render } } = event;
+ if (this.view.renderer && render) {
+ this.view.renderer.renderElement = render;
+ }
+ return !defaultPrevented;
+ }
+ viewRenderedSnapshot(_snapshot, _isPreview) {
+ this.view.lastRenderedLocation = this.history.location;
+ this.notifyApplicationAfterRender();
+ }
+ preloadOnLoadLinksForView(element) {
+ this.preloader.preloadOnLoadLinksForView(element);
+ }
+ viewInvalidated(reason) {
+ this.adapter.pageInvalidated(reason);
+ }
+ frameLoaded(frame) {
+ this.notifyApplicationAfterFrameLoad(frame);
+ }
+ frameRendered(fetchResponse, frame) {
+ this.notifyApplicationAfterFrameRender(fetchResponse, frame);
+ }
+ applicationAllowsFollowingLinkToLocation(link, location2, ev) {
+ const event = this.notifyApplicationAfterClickingLinkToLocation(link, location2, ev);
+ return !event.defaultPrevented;
+ }
+ applicationAllowsVisitingLocation(location2) {
+ const event = this.notifyApplicationBeforeVisitingLocation(location2);
+ return !event.defaultPrevented;
+ }
+ notifyApplicationAfterClickingLinkToLocation(link, location2, event) {
+ return dispatch("turbo:click", {
+ target: link,
+ detail: { url: location2.href, originalEvent: event },
+ cancelable: true
+ });
+ }
+ notifyApplicationBeforeVisitingLocation(location2) {
+ return dispatch("turbo:before-visit", {
+ detail: { url: location2.href },
+ cancelable: true
+ });
+ }
+ notifyApplicationAfterVisitingLocation(location2, action) {
+ return dispatch("turbo:visit", { detail: { url: location2.href, action } });
+ }
+ notifyApplicationBeforeCachingSnapshot() {
+ return dispatch("turbo:before-cache");
+ }
+ notifyApplicationBeforeRender(newBody, options) {
+ return dispatch("turbo:before-render", {
+ detail: Object.assign({ newBody }, options),
+ cancelable: true
+ });
+ }
+ notifyApplicationAfterRender() {
+ return dispatch("turbo:render");
+ }
+ notifyApplicationAfterPageLoad(timing = {}) {
+ return dispatch("turbo:load", {
+ detail: { url: this.location.href, timing }
+ });
+ }
+ notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {
+ dispatchEvent(new HashChangeEvent("hashchange", {
+ oldURL: oldURL.toString(),
+ newURL: newURL.toString()
+ }));
+ }
+ notifyApplicationAfterFrameLoad(frame) {
+ return dispatch("turbo:frame-load", { target: frame });
+ }
+ notifyApplicationAfterFrameRender(fetchResponse, frame) {
+ return dispatch("turbo:frame-render", {
+ detail: { fetchResponse },
+ target: frame,
+ cancelable: true
+ });
+ }
+ submissionIsNavigatable(form, submitter) {
+ if (this.formMode == "off") {
+ return false;
+ } else {
+ const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;
+ if (this.formMode == "optin") {
+ return submitterIsNavigatable && form.closest('[data-turbo="true"]') != null;
+ } else {
+ return submitterIsNavigatable && this.elementIsNavigatable(form);
+ }
+ }
+ }
+ elementIsNavigatable(element) {
+ const container = findClosestRecursively(element, "[data-turbo]");
+ const withinFrame = findClosestRecursively(element, "turbo-frame");
+ if (this.drive || withinFrame) {
+ if (container) {
+ return container.getAttribute("data-turbo") != "false";
+ } else {
+ return true;
+ }
+ } else {
+ if (container) {
+ return container.getAttribute("data-turbo") == "true";
+ } else {
+ return false;
+ }
+ }
+ }
+ getActionForLink(link) {
+ return getVisitAction(link) || "advance";
+ }
+ get snapshot() {
+ return this.view.snapshot;
+ }
+ };
+ function extendURLWithDeprecatedProperties(url) {
+ Object.defineProperties(url, deprecatedLocationPropertyDescriptors);
+ }
+ var deprecatedLocationPropertyDescriptors = {
+ absoluteURL: {
+ get() {
+ return this.toString();
+ }
+ }
+ };
+ var Cache = class {
+ constructor(session2) {
+ this.session = session2;
+ }
+ clear() {
+ this.session.clearCache();
+ }
+ resetCacheControl() {
+ this.setCacheControl("");
+ }
+ exemptPageFromCache() {
+ this.setCacheControl("no-cache");
+ }
+ exemptPageFromPreview() {
+ this.setCacheControl("no-preview");
+ }
+ setCacheControl(value) {
+ setMetaContent("turbo-cache-control", value);
+ }
+ };
+ var StreamActions = {
+ after() {
+ this.targetElements.forEach((e) => {
+ var _a;
+ return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling);
+ });
+ },
+ append() {
+ this.removeDuplicateTargetChildren();
+ this.targetElements.forEach((e) => e.append(this.templateContent));
+ },
+ before() {
+ this.targetElements.forEach((e) => {
+ var _a;
+ return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e);
+ });
+ },
+ prepend() {
+ this.removeDuplicateTargetChildren();
+ this.targetElements.forEach((e) => e.prepend(this.templateContent));
+ },
+ remove() {
+ this.targetElements.forEach((e) => e.remove());
+ },
+ replace() {
+ this.targetElements.forEach((e) => e.replaceWith(this.templateContent));
+ },
+ update() {
+ this.targetElements.forEach((targetElement) => {
+ targetElement.innerHTML = "";
+ targetElement.append(this.templateContent);
+ });
+ }
+ };
+ var session = new Session();
+ var cache = new Cache(session);
+ var { navigator: navigator$1 } = session;
+ function start3() {
+ session.start();
+ }
+ function registerAdapter(adapter) {
+ session.registerAdapter(adapter);
+ }
+ function visit(location2, options) {
+ session.visit(location2, options);
+ }
+ function connectStreamSource(source) {
+ session.connectStreamSource(source);
+ }
+ function disconnectStreamSource(source) {
+ session.disconnectStreamSource(source);
+ }
+ function renderStreamMessage(message) {
+ session.renderStreamMessage(message);
+ }
+ function clearCache() {
+ console.warn("Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`");
+ session.clearCache();
+ }
+ function setProgressBarDelay(delay) {
+ session.setProgressBarDelay(delay);
+ }
+ function setConfirmMethod(confirmMethod) {
+ FormSubmission.confirmMethod = confirmMethod;
+ }
+ function setFormMode(mode) {
+ session.setFormMode(mode);
+ }
+ var Turbo = /* @__PURE__ */ Object.freeze({
+ __proto__: null,
+ navigator: navigator$1,
+ session,
+ cache,
+ PageRenderer,
+ PageSnapshot,
+ FrameRenderer,
+ start: start3,
+ registerAdapter,
+ visit,
+ connectStreamSource,
+ disconnectStreamSource,
+ renderStreamMessage,
+ clearCache,
+ setProgressBarDelay,
+ setConfirmMethod,
+ setFormMode,
+ StreamActions
+ });
+ var TurboFrameMissingError = class extends Error {
+ };
+ var FrameController = class {
+ constructor(element) {
+ this.fetchResponseLoaded = (_fetchResponse) => {
+ };
+ this.currentFetchRequest = null;
+ this.resolveVisitPromise = () => {
+ };
+ this.connected = false;
+ this.hasBeenLoaded = false;
+ this.ignoredAttributes = /* @__PURE__ */ new Set();
+ this.action = null;
+ this.visitCachedSnapshot = ({ element: element2 }) => {
+ const frame = element2.querySelector("#" + this.element.id);
+ if (frame && this.previousFrameElement) {
+ frame.replaceChildren(...this.previousFrameElement.children);
+ }
+ delete this.previousFrameElement;
+ };
+ this.element = element;
+ this.view = new FrameView(this, this.element);
+ this.appearanceObserver = new AppearanceObserver(this, this.element);
+ this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);
+ this.linkInterceptor = new LinkInterceptor(this, this.element);
+ this.restorationIdentifier = uuid();
+ this.formSubmitObserver = new FormSubmitObserver(this, this.element);
+ }
+ connect() {
+ if (!this.connected) {
+ this.connected = true;
+ if (this.loadingStyle == FrameLoadingStyle.lazy) {
+ this.appearanceObserver.start();
+ } else {
+ this.loadSourceURL();
+ }
+ this.formLinkClickObserver.start();
+ this.linkInterceptor.start();
+ this.formSubmitObserver.start();
+ }
+ }
+ disconnect() {
+ if (this.connected) {
+ this.connected = false;
+ this.appearanceObserver.stop();
+ this.formLinkClickObserver.stop();
+ this.linkInterceptor.stop();
+ this.formSubmitObserver.stop();
+ }
+ }
+ disabledChanged() {
+ if (this.loadingStyle == FrameLoadingStyle.eager) {
+ this.loadSourceURL();
+ }
+ }
+ sourceURLChanged() {
+ if (this.isIgnoringChangesTo("src"))
+ return;
+ if (this.element.isConnected) {
+ this.complete = false;
+ }
+ if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {
+ this.loadSourceURL();
+ }
+ }
+ sourceURLReloaded() {
+ const { src } = this.element;
+ this.ignoringChangesToAttribute("complete", () => {
+ this.element.removeAttribute("complete");
+ });
+ this.element.src = null;
+ this.element.src = src;
+ return this.element.loaded;
+ }
+ completeChanged() {
+ if (this.isIgnoringChangesTo("complete"))
+ return;
+ this.loadSourceURL();
+ }
+ loadingStyleChanged() {
+ if (this.loadingStyle == FrameLoadingStyle.lazy) {
+ this.appearanceObserver.start();
+ } else {
+ this.appearanceObserver.stop();
+ this.loadSourceURL();
+ }
+ }
+ async loadSourceURL() {
+ if (this.enabled && this.isActive && !this.complete && this.sourceURL) {
+ this.element.loaded = this.visit(expandURL(this.sourceURL));
+ this.appearanceObserver.stop();
+ await this.element.loaded;
+ this.hasBeenLoaded = true;
+ }
+ }
+ async loadResponse(fetchResponse) {
+ if (fetchResponse.redirected || fetchResponse.succeeded && fetchResponse.isHTML) {
+ this.sourceURL = fetchResponse.response.url;
+ }
+ try {
+ const html = await fetchResponse.responseHTML;
+ if (html) {
+ const document2 = parseHTMLDocument(html);
+ const pageSnapshot = PageSnapshot.fromDocument(document2);
+ if (pageSnapshot.isVisitable) {
+ await this.loadFrameResponse(fetchResponse, document2);
+ } else {
+ await this.handleUnvisitableFrameResponse(fetchResponse);
+ }
+ }
+ } finally {
+ this.fetchResponseLoaded = () => {
+ };
+ }
+ }
+ elementAppearedInViewport(element) {
+ this.proposeVisitIfNavigatedWithAction(element, element);
+ this.loadSourceURL();
+ }
+ willSubmitFormLinkToLocation(link) {
+ return this.shouldInterceptNavigation(link);
+ }
+ submittedFormLinkToLocation(link, _location, form) {
+ const frame = this.findFrameElement(link);
+ if (frame)
+ form.setAttribute("data-turbo-frame", frame.id);
+ }
+ shouldInterceptLinkClick(element, _location, _event) {
+ return this.shouldInterceptNavigation(element);
+ }
+ linkClickIntercepted(element, location2) {
+ this.navigateFrame(element, location2);
+ }
+ willSubmitForm(element, submitter) {
+ return element.closest("turbo-frame") == this.element && this.shouldInterceptNavigation(element, submitter);
+ }
+ formSubmitted(element, submitter) {
+ if (this.formSubmission) {
+ this.formSubmission.stop();
+ }
+ this.formSubmission = new FormSubmission(this, element, submitter);
+ const { fetchRequest } = this.formSubmission;
+ this.prepareRequest(fetchRequest);
+ this.formSubmission.start();
+ }
+ prepareRequest(request) {
+ var _a;
+ request.headers["Turbo-Frame"] = this.id;
+ if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute("data-turbo-stream")) {
+ request.acceptResponseType(StreamMessage.contentType);
+ }
+ }
+ requestStarted(_request) {
+ markAsBusy(this.element);
+ }
+ requestPreventedHandlingResponse(_request, _response) {
+ this.resolveVisitPromise();
+ }
+ async requestSucceededWithResponse(request, response) {
+ await this.loadResponse(response);
+ this.resolveVisitPromise();
+ }
+ async requestFailedWithResponse(request, response) {
+ await this.loadResponse(response);
+ this.resolveVisitPromise();
+ }
+ requestErrored(request, error2) {
+ console.error(error2);
+ this.resolveVisitPromise();
+ }
+ requestFinished(_request) {
+ clearBusyState(this.element);
+ }
+ formSubmissionStarted({ formElement }) {
+ markAsBusy(formElement, this.findFrameElement(formElement));
+ }
+ formSubmissionSucceededWithResponse(formSubmission, response) {
+ const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);
+ frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);
+ frame.delegate.loadResponse(response);
+ if (!formSubmission.isSafe) {
+ session.clearCache();
+ }
+ }
+ formSubmissionFailedWithResponse(formSubmission, fetchResponse) {
+ this.element.delegate.loadResponse(fetchResponse);
+ session.clearCache();
+ }
+ formSubmissionErrored(formSubmission, error2) {
+ console.error(error2);
+ }
+ formSubmissionFinished({ formElement }) {
+ clearBusyState(formElement, this.findFrameElement(formElement));
+ }
+ allowsImmediateRender({ element: newFrame }, options) {
+ const event = dispatch("turbo:before-frame-render", {
+ target: this.element,
+ detail: Object.assign({ newFrame }, options),
+ cancelable: true
+ });
+ const { defaultPrevented, detail: { render } } = event;
+ if (this.view.renderer && render) {
+ this.view.renderer.renderElement = render;
+ }
+ return !defaultPrevented;
+ }
+ viewRenderedSnapshot(_snapshot, _isPreview) {
+ }
+ preloadOnLoadLinksForView(element) {
+ session.preloadOnLoadLinksForView(element);
+ }
+ viewInvalidated() {
+ }
+ willRenderFrame(currentElement, _newElement) {
+ this.previousFrameElement = currentElement.cloneNode(true);
+ }
+ async loadFrameResponse(fetchResponse, document2) {
+ const newFrameElement = await this.extractForeignFrameElement(document2.body);
+ if (newFrameElement) {
+ const snapshot = new Snapshot(newFrameElement);
+ const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);
+ if (this.view.renderPromise)
+ await this.view.renderPromise;
+ this.changeHistory();
+ await this.view.render(renderer);
+ this.complete = true;
+ session.frameRendered(fetchResponse, this.element);
+ session.frameLoaded(this.element);
+ this.fetchResponseLoaded(fetchResponse);
+ } else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {
+ this.handleFrameMissingFromResponse(fetchResponse);
+ }
+ }
+ async visit(url) {
+ var _a;
+ const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);
+ (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();
+ this.currentFetchRequest = request;
+ return new Promise((resolve) => {
+ this.resolveVisitPromise = () => {
+ this.resolveVisitPromise = () => {
+ };
+ this.currentFetchRequest = null;
+ resolve();
+ };
+ request.perform();
+ });
+ }
+ navigateFrame(element, url, submitter) {
+ const frame = this.findFrameElement(element, submitter);
+ frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);
+ this.withCurrentNavigationElement(element, () => {
+ frame.src = url;
+ });
+ }
+ proposeVisitIfNavigatedWithAction(frame, element, submitter) {
+ this.action = getVisitAction(submitter, element, frame);
+ if (this.action) {
+ const pageSnapshot = PageSnapshot.fromElement(frame).clone();
+ const { visitCachedSnapshot } = frame.delegate;
+ frame.delegate.fetchResponseLoaded = (fetchResponse) => {
+ if (frame.src) {
+ const { statusCode, redirected } = fetchResponse;
+ const responseHTML = frame.ownerDocument.documentElement.outerHTML;
+ const response = { statusCode, redirected, responseHTML };
+ const options = {
+ response,
+ visitCachedSnapshot,
+ willRender: false,
+ updateHistory: false,
+ restorationIdentifier: this.restorationIdentifier,
+ snapshot: pageSnapshot
+ };
+ if (this.action)
+ options.action = this.action;
+ session.visit(frame.src, options);
+ }
+ };
+ }
+ }
+ changeHistory() {
+ if (this.action) {
+ const method = getHistoryMethodForAction(this.action);
+ session.history.update(method, expandURL(this.element.src || ""), this.restorationIdentifier);
+ }
+ }
+ async handleUnvisitableFrameResponse(fetchResponse) {
+ console.warn(`The response (${fetchResponse.statusCode}) from is performing a full page visit due to turbo-visit-control.`);
+ await this.visitResponse(fetchResponse.response);
+ }
+ willHandleFrameMissingFromResponse(fetchResponse) {
+ this.element.setAttribute("complete", "");
+ const response = fetchResponse.response;
+ const visit2 = async (url, options = {}) => {
+ if (url instanceof Response) {
+ this.visitResponse(url);
+ } else {
+ session.visit(url, options);
+ }
+ };
+ const event = dispatch("turbo:frame-missing", {
+ target: this.element,
+ detail: { response, visit: visit2 },
+ cancelable: true
+ });
+ return !event.defaultPrevented;
+ }
+ handleFrameMissingFromResponse(fetchResponse) {
+ this.view.missing();
+ this.throwFrameMissingError(fetchResponse);
+ }
+ throwFrameMissingError(fetchResponse) {
+ const message = `The response (${fetchResponse.statusCode}) did not contain the expected and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;
+ throw new TurboFrameMissingError(message);
+ }
+ async visitResponse(response) {
+ const wrapped = new FetchResponse(response);
+ const responseHTML = await wrapped.responseHTML;
+ const { location: location2, redirected, statusCode } = wrapped;
+ return session.visit(location2, { response: { redirected, statusCode, responseHTML } });
+ }
+ findFrameElement(element, submitter) {
+ var _a;
+ const id2 = getAttribute("data-turbo-frame", submitter, element) || this.element.getAttribute("target");
+ return (_a = getFrameElementById(id2)) !== null && _a !== void 0 ? _a : this.element;
+ }
+ async extractForeignFrameElement(container) {
+ let element;
+ const id2 = CSS.escape(this.id);
+ try {
+ element = activateElement(container.querySelector(`turbo-frame#${id2}`), this.sourceURL);
+ if (element) {
+ return element;
+ }
+ element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id2}]`), this.sourceURL);
+ if (element) {
+ await element.loaded;
+ return await this.extractForeignFrameElement(element);
+ }
+ } catch (error2) {
+ console.error(error2);
+ return new FrameElement();
+ }
+ return null;
+ }
+ formActionIsVisitable(form, submitter) {
+ const action = getAction(form, submitter);
+ return locationIsVisitable(expandURL(action), this.rootLocation);
+ }
+ shouldInterceptNavigation(element, submitter) {
+ const id2 = getAttribute("data-turbo-frame", submitter, element) || this.element.getAttribute("target");
+ if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {
+ return false;
+ }
+ if (!this.enabled || id2 == "_top") {
+ return false;
+ }
+ if (id2) {
+ const frameElement = getFrameElementById(id2);
+ if (frameElement) {
+ return !frameElement.disabled;
+ }
+ }
+ if (!session.elementIsNavigatable(element)) {
+ return false;
+ }
+ if (submitter && !session.elementIsNavigatable(submitter)) {
+ return false;
+ }
+ return true;
+ }
+ get id() {
+ return this.element.id;
+ }
+ get enabled() {
+ return !this.element.disabled;
+ }
+ get sourceURL() {
+ if (this.element.src) {
+ return this.element.src;
+ }
+ }
+ set sourceURL(sourceURL) {
+ this.ignoringChangesToAttribute("src", () => {
+ this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;
+ });
+ }
+ get loadingStyle() {
+ return this.element.loading;
+ }
+ get isLoading() {
+ return this.formSubmission !== void 0 || this.resolveVisitPromise() !== void 0;
+ }
+ get complete() {
+ return this.element.hasAttribute("complete");
+ }
+ set complete(value) {
+ this.ignoringChangesToAttribute("complete", () => {
+ if (value) {
+ this.element.setAttribute("complete", "");
+ } else {
+ this.element.removeAttribute("complete");
+ }
+ });
+ }
+ get isActive() {
+ return this.element.isActive && this.connected;
+ }
+ get rootLocation() {
+ var _a;
+ const meta = this.element.ownerDocument.querySelector(`meta[name="turbo-root"]`);
+ const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : "/";
+ return expandURL(root);
+ }
+ isIgnoringChangesTo(attributeName) {
+ return this.ignoredAttributes.has(attributeName);
+ }
+ ignoringChangesToAttribute(attributeName, callback) {
+ this.ignoredAttributes.add(attributeName);
+ callback();
+ this.ignoredAttributes.delete(attributeName);
+ }
+ withCurrentNavigationElement(element, callback) {
+ this.currentNavigationElement = element;
+ callback();
+ delete this.currentNavigationElement;
+ }
+ };
+ function getFrameElementById(id2) {
+ if (id2 != null) {
+ const element = document.getElementById(id2);
+ if (element instanceof FrameElement) {
+ return element;
+ }
+ }
+ }
+ function activateElement(element, currentURL) {
+ if (element) {
+ const src = element.getAttribute("src");
+ if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {
+ throw new Error(`Matching element has a source URL which references itself`);
+ }
+ if (element.ownerDocument !== document) {
+ element = document.importNode(element, true);
+ }
+ if (element instanceof FrameElement) {
+ element.connectedCallback();
+ element.disconnectedCallback();
+ return element;
+ }
+ }
+ }
+ var StreamElement = class _StreamElement extends HTMLElement {
+ static async renderElement(newElement) {
+ await newElement.performAction();
+ }
+ async connectedCallback() {
+ try {
+ await this.render();
+ } catch (error2) {
+ console.error(error2);
+ } finally {
+ this.disconnect();
+ }
+ }
+ async render() {
+ var _a;
+ return (_a = this.renderPromise) !== null && _a !== void 0 ? _a : this.renderPromise = (async () => {
+ const event = this.beforeRenderEvent;
+ if (this.dispatchEvent(event)) {
+ await nextAnimationFrame();
+ await event.detail.render(this);
+ }
+ })();
+ }
+ disconnect() {
+ try {
+ this.remove();
+ } catch (_a) {
+ }
+ }
+ removeDuplicateTargetChildren() {
+ this.duplicateChildren.forEach((c) => c.remove());
+ }
+ get duplicateChildren() {
+ var _a;
+ const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);
+ const newChildrenIds = [...((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || []].filter((c) => !!c.id).map((c) => c.id);
+ return existingChildren.filter((c) => newChildrenIds.includes(c.id));
+ }
+ get performAction() {
+ if (this.action) {
+ const actionFunction = StreamActions[this.action];
+ if (actionFunction) {
+ return actionFunction;
+ }
+ this.raise("unknown action");
+ }
+ this.raise("action attribute is missing");
+ }
+ get targetElements() {
+ if (this.target) {
+ return this.targetElementsById;
+ } else if (this.targets) {
+ return this.targetElementsByQuery;
+ } else {
+ this.raise("target or targets attribute is missing");
+ }
+ }
+ get templateContent() {
+ return this.templateElement.content.cloneNode(true);
+ }
+ get templateElement() {
+ if (this.firstElementChild === null) {
+ const template = this.ownerDocument.createElement("template");
+ this.appendChild(template);
+ return template;
+ } else if (this.firstElementChild instanceof HTMLTemplateElement) {
+ return this.firstElementChild;
+ }
+ this.raise("first child element must be a element");
+ }
+ get action() {
+ return this.getAttribute("action");
+ }
+ get target() {
+ return this.getAttribute("target");
+ }
+ get targets() {
+ return this.getAttribute("targets");
+ }
+ raise(message) {
+ throw new Error(`${this.description}: ${message}`);
+ }
+ get description() {
+ var _a, _b;
+ return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : "";
+ }
+ get beforeRenderEvent() {
+ return new CustomEvent("turbo:before-stream-render", {
+ bubbles: true,
+ cancelable: true,
+ detail: { newStream: this, render: _StreamElement.renderElement }
+ });
+ }
+ get targetElementsById() {
+ var _a;
+ const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);
+ if (element !== null) {
+ return [element];
+ } else {
+ return [];
+ }
+ }
+ get targetElementsByQuery() {
+ var _a;
+ const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);
+ if (elements.length !== 0) {
+ return Array.prototype.slice.call(elements);
+ } else {
+ return [];
+ }
+ }
+ };
+ var StreamSourceElement = class extends HTMLElement {
+ constructor() {
+ super(...arguments);
+ this.streamSource = null;
+ }
+ connectedCallback() {
+ this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);
+ connectStreamSource(this.streamSource);
+ }
+ disconnectedCallback() {
+ if (this.streamSource) {
+ disconnectStreamSource(this.streamSource);
+ }
+ }
+ get src() {
+ return this.getAttribute("src") || "";
+ }
+ };
+ FrameElement.delegateConstructor = FrameController;
+ if (customElements.get("turbo-frame") === void 0) {
+ customElements.define("turbo-frame", FrameElement);
+ }
+ if (customElements.get("turbo-stream") === void 0) {
+ customElements.define("turbo-stream", StreamElement);
+ }
+ if (customElements.get("turbo-stream-source") === void 0) {
+ customElements.define("turbo-stream-source", StreamSourceElement);
+ }
+ (() => {
+ let element = document.currentScript;
+ if (!element)
+ return;
+ if (element.hasAttribute("data-turbo-suppress-warning"))
+ return;
+ element = element.parentElement;
+ while (element) {
+ if (element == document.body) {
+ return console.warn(unindent`
+ You are loading Turbo from a