valtech-components 2.0.421 β 2.0.423
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
CHANGED
|
@@ -106,7 +106,7 @@ Import the desired standalone components in your Angular modules or components:
|
|
|
106
106
|
|
|
107
107
|
```typescript
|
|
108
108
|
import { inject } from '@angular/core';
|
|
109
|
-
import { TextComponent, ButtonComponent
|
|
109
|
+
import { TextComponent, ButtonComponent } from 'valtech-components';
|
|
110
110
|
|
|
111
111
|
@Component({
|
|
112
112
|
selector: 'your-component',
|
|
@@ -117,33 +117,19 @@ import { TextComponent, ButtonComponent, LangService } from 'valtech-components'
|
|
|
117
117
|
],
|
|
118
118
|
template: `
|
|
119
119
|
<!-- Static text -->
|
|
120
|
-
<val-text
|
|
120
|
+
<val-text
|
|
121
121
|
[props]="{
|
|
122
|
-
content: 'This is a body text.',
|
|
123
|
-
color: 'primary',
|
|
124
|
-
bold: false,
|
|
125
|
-
size: 'small'
|
|
122
|
+
content: 'This is a body text.',
|
|
123
|
+
color: 'primary',
|
|
124
|
+
bold: false,
|
|
125
|
+
size: 'small'
|
|
126
126
|
}"
|
|
127
127
|
/>
|
|
128
|
-
|
|
129
|
-
<!--
|
|
130
|
-
<val-text
|
|
131
|
-
[props]="{
|
|
132
|
-
contentKey: 'save',
|
|
133
|
-
contentClass: '_global',
|
|
134
|
-
contentFallback: 'Save',
|
|
135
|
-
color: 'primary',
|
|
136
|
-
bold: true,
|
|
137
|
-
size: 'medium'
|
|
138
|
-
}"
|
|
139
|
-
/>
|
|
140
|
-
|
|
141
|
-
<!-- Button with reactive text -->
|
|
128
|
+
|
|
129
|
+
<!-- Button -->
|
|
142
130
|
<val-button
|
|
143
131
|
[props]="{
|
|
144
|
-
|
|
145
|
-
contentClass: '_global',
|
|
146
|
-
contentFallback: 'Cancel',
|
|
132
|
+
text: 'Cancel',
|
|
147
133
|
color: 'secondary',
|
|
148
134
|
type: 'button'
|
|
149
135
|
}"
|
|
@@ -152,238 +138,41 @@ import { TextComponent, ButtonComponent, LangService } from 'valtech-components'
|
|
|
152
138
|
`
|
|
153
139
|
})
|
|
154
140
|
export class YourComponent {
|
|
155
|
-
langService = inject(LangService);
|
|
156
|
-
|
|
157
141
|
handleCancel() {
|
|
158
142
|
console.log('Cancel clicked');
|
|
159
143
|
}
|
|
160
144
|
}
|
|
161
145
|
```
|
|
162
146
|
|
|
163
|
-
## π
|
|
164
|
-
|
|
165
|
-
The library includes a powerful reactive internationalization system with **LangService** that automatically updates content when the language changes. It supports both **global content** (reusable across components) and **component-specific content**.
|
|
147
|
+
## π Locale Management
|
|
166
148
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
- **Global Content**: Reusable texts like buttons ("Save", "Cancel"), states ("Loading", "Error"), and confirmations
|
|
170
|
-
- **Component-Specific Content**: Custom texts for individual components
|
|
171
|
-
- **Reactive Updates**: Text automatically updates when language changes
|
|
172
|
-
- **Interpolation Support**: Dynamic values in text strings with `{{variable}}` syntax
|
|
173
|
-
- **Type-Safe**: Full TypeScript support with autocompletion
|
|
174
|
-
- **Simple API**: Direct LangService injection, no complex setup
|
|
175
|
-
- **Automatic Fallbacks**: Intelligent language fallback with console warnings
|
|
176
|
-
- **Unified System**: Single service for all content needs
|
|
177
|
-
|
|
178
|
-
### Available Global Content
|
|
179
|
-
|
|
180
|
-
- **Buttons**: `ok`, `cancel`, `save`, `delete`, `edit`, `close`, `back`, `next`, `previous`
|
|
181
|
-
- **Actions**: `add`, `remove`, `search`, `filter`, `sort`, `refresh`
|
|
182
|
-
- **States**: `loading`, `error`, `success`, `warning`, `info`, `noData`
|
|
183
|
-
- **Forms**: `searchPlaceholder`
|
|
184
|
-
- **Confirmations**: `deleteConfirmation`, `unsavedChanges`
|
|
185
|
-
- **General**: `language`, `areYouSure`, `copied`
|
|
186
|
-
|
|
187
|
-
### Basic Setup
|
|
149
|
+
The library includes a simple locale management service using localStorage:
|
|
188
150
|
|
|
189
151
|
```typescript
|
|
190
|
-
// main.ts
|
|
191
|
-
import { TextContent, ValtechConfig, ValtechConfigService } from 'valtech-components';
|
|
192
|
-
|
|
193
|
-
const appContent = new TextContent({
|
|
194
|
-
es: {
|
|
195
|
-
welcome: 'Bienvenido',
|
|
196
|
-
description: 'Esta es la descripciΓ³n'
|
|
197
|
-
},
|
|
198
|
-
en: {
|
|
199
|
-
welcome: 'Welcome',
|
|
200
|
-
description: 'This is the description'
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
const valtechConfig: ValtechConfig = {
|
|
205
|
-
content: { AppComponent: appContent }
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
bootstrapApplication(AppComponent, {
|
|
209
|
-
providers: [
|
|
210
|
-
{ provide: ValtechConfigService, useValue: valtechConfig },
|
|
211
|
-
// ... other providers
|
|
212
|
-
]
|
|
213
|
-
});
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Using LangService (Current API)
|
|
217
|
-
|
|
218
|
-
```typescript
|
|
219
|
-
// component.ts
|
|
220
152
|
import { inject } from '@angular/core';
|
|
221
|
-
import {
|
|
153
|
+
import { LocaleService, LanguageSelectorComponent } from 'valtech-components';
|
|
222
154
|
|
|
223
155
|
@Component({
|
|
224
156
|
template: `
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
color: 'primary',
|
|
230
|
-
size: 'large',
|
|
231
|
-
bold: true
|
|
232
|
-
}"></val-text>
|
|
233
|
-
|
|
234
|
-
<!-- Component-specific content using val-text -->
|
|
235
|
-
<val-text [props]="{
|
|
236
|
-
contentKey: 'welcome',
|
|
237
|
-
contentClass: 'AppComponent',
|
|
238
|
-
contentFallback: 'Welcome',
|
|
239
|
-
color: 'secondary',
|
|
240
|
-
size: 'medium'
|
|
241
|
-
}"></val-text>
|
|
242
|
-
|
|
243
|
-
<!-- Direct observable binding -->
|
|
244
|
-
<h2>{{ title$ | async }}</h2>
|
|
245
|
-
|
|
246
|
-
<!-- With interpolation -->
|
|
247
|
-
<p>{{ greeting$ | async }}</p>
|
|
157
|
+
<val-language-selector
|
|
158
|
+
[props]="{ showFlags: true, showLabel: true }"
|
|
159
|
+
(languageChange)="onLanguageChange($event)"
|
|
160
|
+
></val-language-selector>
|
|
248
161
|
`
|
|
249
162
|
})
|
|
250
163
|
export class MyComponent {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
// Global content
|
|
254
|
-
saveButton$ = this.langService.getContent('_global', 'save', 'Save');
|
|
255
|
-
cancelButton$ = this.langService.getContent('_global', 'cancel', 'Cancel');
|
|
256
|
-
|
|
257
|
-
// Component-specific content
|
|
258
|
-
title$ = this.langService.getContent('AppComponent', 'welcome', 'Welcome');
|
|
259
|
-
|
|
260
|
-
// Content with interpolation
|
|
261
|
-
greeting$ = this.langService.getContentWithInterpolation(
|
|
262
|
-
'AppComponent',
|
|
263
|
-
'personalizedGreeting',
|
|
264
|
-
{ name: 'John', count: 5 },
|
|
265
|
-
'Hello!'
|
|
266
|
-
);
|
|
267
|
-
|
|
268
|
-
// Switch language
|
|
269
|
-
changeLanguage() {
|
|
270
|
-
const currentLang = this.langService.currentLang;
|
|
271
|
-
this.langService.setLang(currentLang === 'es' ? 'en' : 'es');
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
constructor() {}
|
|
275
|
-
}
|
|
276
|
-
```
|
|
164
|
+
localeService = inject(LocaleService);
|
|
277
165
|
|
|
278
|
-
|
|
166
|
+
// Get current locale
|
|
167
|
+
currentLocale = this.localeService.getLocale(); // 'es', 'en', etc.
|
|
279
168
|
|
|
280
|
-
|
|
281
|
-
//
|
|
282
|
-
|
|
283
|
-
langService = inject(LangService);
|
|
284
|
-
|
|
285
|
-
// Method 1: Direct service usage
|
|
286
|
-
greeting$ = this.langService.getContentWithInterpolation(
|
|
287
|
-
'UserComponent',
|
|
288
|
-
'personalizedGreeting',
|
|
289
|
-
{ name: 'John', count: 5 },
|
|
290
|
-
'Hello!'
|
|
291
|
-
);
|
|
292
|
-
// Results in: "Hello John, you have 5 messages"
|
|
293
|
-
|
|
294
|
-
// Method 2: Using val-text component
|
|
295
|
-
// In template:
|
|
296
|
-
// <val-text [props]="{
|
|
297
|
-
// contentKey: 'personalizedGreeting',
|
|
298
|
-
// contentClass: 'UserComponent',
|
|
299
|
-
// contentInterpolation: { name: 'John', count: 5 },
|
|
300
|
-
// contentFallback: 'Hello!'
|
|
301
|
-
// }"></val-text>
|
|
302
|
-
}
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### Helper Functions
|
|
306
|
-
|
|
307
|
-
```typescript
|
|
308
|
-
// Using utility helpers from simple-content
|
|
309
|
-
import {
|
|
310
|
-
fromContentWithInterpolation,
|
|
311
|
-
interpolateStaticContent,
|
|
312
|
-
shouldUseReactiveContent
|
|
313
|
-
} from 'valtech-components';
|
|
314
|
-
|
|
315
|
-
export class AdvancedComponent {
|
|
316
|
-
langService = inject(LangService);
|
|
317
|
-
|
|
318
|
-
// Using helper for reactive content with interpolation
|
|
319
|
-
message$ = fromContentWithInterpolation(this.langService, {
|
|
320
|
-
contentClass: 'MyComponent',
|
|
321
|
-
contentKey: 'message',
|
|
322
|
-
contentInterpolation: { count: 10 }
|
|
323
|
-
});
|
|
324
|
-
|
|
325
|
-
// Static content with interpolation
|
|
326
|
-
processStaticText() {
|
|
327
|
-
const text = interpolateStaticContent(
|
|
328
|
-
'You have {{count}} items',
|
|
329
|
-
{ count: 5 }
|
|
330
|
-
);
|
|
331
|
-
// Results in: "You have 5 items"
|
|
169
|
+
onLanguageChange(locale: string) {
|
|
170
|
+
// Changes locale and reloads the page
|
|
171
|
+
this.localeService.setLocale(locale);
|
|
332
172
|
}
|
|
333
173
|
}
|
|
334
174
|
```
|
|
335
175
|
|
|
336
|
-
### Migration Guide
|
|
337
|
-
|
|
338
|
-
If you're migrating from the old `ContentService` API, here's a quick reference:
|
|
339
|
-
|
|
340
|
-
```typescript
|
|
341
|
-
// OLD API (ContentService - removed)
|
|
342
|
-
content = inject(ContentService);
|
|
343
|
-
text$ = this.content.fromContent({ key: 'save' });
|
|
344
|
-
|
|
345
|
-
// NEW API (LangService - current)
|
|
346
|
-
langService = inject(LangService);
|
|
347
|
-
text$ = this.langService.getContent('_global', 'save', 'Save');
|
|
348
|
-
|
|
349
|
-
// OLD API (with interpolation)
|
|
350
|
-
text$ = this.content.fromContentWithInterpolation({
|
|
351
|
-
key: 'greeting',
|
|
352
|
-
interpolation: { name: 'John' }
|
|
353
|
-
});
|
|
354
|
-
|
|
355
|
-
// NEW API (with interpolation)
|
|
356
|
-
text$ = this.langService.getContentWithInterpolation(
|
|
357
|
-
'_global',
|
|
358
|
-
'greeting',
|
|
359
|
-
{ name: 'John' },
|
|
360
|
-
'Hello!'
|
|
361
|
-
);
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### Available Utility Functions
|
|
365
|
-
|
|
366
|
-
```typescript
|
|
367
|
-
import {
|
|
368
|
-
shouldUseReactiveContent,
|
|
369
|
-
extractContentConfig,
|
|
370
|
-
interpolateStaticContent,
|
|
371
|
-
fromContentWithInterpolation
|
|
372
|
-
} from 'valtech-components';
|
|
373
|
-
|
|
374
|
-
// Check if metadata should use reactive content
|
|
375
|
-
const useReactive = shouldUseReactiveContent(metadata);
|
|
376
|
-
|
|
377
|
-
// Extract configuration from metadata
|
|
378
|
-
const config = extractContentConfig(metadata);
|
|
379
|
-
|
|
380
|
-
// Interpolate static strings
|
|
381
|
-
const result = interpolateStaticContent('Hello {{name}}!', { name: 'World' });
|
|
382
|
-
|
|
383
|
-
// Helper for reactive content with interpolation
|
|
384
|
-
const content$ = fromContentWithInterpolation(langService, metadata);
|
|
385
|
-
```
|
|
386
|
-
|
|
387
176
|
## π Automatic Link Processing
|
|
388
177
|
|
|
389
178
|
The library now includes automatic link detection and processing capabilities. Convert URLs and internal routes in text content into clickable links automatically:
|
|
@@ -453,15 +242,13 @@ processText(text: string) {
|
|
|
453
242
|
- `src/lib/components/templates/` β Page templates and layouts
|
|
454
243
|
- `src/lib/components/styles/` β Shared SCSS variables, mixins, and utilities
|
|
455
244
|
- `src/lib/services/` β Core services:
|
|
456
|
-
- `
|
|
245
|
+
- `locale.service.ts` β Simple locale management with localStorage
|
|
457
246
|
- `theme.service.ts` β Theme management
|
|
458
247
|
- `navigation.service.ts` β Routing utilities
|
|
459
248
|
- `download.service.ts` β File download helpers
|
|
460
249
|
- `icons.service.ts` β Icon management
|
|
461
250
|
- `toast.service.ts` β Toast notifications
|
|
462
251
|
- `src/lib/shared/` β Shared utilities:
|
|
463
|
-
- `utils/simple-content.ts` β Content system helpers and interfaces
|
|
464
|
-
- `utils/content.ts` β Legacy content utilities (for backward compatibility)
|
|
465
252
|
- `pipes/process-links.pipe.ts` β Automatic link processing
|
|
466
253
|
- `constants/` β Shared constants
|
|
467
254
|
|
|
@@ -55,4 +55,4 @@ export var ToolbarActionType;
|
|
|
55
55
|
ToolbarActionType["IMAGE"] = "IMAGE";
|
|
56
56
|
ToolbarActionType["BUTTON"] = "BUTTON";
|
|
57
57
|
})(ToolbarActionType || (ToolbarActionType = {}));
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQztBQUMxQyxNQUFNLFFBQVEsR0FBbUIsVUFBVSxDQUFDO0FBQzVDLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxLQUFLLEdBQW1CLE9BQU8sQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQixpRUFBZSxDQUFBO0lBQ2YsbUVBQWdCLENBQUE7SUFDaEIsaUVBQWUsQ0FBQTtJQUNmLCtEQUFjLENBQUE7SUFDZCx1RUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckI7QUFjRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFNBdUJYO0FBdkJELFdBQVksU0FBUztJQUNuQix5Q0FBSSxDQUFBO0lBQ0osaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLDZDQUFNLENBQUE7SUFDTiw2REFBYyxDQUFBO0lBQ2QsaURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSixxREFBVSxDQUFBO0lBQ1YsMENBQUksQ0FBQTtJQUNKLDRDQUFLLENBQUE7SUFDTCw0Q0FBSyxDQUFBO0lBQ0wsOENBQU0sQ0FBQTtJQUNOLDREQUFhLENBQUE7SUFDYiwwREFBWSxDQUFBO0lBQ1osd0VBQW1CLENBQUE7SUFDbkIsMENBQUksQ0FBQTtJQUNKLDhDQUFNLENBQUE7SUFDTiw0Q0FBSyxDQUFBO0lBQ0wsNENBQUssQ0FBQTtJQUNMLGtEQUFRLENBQUE7QUFDVixDQUFDLEVBdkJXLFNBQVMsS0FBVCxTQUFTLFFBdUJwQjtBQTZIRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0Isc0NBQWlCLENBQUE7SUFDakIsa0NBQWEsQ0FBQTtJQUNiLG9DQUFlLENBQUE7SUFDZixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUs1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vYXRvbXMvaW1hZ2UvdHlwZXMnO1xuXG4vKipcbiAqIFBvc3NpYmxlIHN0YXRlcyBmb3IgYW4gaW50ZXJhY3RpdmUgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRTdGF0ZSA9ICdFTkFCTEVEJyB8ICdESVNBQkxFRCcgfCAnV09SS0lORycgfCAnRVJST1InO1xuY29uc3QgRU5BQkxFRDogQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCc7XG5jb25zdCBESVNBQkxFRDogQ29tcG9uZW50U3RhdGUgPSAnRElTQUJMRUQnO1xuY29uc3QgV09SS0lORzogQ29tcG9uZW50U3RhdGUgPSAnV09SS0lORyc7XG5jb25zdCBFUlJPUjogQ29tcG9uZW50U3RhdGUgPSAnRVJST1InO1xuXG4vKipcbiAqIE9iamVjdCBjb250YWluaW5nIGFsbCBwb3NzaWJsZSBjb21wb25lbnQgc3RhdGVzLlxuICovXG5leHBvcnQgY29uc3QgQ29tcG9uZW50U3RhdGVzID0geyBFTkFCTEVELCBESVNBQkxFRCwgV09SS0lORywgRVJST1IgfTtcblxuLyoqXG4gKiBUeXBlcyBvZiBhY3Rpb25zIHRoYXQgYSBidXR0b24gb3IgbGluayBjYW4gcGVyZm9ybS5cbiAqL1xuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG4gIEJST1dTRVJfTkVXX1RBQiwgLy8gT3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYlxuICBCUk9XU0VSX0RPV05MT0FELCAvLyBEb3dubG9hZCB2aWEgYnJvd3NlclxuICBOQVRJVkVfRE9XTkxPQUQsIC8vIERvd25sb2FkIHVzaW5nIG5hdGl2ZSBjYXBhYmlsaXRpZXNcbiAgQVBQX05BVklHQVRJT04sIC8vIEludGVybmFsIGFwcCBuYXZpZ2F0aW9uXG4gIEJST1dTRVJfTkFWSUdBVElPTiwgLy8gTmF2aWdhdGlvbiBpbiB0aGUgYnJvd3NlclxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXhlY3V0YWJsZSBhY3Rpb24gZm9yIGEgYnV0dG9uIG9yIGxpbmsuXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvbiA9IHtcbiAgLyoqIEFjdGlvbiBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKiogQWN0aW9uIHR5cGUgKi9cbiAgdHlwZTogQWN0aW9uVHlwZTtcbiAgLyoqIEFjdGlvbiBzb3VyY2Ugb3IgZGVzdGluYXRpb24gKi9cbiAgc291cmNlOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFN1cHBvcnRlZCBpbnB1dCB0eXBlcyBmb3IgZm9ybXMuXG4gKi9cbmV4cG9ydCBlbnVtIElucHV0VHlwZSB7XG4gIFRFWFQsXG4gIFRFWFRBUkVBLFxuICBFTUFJTCxcbiAgUEFTU1dPUkQsXG4gIENPTU1FTlQsXG4gIE5VTUJFUixcbiAgTlVNQkVSX0ZST01fVE8sXG4gIFBJTl9DT0RFLFxuICBEQVRFLFxuICBEQVRFX1JBTkdFLFxuICBIT1VSLFxuICBDSEVDSyxcbiAgUkFESU8sXG4gIFNFTEVDVCxcbiAgU0VBUkNIX1NFTEVDVCxcbiAgTVVMVElfU0VMRUNULFxuICBNVUxUSV9TRUxFQ1RfU0lNUExFLFxuICBGSUxFLFxuICBUT0dHTEUsXG4gIFJBTkdFLFxuICBQSE9ORSxcbiAgQ1VSUkVOQ1ksXG59XG5cbi8qKlxuICogT3B0aW9uIGZvciBzZWxlY3QsIHJhZGlvLCBldGMuIGlucHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRPcHRpb24gPSB7XG4gIC8qKiBVbmlxdWUgb3B0aW9uIGlkZW50aWZpZXIgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdCAqL1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIC8qKiBEaXNwbGF5IG9yZGVyICovXG4gIG9yZGVyOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIGZvcm0gZmllbGQuXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0TWV0YWRhdGEgPSB7XG4gIC8qKiBBc3NvY2lhdGVkIGZvcm0gY29udHJvbCAqL1xuICBjb250cm9sOiBGb3JtQ29udHJvbDtcbiAgLyoqIEZyb20gY29udHJvbCAob25seSBmb3IgTlVNQkVSX0ZST01fVE8gdHlwZSkgKi9cbiAgZnJvbUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIFRvIGNvbnRyb2wgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvQ29udHJvbD86IEZvcm1Db250cm9sO1xuICAvKiogVW5pcXVlIHRva2VuIGZvciB0aGUgaW5wdXQgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIEZpZWxkIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSGVscCB0ZXh0ICovXG4gIGhpbnQ6IHN0cmluZztcbiAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIC8qKiBJbnB1dCB0eXBlICovXG4gIHR5cGU6IElucHV0VHlwZTtcbiAgLyoqIERpc3BsYXkgb3JkZXIgKi9cbiAgb3JkZXI6IG51bWJlcjtcbiAgLyoqIEFzc29jaWF0ZWQgdmFsaWRhdG9ycyAqL1xuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdO1xuICAvKiogT3B0aW9ucyAoZm9yIHNlbGVjdCwgcmFkaW8sIGV0Yy4pICovXG4gIG9wdGlvbnM/OiBJbnB1dE9wdGlvbltdO1xuICAvKiogQWxsb3dlZCByYW5nZSAoZm9yIG51bWJlciwgZGF0ZSwgZXRjLikgKi9cbiAgcmFuZ2U/OiB7XG4gICAgbWluOiBudW1iZXI7XG4gICAgbWF4OiBudW1iZXI7XG4gIH07XG4gIC8qKiBDdXN0b20gZXJyb3IgbWVzc2FnZXMgKi9cbiAgZXJyb3JzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuICAvKiogSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZpZWxkICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBjb25maWd1cmF0aW9uIC0gc3RyaW5nIGZvciBjdXN0b20gZGVmYXVsdHMsIHRydWUgZm9yIGF1dG8gZGVmYXVsdHMgKi9cbiAgd2l0aERlZmF1bHQ/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKiogRmllbGQgc3RhdGUgKi9cbiAgc3RhdGU6IENvbXBvbmVudFN0YXRlO1xuICAvKiogTGFiZWwgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b0xhYmVsPzogc3RyaW5nO1xuICAvKiogUGxhY2Vob2xkZXIgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b1BsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8vIGkxOG4gc3VwcG9ydCBwcm9wZXJ0aWVzXG4gIC8qKiBLZXkgZm9yIHJlYWN0aXZlIGNvbnRlbnQgZnJvbSBMYW5nU2VydmljZSAqL1xuICBjb250ZW50S2V5Pzogc3RyaW5nO1xuICAvKiogQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwICovXG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbiAgLyoqIEZhbGxiYWNrIHRleHQgaWYgY29udGVudCBrZXkgaXMgbm90IGZvdW5kICovXG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcblxuICAvLyBzZWxlY3QtaW5wdXQgc3BlY2lmaWMgaTE4biBwcm9wZXJ0aWVzXG4gIC8qKiBDdXN0b20gaGVhZGVyIHRleHQgZm9yIHNlbGVjdCBtb2RhbCAqL1xuICBtb2RhbEhlYWRlcj86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBjYW5jZWwgYnV0dG9uIHRleHQgZm9yIHNlbGVjdCBtb2RhbCAqL1xuICBjYW5jZWxUZXh0Pzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIE9LIGJ1dHRvbiB0ZXh0IGZvciBzZWxlY3QgbW9kYWwgKi9cbiAgb2tUZXh0Pzogc3RyaW5nO1xuXG4gIC8vIGNoZWNrLWlucHV0IHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFBvc2l0aW9uIG9mIGxhYmVsIGZvciBjaGVja2JveCAoJ3N0YXJ0JyB8ICdlbmQnKSAqL1xuICBsYWJlbFBsYWNlbWVudD86ICdzdGFydCcgfCAnZW5kJztcbn07XG5cbi8qKlxuICogQSBzZWN0aW9uIGluIGEgZm9ybSwgZ3JvdXBpbmcgbXVsdGlwbGUgZmllbGRzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtU2VjdGlvbiA9IHtcbiAgLyoqIFNlY3Rpb24gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG9yZGVyICovXG4gIG9yZGVyOiBudW1iZXI7XG4gIC8qKiBGaWVsZHMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gKi9cbiAgZmllbGRzOiBJbnB1dE1ldGFkYXRhW107XG59O1xuXG4vKipcbiAqIERhdGEgc2VudCB3aGVuIHN1Ym1pdHRpbmcgYSBmb3JtLlxuICovXG5leHBvcnQgdHlwZSBGb3JtU3VibWl0ID0ge1xuICAvKiogTGlzdCBvZiBmaWVsZHMgYW5kIHRoZWlyIHZhbHVlcyAqL1xuICBmaWVsZHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xuICAvKiogT3B0aW9uYWwgdG9rZW4gZm9yIHRoZSBvcGVyYXRpb24gKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIGNvbXBsZXRlIGZvcm0uXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1NZXRhZGF0YSA9IHtcbiAgLyoqIEZvcm0gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBGb3JtIHNlY3Rpb25zICovXG4gIHNlY3Rpb25zOiBGb3JtU2VjdGlvbltdO1xuICAvKiogQWN0aW9uIGJ1dHRvbnMgY29uZmlndXJhdGlvbiAqL1xuICBhY3Rpb25zOiBCdXR0b25NZXRhZGF0YTtcbiAgLyoqIEdsb2JhbCBmb3JtIHN0YXRlICovXG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbn07XG5cbi8qKlxuICogUG9zc2libGUgYWN0aW9uIHR5cGVzIGZvciBhIHRvb2xiYXIuXG4gKi9cbmV4cG9ydCBlbnVtIFRvb2xiYXJBY3Rpb25UeXBlIHtcbiAgQVZBVEFSID0gJ0FWQVRBUicsXG4gIElDT04gPSAnSUNPTicsXG4gIElNQUdFID0gJ0lNQUdFJyxcbiAgQlVUVE9OID0gJ0JVVFRPTicsXG59XG5cbi8qKlxuICogVG9vbGJhciBhY3Rpb24gZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbiA9IHtcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6ICdBVkFUQVInIHwgJ0lDT04nIHwgJ0lNQUdFJyB8ICdCVVRUT04nO1xuICAvKiogT3B0aW9uYWwgdG9rZW4gaWRlbnRpZmllciAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIFRvb2xiYXIgcG9zaXRpb24gKi9cbiAgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcbiAgLyoqIE9wdGlvbmFsIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogQXNzb2NpYXRlZCBpbWFnZSAoaWYgYW55KSAqL1xuICBpbWFnZT86IEltYWdlTWV0YWRhdGE7XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhbiBpY29uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljb25NZXRhZGEge1xuICAvKiogSWNvbiBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEljb24gc2xvdCBwb3NpdGlvbiAqL1xuICBzbG90OiAnc3RhcnQnIHwgJ2VuZCc7XG59XG5cbi8qKlxuICogQnV0dG9uIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICogU3VwcG9ydHMgYm90aCBzdGF0aWMgYW5kIHJlYWN0aXZlIGNvbnRlbnQuXG4gKiBAdHlwZSB7QnV0dG9uTWV0YWRhdGF9XG4gKiBAcHJvcGVydHkgdGV4dCAtIFN0YXRpYyBidXR0b24gbGFiZWwgKHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0ZXh0Q29uZmlnKS5cbiAqIEBwcm9wZXJ0eSB0ZXh0Q29uZmlnIC0gUmVhY3RpdmUgY29udGVudCBjb25maWd1cmF0aW9uIGZvciBidXR0b24gdGV4dC5cbiAqIEBwcm9wZXJ0eSBjb2xvciAtIFRoZSBidXR0b24gY29sb3IgKElvbmljIGNvbG9yIHN0cmluZykuXG4gKiBAcHJvcGVydHkgaWNvbiAtIEljb24gdG8gZGlzcGxheSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHN0YXRlIC0gQnV0dG9uIHN0YXRlIChlbmFibGVkLCBkaXNhYmxlZCwgd29ya2luZywgZXRjLikuXG4gKiBAcHJvcGVydHkgZXhwYW5kLCBmaWxsLCBzaXplLCBzaGFwZSwgaHJlZiwgdGFyZ2V0LCBkb3dubG9hZCwgaGFuZGxlciwgZXRjLiAtIFNlZSBCdXR0b25NZXRhZGF0YSBmb3IgYWxsIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uTWV0YWRhdGEge1xuICAvKiogQXNzb2NpYXRlZCBhY3Rpb24gdHlwZSAqL1xuICBhY3Rpb25UeXBlPzogQWN0aW9uVHlwZTtcbiAgLyoqIEJ1dHRvbiBleHBhbnNpb24gKi9cbiAgZXhwYW5kPzogJ2Z1bGwnIHwgJ2Jsb2NrJztcbiAgLyoqIEFzc29jaWF0ZWQgbGluayAqL1xuICBsaW5rPzogc3RyaW5nO1xuICAvKiogQXNzb2NpYXRlZCBocmVmIGxpbmsgKi9cbiAgaHJlZj86IHN0cmluZztcbiAgLyoqIExpbmsgdGFyZ2V0ICovXG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcbiAgLyoqIERvd25sb2FkIGZpbGUgbmFtZSAqL1xuICBkb3dubG9hZD86IHN0cmluZztcbiAgLyoqIEJ1dHRvbiBjb2xvciAqL1xuICBjb2xvcjogQ29sb3I7XG4gIC8qKiBCdXR0b24gc3RhdGUgKi9cbiAgc3RhdGU6IENvbXBvbmVudFN0YXRlO1xuICAvKiogU3RhdGljIGRpc3BsYXkgdGV4dCAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIHJlYWN0aXZlIGNvbnRlbnQpICovXG4gIHRleHQ/OiBzdHJpbmc7XG4gIC8qKiBSZWFjdGl2ZSBjb250ZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJ1dHRvbiB0ZXh0ICovXG4gIGNvbnRlbnRLZXk/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgY2xhc3MgbmFtZSBmb3IgY29udGVudCBsb29rdXAgKHJlcXVpcmVkIHdpdGggY29udGVudEtleSkgKi9cbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xuICAvKiogRmFsbGJhY2sgdGV4dCBpZiBjb250ZW50S2V5IGlzIG5vdCBmb3VuZCAqL1xuICBjb250ZW50RmFsbGJhY2s/OiBzdHJpbmc7XG4gIC8qKiBWYWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byB0aGUgY29udGVudCBzdHJpbmcgKi9cbiAgY29udGVudEludGVycG9sYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xuICAvKiogQXNzb2NpYXRlZCBpY29uICovXG4gIGljb24/OiBJY29uTWV0YWRhO1xuICAvKiogQnV0dG9uIHNoYXBlICovXG4gIHNoYXBlPzogJ3JvdW5kJztcbiAgLyoqIEJ1dHRvbiBzaXplICovXG4gIHNpemU/OiAnc21hbGwnIHwgJ2RlZmF1bHQnIHwgJ2xhcmdlJztcbiAgLyoqIEJ1dHRvbiBmaWxsICovXG4gIGZpbGw/OiAnY2xlYXInIHwgJ291dGxpbmUnIHwgJ3NvbGlkJyB8ICdkZWZhdWx0JztcbiAgLyoqIEJ1dHRvbiB0eXBlICovXG4gIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnO1xuICAvKiogT3B0aW9uYWwgdG9rZW4gaWRlbnRpZmllciAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJlZmVyZW5jZSAqL1xuICByZWY/OiBhbnk7XG4gIC8qKiBBY3Rpb24gaGFuZGxlciAqL1xuICBoYW5kbGVyPzogKHZhbHVlOiBhbnkpID0+IGFueSB8IFByb21pc2U8YW55Pjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciByZWFjdGl2ZSBjb250ZW50IGluIHZhbC1idXR0b24gY29tcG9uZW50LlxuICogVXNlIHRoaXMgaW50ZXJmYWNlIHdoZW4geW91IG9ubHkgbmVlZCB0byBzcGVjaWZ5IGNvbnRlbnQtcmVsYXRlZCBwcm9wZXJ0aWVzLlxuICogVGhpcyBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgVGV4dENvbnRlbnRDb25maWcgZm9yIGNvbnNpc3RlbmN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbkNvbnRlbnRDb25maWcge1xuICBjb250ZW50S2V5OiBzdHJpbmc7XG4gIGNvbnRlbnRDbGFzczogc3RyaW5nO1xuICBjb250ZW50RmFsbGJhY2s/OiBzdHJpbmc7XG4gIGNvbnRlbnRJbnRlcnBvbGF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPjtcbn1cbiJdfQ==
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQztBQUMxQyxNQUFNLFFBQVEsR0FBbUIsVUFBVSxDQUFDO0FBQzVDLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxLQUFLLEdBQW1CLE9BQU8sQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQixpRUFBZSxDQUFBO0lBQ2YsbUVBQWdCLENBQUE7SUFDaEIsaUVBQWUsQ0FBQTtJQUNmLCtEQUFjLENBQUE7SUFDZCx1RUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckI7QUFjRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFNBdUJYO0FBdkJELFdBQVksU0FBUztJQUNuQix5Q0FBSSxDQUFBO0lBQ0osaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLDZDQUFNLENBQUE7SUFDTiw2REFBYyxDQUFBO0lBQ2QsaURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSixxREFBVSxDQUFBO0lBQ1YsMENBQUksQ0FBQTtJQUNKLDRDQUFLLENBQUE7SUFDTCw0Q0FBSyxDQUFBO0lBQ0wsOENBQU0sQ0FBQTtJQUNOLDREQUFhLENBQUE7SUFDYiwwREFBWSxDQUFBO0lBQ1osd0VBQW1CLENBQUE7SUFDbkIsMENBQUksQ0FBQTtJQUNKLDhDQUFNLENBQUE7SUFDTiw0Q0FBSyxDQUFBO0lBQ0wsNENBQUssQ0FBQTtJQUNMLGtEQUFRLENBQUE7QUFDVixDQUFDLEVBdkJXLFNBQVMsS0FBVCxTQUFTLFFBdUJwQjtBQTZIRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0Isc0NBQWlCLENBQUE7SUFDakIsa0NBQWEsQ0FBQTtJQUNiLG9DQUFlLENBQUE7SUFDZixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUs1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vYXRvbXMvaW1hZ2UvdHlwZXMnO1xuXG4vKipcbiAqIFBvc3NpYmxlIHN0YXRlcyBmb3IgYW4gaW50ZXJhY3RpdmUgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRTdGF0ZSA9ICdFTkFCTEVEJyB8ICdESVNBQkxFRCcgfCAnV09SS0lORycgfCAnRVJST1InO1xuY29uc3QgRU5BQkxFRDogQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCc7XG5jb25zdCBESVNBQkxFRDogQ29tcG9uZW50U3RhdGUgPSAnRElTQUJMRUQnO1xuY29uc3QgV09SS0lORzogQ29tcG9uZW50U3RhdGUgPSAnV09SS0lORyc7XG5jb25zdCBFUlJPUjogQ29tcG9uZW50U3RhdGUgPSAnRVJST1InO1xuXG4vKipcbiAqIE9iamVjdCBjb250YWluaW5nIGFsbCBwb3NzaWJsZSBjb21wb25lbnQgc3RhdGVzLlxuICovXG5leHBvcnQgY29uc3QgQ29tcG9uZW50U3RhdGVzID0geyBFTkFCTEVELCBESVNBQkxFRCwgV09SS0lORywgRVJST1IgfTtcblxuLyoqXG4gKiBUeXBlcyBvZiBhY3Rpb25zIHRoYXQgYSBidXR0b24gb3IgbGluayBjYW4gcGVyZm9ybS5cbiAqL1xuZXhwb3J0IGVudW0gQWN0aW9uVHlwZSB7XG4gIEJST1dTRVJfTkVXX1RBQiwgLy8gT3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYlxuICBCUk9XU0VSX0RPV05MT0FELCAvLyBEb3dubG9hZCB2aWEgYnJvd3NlclxuICBOQVRJVkVfRE9XTkxPQUQsIC8vIERvd25sb2FkIHVzaW5nIG5hdGl2ZSBjYXBhYmlsaXRpZXNcbiAgQVBQX05BVklHQVRJT04sIC8vIEludGVybmFsIGFwcCBuYXZpZ2F0aW9uXG4gIEJST1dTRVJfTkFWSUdBVElPTiwgLy8gTmF2aWdhdGlvbiBpbiB0aGUgYnJvd3NlclxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXhlY3V0YWJsZSBhY3Rpb24gZm9yIGEgYnV0dG9uIG9yIGxpbmsuXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvbiA9IHtcbiAgLyoqIEFjdGlvbiBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKiogQWN0aW9uIHR5cGUgKi9cbiAgdHlwZTogQWN0aW9uVHlwZTtcbiAgLyoqIEFjdGlvbiBzb3VyY2Ugb3IgZGVzdGluYXRpb24gKi9cbiAgc291cmNlOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFN1cHBvcnRlZCBpbnB1dCB0eXBlcyBmb3IgZm9ybXMuXG4gKi9cbmV4cG9ydCBlbnVtIElucHV0VHlwZSB7XG4gIFRFWFQsXG4gIFRFWFRBUkVBLFxuICBFTUFJTCxcbiAgUEFTU1dPUkQsXG4gIENPTU1FTlQsXG4gIE5VTUJFUixcbiAgTlVNQkVSX0ZST01fVE8sXG4gIFBJTl9DT0RFLFxuICBEQVRFLFxuICBEQVRFX1JBTkdFLFxuICBIT1VSLFxuICBDSEVDSyxcbiAgUkFESU8sXG4gIFNFTEVDVCxcbiAgU0VBUkNIX1NFTEVDVCxcbiAgTVVMVElfU0VMRUNULFxuICBNVUxUSV9TRUxFQ1RfU0lNUExFLFxuICBGSUxFLFxuICBUT0dHTEUsXG4gIFJBTkdFLFxuICBQSE9ORSxcbiAgQ1VSUkVOQ1ksXG59XG5cbi8qKlxuICogT3B0aW9uIGZvciBzZWxlY3QsIHJhZGlvLCBldGMuIGlucHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRPcHRpb24gPSB7XG4gIC8qKiBVbmlxdWUgb3B0aW9uIGlkZW50aWZpZXIgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdCAqL1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIC8qKiBEaXNwbGF5IG9yZGVyICovXG4gIG9yZGVyOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIGZvcm0gZmllbGQuXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0TWV0YWRhdGEgPSB7XG4gIC8qKiBBc3NvY2lhdGVkIGZvcm0gY29udHJvbCAqL1xuICBjb250cm9sOiBGb3JtQ29udHJvbDtcbiAgLyoqIEZyb20gY29udHJvbCAob25seSBmb3IgTlVNQkVSX0ZST01fVE8gdHlwZSkgKi9cbiAgZnJvbUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbiAgLyoqIFRvIGNvbnRyb2wgKG9ubHkgZm9yIE5VTUJFUl9GUk9NX1RPIHR5cGUpICovXG4gIHRvQ29udHJvbD86IEZvcm1Db250cm9sO1xuICAvKiogVW5pcXVlIHRva2VuIGZvciB0aGUgaW5wdXQgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIEZpZWxkIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSGVscCB0ZXh0ICovXG4gIGhpbnQ6IHN0cmluZztcbiAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIC8qKiBJbnB1dCB0eXBlICovXG4gIHR5cGU6IElucHV0VHlwZTtcbiAgLyoqIERpc3BsYXkgb3JkZXIgKi9cbiAgb3JkZXI6IG51bWJlcjtcbiAgLyoqIEFzc29jaWF0ZWQgdmFsaWRhdG9ycyAqL1xuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdO1xuICAvKiogT3B0aW9ucyAoZm9yIHNlbGVjdCwgcmFkaW8sIGV0Yy4pICovXG4gIG9wdGlvbnM/OiBJbnB1dE9wdGlvbltdO1xuICAvKiogQWxsb3dlZCByYW5nZSAoZm9yIG51bWJlciwgZGF0ZSwgZXRjLikgKi9cbiAgcmFuZ2U/OiB7XG4gICAgbWluOiBudW1iZXI7XG4gICAgbWF4OiBudW1iZXI7XG4gIH07XG4gIC8qKiBDdXN0b20gZXJyb3IgbWVzc2FnZXMgKi9cbiAgZXJyb3JzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuICAvKiogSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZpZWxkICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBjb25maWd1cmF0aW9uIC0gc3RyaW5nIGZvciBjdXN0b20gZGVmYXVsdHMsIHRydWUgZm9yIGF1dG8gZGVmYXVsdHMgKi9cbiAgd2l0aERlZmF1bHQ/OiBzdHJpbmcgfCBib29sZWFuO1xuICAvKiogRmllbGQgc3RhdGUgKi9cbiAgc3RhdGU6IENvbXBvbmVudFN0YXRlO1xuICAvKiogTGFiZWwgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b0xhYmVsPzogc3RyaW5nO1xuICAvKiogUGxhY2Vob2xkZXIgZm9yIFwiZnJvbVwiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICBmcm9tUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKiBQbGFjZWhvbGRlciBmb3IgXCJ0b1wiIGZpZWxkIChvbmx5IGZvciBOVU1CRVJfRlJPTV9UTyB0eXBlKSAqL1xuICB0b1BsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8vIGkxOG4gc3VwcG9ydCBwcm9wZXJ0aWVzXG4gIC8qKiBLZXkgZm9yIGNvbnRlbnQgbG9va3VwICovXG4gIGNvbnRlbnRLZXk/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgY2xhc3MgbmFtZSBmb3IgY29udGVudCBsb29rdXAgKi9cbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xuICAvKiogRmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGtleSBpcyBub3QgZm91bmQgKi9cbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuXG4gIC8vIHNlbGVjdC1pbnB1dCBzcGVjaWZpYyBpMThuIHByb3BlcnRpZXNcbiAgLyoqIEN1c3RvbSBoZWFkZXIgdGV4dCBmb3Igc2VsZWN0IG1vZGFsICovXG4gIG1vZGFsSGVhZGVyPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGNhbmNlbCBidXR0b24gdGV4dCBmb3Igc2VsZWN0IG1vZGFsICovXG4gIGNhbmNlbFRleHQ/OiBzdHJpbmc7XG4gIC8qKiBDdXN0b20gT0sgYnV0dG9uIHRleHQgZm9yIHNlbGVjdCBtb2RhbCAqL1xuICBva1RleHQ/OiBzdHJpbmc7XG5cbiAgLy8gY2hlY2staW5wdXQgc3BlY2lmaWMgcHJvcGVydGllc1xuICAvKiogUG9zaXRpb24gb2YgbGFiZWwgZm9yIGNoZWNrYm94ICgnc3RhcnQnIHwgJ2VuZCcpICovXG4gIGxhYmVsUGxhY2VtZW50PzogJ3N0YXJ0JyB8ICdlbmQnO1xufTtcblxuLyoqXG4gKiBBIHNlY3Rpb24gaW4gYSBmb3JtLCBncm91cGluZyBtdWx0aXBsZSBmaWVsZHMuXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1TZWN0aW9uID0ge1xuICAvKiogU2VjdGlvbiBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgb3JkZXIgKi9cbiAgb3JkZXI6IG51bWJlcjtcbiAgLyoqIEZpZWxkcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiAqL1xuICBmaWVsZHM6IElucHV0TWV0YWRhdGFbXTtcbn07XG5cbi8qKlxuICogRGF0YSBzZW50IHdoZW4gc3VibWl0dGluZyBhIGZvcm0uXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1TdWJtaXQgPSB7XG4gIC8qKiBMaXN0IG9mIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVzICovXG4gIGZpZWxkczogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG4gIC8qKiBPcHRpb25hbCB0b2tlbiBmb3IgdGhlIG9wZXJhdGlvbiAqL1xuICB0b2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGEgY29tcGxldGUgZm9ybS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybU1ldGFkYXRhID0ge1xuICAvKiogRm9ybSBuYW1lICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEZvcm0gc2VjdGlvbnMgKi9cbiAgc2VjdGlvbnM6IEZvcm1TZWN0aW9uW107XG4gIC8qKiBBY3Rpb24gYnV0dG9ucyBjb25maWd1cmF0aW9uICovXG4gIGFjdGlvbnM6IEJ1dHRvbk1ldGFkYXRhO1xuICAvKiogR2xvYmFsIGZvcm0gc3RhdGUgKi9cbiAgc3RhdGU6IENvbXBvbmVudFN0YXRlO1xufTtcblxuLyoqXG4gKiBQb3NzaWJsZSBhY3Rpb24gdHlwZXMgZm9yIGEgdG9vbGJhci5cbiAqL1xuZXhwb3J0IGVudW0gVG9vbGJhckFjdGlvblR5cGUge1xuICBBVkFUQVIgPSAnQVZBVEFSJyxcbiAgSUNPTiA9ICdJQ09OJyxcbiAgSU1BR0UgPSAnSU1BR0UnLFxuICBCVVRUT04gPSAnQlVUVE9OJyxcbn1cblxuLyoqXG4gKiBUb29sYmFyIGFjdGlvbiBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgdHlwZSBUb29sYmFyQWN0aW9uID0ge1xuICAvKiogQWN0aW9uIHR5cGUgKi9cbiAgdHlwZTogJ0FWQVRBUicgfCAnSUNPTicgfCAnSU1BR0UnIHwgJ0JVVFRPTic7XG4gIC8qKiBPcHRpb25hbCB0b2tlbiBpZGVudGlmaWVyICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBwb3NpdGlvbiAqL1xuICBwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuICAvKiogT3B0aW9uYWwgZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBBc3NvY2lhdGVkIGltYWdlIChpZiBhbnkpICovXG4gIGltYWdlPzogSW1hZ2VNZXRhZGF0YTtcbn07XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGFuIGljb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNvbk1ldGFkYSB7XG4gIC8qKiBJY29uIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSWNvbiBzbG90IHBvc2l0aW9uICovXG4gIHNsb3Q6ICdzdGFydCcgfCAnZW5kJztcbn1cblxuLyoqXG4gKiBCdXR0b24gY29uZmlndXJhdGlvbiBvYmplY3QuXG4gKiBTdXBwb3J0cyBib3RoIHN0YXRpYyBhbmQgcmVhY3RpdmUgY29udGVudC5cbiAqIEB0eXBlIHtCdXR0b25NZXRhZGF0YX1cbiAqIEBwcm9wZXJ0eSB0ZXh0IC0gU3RhdGljIGJ1dHRvbiBsYWJlbCAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRleHRDb25maWcpLlxuICogQHByb3BlcnR5IHRleHRDb25maWcgLSBSZWFjdGl2ZSBjb250ZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJ1dHRvbiB0ZXh0LlxuICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIGJ1dHRvbiBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKS5cbiAqIEBwcm9wZXJ0eSBpY29uIC0gSWNvbiB0byBkaXNwbGF5IChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkgc3RhdGUgLSBCdXR0b24gc3RhdGUgKGVuYWJsZWQsIGRpc2FibGVkLCB3b3JraW5nLCBldGMuKS5cbiAqIEBwcm9wZXJ0eSBleHBhbmQsIGZpbGwsIHNpemUsIHNoYXBlLCBocmVmLCB0YXJnZXQsIGRvd25sb2FkLCBoYW5kbGVyLCBldGMuIC0gU2VlIEJ1dHRvbk1ldGFkYXRhIGZvciBhbGwgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXR0b25NZXRhZGF0YSB7XG4gIC8qKiBBc3NvY2lhdGVkIGFjdGlvbiB0eXBlICovXG4gIGFjdGlvblR5cGU/OiBBY3Rpb25UeXBlO1xuICAvKiogQnV0dG9uIGV4cGFuc2lvbiAqL1xuICBleHBhbmQ/OiAnZnVsbCcgfCAnYmxvY2snO1xuICAvKiogQXNzb2NpYXRlZCBsaW5rICovXG4gIGxpbms/OiBzdHJpbmc7XG4gIC8qKiBBc3NvY2lhdGVkIGhyZWYgbGluayAqL1xuICBocmVmPzogc3RyaW5nO1xuICAvKiogTGluayB0YXJnZXQgKi9cbiAgdGFyZ2V0PzogJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnO1xuICAvKiogRG93bmxvYWQgZmlsZSBuYW1lICovXG4gIGRvd25sb2FkPzogc3RyaW5nO1xuICAvKiogQnV0dG9uIGNvbG9yICovXG4gIGNvbG9yOiBDb2xvcjtcbiAgLyoqIEJ1dHRvbiBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG4gIC8qKiBTdGF0aWMgZGlzcGxheSB0ZXh0ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudCkgKi9cbiAgdGV4dD86IHN0cmluZztcbiAgLyoqIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbiBmb3IgYnV0dG9uIHRleHQgKi9cbiAgY29udGVudEtleT86IHN0cmluZztcbiAgLyoqIENvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cCAocmVxdWlyZWQgd2l0aCBjb250ZW50S2V5KSAqL1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBGYWxsYmFjayB0ZXh0IGlmIGNvbnRlbnRLZXkgaXMgbm90IGZvdW5kICovXG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIFZhbHVlcyB0byBpbnRlcnBvbGF0ZSBpbnRvIHRoZSBjb250ZW50IHN0cmluZyAqL1xuICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG4gIC8qKiBBc3NvY2lhdGVkIGljb24gKi9cbiAgaWNvbj86IEljb25NZXRhZGE7XG4gIC8qKiBCdXR0b24gc2hhcGUgKi9cbiAgc2hhcGU/OiAncm91bmQnO1xuICAvKiogQnV0dG9uIHNpemUgKi9cbiAgc2l6ZT86ICdzbWFsbCcgfCAnZGVmYXVsdCcgfCAnbGFyZ2UnO1xuICAvKiogQnV0dG9uIGZpbGwgKi9cbiAgZmlsbD86ICdjbGVhcicgfCAnb3V0bGluZScgfCAnc29saWQnIHwgJ2RlZmF1bHQnO1xuICAvKiogQnV0dG9uIHR5cGUgKi9cbiAgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCc7XG4gIC8qKiBPcHRpb25hbCB0b2tlbiBpZGVudGlmaWVyICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcmVmZXJlbmNlICovXG4gIHJlZj86IGFueTtcbiAgLyoqIEFjdGlvbiBoYW5kbGVyICovXG4gIGhhbmRsZXI/OiAodmFsdWU6IGFueSkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHJlYWN0aXZlIGNvbnRlbnQgaW4gdmFsLWJ1dHRvbiBjb21wb25lbnQuXG4gKiBVc2UgdGhpcyBpbnRlcmZhY2Ugd2hlbiB5b3Ugb25seSBuZWVkIHRvIHNwZWNpZnkgY29udGVudC1yZWxhdGVkIHByb3BlcnRpZXMuXG4gKiBUaGlzIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBUZXh0Q29udGVudENvbmZpZyBmb3IgY29uc2lzdGVuY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uQ29udGVudENvbmZpZyB7XG4gIGNvbnRlbnRLZXk6IHN0cmluZztcbiAgY29udGVudENsYXNzOiBzdHJpbmc7XG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgY29udGVudEludGVycG9sYXRpb24/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+O1xufVxuIl19
|