valtech-components 2.0.656 → 2.0.658
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -10
- package/esm2022/lib/components/molecules/card/card.component.mjs +58 -30
- package/esm2022/lib/components/molecules/docs-code-example/types.mjs +1 -1
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
- package/fesm2022/valtech-components.mjs +59 -31
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/docs-code-example/types.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,67 @@ npm install prismjs
|
|
|
56
56
|
npm install swiper
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
## Usage Paths
|
|
60
|
+
|
|
61
|
+
Choose the path that fits your needs:
|
|
62
|
+
|
|
63
|
+
### UI Only (Quick Start)
|
|
64
|
+
|
|
65
|
+
**133 of 134 components** work without any backend or Firebase configuration. Just install and use:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { ButtonComponent, CardComponent, TextComponent } from 'valtech-components';
|
|
69
|
+
|
|
70
|
+
@Component({
|
|
71
|
+
standalone: true,
|
|
72
|
+
imports: [ButtonComponent, CardComponent, TextComponent],
|
|
73
|
+
template: `
|
|
74
|
+
<val-card [props]="{ title: 'My Card' }">
|
|
75
|
+
<val-text [props]="{ content: 'Hello World' }" />
|
|
76
|
+
<val-button [props]="{ text: 'Click me', color: 'primary' }" />
|
|
77
|
+
</val-card>
|
|
78
|
+
`
|
|
79
|
+
})
|
|
80
|
+
export class MyComponent {}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
No providers needed. No Firebase. No backend. Just import and use.
|
|
84
|
+
|
|
85
|
+
### Full Integration
|
|
86
|
+
|
|
87
|
+
For authentication, Firebase services, and i18n, add providers to your `main.ts`:
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
import {
|
|
91
|
+
provideValtechFirebase,
|
|
92
|
+
provideValtechAuth,
|
|
93
|
+
provideValtechI18n,
|
|
94
|
+
createFirebaseConfig,
|
|
95
|
+
} from 'valtech-components';
|
|
96
|
+
import firebaseConfig from './config/firebase.config.json';
|
|
97
|
+
|
|
98
|
+
bootstrapApplication(AppComponent, {
|
|
99
|
+
providers: [
|
|
100
|
+
provideValtechFirebase(createFirebaseConfig(firebaseConfig)),
|
|
101
|
+
provideValtechAuth({ apiUrl: 'https://api.yourapp.com' }),
|
|
102
|
+
provideValtechI18n({ defaultLang: 'en', supportedLangs: ['en', 'es'] }),
|
|
103
|
+
],
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**[Full Integration Guide](https://ui.myvaltech.com/docs/guides/firebase-setup)** — Firebase setup, Auth configuration, i18n, and more.
|
|
108
|
+
|
|
109
|
+
### Components Requiring Backend
|
|
110
|
+
|
|
111
|
+
| Component | Requirement |
|
|
112
|
+
|-----------|-------------|
|
|
113
|
+
| `LoginComponent` | `AuthService` configured with API endpoint |
|
|
114
|
+
| `ContentReactionComponent` | `FeedbackService` configured with API endpoint |
|
|
115
|
+
|
|
116
|
+
All other 132 components are fully standalone.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
59
120
|
## Components
|
|
60
121
|
|
|
61
122
|
| Category | Count | Description |
|
|
@@ -69,7 +130,10 @@ npm install swiper
|
|
|
69
130
|
|
|
70
131
|
## Services
|
|
71
132
|
|
|
72
|
-
### Basic Services
|
|
133
|
+
### Basic Services (No Configuration Required)
|
|
134
|
+
|
|
135
|
+
These services work out of the box:
|
|
136
|
+
|
|
73
137
|
| Service | Description |
|
|
74
138
|
|---------|-------------|
|
|
75
139
|
| `ThemeService` | Theme management (light/dark mode) |
|
|
@@ -81,8 +145,17 @@ npm install swiper
|
|
|
81
145
|
| `LocalStorageService` | localStorage abstraction |
|
|
82
146
|
| `LinkProcessorService` | Automatic URL and markdown link processing |
|
|
83
147
|
| `InAppBrowserService` | Capacitor in-app browser |
|
|
148
|
+
| `ModalService` | Modal dialog management |
|
|
149
|
+
| `ConfirmationDialogService` | Confirmation dialogs |
|
|
150
|
+
| `QrGeneratorService` | QR code generation |
|
|
151
|
+
| `PresetService` | Reusable configuration presets |
|
|
152
|
+
| `PaginationService` | Pagination state management |
|
|
153
|
+
| `SkeletonService` | Skeleton loading states |
|
|
154
|
+
|
|
155
|
+
### Authentication Services (Requires `provideValtechAuth`)
|
|
156
|
+
|
|
157
|
+
Requires backend API. See [Auth Setup Guide](https://ui.myvaltech.com/docs/guides/auth-setup).
|
|
84
158
|
|
|
85
|
-
### Authentication Services
|
|
86
159
|
| Service | Description |
|
|
87
160
|
|---------|-------------|
|
|
88
161
|
| `AuthService` | Main authentication service |
|
|
@@ -92,7 +165,10 @@ npm install swiper
|
|
|
92
165
|
| `AuthStateService` | Authentication state management |
|
|
93
166
|
| `DeviceService` | Device information |
|
|
94
167
|
|
|
95
|
-
### Firebase Services
|
|
168
|
+
### Firebase Services (Requires `provideValtechFirebase`)
|
|
169
|
+
|
|
170
|
+
Requires Firebase project. See [Firebase Setup Guide](https://ui.myvaltech.com/docs/guides/firebase-setup).
|
|
171
|
+
|
|
96
172
|
| Service | Description |
|
|
97
173
|
|---------|-------------|
|
|
98
174
|
| `FirebaseService` | Firebase initialization |
|
|
@@ -102,18 +178,20 @@ npm install swiper
|
|
|
102
178
|
| `NotificationsService` | Notification management |
|
|
103
179
|
| `FirebaseStorageService` | Firebase Storage operations |
|
|
104
180
|
|
|
105
|
-
###
|
|
181
|
+
### i18n Service (Requires `provideValtechI18n`)
|
|
182
|
+
|
|
106
183
|
| Service | Description |
|
|
107
184
|
|---------|-------------|
|
|
108
185
|
| `I18nService` | Internationalization with Angular Signals |
|
|
186
|
+
|
|
187
|
+
### Backend-Dependent Services
|
|
188
|
+
|
|
189
|
+
These services require a configured backend API:
|
|
190
|
+
|
|
191
|
+
| Service | Description |
|
|
192
|
+
|---------|-------------|
|
|
109
193
|
| `AppConfigService` | Remote configuration and feature flags |
|
|
110
194
|
| `FeedbackService` | User feedback collection |
|
|
111
|
-
| `ModalService` | Modal dialog management |
|
|
112
|
-
| `ConfirmationDialogService` | Confirmation dialogs |
|
|
113
|
-
| `QrGeneratorService` | QR code generation |
|
|
114
|
-
| `PresetService` | Reusable configuration presets |
|
|
115
|
-
| `PaginationService` | Pagination state management |
|
|
116
|
-
| `SkeletonService` | Skeleton loading states |
|
|
117
195
|
|
|
118
196
|
## Quick Start
|
|
119
197
|
|
|
@@ -76,9 +76,11 @@ export class CardComponent {
|
|
|
76
76
|
this.onClick.emit({ section, token });
|
|
77
77
|
}
|
|
78
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "val-card", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
80
80
|
<ion-card *ngIf="resolvedProps.type === types.native">
|
|
81
|
-
|
|
81
|
+
@if (resolvedProps.image) {
|
|
82
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
83
|
+
}
|
|
82
84
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle">
|
|
83
85
|
<ion-card-title *ngIf="resolvedProps.title">{{ resolvedProps.title }}</ion-card-title>
|
|
84
86
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -86,11 +88,15 @@ export class CardComponent {
|
|
|
86
88
|
|
|
87
89
|
<ion-card-content *ngIf="resolvedProps.content">{{ resolvedProps.content }}</ion-card-content>
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
@if (resolvedProps.footerActions && resolvedProps.footerActions.length > 0) {
|
|
92
|
+
<div class="card-actions">
|
|
93
|
+
<val-button
|
|
94
|
+
*ngFor="let b of resolvedProps.footerActions"
|
|
95
|
+
[props]="b"
|
|
96
|
+
(onClick)="clickHandler(sections.footer, b.token)"
|
|
97
|
+
></val-button>
|
|
98
|
+
</div>
|
|
99
|
+
}
|
|
94
100
|
</ion-card>
|
|
95
101
|
|
|
96
102
|
<ion-card
|
|
@@ -98,7 +104,9 @@ export class CardComponent {
|
|
|
98
104
|
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
99
105
|
class="tapable"
|
|
100
106
|
>
|
|
101
|
-
|
|
107
|
+
@if (resolvedProps.image) {
|
|
108
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
109
|
+
}
|
|
102
110
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle">
|
|
103
111
|
<ion-card-title *ngIf="resolvedProps.title">{{ resolvedProps.title }}</ion-card-title>
|
|
104
112
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -194,14 +202,20 @@ export class CardComponent {
|
|
|
194
202
|
</div>
|
|
195
203
|
</ion-card-header>
|
|
196
204
|
|
|
197
|
-
|
|
205
|
+
@if (resolvedProps.image) {
|
|
206
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
207
|
+
}
|
|
198
208
|
<ion-card-content *ngIf="resolvedProps.content" class="complex-content">{{ resolvedProps.content }}</ion-card-content>
|
|
199
209
|
</div>
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
@if (resolvedProps.footerActions && resolvedProps.footerActions.length > 0) {
|
|
211
|
+
<div class="card-actions">
|
|
212
|
+
<val-button
|
|
213
|
+
*ngFor="let b of resolvedProps.footerActions"
|
|
214
|
+
[props]="b"
|
|
215
|
+
(onClick)="clickHandler(sections.footer, b.token)"
|
|
216
|
+
></val-button>
|
|
217
|
+
</div>
|
|
218
|
+
}
|
|
205
219
|
<ion-buttons
|
|
206
220
|
style="display: flex; align-items: center; justify-content: flex-end; margin: 8px"
|
|
207
221
|
*ngIf="resolvedProps.footerComplexActions?.length > 0"
|
|
@@ -234,7 +248,7 @@ export class CardComponent {
|
|
|
234
248
|
</ng-container>
|
|
235
249
|
</ion-buttons>
|
|
236
250
|
</ion-card>
|
|
237
|
-
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{border-radius:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
251
|
+
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}.card-actions val-button{flex:1;min-width:100px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
238
252
|
}
|
|
239
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
240
254
|
type: Component,
|
|
@@ -255,7 +269,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
255
269
|
IonIcon,
|
|
256
270
|
], template: `
|
|
257
271
|
<ion-card *ngIf="resolvedProps.type === types.native">
|
|
258
|
-
|
|
272
|
+
@if (resolvedProps.image) {
|
|
273
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
274
|
+
}
|
|
259
275
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle">
|
|
260
276
|
<ion-card-title *ngIf="resolvedProps.title">{{ resolvedProps.title }}</ion-card-title>
|
|
261
277
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -263,11 +279,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
263
279
|
|
|
264
280
|
<ion-card-content *ngIf="resolvedProps.content">{{ resolvedProps.content }}</ion-card-content>
|
|
265
281
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
282
|
+
@if (resolvedProps.footerActions && resolvedProps.footerActions.length > 0) {
|
|
283
|
+
<div class="card-actions">
|
|
284
|
+
<val-button
|
|
285
|
+
*ngFor="let b of resolvedProps.footerActions"
|
|
286
|
+
[props]="b"
|
|
287
|
+
(onClick)="clickHandler(sections.footer, b.token)"
|
|
288
|
+
></val-button>
|
|
289
|
+
</div>
|
|
290
|
+
}
|
|
271
291
|
</ion-card>
|
|
272
292
|
|
|
273
293
|
<ion-card
|
|
@@ -275,7 +295,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
275
295
|
(click)="clickHandler(sections.content, resolvedProps.token)"
|
|
276
296
|
class="tapable"
|
|
277
297
|
>
|
|
278
|
-
|
|
298
|
+
@if (resolvedProps.image) {
|
|
299
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
300
|
+
}
|
|
279
301
|
<ion-card-header *ngIf="resolvedProps.title || resolvedProps.overtitle">
|
|
280
302
|
<ion-card-title *ngIf="resolvedProps.title">{{ resolvedProps.title }}</ion-card-title>
|
|
281
303
|
<ion-card-subtitle *ngIf="resolvedProps.overtitle">{{ resolvedProps.overtitle }}</ion-card-subtitle>
|
|
@@ -371,14 +393,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
371
393
|
</div>
|
|
372
394
|
</ion-card-header>
|
|
373
395
|
|
|
374
|
-
|
|
396
|
+
@if (resolvedProps.image) {
|
|
397
|
+
<img [alt]="resolvedProps.title || 'Card image'" [src]="resolvedProps.image" />
|
|
398
|
+
}
|
|
375
399
|
<ion-card-content *ngIf="resolvedProps.content" class="complex-content">{{ resolvedProps.content }}</ion-card-content>
|
|
376
400
|
</div>
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
401
|
+
@if (resolvedProps.footerActions && resolvedProps.footerActions.length > 0) {
|
|
402
|
+
<div class="card-actions">
|
|
403
|
+
<val-button
|
|
404
|
+
*ngFor="let b of resolvedProps.footerActions"
|
|
405
|
+
[props]="b"
|
|
406
|
+
(onClick)="clickHandler(sections.footer, b.token)"
|
|
407
|
+
></val-button>
|
|
408
|
+
</div>
|
|
409
|
+
}
|
|
382
410
|
<ion-buttons
|
|
383
411
|
style="display: flex; align-items: center; justify-content: flex-end; margin: 8px"
|
|
384
412
|
*ngIf="resolvedProps.footerComplexActions?.length > 0"
|
|
@@ -411,7 +439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
411
439
|
</ng-container>
|
|
412
440
|
</ion-buttons>
|
|
413
441
|
</ion-card>
|
|
414
|
-
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{border-radius:24px}\n"] }]
|
|
442
|
+
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}.card-actions val-button{flex:1;min-width:100px}\n"] }]
|
|
415
443
|
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
416
444
|
type: Input
|
|
417
445
|
}], props: [{
|
|
@@ -419,4 +447,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
419
447
|
}], onClick: [{
|
|
420
448
|
type: Output
|
|
421
449
|
}] } });
|
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFzTDlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBd0N4QjtRQXZDUSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7SUFFUixDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBbkVVLGFBQWE7bUdBQWIsYUFBYSx3S0FqTGQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEpULHFrR0E3S0MsWUFBWSxnUUFDWixlQUFlLDBHQUNmLGVBQWUsMEdBQ2YsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLE9BQU8seUxBQ1AsY0FBYywrRUFDZCxhQUFhLHNHQUNiLFlBQVksc0ZBQ1osZUFBZSx5RkFDZixXQUFXLHFNQUNYLFVBQVUsOEVBQ1YsU0FBUyxvUEFDVCxPQUFPOzs0RkFtTEUsYUFBYTtrQkFwTXpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixTQUFTO3dCQUNULE9BQU87cUJBQ1IsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SlQ7d0RBNkJRLE1BQU07c0JBQWQsS0FBSztnQkFhRyxLQUFLO3NCQUFiLEtBQUs7Z0JBV04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNhcmQsXG4gIElvbkNhcmRDb250ZW50LFxuICBJb25DYXJkSGVhZGVyLFxuICBJb25DYXJkU3VidGl0bGUsXG4gIElvbkNhcmRUaXRsZSxcbiAgSW9uQ2hlY2tib3gsXG4gIElvbkljb24sXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDYXJkQ2xpY2tFdmVudCwgQ2FyZE1ldGFkYXRhLCBDYXJkU2VjdGlvbiwgQ2FyZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBJb25DYXJkLFxuICAgIElvbkNhcmRDb250ZW50LFxuICAgIElvbkNhcmRIZWFkZXIsXG4gICAgSW9uQ2FyZFRpdGxlLFxuICAgIElvbkNhcmRTdWJ0aXRsZSxcbiAgICBJb25DaGVja2JveCxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25JY29uLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMubmF0aXZlXCI+XG4gICAgICA8aW1nIGFsdD1cImltYWdlXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG5cbiAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgIFtwcm9wc109XCJiXCJcbiAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlciwgYi50b2tlbilcIlxuICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkXG4gICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMudGFwcGFibGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICBjbGFzcz1cInRhcGFibGVcIlxuICAgID5cbiAgICAgIDxpbWcgYWx0PVwiaW1hZ2VcIiBbc3JjXT1cInJlc29sdmVkUHJvcHMuaW1hZ2VcIiAvPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj5cbiAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkXG4gICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY2hlY2tlclwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIGNsYXNzPVwidGFwYWJsZVwiXG4gICAgPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIiBjbGFzcz1cImNoZWNrZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxpb24tY2hlY2tib3ggW2NoZWNrZWRdPVwicmVzb2x2ZWRQcm9wcy5zZWxlY3RlZFwiPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50eXBlID09PSB0eXBlcy5jb21wbGV4XCIgY2xhc3M9XCJjb21wbGV4XCI+XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyIGNsYXNzPVwiY29tcGxleC1oZWFkZXJcIj5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9ucz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByZXNvbHZlZFByb3BzLmxlZnRBY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmhlYWRlclRleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHJlc29sdmVkUHJvcHMuaGVhZGVyVGV4dCwgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgc2l6ZTogJ21lZGl1bScgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFwYWJsZVwiIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIj5cbiAgICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIiBjbGFzcz1cImNvbXBsZXgtaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgICA8aW1nIGFsdD1cImltYWdlXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIiBjbGFzcz1cImNvbXBsZXgtY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGIgb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zXCJcbiAgICAgICAgW3Byb3BzXT1cImJcIlxuICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICA+PC92YWwtYnV0dG9uPlxuICAgICAgPGlvbi1idXR0b25zXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgbWFyZ2luOiA4cHhcIlxuICAgICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMuZm9vdGVyQ29tcGxleEFjdGlvbnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJDb21wbGV4QWN0aW9uc1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPC9pb24tY2FyZD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNhcmRcbiAqXG4gKiBBIGZsZXhpYmxlIGNhcmQgY29tcG9uZW50IHN1cHBvcnRpbmcgaW1hZ2VzLCB0aXRsZXMsIGNvbnRlbnQsIGFjdGlvbnMsIGFuZCBjdXN0b20gc2VjdGlvbnMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZhbC1jYXJkIHByZXNldD1cImZlYXR1cmVcIiBbcHJvcHNdPVwieyB0aXRsZTogJ0NhcmQnLCBpbWFnZTogJ3VybCcsIGNvbnRlbnQ6ICcuLi4nIH1cIiAob25DbGljayk9XCJoYW5kbGVyKCRldmVudClcIj48L3ZhbC1jYXJkPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyAoYmFja3dhcmRzIGNvbXBhdGlibGUpOlxuICogPHZhbC1jYXJkIFtwcm9wc109XCJ7IHR5cGU6ICduYXRpdmUnLCB0aXRsZTogJ0NhcmQnLCBpbWFnZTogJ3VybCcsIGNvbnRlbnQ6ICcuLi4nIH1cIiAob25DbGljayk9XCJoYW5kbGVyKCRldmVudClcIj48L3ZhbC1jYXJkPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5IChlLmcuLCAnZmVhdHVyZScsICdjb21wYWN0JylcbiAqIEBpbnB1dCBwcm9wczogQ2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmQgKG92ZXJyaWRlcyBwcmVzZXQgdmFsdWVzKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgYSBDYXJkQ2xpY2tFdmVudCB3aGVuIHRoZSBjYXJkIG9yIGFuIGFjdGlvbiBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBjYXJkIGNvbmZpZ3VyYXRpb25zXG4gICAqICh0eXBlLCB2YXJpYW50LCBwYWRkaW5nLCBldGMuKSB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZhbC1jYXJkIHByZXNldD1cImZlYXR1cmVcIiBbcHJvcHNdPVwieyB0aXRsZTogJ015IENhcmQnIH1cIj48L3ZhbC1jYXJkPlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDYXJkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7Q2FyZE1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgdHlwZSAtIFRoZSBjYXJkIHR5cGUgKHNlZSBDYXJkVHlwZSkuXG4gICAqIEBwcm9wZXJ0eSB0aXRsZSAtIFRoZSBjYXJkIHRpdGxlLlxuICAgKiBAcHJvcGVydHkgaW1hZ2UgLSBUaGUgY2FyZCBpbWFnZSBVUkwuXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGhlIGNhcmQgY29udGVudC5cbiAgICogQHByb3BlcnR5IGFjdGlvbnMgLSBBcnJheSBvZiBhY3Rpb24gYnV0dG9ucyAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgc2VjdGlvbnMgLSBDdXN0b20gY2FyZCBzZWN0aW9ucyAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgb3ZlcnRpdGxlIC0gU3VidGl0bGUgb3Igb3ZlcnRpdGxlIChvcHRpb25hbCkuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxDYXJkTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBDYXJkTWV0YWRhdGEgPSB7fSBhcyBDYXJkTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBvciBhbiBhY3Rpb24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudD4oKTtcblxuICB0eXBlcyA9IENhcmRUeXBlO1xuICBhY3Rpb25UeXBlcyA9IFRvb2xiYXJBY3Rpb25UeXBlO1xuICBzZWN0aW9ucyA9IENhcmRTZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldCA/ICh0aGlzLnByZXNldHMuZ2V0KCdjYXJkJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8Q2FyZE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIENhcmRNZXRhZGF0YTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcihzZWN0aW9uOiBDYXJkU2VjdGlvbiwgdG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHNlY3Rpb24sIHRva2VuIH0pO1xuICB9XG59XG4iXX0=
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFvTTlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBd0N4QjtRQXZDUSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7SUFFUixDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBbkVVLGFBQWE7bUdBQWIsYUFBYSx3S0EvTGQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0S1Qsb3dHQTNMQyxZQUFZLGdRQUNaLGVBQWUsMEdBQ2YsZUFBZSwwR0FDZixjQUFjLHlFQUNkLGFBQWEsd0VBQ2IsT0FBTyx5TEFDUCxjQUFjLCtFQUNkLGFBQWEsc0dBQ2IsWUFBWSxzRkFDWixlQUFlLHlGQUNmLFdBQVcscU1BQ1gsVUFBVSw4RUFDVixTQUFTLG9QQUNULE9BQU87OzRGQWlNRSxhQUFhO2tCQWxOekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTztxQkFDUixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEtUO3dEQTZCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsS0FBSztzQkFBYixLQUFLO2dCQVdOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25DYXJkLFxuICBJb25DYXJkQ29udGVudCxcbiAgSW9uQ2FyZEhlYWRlcixcbiAgSW9uQ2FyZFN1YnRpdGxlLFxuICBJb25DYXJkVGl0bGUsXG4gIElvbkNoZWNrYm94LFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FyZENsaWNrRXZlbnQsIENhcmRNZXRhZGF0YSwgQ2FyZFNlY3Rpb24sIENhcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgSW9uQ2FyZCxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25DYXJkU3VidGl0bGUsXG4gICAgSW9uQ2hlY2tib3gsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLm5hdGl2ZVwiPlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICB9XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLnRhcHBhYmxlXCJcbiAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgICAgY2xhc3M9XCJ0YXBhYmxlXCJcbiAgICA+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuaW1hZ2UpIHtcbiAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgIH1cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+XG4gICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLmNoZWNrZXJcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICBjbGFzcz1cInRhcGFibGVcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjaGVja2VyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNoZWNrYm94IFtjaGVja2VkXT1cInJlc29sdmVkUHJvcHMuc2VsZWN0ZWRcIj48L2lvbi1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY29tcGxleFwiIGNsYXNzPVwiY29tcGxleFwiPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciBjbGFzcz1cImNvbXBsZXgtaGVhZGVyXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMubGVmdEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5oZWFkZXJUZXh0XCI+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiByZXNvbHZlZFByb3BzLmhlYWRlclRleHQsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IHRydWUsIHNpemU6ICdtZWRpdW0nIH1cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMucmlnaHRBY3Rpb25zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJlc29sdmVkUHJvcHMucmlnaHRBY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgY29sb3I9XCJkYXJrXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHg7IGN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRhcGFibGVcIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCI+XG4gICAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjb21wbGV4LWhlYWRlclwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiIGNsYXNzPVwiY29tcGxleC1jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWJ1dHRvbnNcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBtYXJnaW46IDhweFwiXG4gICAgICAgICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5mb290ZXJDb21wbGV4QWN0aW9ucz8ubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByZXNvbHZlZFByb3BzLmZvb3RlckNvbXBsZXhBY3Rpb25zXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8dmFsLWF2YXRhclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBpbWFnZTogYWN0aW9uLmRlc2NyaXB0aW9uLCBkZWZhdWx0OiAnJyB9XCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyRXh0cmEsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICA8L2lvbi1jYXJkPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY2FyZFxuICpcbiAqIEEgZmxleGlibGUgY2FyZCBjb21wb25lbnQgc3VwcG9ydGluZyBpbWFnZXMsIHRpdGxlcywgY29udGVudCwgYWN0aW9ucywgYW5kIGN1c3RvbSBzZWN0aW9ucy5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0IChyZWNvbW1lbmRlZCk6XG4gKiA8dmFsLWNhcmQgcHJlc2V0PVwiZmVhdHVyZVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnQ2FyZCcsIGltYWdlOiAndXJsJywgY29udGVudDogJy4uLicgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoJGV2ZW50KVwiPjwvdmFsLWNhcmQ+XG4gKlxuICogQGV4YW1wbGUgU3RhdGljIChiYWNrd2FyZHMgY29tcGF0aWJsZSk6XG4gKiA8dmFsLWNhcmQgW3Byb3BzXT1cInsgdHlwZTogJ25hdGl2ZScsIHRpdGxlOiAnQ2FyZCcsIGltYWdlOiAndXJsJywgY29udGVudDogJy4uLicgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoJGV2ZW50KVwiPjwvdmFsLWNhcmQ+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHkgKGUuZy4sICdmZWF0dXJlJywgJ2NvbXBhY3QnKVxuICogQGlucHV0IHByb3BzOiBDYXJkTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgY2FyZCAob3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMpXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0cyBhIENhcmRDbGlja0V2ZW50IHdoZW4gdGhlIGNhcmQgb3IgYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogUHJlc2V0IG5hbWUgdG8gYXBwbHkuIFByZXNldHMgZGVmaW5lIHJldXNhYmxlIGNhcmQgY29uZmlndXJhdGlvbnNcbiAgICogKHR5cGUsIHZhcmlhbnQsIHBhZGRpbmcsIGV0Yy4pIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8dmFsLWNhcmQgcHJlc2V0PVwiZmVhdHVyZVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnTXkgQ2FyZCcgfVwiPjwvdmFsLWNhcmQ+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhcmQgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqIEB0eXBlIHtDYXJkTWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSB0eXBlIC0gVGhlIGNhcmQgdHlwZSAoc2VlIENhcmRUeXBlKS5cbiAgICogQHByb3BlcnR5IHRpdGxlIC0gVGhlIGNhcmQgdGl0bGUuXG4gICAqIEBwcm9wZXJ0eSBpbWFnZSAtIFRoZSBjYXJkIGltYWdlIFVSTC5cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgY2FyZCBjb250ZW50LlxuICAgKiBAcHJvcGVydHkgYWN0aW9ucyAtIEFycmF5IG9mIGFjdGlvbiBidXR0b25zIChvcHRpb25hbCkuXG4gICAqIEBwcm9wZXJ0eSBzZWN0aW9ucyAtIEN1c3RvbSBjYXJkIHNlY3Rpb25zIChvcHRpb25hbCkuXG4gICAqIEBwcm9wZXJ0eSBvdmVydGl0bGUgLSBTdWJ0aXRsZSBvciBvdmVydGl0bGUgKG9wdGlvbmFsKS5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPENhcmRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IENhcmRNZXRhZGF0YSA9IHt9IGFzIENhcmRNZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjYXJkIG9yIGFuIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENhcmRDbGlja0V2ZW50PigpO1xuXG4gIHR5cGVzID0gQ2FyZFR5cGU7XG4gIGFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGU7XG4gIHNlY3Rpb25zID0gQ2FyZFNlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ2NhcmQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxDYXJkTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQ2FyZE1ldGFkYXRhO1xuICB9XG5cbiAgY2xpY2tIYW5kbGVyKHNlY3Rpb246IENhcmRTZWN0aW9uLCB0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgc2VjdGlvbiwgdG9rZW4gfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtY29kZS1leGFtcGxlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkb2NzLWNvZGUtZXhhbXBsZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc0NvZGVFeGFtcGxlTWV0YWRhdGEge1xuICAvKipcbiAgICogRXhhbXBsZSB0aXRsZS5cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeGFtcGxlIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvZGUgdGFicyB0byBkaXNwbGF5LlxuICAgKi9cbiAgdGFiczogRG9jc0NvZGVUYWJbXTtcblxuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIGxpdmUgcHJldmlldy5cbiAgICogVXNlIG5nLXRlbXBsYXRlIHdpdGggI3ByZXZpZXcgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHJldmlld1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogRXh0ZXJuYWwgbGluayAoZS5nLiwgU3RhY2tCbGl0eiwgQ29kZVNhbmRib3gpLlxuICAgKi9cbiAgZXh0ZXJuYWxMaW5rPzoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTaG93IGNvcHkgYnV0dG9uIG9uIGNvZGUgYmxvY2tzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93Q29weUJ1dHRvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3cgbGluZSBudW1iZXJzIGluIGNvZGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBzaG93TGluZU51bWJlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gQ1NTIGNsYXNzLlxuICAgKi9cbiAgY3NzQ2xhc3M/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtY29kZS1leGFtcGxlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkb2NzLWNvZGUtZXhhbXBsZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc0NvZGVFeGFtcGxlTWV0YWRhdGEge1xuICAvKipcbiAgICogRXhhbXBsZSB0aXRsZS5cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeGFtcGxlIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvZGUgdGFicyB0byBkaXNwbGF5LlxuICAgKi9cbiAgdGFiczogRG9jc0NvZGVUYWJbXTtcblxuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIGxpdmUgcHJldmlldy5cbiAgICogVXNlIG5nLXRlbXBsYXRlIHdpdGggI3ByZXZpZXcgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHJldmlld1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogRXh0ZXJuYWwgbGluayAoZS5nLiwgU3RhY2tCbGl0eiwgQ29kZVNhbmRib3gpLlxuICAgKi9cbiAgZXh0ZXJuYWxMaW5rPzoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTaG93IGNvcHkgYnV0dG9uIG9uIGNvZGUgYmxvY2tzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93Q29weUJ1dHRvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3cgbGluZSBudW1iZXJzIGluIGNvZGUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBzaG93TGluZU51bWJlcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gQ1NTIGNsYXNzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgYWN0aXZlIHRhYiBpbmRleC5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgZGVmYXVsdFRhYj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2NzQ29kZVRhYiB7XG4gIC8qKlxuICAgKiBUYWIgbGFiZWwgKGUuZy4sIFwiSFRNTFwiLCBcIlR5cGVTY3JpcHRcIiwgXCJTQ1NTXCIpLlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQ29kZSBjb250ZW50LlxuICAgKi9cbiAgY29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYW5ndWFnZSBmb3Igc3ludGF4IGhpZ2hsaWdodGluZy5cbiAgICovXG4gIGxhbmd1YWdlOiAnaHRtbCcgfCAndHlwZXNjcmlwdCcgfCAnc2NzcycgfCAnY3NzJyB8ICdqc29uJyB8ICdiYXNoJyB8ICd0ZXh0JyB8ICdnbyc7XG59XG4iXX0=
|
|
@@ -239,7 +239,7 @@ export class GlowCardComponent {
|
|
|
239
239
|
</a>
|
|
240
240
|
</div>
|
|
241
241
|
</article>
|
|
242
|
-
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{--glow-color: var(--ion-color-primary);--glow-color-rgb: 112 38 223;--aspect-ratio: 16 / 9;--card-border-radius: 1.25rem;--image-border-radius: 1rem;--transition-duration: .3s;--transition-timing: cubic-bezier(.4, 0, .2, 1);display:block}.glow-card{position:relative;display:flex;flex-direction:column;background:var(--ion-background-color, #ffffff);border-radius:var(--card-border-radius);overflow:hidden;cursor:pointer;transition:transform var(--transition-duration) var(--transition-timing),box-shadow var(--transition-duration) var(--transition-timing)}.glow-card__image-container{position:relative;width:calc(100% - 1.5rem);aspect-ratio:var(--aspect-ratio);overflow:hidden;border-radius:var(--image-border-radius);margin:.75rem;margin-bottom:0}.glow-card__image{width:100%;height:100%;object-fit:cover;border-radius:var(--image-border-radius);transition:transform var(--transition-duration) var(--transition-timing)}.glow-card__content{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.glow-card__label{display:inline-block;align-self:flex-start;width:fit-content;padding:.375rem .75rem;background:#fff3;backdrop-filter:blur(4px);border-radius:.25rem;font-size:.75rem;font-weight:600;color:var(--ion-color-
|
|
242
|
+
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{--glow-color: var(--ion-color-primary);--glow-color-rgb: 112 38 223;--aspect-ratio: 16 / 9;--card-border-radius: 1.25rem;--image-border-radius: 1rem;--transition-duration: .3s;--transition-timing: cubic-bezier(.4, 0, .2, 1);display:block}.glow-card{position:relative;display:flex;flex-direction:column;background:var(--ion-background-color, #ffffff);border-radius:var(--card-border-radius);overflow:hidden;cursor:pointer;transition:transform var(--transition-duration) var(--transition-timing),box-shadow var(--transition-duration) var(--transition-timing)}.glow-card__image-container{position:relative;width:calc(100% - 1.5rem);aspect-ratio:var(--aspect-ratio);overflow:hidden;border-radius:var(--image-border-radius);margin:.75rem;margin-bottom:0}.glow-card__image{width:100%;height:100%;object-fit:cover;border-radius:var(--image-border-radius);transition:transform var(--transition-duration) var(--transition-timing)}.glow-card__content{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.glow-card__label{display:inline-block;align-self:flex-start;width:fit-content;padding:.375rem .75rem;background:#fff3;backdrop-filter:blur(4px);border-radius:.25rem;font-size:.75rem;font-weight:600;color:var(--ion-color-dark, var(--ion-text-color, #000));margin-bottom:.5rem}.glow-card__title{margin:0;font-size:1.125rem;font-weight:700;line-height:1.3;color:var(--ion-color-dark, var(--ion-text-color, #000))}.glow-card__description{margin:0;font-size:.875rem;line-height:1.5;color:var(--ion-color-text, var(--ion-color-dark, #666));display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.glow-card__cta{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.25rem 0;text-decoration:none;color:var(--glow-color);font-weight:600;font-size:.875rem;transition:gap var(--transition-duration) var(--transition-timing)}.glow-card__cta:hover{gap:.5rem}.glow-card__cta-text{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width var(--transition-duration) var(--transition-timing),opacity var(--transition-duration) var(--transition-timing)}.glow-card__cta-icon{font-size:1.25rem;flex-shrink:0;transition:transform var(--transition-duration) var(--transition-timing)}.glow-card:hover{transform:translateY(-.25rem)}.glow-card:hover .glow-card__image{transform:scale(1.08)}.glow-card:hover .glow-card__cta-text{max-width:12.5rem;opacity:1}.glow-card:hover .glow-card__cta-icon{transform:translate(.125rem)}.glow-card.glow-enabled:hover{box-shadow:0 .25rem .75rem #00000014,0 .5rem 1.5rem #0000001a,0 .25rem 1.25rem rgb(var(--glow-color-rgb)/.15)}.glow-card.glow-enabled.glow-subtle:hover{box-shadow:0 .25rem .75rem #0000000f,0 .375rem 1rem #00000014,0 .125rem .75rem rgb(var(--glow-color-rgb)/.1)}.glow-card.glow-enabled.glow-medium:hover{box-shadow:0 .375rem 1rem #00000014,0 .75rem 2rem #0000001a,0 .375rem 1.5rem rgb(var(--glow-color-rgb)/.2)}.glow-card.glow-enabled.glow-intense:hover{box-shadow:0 .5rem 1.25rem #00000014,0 1rem 2.5rem #0000001a,0 .5rem 2rem rgb(var(--glow-color-rgb)/.3)}.glow-card.glow-enabled.dark-mode:hover{box-shadow:0 0 1.25rem rgb(var(--glow-color-rgb)/.25),0 0 2.5rem rgb(var(--glow-color-rgb)/.18),0 0 3.75rem rgb(var(--glow-color-rgb)/.12)}.glow-card.glow-enabled.dark-mode.glow-subtle:hover{box-shadow:0 0 .75rem rgb(var(--glow-color-rgb)/.18),0 0 1.5rem rgb(var(--glow-color-rgb)/.12)}.glow-card.glow-enabled.dark-mode.glow-medium:hover{box-shadow:0 0 1.5rem rgb(var(--glow-color-rgb)/.3),0 0 3rem rgb(var(--glow-color-rgb)/.22),0 0 4.5rem rgb(var(--glow-color-rgb)/.15)}.glow-card.glow-enabled.dark-mode.glow-intense:hover{box-shadow:0 0 2rem rgb(var(--glow-color-rgb)/.4),0 0 4rem rgb(var(--glow-color-rgb)/.3),0 0 6rem rgb(var(--glow-color-rgb)/.2)}.glow-card.dark-mode{background:var(--ion-card-background, #1e1e1e)}.glow-card.bordered{border:.0625rem solid var(--border-color, var(--ion-color-medium))}.glow-card.no-image{min-height:12.5rem}.glow-card.no-image .glow-card__content{padding:1.25rem 1.5rem;flex:1;justify-content:center}.glow-card.no-image .glow-card__title{font-size:1.75rem;line-height:1.2}.glow-card.no-image .glow-card__description{font-size:1rem;-webkit-line-clamp:4}@media (max-width: 768px){.glow-card{--card-border-radius: 1rem;--image-border-radius: .75rem}.glow-card__content{padding:.75rem 1rem 1rem}.glow-card__title{font-size:1rem}.glow-card__description{font-size:.8125rem;-webkit-line-clamp:2}.glow-card.no-image{min-height:11.25rem}.glow-card.no-image .glow-card__content{padding:1rem 1.25rem}.glow-card.no-image .glow-card__title{font-size:1.375rem}.glow-card.no-image .glow-card__description{font-size:.875rem}}@media (prefers-reduced-motion: reduce){.glow-card,.glow-card__image,.glow-card__cta,.glow-card__cta-text,.glow-card__cta-icon{transition:none}.glow-card:hover,.glow-card:hover .glow-card__image{transform:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
243
243
|
}
|
|
244
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlowCardComponent, decorators: [{
|
|
245
245
|
type: Component,
|
|
@@ -303,7 +303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
303
303
|
</a>
|
|
304
304
|
</div>
|
|
305
305
|
</article>
|
|
306
|
-
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{--glow-color: var(--ion-color-primary);--glow-color-rgb: 112 38 223;--aspect-ratio: 16 / 9;--card-border-radius: 1.25rem;--image-border-radius: 1rem;--transition-duration: .3s;--transition-timing: cubic-bezier(.4, 0, .2, 1);display:block}.glow-card{position:relative;display:flex;flex-direction:column;background:var(--ion-background-color, #ffffff);border-radius:var(--card-border-radius);overflow:hidden;cursor:pointer;transition:transform var(--transition-duration) var(--transition-timing),box-shadow var(--transition-duration) var(--transition-timing)}.glow-card__image-container{position:relative;width:calc(100% - 1.5rem);aspect-ratio:var(--aspect-ratio);overflow:hidden;border-radius:var(--image-border-radius);margin:.75rem;margin-bottom:0}.glow-card__image{width:100%;height:100%;object-fit:cover;border-radius:var(--image-border-radius);transition:transform var(--transition-duration) var(--transition-timing)}.glow-card__content{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.glow-card__label{display:inline-block;align-self:flex-start;width:fit-content;padding:.375rem .75rem;background:#fff3;backdrop-filter:blur(4px);border-radius:.25rem;font-size:.75rem;font-weight:600;color:var(--ion-color-
|
|
306
|
+
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{--glow-color: var(--ion-color-primary);--glow-color-rgb: 112 38 223;--aspect-ratio: 16 / 9;--card-border-radius: 1.25rem;--image-border-radius: 1rem;--transition-duration: .3s;--transition-timing: cubic-bezier(.4, 0, .2, 1);display:block}.glow-card{position:relative;display:flex;flex-direction:column;background:var(--ion-background-color, #ffffff);border-radius:var(--card-border-radius);overflow:hidden;cursor:pointer;transition:transform var(--transition-duration) var(--transition-timing),box-shadow var(--transition-duration) var(--transition-timing)}.glow-card__image-container{position:relative;width:calc(100% - 1.5rem);aspect-ratio:var(--aspect-ratio);overflow:hidden;border-radius:var(--image-border-radius);margin:.75rem;margin-bottom:0}.glow-card__image{width:100%;height:100%;object-fit:cover;border-radius:var(--image-border-radius);transition:transform var(--transition-duration) var(--transition-timing)}.glow-card__content{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.glow-card__label{display:inline-block;align-self:flex-start;width:fit-content;padding:.375rem .75rem;background:#fff3;backdrop-filter:blur(4px);border-radius:.25rem;font-size:.75rem;font-weight:600;color:var(--ion-color-dark, var(--ion-text-color, #000));margin-bottom:.5rem}.glow-card__title{margin:0;font-size:1.125rem;font-weight:700;line-height:1.3;color:var(--ion-color-dark, var(--ion-text-color, #000))}.glow-card__description{margin:0;font-size:.875rem;line-height:1.5;color:var(--ion-color-text, var(--ion-color-dark, #666));display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.glow-card__cta{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.25rem 0;text-decoration:none;color:var(--glow-color);font-weight:600;font-size:.875rem;transition:gap var(--transition-duration) var(--transition-timing)}.glow-card__cta:hover{gap:.5rem}.glow-card__cta-text{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width var(--transition-duration) var(--transition-timing),opacity var(--transition-duration) var(--transition-timing)}.glow-card__cta-icon{font-size:1.25rem;flex-shrink:0;transition:transform var(--transition-duration) var(--transition-timing)}.glow-card:hover{transform:translateY(-.25rem)}.glow-card:hover .glow-card__image{transform:scale(1.08)}.glow-card:hover .glow-card__cta-text{max-width:12.5rem;opacity:1}.glow-card:hover .glow-card__cta-icon{transform:translate(.125rem)}.glow-card.glow-enabled:hover{box-shadow:0 .25rem .75rem #00000014,0 .5rem 1.5rem #0000001a,0 .25rem 1.25rem rgb(var(--glow-color-rgb)/.15)}.glow-card.glow-enabled.glow-subtle:hover{box-shadow:0 .25rem .75rem #0000000f,0 .375rem 1rem #00000014,0 .125rem .75rem rgb(var(--glow-color-rgb)/.1)}.glow-card.glow-enabled.glow-medium:hover{box-shadow:0 .375rem 1rem #00000014,0 .75rem 2rem #0000001a,0 .375rem 1.5rem rgb(var(--glow-color-rgb)/.2)}.glow-card.glow-enabled.glow-intense:hover{box-shadow:0 .5rem 1.25rem #00000014,0 1rem 2.5rem #0000001a,0 .5rem 2rem rgb(var(--glow-color-rgb)/.3)}.glow-card.glow-enabled.dark-mode:hover{box-shadow:0 0 1.25rem rgb(var(--glow-color-rgb)/.25),0 0 2.5rem rgb(var(--glow-color-rgb)/.18),0 0 3.75rem rgb(var(--glow-color-rgb)/.12)}.glow-card.glow-enabled.dark-mode.glow-subtle:hover{box-shadow:0 0 .75rem rgb(var(--glow-color-rgb)/.18),0 0 1.5rem rgb(var(--glow-color-rgb)/.12)}.glow-card.glow-enabled.dark-mode.glow-medium:hover{box-shadow:0 0 1.5rem rgb(var(--glow-color-rgb)/.3),0 0 3rem rgb(var(--glow-color-rgb)/.22),0 0 4.5rem rgb(var(--glow-color-rgb)/.15)}.glow-card.glow-enabled.dark-mode.glow-intense:hover{box-shadow:0 0 2rem rgb(var(--glow-color-rgb)/.4),0 0 4rem rgb(var(--glow-color-rgb)/.3),0 0 6rem rgb(var(--glow-color-rgb)/.2)}.glow-card.dark-mode{background:var(--ion-card-background, #1e1e1e)}.glow-card.bordered{border:.0625rem solid var(--border-color, var(--ion-color-medium))}.glow-card.no-image{min-height:12.5rem}.glow-card.no-image .glow-card__content{padding:1.25rem 1.5rem;flex:1;justify-content:center}.glow-card.no-image .glow-card__title{font-size:1.75rem;line-height:1.2}.glow-card.no-image .glow-card__description{font-size:1rem;-webkit-line-clamp:4}@media (max-width: 768px){.glow-card{--card-border-radius: 1rem;--image-border-radius: .75rem}.glow-card__content{padding:.75rem 1rem 1rem}.glow-card__title{font-size:1rem}.glow-card__description{font-size:.8125rem;-webkit-line-clamp:2}.glow-card.no-image{min-height:11.25rem}.glow-card.no-image .glow-card__content{padding:1rem 1.25rem}.glow-card.no-image .glow-card__title{font-size:1.375rem}.glow-card.no-image .glow-card__description{font-size:.875rem}}@media (prefers-reduced-motion: reduce){.glow-card,.glow-card__image,.glow-card__cta,.glow-card__cta-text,.glow-card__cta-icon{transition:none}.glow-card:hover,.glow-card:hover .glow-card__image{transform:none}}\n"] }]
|
|
307
307
|
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
308
308
|
type: Input
|
|
309
309
|
}], props: [{
|
|
@@ -311,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
311
311
|
}], onClick: [{
|
|
312
312
|
type: Output
|
|
313
313
|
}] } });
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvdy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZ2xvdy1jYXJkL2dsb3ctY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRy9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBb0VILE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFD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bXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYXJyb3dGb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb3dDYXJkQ2xpY2tFdmVudCwgR2xvd0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1nbG93LWNhcmRcbiAqXG4gKiBBIGNhcmQgY29tcG9uZW50IGZlYXR1cmluZyBhbiBpbWFnZSB3aXRoIHpvb20tb24taG92ZXIsIGFuaW1hdGVkIENUQSBsaW5rLFxuICogYW5kIGR5bmFtaWMgZ2xvdyBlZmZlY3QgdGhhdCBhZGFwdHMgdG8gbGlnaHQvZGFyayBtb2RlLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLWdsb3ctY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdUaXRsZScsIGN0YTogey4uLn0gfVwiPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWM6XG4gKiA8dmFsLWdsb3ctY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGltYWdlU3JjOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5qcGcnLFxuICogICAgIGltYWdlQWx0OiAnRXhhbXBsZSBpbWFnZScsXG4gKiAgICAgdGl0bGU6ICdDYXJkIFRpdGxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0NhcmQgZGVzY3JpcHRpb24gdGV4dCcsXG4gKiAgICAgY3RhOiB7IHRleHQ6ICdMZWFybiBNb3JlJywgdXJsOiAnL2RldGFpbHMnLCB0eXBlOiAnaW50ZXJuYWwnIH1cbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICogPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBHbG93Q2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmRcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIEdsb3dDYXJkQ2xpY2tFdmVudCB3aGVuIGNhcmQsIGltYWdlLCBvciBDVEEgaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZ2xvdy1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFydGljbGVcbiAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkXCJcbiAgICAgIFtjbGFzcy5nbG93LWVuYWJsZWRdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5lbmFibGVkICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuZ2xvdy1zdWJ0bGVdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdzdWJ0bGUnXCJcbiAgICAgIFtjbGFzcy5nbG93LW1lZGl1bV09XCIhcmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgfHwgcmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdtZWRpdW0nXCJcbiAgICAgIFtjbGFzcy5nbG93LWludGVuc2VdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdpbnRlbnNlJ1wiXG4gICAgICBbY2xhc3MuZGFyay1tb2RlXT1cImlzRGFya1wiXG4gICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicmVzb2x2ZWRQcm9wcy5ib3JkZXJlZFwiXG4gICAgICBbY2xhc3Mubm8taW1hZ2VdPVwiIXJlc29sdmVkUHJvcHMuaW1hZ2VTcmNcIlxuICAgICAgW3N0eWxlLi0tZ2xvdy1jb2xvcl09XCJnZXRHbG93Q29sb3IoKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yLXJnYl09XCJnZXRHbG93Q29sb3JSZ2IoKVwiXG4gICAgICBbc3R5bGUuLS1hc3BlY3QtcmF0aW9dPVwiZ2V0QXNwZWN0UmF0aW9WYWx1ZSgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJnZXRCb3JkZXJDb2xvcigpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldEJhY2tncm91bmRTdHlsZSgpXCJcbiAgICAgIChjbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8IS0tIEltYWdlIENvbnRhaW5lciB3aXRoIG92ZXJmbG93IGhpZGRlbiBmb3Igem9vbSBlZmZlY3QgLS0+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuaW1hZ2VTcmMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImdsb3ctY2FyZF9faW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJnbG93LWNhcmRfX2ltYWdlXCJcbiAgICAgICAgICAgIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInJlc29sdmVkUHJvcHMuaW1hZ2VBbHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBDb250ZW50IFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2xvdy1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDwhLS0gTGFiZWwgKHBpbGwgc3R5bGUpIC0tPlxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMubGFiZWwpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdsb3ctY2FyZF9fbGFiZWxcIj57eyByZXNvbHZlZFByb3BzLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgPGgzIGNsYXNzPVwiZ2xvdy1jYXJkX190aXRsZVwiPlxuICAgICAgICAgIHt7IGdldFRpdGxlKCkgfX1cbiAgICAgICAgPC9oMz5cblxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgICA8cCBjbGFzcz1cImdsb3ctY2FyZF9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICB7eyBnZXREZXNjcmlwdGlvbigpIH19XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8IS0tIENUQSBMaW5rIHdpdGggZXhwYW5kaW5nIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cImdsb3ctY2FyZF9fY3RhXCJcbiAgICAgICAgICBbaHJlZl09XCJyZXNvbHZlZFByb3BzLmN0YT8udXJsXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DdGFDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGEtdGV4dFwiPnt7IGdldEN0YVRleHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGEtaWNvblwiXG4gICAgICAgICAgICBbbmFtZV09XCJyZXNvbHZlZFByb3BzLmN0YT8uaWNvbiB8fCAnYXJyb3ctZm9yd2FyZC1vdXRsaW5lJ1wiXG4gICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZ2xvdy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdsb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxHbG93Q2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IEdsb3dDYXJkTWV0YWRhdGEgPSB7fSBhcyBHbG93Q2FyZE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxHbG93Q2FyZENsaWNrRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZSA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgdGhlbWVTZXJ2aWNlID0gaW5qZWN0KFRoZW1lU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCdnbG93Q2FyZCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPEdsb3dDYXJkTWV0YWRhdGE+KVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIEdsb3dDYXJkTWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGlvbmljQ29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbiAgLy8gUkdCIHZhbHVlcyB3aXRoIFNQQUNFIHNlcGFyYXRvciBmb3IgQ1NTIHJnYih2YXIoKSAvIGFscGhhKSBzeW50YXhcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvclJnYk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAnMTEyIDM4IDIyMycsXG4gICAgc2Vjb25kYXJ5OiAnMjI2IDIwNCAyNTUnLFxuICAgIHRlcnRpYXJ5OiAnODIgOTYgMjU1JyxcbiAgICBzdWNjZXNzOiAnNDUgMjExIDExMScsXG4gICAgd2FybmluZzogJzI1NSAxOTYgOScsXG4gICAgZGFuZ2VyOiAnMjM1IDY4IDkwJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGFycm93Rm9yd2FyZE91dGxpbmUgfSk7XG4gIH1cblxuICBnZXQgaXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lU2VydmljZS5Jc0Rhcms7XG4gIH1cblxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMudGl0bGUgfHwgdGhpcy5yZXNvbHZlZFByb3BzLnRpdGxlRmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMuZGVzY3JpcHRpb24gfHwgdGhpcy5yZXNvbHZlZFByb3BzLmRlc2NyaXB0aW9uRmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXRDdGFUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5jdGE/LnRleHQgfHwgdGhpcy5yZXNvbHZlZFByb3BzLmN0YT8uY29udGVudEZhbGxiYWNrIHx8IHRoaXMuaTE4bi50KCdzZWVNb3JlJyk7XG4gIH1cblxuICBnZXRHbG93Q29sb3IoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMucmVzb2x2ZWRQcm9wcy5nbG93Py5jb2xvcjtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW9uaWNDb2xvcnMuaW5jbHVkZXMoY29sb3IgYXMgc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sb3IgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0R2xvd0NvbG9yUmdiKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuZ2xvdz8uY29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICcxMTIgMzggMjIzJzsgLy8gRGVmYXVsdCBwcmltYXJ5IGNvbG9yIChzcGFjZS1zZXBhcmF0ZWQgZm9yIENTUylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICBjb25zdCByZ2IgPSB0aGlzLmNvbG9yUmdiTWFwW2NvbG9yIGFzIHN0cmluZ107XG4gICAgICByZXR1cm4gcmdiID8gcmdiIDogJzExMiAzOCAyMjMnO1xuICAgIH1cblxuICAgIC8vIEZvciBjdXN0b20gaGV4IGNvbG9ycywgdHJ5IHRvIGNvbnZlcnRcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiBjb2xvci5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmhleFRvUmdiKGNvbG9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJzExMiAzOCAyMjMnO1xuICB9XG5cbiAgcHJpdmF0ZSBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy8gU3BhY2Utc2VwYXJhdGVkIGZvciBDU1MgcmdiKHZhcigpIC8gYWxwaGEpIHN5bnRheFxuICAgICAgcmV0dXJuIGAke3BhcnNlSW50KHJlc3VsdFsxXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFsyXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFszXSwgMTYpfWA7XG4gICAgfVxuICAgIHJldHVybiAnMTEyIDM4IDIyMyc7XG4gIH1cblxuICBnZXRBc3BlY3RSYXRpb1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF0aW9NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnMTY6OSc6ICcxNiAvIDknLFxuICAgICAgJzQ6Myc6ICc0IC8gMycsXG4gICAgICAnMToxJzogJzEgLyAxJyxcbiAgICAgICczOjInOiAnMyAvIDInLFxuICAgICAgJzIxOjknOiAnMjEgLyA5JyxcbiAgICB9O1xuICAgIHJldHVybiByYXRpb01hcFt0aGlzLnJlc29sdmVkUHJvcHMuYXNwZWN0UmF0aW8gfHwgJzE2OjknXTtcbiAgfVxuXG4gIGdldEJvcmRlckNvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuYm9yZGVyQ29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItbWVkaXVtKSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW9uaWNDb2xvcnMuaW5jbHVkZXMoY29sb3IgYXMgc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sb3IgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZFN0eWxlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJnID0gdGhpcy5yZXNvbHZlZFByb3BzLmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWJnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFNpIGVzIHVuIGNvbG9yIElvbmljLCB1c2FyIGxhIHZhcmlhYmxlIENTU1xuICAgIGlmICh0aGlzLmlvbmljQ29sb3JzLmluY2x1ZGVzKGJnIGFzIHN0cmluZykpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Ymd9KWA7XG4gICAgfVxuXG4gICAgLy8gU2kgZXMgdW4gc3RyaW5nIENTUyAoY29sb3IgaGV4LCBncmFkaWVudGUsIGV0YyksIHVzYXIgZGlyZWN0YW1lbnRlXG4gICAgcmV0dXJuIGJnIGFzIHN0cmluZztcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5nbG93LWNhcmRfX2N0YSwgLmdsb3ctY2FyZF9faW1hZ2UnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHRhcmdldDogJ2NhcmQnLCB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuIH0pO1xuICB9XG5cbiAgb25JbWFnZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoeyB0YXJnZXQ6ICdpbWFnZScsIHRva2VuOiB0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4gfSk7XG4gIH1cblxuICBvbkN0YUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRhcmdldDogJ2N0YScsXG4gICAgICB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuLFxuICAgICAgdXJsOiB0aGlzLnJlc29sdmVkUHJvcHMuY3RhPy51cmwsXG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGE/LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVybmFsJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdicm93c2UnOlxuICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLm5hdmlnYXRlSW5BcHAodGhpcy5yZXNvbHZlZFByb3BzLmN0YS51cmwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2Uub3BlbkluTmV3VGFiKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvdy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZ2xvdy1jYXJkL2dsb3ctY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRy9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBb0VILE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFD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bXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYXJyb3dGb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb3dDYXJkQ2xpY2tFdmVudCwgR2xvd0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1nbG93LWNhcmRcbiAqXG4gKiBBIGNhcmQgY29tcG9uZW50IGZlYXR1cmluZyBhbiBpbWFnZSB3aXRoIHpvb20tb24taG92ZXIsIGFuaW1hdGVkIENUQSBsaW5rLFxuICogYW5kIGR5bmFtaWMgZ2xvdyBlZmZlY3QgdGhhdCBhZGFwdHMgdG8gbGlnaHQvZGFyayBtb2RlLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLWdsb3ctY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdUaXRsZScsIGN0YTogey4uLn0gfVwiPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWM6XG4gKiA8dmFsLWdsb3ctY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGltYWdlU3JjOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5qcGcnLFxuICogICAgIGltYWdlQWx0OiAnRXhhbXBsZSBpbWFnZScsXG4gKiAgICAgdGl0bGU6ICdDYXJkIFRpdGxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0NhcmQgZGVzY3JpcHRpb24gdGV4dCcsXG4gKiAgICAgY3RhOiB7IHRleHQ6ICdMZWFybiBNb3JlJywgdXJsOiAnL2RldGFpbHMnLCB0eXBlOiAnaW50ZXJuYWwnIH1cbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICogPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBHbG93Q2FyZE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNhcmRcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIEdsb3dDYXJkQ2xpY2tFdmVudCB3aGVuIGNhcmQsIGltYWdlLCBvciBDVEEgaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZ2xvdy1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFydGljbGVcbiAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkXCJcbiAgICAgIFtjbGFzcy5nbG93LWVuYWJsZWRdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5lbmFibGVkICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuZ2xvdy1zdWJ0bGVdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdzdWJ0bGUnXCJcbiAgICAgIFtjbGFzcy5nbG93LW1lZGl1bV09XCIhcmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgfHwgcmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdtZWRpdW0nXCJcbiAgICAgIFtjbGFzcy5nbG93LWludGVuc2VdPVwicmVzb2x2ZWRQcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdpbnRlbnNlJ1wiXG4gICAgICBbY2xhc3MuZGFyay1tb2RlXT1cImlzRGFya1wiXG4gICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicmVzb2x2ZWRQcm9wcy5ib3JkZXJlZFwiXG4gICAgICBbY2xhc3Mubm8taW1hZ2VdPVwiIXJlc29sdmVkUHJvcHMuaW1hZ2VTcmNcIlxuICAgICAgW3N0eWxlLi0tZ2xvdy1jb2xvcl09XCJnZXRHbG93Q29sb3IoKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yLXJnYl09XCJnZXRHbG93Q29sb3JSZ2IoKVwiXG4gICAgICBbc3R5bGUuLS1hc3BlY3QtcmF0aW9dPVwiZ2V0QXNwZWN0UmF0aW9WYWx1ZSgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJnZXRCb3JkZXJDb2xvcigpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldEJhY2tncm91bmRTdHlsZSgpXCJcbiAgICAgIChjbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8IS0tIEltYWdlIENvbnRhaW5lciB3aXRoIG92ZXJmbG93IGhpZGRlbiBmb3Igem9vbSBlZmZlY3QgLS0+XG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuaW1hZ2VTcmMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImdsb3ctY2FyZF9faW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJnbG93LWNhcmRfX2ltYWdlXCJcbiAgICAgICAgICAgIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInJlc29sdmVkUHJvcHMuaW1hZ2VBbHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBDb250ZW50IFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2xvdy1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDwhLS0gTGFiZWwgKHBpbGwgc3R5bGUpIC0tPlxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMubGFiZWwpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdsb3ctY2FyZF9fbGFiZWxcIj57eyByZXNvbHZlZFByb3BzLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgPGgzIGNsYXNzPVwiZ2xvdy1jYXJkX190aXRsZVwiPlxuICAgICAgICAgIHt7IGdldFRpdGxlKCkgfX1cbiAgICAgICAgPC9oMz5cblxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgICA8cCBjbGFzcz1cImdsb3ctY2FyZF9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICB7eyBnZXREZXNjcmlwdGlvbigpIH19XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8IS0tIENUQSBMaW5rIHdpdGggZXhwYW5kaW5nIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cImdsb3ctY2FyZF9fY3RhXCJcbiAgICAgICAgICBbaHJlZl09XCJyZXNvbHZlZFByb3BzLmN0YT8udXJsXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DdGFDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGEtdGV4dFwiPnt7IGdldEN0YVRleHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGEtaWNvblwiXG4gICAgICAgICAgICBbbmFtZV09XCJyZXNvbHZlZFByb3BzLmN0YT8uaWNvbiB8fCAnYXJyb3ctZm9yd2FyZC1vdXRsaW5lJ1wiXG4gICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXJ0aWNsZT5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZ2xvdy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdsb3dDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxHbG93Q2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IEdsb3dDYXJkTWV0YWRhdGEgPSB7fSBhcyBHbG93Q2FyZE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxHbG93Q2FyZENsaWNrRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZSA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgdGhlbWVTZXJ2aWNlID0gaW5qZWN0KFRoZW1lU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCdnbG93Q2FyZCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPEdsb3dDYXJkTWV0YWRhdGE+KVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIEdsb3dDYXJkTWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGlvbmljQ29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbiAgLy8gUkdCIHZhbHVlcyB3aXRoIFNQQUNFIHNlcGFyYXRvciBmb3IgQ1NTIHJnYih2YXIoKSAvIGFscGhhKSBzeW50YXhcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvclJnYk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAnMTEyIDM4IDIyMycsXG4gICAgc2Vjb25kYXJ5OiAnMjI2IDIwNCAyNTUnLFxuICAgIHRlcnRpYXJ5OiAnODIgOTYgMjU1JyxcbiAgICBzdWNjZXNzOiAnNDUgMjExIDExMScsXG4gICAgd2FybmluZzogJzI1NSAxOTYgOScsXG4gICAgZGFuZ2VyOiAnMjM1IDY4IDkwJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGFycm93Rm9yd2FyZE91dGxpbmUgfSk7XG4gIH1cblxuICBnZXQgaXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lU2VydmljZS5Jc0Rhcms7XG4gIH1cblxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMudGl0bGUgfHwgdGhpcy5yZXNvbHZlZFByb3BzLnRpdGxlRmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMuZGVzY3JpcHRpb24gfHwgdGhpcy5yZXNvbHZlZFByb3BzLmRlc2NyaXB0aW9uRmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXRDdGFUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5jdGE/LnRleHQgfHwgdGhpcy5yZXNvbHZlZFByb3BzLmN0YT8uY29udGVudEZhbGxiYWNrIHx8IHRoaXMuaTE4bi50KCdzZWVNb3JlJyk7XG4gIH1cblxuICBnZXRHbG93Q29sb3IoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMucmVzb2x2ZWRQcm9wcy5nbG93Py5jb2xvcjtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW9uaWNDb2xvcnMuaW5jbHVkZXMoY29sb3IgYXMgc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sb3IgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0R2xvd0NvbG9yUmdiKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuZ2xvdz8uY29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICcxMTIgMzggMjIzJzsgLy8gRGVmYXVsdCBwcmltYXJ5IGNvbG9yIChzcGFjZS1zZXBhcmF0ZWQgZm9yIENTUylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICBjb25zdCByZ2IgPSB0aGlzLmNvbG9yUmdiTWFwW2NvbG9yIGFzIHN0cmluZ107XG4gICAgICByZXR1cm4gcmdiID8gcmdiIDogJzExMiAzOCAyMjMnO1xuICAgIH1cblxuICAgIC8vIEZvciBjdXN0b20gaGV4IGNvbG9ycywgdHJ5IHRvIGNvbnZlcnRcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiBjb2xvci5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmhleFRvUmdiKGNvbG9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJzExMiAzOCAyMjMnO1xuICB9XG5cbiAgcHJpdmF0ZSBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy8gU3BhY2Utc2VwYXJhdGVkIGZvciBDU1MgcmdiKHZhcigpIC8gYWxwaGEpIHN5bnRheFxuICAgICAgcmV0dXJuIGAke3BhcnNlSW50KHJlc3VsdFsxXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFsyXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFszXSwgMTYpfWA7XG4gICAgfVxuICAgIHJldHVybiAnMTEyIDM4IDIyMyc7XG4gIH1cblxuICBnZXRBc3BlY3RSYXRpb1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF0aW9NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnMTY6OSc6ICcxNiAvIDknLFxuICAgICAgJzQ6Myc6ICc0IC8gMycsXG4gICAgICAnMToxJzogJzEgLyAxJyxcbiAgICAgICczOjInOiAnMyAvIDInLFxuICAgICAgJzIxOjknOiAnMjEgLyA5JyxcbiAgICB9O1xuICAgIHJldHVybiByYXRpb01hcFt0aGlzLnJlc29sdmVkUHJvcHMuYXNwZWN0UmF0aW8gfHwgJzE2OjknXTtcbiAgfVxuXG4gIGdldEJvcmRlckNvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnJlc29sdmVkUHJvcHMuYm9yZGVyQ29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItbWVkaXVtKSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW9uaWNDb2xvcnMuaW5jbHVkZXMoY29sb3IgYXMgc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sb3IgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZFN0eWxlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGJnID0gdGhpcy5yZXNvbHZlZFByb3BzLmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWJnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFNpIGVzIHVuIGNvbG9yIElvbmljLCB1c2FyIGxhIHZhcmlhYmxlIENTU1xuICAgIGlmICh0aGlzLmlvbmljQ29sb3JzLmluY2x1ZGVzKGJnIGFzIHN0cmluZykpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Ymd9KWA7XG4gICAgfVxuXG4gICAgLy8gU2kgZXMgdW4gc3RyaW5nIENTUyAoY29sb3IgaGV4LCBncmFkaWVudGUsIGV0YyksIHVzYXIgZGlyZWN0YW1lbnRlXG4gICAgcmV0dXJuIGJnIGFzIHN0cmluZztcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5nbG93LWNhcmRfX2N0YSwgLmdsb3ctY2FyZF9faW1hZ2UnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHRhcmdldDogJ2NhcmQnLCB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuIH0pO1xuICB9XG5cbiAgb25JbWFnZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoeyB0YXJnZXQ6ICdpbWFnZScsIHRva2VuOiB0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4gfSk7XG4gIH1cblxuICBvbkN0YUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRhcmdldDogJ2N0YScsXG4gICAgICB0b2tlbjogdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuLFxuICAgICAgdXJsOiB0aGlzLnJlc29sdmVkUHJvcHMuY3RhPy51cmwsXG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGE/LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVybmFsJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdicm93c2UnOlxuICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLm5hdmlnYXRlSW5BcHAodGhpcy5yZXNvbHZlZFByb3BzLmN0YS51cmwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2Uub3BlbkluTmV3VGFiKHRoaXMucmVzb2x2ZWRQcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|