@rangertechnologies/ngnxt
Version:
This library was used for creating dymanic UI based on the input JSON/data
430 lines (424 loc) • 44.1 kB
JavaScript
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { NxtAppComponent } from './nxt-app.component';
import { QuestionnaireComponent } from './pages/questionnaire/questionnaire.component';
import { CommonModule } from "@angular/common";
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgCircleProgressModule } from 'ng-circle-progress';
import { NgxSpinnerModule } from "ngx-spinner";
import { PickLocationComponent } from './components/pick-location/pick-location.component';
import { NgSelectModule } from '@ng-select/ng-select';
import { CustomInputComponent } from './components/custom-input/custom-input.component';
import { CustomTextAreaComponent } from './components/custom-text-area/custom-text-area.component';
import { CustomTableComponent } from './components/custom-table/custom-table.component';
import { CustomRichTextComponent } from './components/custom-rich-text/custom-rich-text.component'; //RS 06JAN2025 Imports modules and components for browser compatibility, Quill-based rich text editing, and custom configurations
import { QuillModule } from 'ngx-quill';
import { DropdownWithFlagComponent } from './components/dropdown-with-flag/dropdown-with-flag.component';
import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
//import { OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from 'ng-pick-datetime/date-time/adapter/moment-adapter/moment-date-time-adapter.class';
import { CustomDatePickerComponent } from './components/custom-date-picker/custom-date-picker.component';
import { CustomDropdownComponent } from './components/custom-dropdown/custom-dropdown.component';
// VD 23JAN24 removed HttpClientModule
import { BookletComponent } from './pages/booklet/booklet.component';
import { GoogleMapsModule } from '@angular/google-maps';
import { SearchBoxComponent } from './components/search-box/search-box.component';
import { QuestionbookComponent } from './pages/questionbook/questionbook.component';
import { FileUploadComponent } from './components/file-upload/file-upload.component';
import { SummaryPageComponent } from './pages/summary-page/summary-page.component';
import { FileViewComponent } from './components/file-view/file-view.component';
import { DependentTableComponent } from './components/dependent-table/dependent-table.component';
import { CustomLabelComponent } from './components/custom-label/custom-label.component';
import { TableAppendixComponent } from './components/table-appendix/table-appendix.component';
import { CustomDateComponent } from './components/custom-date/custom-date.component';
import { CustomTimeComponent } from './components/custom-time/custom-time.component';
import { CustomButtonComponent } from './components/custom-button/custom-button.component';
// HA 19DEC23 Importing for translation
import { I18nModule } from './i18n.module';
import { I18nComponent } from './i18n.component';
import { I18nPipe } from './i18n.pipe';
import * as enI18n from './en.i18n';
import * as arI18n from './ar.i18n';
import * as tamI18n from './tam.i18n';
import { I18nService } from './i18n.service';
import { MatTooltipModule } from '@angular/material/tooltip'; // VD 20JUN24 - help text changes
import { GetValuePipe } from './pipe/get-value.pipe'; // VD 26JUN24 - pipe changes
import { CustomCalendarComponent } from './components/custom-calendar/custom-calendar.component';
import { CustomModelComponent } from './components/custom-model/custom-model.component';
import { CustomImageComponent } from './components/custom-image/custom-image.component';
import { CustomRadioComponent } from './components/custom-radio/custom-radio.component';
import { LoaderComponent } from './components/loader/loader.component';
import { ComponenthostDirective } from './directives/componenthost/componenthost.directive';
// AP 22JAN2025 Added the below components
import { ElementComponent } from './pages/builder/element/element.component';
import { PropertiesComponent } from './pages/builder/properties/properties.component';
import { MenuComponent } from './pages/builder/menu/menu.component';
// AP 22JAN2025 Added the DragDropModule
import { DragDropModule } from '@angular/cdk/drag-drop';
//AP 22JAN2025 Added the FormBuilderService
import { FormBuilderService } from './services/form-builder.service';
import { FormComponent } from './pages/builder/form/form.component';
import { NxtDatatable } from './components/datatable/datatable.component';
import { ImageCropperComponent } from './components/image-cropper/component/image-cropper.component';
import { NxtInfoCard } from './components/cards/info-card/info-card.component';
import { NxtGroupInfo } from './components/cards/group-info/group-info.component';
import { NxtImageCard } from './components/cards/image-card/image-card.component';
import { NxtGroupCard } from './components/cards/group-card/group-card.component';
import * as i0 from "@angular/core";
import * as i1 from "ngx-quill";
import * as i2 from "./i18n.module";
import * as i3 from "ng-circle-progress";
// export const MY_CUSTOM_FORMATS = {
// fullPickerInput: 'DD/MM/YYYY HH:mm:ss',
// useUtc: true,
// };
// HA 19DEC23 variable created for translation
const languages = [
// { lang: 'EN', flag: 'assets/images/en.i18n.png', file: enI18n },
{ lang: 'EN', file: enI18n },
{ lang: 'TAM', file: tamI18n },
{ lang: 'AR', file: arI18n }
];
export class NxtAppModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, bootstrap: [NxtAppComponent], declarations: [NxtAppComponent,
QuestionnaireComponent,
PickLocationComponent,
CustomInputComponent,
CustomTextAreaComponent,
CustomTableComponent,
CustomCalendarComponent,
CustomDatePickerComponent,
DropdownWithFlagComponent,
CustomDropdownComponent,
BookletComponent,
SearchBoxComponent,
QuestionbookComponent,
FileUploadComponent,
SummaryPageComponent,
FileViewComponent,
DependentTableComponent,
CustomLabelComponent,
TableAppendixComponent,
CustomDateComponent,
CustomTimeComponent,
CustomButtonComponent,
CustomModelComponent,
LoaderComponent,
I18nComponent,
I18nPipe,
CustomImageComponent,
CustomRadioComponent,
//AP 22JAN2025 Added the below components
ElementComponent,
PropertiesComponent,
MenuComponent,
FormComponent], imports: [i1.QuillModule, // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor.
CustomRichTextComponent,
CommonModule, FormsModule,
NxtDatatable,
NxtInfoCard,
NxtGroupInfo,
NxtImageCard,
NxtGroupCard,
// BrowserModule,
ReactiveFormsModule,
OwlDateTimeModule,
OwlNativeDateTimeModule,
ComponenthostDirective,
GetValuePipe,
// VD 23JAN24 removed HttpClientModule
NgSelectModule,
GoogleMapsModule,
MatTooltipModule,
DragDropModule, //AP 22JAN25 Added the DragDropModule
ImageCropperComponent,
//AgmCoreModule.forRoot({
// apiKey: GOOGLE_MAP_API_KEY,
// libraries: ['geometry', 'places', 'visualization', 'drawing']
// }),
NgxSpinnerModule, i2.I18nModule, i3.NgCircleProgressModule], exports: [NxtAppComponent,
QuestionnaireComponent,
BookletComponent,
SummaryPageComponent,
I18nPipe,
I18nComponent,
ElementComponent,
PropertiesComponent,
MenuComponent,
FormComponent,
NxtDatatable,
NxtInfoCard,
NxtGroupInfo,
NxtImageCard,
NxtGroupCard] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, providers: [
I18nService,
I18nPipe,
FormBuilderService //AP 22JAN2025 Added the FormBuilderService
], imports: [QuillModule.forRoot(), // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor.
CustomRichTextComponent,
CommonModule, FormsModule,
NxtDatatable,
NxtInfoCard,
NxtGroupInfo,
NxtImageCard,
NxtGroupCard,
// BrowserModule,
ReactiveFormsModule,
OwlDateTimeModule,
OwlNativeDateTimeModule,
// VD 23JAN24 removed HttpClientModule
NgSelectModule,
GoogleMapsModule,
MatTooltipModule,
DragDropModule,
//AgmCoreModule.forRoot({
// apiKey: GOOGLE_MAP_API_KEY,
// libraries: ['geometry', 'places', 'visualization', 'drawing']
// }),
NgxSpinnerModule,
I18nModule.forRoot(languages),
/*NgCircleProgressModule.forRoot({
"backgroundPadding": -10,
"radius": 60,
"space": -6,
"innerStrokeColor": "#919191",
"outerStrokeColor": "#db9594",
"outerStrokeGradientStopColor": "#e0b1b0",
"innerStrokeWidth": 2,
"backgroundGradient": true,
"backgroundColor": "#dd2e13",
"backgroundGradientStopColor": "#dd2e13",
"backgroundStroke": "#d3cfcf",
"title": [
"%"
],
// titleFontSize: 12,
// "subtitleFontSize": 20,
"animateTitle": false,
"animationDuration": 1000,
"showUnits": false,
"clockwise":true
//"backgroundStrokeWidth": "0",
"backgroundGradient": true,
//"backgroundColor": "#dd2e13",
"backgroundGradientStopColor": "#dd2e13",
"backgroundStroke": "#000000",
"backgroundPadding": -10,
"radius": 60,
"unitsFontWeight": "600",
"unitsColor": "#f2f2f2",
"outerStrokeGradient": true,
"outerStrokeColor": "#e0b1b0",
"outerStrokeGradientStopColor": "#e0b1b0",
"outerStrokeLinecap": "inherit",
"innerStrokeColor": "#f6dfdf",
"title": [
"%"
],
"titleColor": "#e7d9d9",
"titleFontSize": "31",
"titleFontWeight": "100",
"subtitleColor": "#f7f7f7",
"subtitleFontSize": "36",
"subtitleFontWeight": "900",
"animateTitle": false,
"animationDuration": 1000,
"showTitle": true,
"showUnits": true,
"clockwise": false,
"startFromZero": true,
"showZeroOuterStroke": false,
"lazy": true})*/
NgCircleProgressModule.forRoot({
"backgroundGradient": true,
"backgroundColor": "#e29d98",
"backgroundGradientStopColor": "#c5281c",
"backgroundStroke": "#ece4e4",
"backgroundStrokeWidth": 0,
"backgroundPadding": -10,
"radius": 60,
"space": 4,
"maxPercent": 100,
"unitsFontSize": "35",
"unitsColor": "#f0ebeb",
"outerStrokeGradient": true,
"outerStrokeWidth": 10,
"outerStrokeColor": "#f7c0bf",
"outerStrokeGradientStopColor": "#f9c9c8",
"innerStrokeWidth": 0,
"titleColor": "#f3eded",
"titleFontSize": "40",
"subtitleColor": "#444444",
"showSubtitle": false
})] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, decorators: [{
type: NgModule,
args: [{
declarations: [NxtAppComponent,
QuestionnaireComponent,
PickLocationComponent,
CustomInputComponent,
CustomTextAreaComponent,
CustomTableComponent,
CustomCalendarComponent,
CustomDatePickerComponent,
DropdownWithFlagComponent,
CustomDropdownComponent,
BookletComponent,
SearchBoxComponent,
QuestionbookComponent,
FileUploadComponent,
SummaryPageComponent,
FileViewComponent,
DependentTableComponent,
CustomLabelComponent,
TableAppendixComponent,
CustomDateComponent,
CustomTimeComponent,
CustomButtonComponent,
CustomModelComponent,
LoaderComponent,
I18nComponent,
I18nPipe,
CustomImageComponent,
CustomRadioComponent,
//AP 22JAN2025 Added the below components
ElementComponent,
PropertiesComponent,
MenuComponent,
FormComponent
],
imports: [
QuillModule.forRoot(), // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor.
CustomRichTextComponent,
CommonModule, FormsModule,
NxtDatatable,
NxtInfoCard,
NxtGroupInfo,
NxtImageCard,
NxtGroupCard,
// BrowserModule,
ReactiveFormsModule,
OwlDateTimeModule,
OwlNativeDateTimeModule,
ComponenthostDirective,
GetValuePipe,
// VD 23JAN24 removed HttpClientModule
NgSelectModule,
GoogleMapsModule,
MatTooltipModule,
DragDropModule, //AP 22JAN25 Added the DragDropModule
ImageCropperComponent,
//AgmCoreModule.forRoot({
// apiKey: GOOGLE_MAP_API_KEY,
// libraries: ['geometry', 'places', 'visualization', 'drawing']
// }),
NgxSpinnerModule,
I18nModule.forRoot(languages),
/*NgCircleProgressModule.forRoot({
"backgroundPadding": -10,
"radius": 60,
"space": -6,
"innerStrokeColor": "#919191",
"outerStrokeColor": "#db9594",
"outerStrokeGradientStopColor": "#e0b1b0",
"innerStrokeWidth": 2,
"backgroundGradient": true,
"backgroundColor": "#dd2e13",
"backgroundGradientStopColor": "#dd2e13",
"backgroundStroke": "#d3cfcf",
"title": [
"%"
],
// titleFontSize: 12,
// "subtitleFontSize": 20,
"animateTitle": false,
"animationDuration": 1000,
"showUnits": false,
"clockwise":true
//"backgroundStrokeWidth": "0",
"backgroundGradient": true,
//"backgroundColor": "#dd2e13",
"backgroundGradientStopColor": "#dd2e13",
"backgroundStroke": "#000000",
"backgroundPadding": -10,
"radius": 60,
"unitsFontWeight": "600",
"unitsColor": "#f2f2f2",
"outerStrokeGradient": true,
"outerStrokeColor": "#e0b1b0",
"outerStrokeGradientStopColor": "#e0b1b0",
"outerStrokeLinecap": "inherit",
"innerStrokeColor": "#f6dfdf",
"title": [
"%"
],
"titleColor": "#e7d9d9",
"titleFontSize": "31",
"titleFontWeight": "100",
"subtitleColor": "#f7f7f7",
"subtitleFontSize": "36",
"subtitleFontWeight": "900",
"animateTitle": false,
"animationDuration": 1000,
"showTitle": true,
"showUnits": true,
"clockwise": false,
"startFromZero": true,
"showZeroOuterStroke": false,
"lazy": true})*/
NgCircleProgressModule.forRoot({
"backgroundGradient": true,
"backgroundColor": "#e29d98",
"backgroundGradientStopColor": "#c5281c",
"backgroundStroke": "#ece4e4",
"backgroundStrokeWidth": 0,
"backgroundPadding": -10,
"radius": 60,
"space": 4,
"maxPercent": 100,
"unitsFontSize": "35",
"unitsColor": "#f0ebeb",
"outerStrokeGradient": true,
"outerStrokeWidth": 10,
"outerStrokeColor": "#f7c0bf",
"outerStrokeGradientStopColor": "#f9c9c8",
"innerStrokeWidth": 0,
"titleColor": "#f3eded",
"titleFontSize": "40",
"subtitleColor": "#444444",
"showSubtitle": false
})
],
bootstrap: [NxtAppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
exports: [NxtAppComponent,
QuestionnaireComponent,
BookletComponent,
SummaryPageComponent,
I18nPipe,
I18nComponent,
ElementComponent,
PropertiesComponent,
MenuComponent,
FormComponent,
NxtDatatable,
NxtInfoCard,
NxtGroupInfo,
NxtImageCard,
NxtGroupCard,
// CustomRichTextComponent
],
providers: [
I18nService,
I18nPipe,
FormBuilderService //AP 22JAN2025 Added the FormBuilderService
]
// providers: [
// { provide: OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS, useValue: { useUtc: false } },
// { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS },
// ]
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWFwcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvbnh0LWFwcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBc0IsTUFBTSwwREFBMEQsQ0FBQyxDQUFDLGlJQUFpSTtBQUN6UCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FB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QUFxQixFQUFFLElBQUk7NEJBQzNCLGtCQUFrQixFQUFFLEVBQUU7NEJBQ3RCLGtCQUFrQixFQUFFLFNBQVM7NEJBQzdCLDhCQUE4QixFQUFFLFNBQVM7NEJBQ3pDLGtCQUFrQixFQUFFLENBQUM7NEJBQ3JCLFlBQVksRUFBRSxTQUFTOzRCQUN2QixlQUFlLEVBQUUsSUFBSTs0QkFDckIsZUFBZSxFQUFFLFNBQVM7NEJBQzFCLGNBQWMsRUFBRSxLQUFLO3lCQUFDLENBQUM7cUJBQzVCO29CQUNELFNBQVMsRUFBRSxDQUFFLGVBQWUsQ0FBRTtvQkFDOUIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGVBQWU7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTt3QkFDWiwwQkFBMEI7cUJBQzNCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLFFBQVE7d0JBQ1Isa0JBQWtCLENBQUEsMkNBQTJDO3FCQUM5RDtvQkFDRCxlQUFlO29CQUNmLG9GQUFvRjtvQkFDcEYscUVBQXFFO29CQUNyRSxJQUFJO2lCQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE54dEFwcENvbXBvbmVudCB9IGZyb20gJy4vbnh0LWFwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSB9IGZyb20gJ25nLWNpcmNsZS1wcm9ncmVzcyc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyTW9kdWxlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XG5pbXBvcnQgeyBHT09HTEVfTUFQX0FQSV9LRVkgfSBmcm9tICcuLi9saWIvc2FtcGxlJztcbmltcG9ydCB7IFBpY2tMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9waWNrLWxvY2F0aW9uL3BpY2stbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRleHQtYXJlYS9jdXN0b20tdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdGFibGUvY3VzdG9tLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SaWNoVGV4dENvbXBvbmVudCwgUXVpbGxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS1yaWNoLXRleHQvY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQnOyAvL1JTIDA2SkFOMjAyNSBJbXBvcnRzIG1vZHVsZXMgYW5kIGNvbXBvbmVudHMgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSwgUXVpbGwtYmFzZWQgcmljaCB0ZXh0IGVkaXRpbmcsIGFuZCBjdXN0b20gY29uZmlndXJhdGlvbnNcbmltcG9ydCB7IFF1aWxsTW9kdWxlIH0gZnJvbSAnbmd4LXF1aWxsJztcbmltcG9ydCB7IERyb3Bkb3duV2l0aEZsYWdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24td2l0aC1mbGFnL2Ryb3Bkb3duLXdpdGgtZmxhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVNb2R1bGUsIE93bE5hdGl2ZURhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGRhbmllbG1vbmNhZGEvYW5ndWxhci1kYXRldGltZS1waWNrZXInO1xuXG4vL2ltcG9ydCB7IE9XTF9NT01FTlRfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gJ25nLXBpY2stZGF0ZXRpbWUvZGF0ZS10aW1lL2FkYXB0ZXIvbW9tZW50LWFkYXB0ZXIvbW9tZW50LWRhdGUtdGltZS1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7IEN1c3RvbURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUtcGlja2VyL2N1c3RvbS1kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQnO1xuLy8gVkQgMjNKQU4yNCByZW1vdmVkIEh0dHBDbGllbnRNb2R1bGVcbmltcG9ydCB7IEJvb2tsZXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2Jvb2tsZXQvYm9va2xldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR29vZ2xlTWFwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uYm9va0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvcXVlc3Rpb25ib29rL3F1ZXN0aW9uYm9vay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VtbWFyeVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL3N1bW1hcnktcGFnZS9zdW1tYXJ5LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdmlldy9maWxlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERlcGVuZGVudFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlcGVuZGVudC10YWJsZS9kZXBlbmRlbnQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS1sYWJlbC9jdXN0b20tbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQXBwZW5kaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYXBwZW5kaXgvdGFibGUtYXBwZW5kaXguY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbURhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUvY3VzdG9tLWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRpbWUvY3VzdG9tLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tYnV0dG9uL2N1c3RvbS1idXR0b24uY29tcG9uZW50Jztcbi8vIEhBIDE5REVDMjMgSW1wb3J0aW5nIGZvciB0cmFuc2xhdGlvblxuaW1wb3J0IHsgSTE4bk1vZHVsZSB9IGZyb20gJy4vaTE4bi5tb2R1bGUnXG5pbXBvcnQgeyBJMThuQ29tcG9uZW50IH0gZnJvbSAnLi9pMThuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJy4vaTE4bi5waXBlJztcbmltcG9ydCAqIGFzIGVuSTE4biBmcm9tICcuL2VuLmkxOG4nO1xuaW1wb3J0ICogYXMgYXJJMThuIGZyb20gJy4vYXIuaTE4bic7XG5pbXBvcnQgKiBhcyB0YW1JMThuIGZyb20gJy4vdGFtLmkxOG4nXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJzsgLy8gVkQgMjBKVU4yNCAtIGhlbHAgdGV4dCBjaGFuZ2VzXG5pbXBvcnQgeyBHZXRWYWx1ZVBpcGUgfSBmcm9tICcuL3BpcGUvZ2V0LXZhbHVlLnBpcGUnOyAvLyBWRCAyNkpVTjI0IC0gcGlwZSBjaGFuZ2VzXG5pbXBvcnQgeyBDdXN0b21DYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tY2FsZW5kYXIvY3VzdG9tLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Nb2RlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tbW9kZWwvY3VzdG9tLW1vZGVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21JbWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20taW1hZ2UvY3VzdG9tLWltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tcmFkaW8vY3VzdG9tLXJhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50aG9zdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21wb25lbnRob3N0L2NvbXBvbmVudGhvc3QuZGlyZWN0aXZlJztcbi8vIEFQIDIySkFOMjAyNSBBZGRlZCB0aGUgYmVsb3cgY29tcG9uZW50c1xuaW1wb3J0IHsgRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYnVpbGRlci9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2J1aWxkZXIvcHJvcGVydGllcy9wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9idWlsZGVyL21lbnUvbWVudS5jb21wb25lbnQnO1xuLy8gQVAgMjJKQU4yMDI1IEFkZGVkIHRoZSBEcmFnRHJvcE1vZHVsZVxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbi8vQVAgMjJKQU4yMDI1IEFkZGVkIHRoZSBGb3JtQnVpbGRlclNlcnZpY2VcbmltcG9ydCB7IEZvcm1CdWlsZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYnVpbGRlci9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE54dERhdGF0YWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW1hZ2UtY3JvcHBlci9jb21wb25lbnQvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnh0SW5mb0NhcmQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FyZHMvaW5mby1jYXJkL2luZm8tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnh0R3JvdXBJbmZvIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmRzL2dyb3VwLWluZm8vZ3JvdXAtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnh0SW1hZ2VDYXJkIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmRzL2ltYWdlLWNhcmQvaW1hZ2UtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnh0R3JvdXBDYXJkIH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmRzL2dyb3VwLWNhcmQvZ3JvdXAtY2FyZC5jb21wb25lbnQnO1xuIFxuIFxuLy8gZXhwb3J0IGNvbnN0IE1ZX0NVU1RPTV9GT1JNQVRTID0ge1xuLy8gICBmdWxsUGlja2VySW5wdXQ6ICdERC9NTS9ZWVlZIEhIOm1tOnNzJyxcbi8vICAgdXNlVXRjOiB0cnVlLFxuLy8gfTtcblxuLy8gSEEgMTlERUMyMyB2YXJpYWJsZSBjcmVhdGVkIGZvciB0cmFuc2xhdGlvblxuY29uc3QgbGFuZ3VhZ2VzID0gW1xuICAvLyB7IGxhbmc6ICdFTicsIGZsYWc6ICdhc3NldHMvaW1hZ2VzL2VuLmkxOG4ucG5nJywgZmlsZTogZW5JMThuIH0sXG4gIHsgbGFuZzogJ0VOJywgZmlsZTogZW5JMThuIH0sXG4gIHsgbGFuZzogJ1RBTScsIGZpbGU6IHRhbUkxOG4gfSxcbiAgeyBsYW5nOiAnQVInLCBmaWxlOiBhckkxOG4gfVxuXVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOeHRBcHBDb21wb25lbnQsXG4gICAgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCxcbiAgICBQaWNrTG9jYXRpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tSW5wdXRDb21wb25lbnQsXG4gICAgQ3VzdG9tVGV4dEFyZWFDb21wb25lbnQsXG4gICAgQ3VzdG9tVGFibGVDb21wb25lbnQsXG4gICAgQ3VzdG9tQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBEcm9wZG93bldpdGhGbGFnQ29tcG9uZW50LFxuICAgIEN1c3RvbURyb3Bkb3duQ29tcG9uZW50LFxuICAgIEJvb2tsZXRDb21wb25lbnQsXG4gICAgU2VhcmNoQm94Q29tcG9uZW50LFxuICAgIFF1ZXN0aW9uYm9va0NvbXBvbmVudCxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIFN1bW1hcnlQYWdlQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3Q29tcG9uZW50LFxuICAgIERlcGVuZGVudFRhYmxlQ29tcG9uZW50LFxuICAgIEN1c3RvbUxhYmVsQ29tcG9uZW50LFxuICAgIFRhYmxlQXBwZW5kaXhDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZUNvbXBvbmVudCxcbiAgICBDdXN0b21UaW1lQ29tcG9uZW50LFxuICAgIEN1c3RvbUJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Nb2RlbENvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgSTE4bkNvbXBvbmVudCxcbiAgICBJMThuUGlwZSxcbiAgICBDdXN0b21JbWFnZUNvbXBvbmVudCxcbiAgICBDdXN0b21SYWRpb0NvbXBvbmVudCxcbiAgICAvL0FQIDIySkFOMjAyNSBBZGRlZCB0aGUgYmVsb3cgY29tcG9uZW50c1xuICAgIEVsZW1lbnRDb21wb25lbnQsXG4gICAgUHJvcGVydGllc0NvbXBvbmVudCxcbiAgICBNZW51Q29tcG9uZW50LFxuICAgIEZvcm1Db21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIFF1aWxsTW9kdWxlLmZvclJvb3QoKSwvLyBSUyAwNkpBTjIwMjUgSW5pdGlhbGl6ZXMgdGhlIFF1aWxsTW9kdWxlIHdpdGggZGVmYXVsdCBzZXR0aW5ncyBmb3IgaW50ZWdyYXRpbmcgdGhlIFF1aWxsIGVkaXRvci5cbiAgICBDdXN0b21SaWNoVGV4dENvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLFxuICAgIE54dERhdGF0YWJsZSxcbiAgICBOeHRJbmZvQ2FyZCxcbiAgICBOeHRHcm91cEluZm8sXG4gICAgTnh0SW1hZ2VDYXJkLFxuICAgIE54dEdyb3VwQ2FyZCxcbiAgICAvLyBCcm93c2VyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgT3dsRGF0ZVRpbWVNb2R1bGUsXG4gICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsXG4gICAgQ29tcG9uZW50aG9zdERpcmVjdGl2ZSxcbiAgICBHZXRWYWx1ZVBpcGUsXG4gICAgLy8gICAgVkQgMjNKQU4yNCByZW1vdmVkIEh0dHBDbGllbnRNb2R1bGVcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBHb29nbGVNYXBzTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsIC8vQVAgMjJKQU4yNSBBZGRlZCB0aGUgRHJhZ0Ryb3BNb2R1bGVcbiAgICBJbWFnZUNyb3BwZXJDb21wb25lbnQsXG4gICAgLy9BZ21Db3JlTW9kdWxlLmZvclJvb3Qoe1xuICAgIC8vICBhcGlLZXk6IEdPT0dMRV9NQVBfQVBJX0tFWSxcbiAgICAvLyAgbGlicmFyaWVzOiBbJ2dlb21ldHJ5JywgJ3BsYWNlcycsICd2aXN1YWxpemF0aW9uJywgJ2RyYXdpbmcnXVxuICAvLyAgfSksXG4gICAgTmd4U3Bpbm5lck1vZHVsZSxcbiAgICBJMThuTW9kdWxlLmZvclJvb3QobGFuZ3VhZ2VzKSxcbiAgICAvKk5nQ2lyY2xlUHJvZ3Jlc3NNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBcImJhY2tncm91bmRQYWRkaW5nXCI6IC0xMCxcbiAgICAgIFwicmFkaXVzXCI6IDYwLFxuICAgICAgXCJzcGFjZVwiOiAtNixcbiAgICAgIFwiaW5uZXJTdHJva2VDb2xvclwiOiBcIiM5MTkxOTFcIixcbiAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNkYjk1OTRcIixcbiAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFN0b3BDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwiaW5uZXJTdHJva2VXaWR0aFwiOiAyLFxuICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgIFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI2RkMmUxM1wiLFxuICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRTdG9wQ29sb3JcIjogXCIjZGQyZTEzXCIsXG4gICAgICBcImJhY2tncm91bmRTdHJva2VcIjogXCIjZDNjZmNmXCIsXG4gICAgICBcInRpdGxlXCI6IFtcblxuICAgICAgICAgICAgICAgIFwiJVwiXG4gICAgICBdLFxuICAgICAgLy8gdGl0bGVGb250U2l6ZTogMTIsXG4gICAgICAvLyBcInN1YnRpdGxlRm9udFNpemVcIjogMjAsXG4gICAgICBcImFuaW1hdGVUaXRsZVwiOiBmYWxzZSxcbiAgICAgIFwiYW5pbWF0aW9uRHVyYXRpb25cIjogMTAwMCxcbiAgICAgIFwic2hvd1VuaXRzXCI6IGZhbHNlLFxuICAgICAgXCJjbG9ja3dpc2VcIjp0cnVlXG5cbiAgICAgIC8vXCJiYWNrZ3JvdW5kU3Ryb2tlV2lkdGhcIjogXCIwXCIsXG5cImJhY2tncm91bmRHcmFkaWVudFwiOiB0cnVlLFxuICAgICAgLy9cImJhY2tncm91bmRDb2xvclwiOiBcIiNkZDJlMTNcIixcbiAgICAgIFwiYmFja2dyb3VuZEdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2RkMmUxM1wiLFxuICAgICAgXCJiYWNrZ3JvdW5kU3Ryb2tlXCI6IFwiIzAwMDAwMFwiLFxuICAgICAgXCJiYWNrZ3JvdW5kUGFkZGluZ1wiOiAtMTAsXG4gICAgICBcInJhZGl1c1wiOiA2MCxcbiAgICAgIFwidW5pdHNGb250V2VpZ2h0XCI6IFwiNjAwXCIsXG4gICAgICBcInVuaXRzQ29sb3JcIjogXCIjZjJmMmYyXCIsXG4gICAgICBcIm91dGVyU3Ryb2tlR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFN0b3BDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwib3V0ZXJTdHJva2VMaW5lY2FwXCI6IFwiaW5oZXJpdFwiLFxuICAgICAgXCJpbm5lclN0cm9rZUNvbG9yXCI6IFwiI2Y2ZGZkZlwiLFxuICAgICAgXCJ0aXRsZVwiOiBbXG5cbiAgICAgICAgXCIlXCJcbl0sXG4gICAgICBcInRpdGxlQ29sb3JcIjogXCIjZTdkOWQ5XCIsXG4gICAgICBcInRpdGxlRm9udFNpemVcIjogXCIzMVwiLFxuICAgICAgXCJ0aXRsZUZvbnRXZWlnaHRcIjogXCIxMDBcIixcbiAgICAgIFwic3VidGl0bGVDb2xvclwiOiBcIiNmN2Y3ZjdcIixcbiAgICAgIFwic3VidGl0bGVGb250U2l6ZVwiOiBcIjM2XCIsXG4gICAgICBcInN1YnRpdGxlRm9udFdlaWdodFwiOiBcIjkwMFwiLFxuICAgICAgXCJhbmltYXRlVGl0bGVcIjogZmFsc2UsXG4gICAgICBcImFuaW1hdGlvbkR1cmF0aW9uXCI6IDEwMDAsXG4gICAgICBcInNob3dUaXRsZVwiOiB0cnVlLFxuICAgICAgXCJzaG93VW5pdHNcIjogdHJ1ZSxcbiAgICAgIFwiY2xvY2t3aXNlXCI6IGZhbHNlLFxuICAgICAgXCJzdGFydEZyb21aZXJvXCI6IHRydWUsXG4gICAgICBcInNob3daZXJvT3V0ZXJTdHJva2VcIjogZmFsc2UsXG4gICAgICBcImxhenlcIjogdHJ1ZX0pKi9cblxuICAgICAgTmdDaXJjbGVQcm9ncmVzc01vZHVsZS5mb3JSb290KHtcbiAgICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgICAgXCJiYWNrZ3JvdW5kQ29sb3JcIjogXCIjZTI5ZDk4XCIsXG4gICAgICAgIFwiYmFja2dyb3VuZEdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2M1MjgxY1wiLFxuICAgICAgICBcImJhY2tncm91bmRTdHJva2VcIjogXCIjZWNlNGU0XCIsXG4gICAgICAgIFwiYmFja2dyb3VuZFN0cm9rZVdpZHRoXCI6IDAsXG4gICAgICAgIFwiYmFja2dyb3VuZFBhZGRpbmdcIjogLTEwLFxuICAgICAgICBcInJhZGl1c1wiOiA2MCxcbiAgICAgICAgXCJzcGFjZVwiOiA0LFxuICAgICAgICBcIm1heFBlcmNlbnRcIjogMTAwLFxuICAgICAgICBcInVuaXRzRm9udFNpemVcIjogXCIzNVwiLFxuICAgICAgICBcInVuaXRzQ29sb3JcIjogXCIjZjBlYmViXCIsXG4gICAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFwiOiB0cnVlLFxuICAgICAgICBcIm91dGVyU3Ryb2tlV2lkdGhcIjogMTAsXG4gICAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNmN2MwYmZcIixcbiAgICAgICAgXCJvdXRlclN0cm9rZUdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2Y5YzljOFwiLFxuICAgICAgICBcImlubmVyU3Ryb2tlV2lkdGhcIjogMCxcbiAgICAgICAgXCJ0aXRsZUNvbG9yXCI6IFwiI2YzZWRlZFwiLFxuICAgICAgICBcInRpdGxlRm9udFNpemVcIjogXCI0MFwiLFxuICAgICAgICBcInN1YnRpdGxlQ29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgIFwic2hvd1N1YnRpdGxlXCI6IGZhbHNlfSlcbiAgXSxcbiAgYm9vdHN0cmFwOiBbIE54dEFwcENvbXBvbmVudCBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIGV4cG9ydHM6IFtOeHRBcHBDb21wb25lbnQsXG4gICAgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCxcbiAgICBCb29rbGV0Q29tcG9uZW50LFxuICAgIFN1bW1hcnlQYWdlQ29tcG9uZW50LFxuICAgIEkxOG5QaXBlLFxuICAgIEkxOG5Db21wb25lbnQsXG4gICAgRWxlbWVudENvbXBvbmVudCxcbiAgICBQcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBOeHREYXRhdGFibGUsXG4gICAgTnh0SW5mb0NhcmQsXG4gICAgTnh0R3JvdXBJbmZvLFxuICAgIE54dEltYWdlQ2FyZCxcbiAgICBOeHRHcm91cENhcmQsXG4gICAgLy8gQ3VzdG9tUmljaFRleHRDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgSTE4blNlcnZpY2UsXG4gICAgSTE4blBpcGUsXG4gICAgRm9ybUJ1aWxkZXJTZXJ2aWNlLy9BUCAyMkpBTjIwMjUgQWRkZWQgdGhlIEZvcm1CdWlsZGVyU2VydmljZVxuICBdXG4gIC8vIHByb3ZpZGVyczogW1xuICAvLyAgIHsgcHJvdmlkZTogT1dMX01PTUVOVF9EQVRFX1RJTUVfQURBUFRFUl9PUFRJT05TLCB1c2VWYWx1ZTogeyB1c2VVdGM6IGZhbHNlIH0gfSxcbiAgLy8gICB7IHByb3ZpZGU6IE9XTF9EQVRFX1RJTUVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0NVU1RPTV9GT1JNQVRTIH0sXG4gIC8vIF1cbn0pXG5leHBvcnQgY2xhc3MgTnh0QXBwTW9kdWxlIHsgfVxuIl19