UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

298 lines 33.8 kB
import { A11yModule } from '@angular/cdk/a11y'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { CoreModule, FormsModule, gettext, hookNavigator, hookRoute, hookTab, hookWizard, ViewContext } from '@c8y/ngx-components'; import { ArchivedConfirmModule } from '@c8y/ngx-components/ecosystem/archived-confirm'; import { LicenseConfirmModule } from '@c8y/ngx-components/ecosystem/license-confirm'; import { EcosystemWizards, SharedEcosystemModule } from '@c8y/ngx-components/ecosystem/shared'; import { IconSelectorModule } from '@c8y/ngx-components/icon-selector'; import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { PopoverModule } from 'ngx-bootstrap/popover'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { ActivityLogComponent } from './activity-log/activity-log.component'; import { ApplicationPluginsModule } from './application-plugins'; import { ApplicationPropertiesComponent } from './application-properties/application-properties.component'; import { ApplicationPropertiesGuard } from './application-properties/application-properties.guard'; import { SubscriptionModalComponent } from './application-properties/subscription-modal/subscription-modal.component'; import { UpdateApplicationModalComponent } from './application-properties/update-application-modal/update-application-modal.component'; import { AddExternalApplicationComponent } from './applications/add-external-applicaiton/add-external-application.component'; import { AddWebApplicationComponent } from './applications/add-web-application/add-web-application.component'; import { ApplicationListComponent } from './applications/application-list/application-list.component'; import { InstallFromPackageComponent } from './applications/install-from-package/install-from-package.component'; import { EcosystemNavigationFactory } from './ecosystem-navigation.factory'; import { EcosystemTabs } from './ecosystem-tabs.factory'; import { FeatureListComponent } from './features/feature-list.component'; import { AddMicroserviceComponent } from './microservices/add-microservice.component'; import { MicroserviceListComponent } from './microservices/microservice-list.component'; import { AddPackageComponent } from './packages/add-package.component'; import { DeployApplicationComponent } from './packages/deploy-application/deploy-application.component'; import { PackageDetailsComponent } from './packages/package-details/package-details.component'; import { PackagesListComponent } from './packages/package-list/packages-list.component'; import { PackageVersionsGuard } from './packages/package-versions.guard'; import { PackageVersionsAppsComponent } from './packages/package-versions/package-contents/contents-apps/contents-apps.component'; import { PackageVersionsPluginsComponent } from './packages/package-versions/package-contents/contents-plugins/contents-plugins.component'; import { PackageContentsComponent } from './packages/package-versions/package-contents/packages-contents.component'; import { PackageVersionsListComponent } from './packages/package-versions/package-versions-list/package-versions-list.component'; import { PackageVersionsComponent } from './packages/package-versions/packages-versions.component'; import { PackageGuard } from './packages/package.guard'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; const ecosystemMainRoutes = [ { path: 'ecosystem/application', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { // keeps legacy links functional path: 'ecosystem/applications', redirectTo: 'ecosystem/application/applications', pathMatch: 'full' }, { path: 'ecosystem/application/applications', component: ApplicationListComponent }, { path: 'ecosystem/extension/extensions', component: PackagesListComponent }, { path: 'ecosystem/application/features', component: FeatureListComponent }, { path: 'ecosystem/microservice/microservices', component: MicroserviceListComponent } ]; const applicationDetailsRoutes = [ { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Application, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'application-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Application, priority: 1, canActivate: [PackageVersionsGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Feature, priority: 5, canActivate: [ApplicationPropertiesGuard] }, { path: 'package-details', component: PackageDetailsComponent, icon: 'big-parcel', label: gettext('Extension package'), context: ViewContext.Extension, priority: 10, canActivate: [PackageGuard] }, { path: 'package-versions', component: PackageVersionsComponent, icon: 'c8y-modules', label: gettext('Versions'), context: ViewContext.Extension, priority: 1, canActivate: [PackageGuard, PackageVersionsGuard] }, { path: 'properties', component: ApplicationPropertiesComponent, icon: 'list', label: gettext('Properties'), context: ViewContext.Microservice, priority: 5, canActivate: [ApplicationPropertiesGuard] } ]; export class EcosystemModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, declarations: [ApplicationListComponent, MicroserviceListComponent, ApplicationPropertiesComponent, AddMicroserviceComponent, ActivityLogComponent, AddWebApplicationComponent, AddExternalApplicationComponent, InstallFromPackageComponent, PackagesListComponent, PackageDetailsComponent, DeployApplicationComponent, AddPackageComponent, FeatureListComponent, PackageVersionsComponent, PackageVersionsPluginsComponent, PackageVersionsAppsComponent, PackageContentsComponent, PackageVersionsListComponent, SubscriptionModalComponent, UpdateApplicationModalComponent], imports: [CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, i1.RouterModule, PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule], exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, providers: [ hookTab(EcosystemTabs), hookNavigator(EcosystemNavigationFactory), hookRoute(applicationDetailsRoutes), PackageGuard, PackageVersionsGuard, ApplicationPropertiesGuard, hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddWebApplicationComponent, name: gettext('Upload web application'), c8yIcon: 'upload' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.PACKAGE_UPLOAD, component: AddPackageComponent }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddExternalApplicationComponent, name: gettext('External application'), c8yIcon: 'cloud-link' }), hookWizard({ wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT, component: DeployApplicationComponent, name: gettext('Deploy package'), c8yIcon: 'big-parcel' }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: InstallFromPackageComponent, name: gettext('Install from available extension packages'), c8yIcon: 'big-parcel' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.MICROSERVICE_UPLOAD, component: AddMicroserviceComponent }) ], imports: [CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, RouterModule.forChild(ecosystemMainRoutes), PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, decorators: [{ type: NgModule, args: [{ declarations: [ ApplicationListComponent, MicroserviceListComponent, ApplicationPropertiesComponent, AddMicroserviceComponent, ActivityLogComponent, AddWebApplicationComponent, AddExternalApplicationComponent, InstallFromPackageComponent, PackagesListComponent, PackageDetailsComponent, DeployApplicationComponent, AddPackageComponent, FeatureListComponent, PackageVersionsComponent, PackageVersionsPluginsComponent, PackageVersionsAppsComponent, PackageContentsComponent, PackageVersionsListComponent, SubscriptionModalComponent, UpdateApplicationModalComponent ], imports: [ CoreModule, BsDropdownModule, TooltipModule, FormsModule, ReactiveFormsModule, RouterModule.forChild(ecosystemMainRoutes), PopoverModule, ApplicationPluginsModule, SharedEcosystemModule, LicenseConfirmModule, IconSelectorModule, A11yModule, ArchivedConfirmModule ], exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent], providers: [ hookTab(EcosystemTabs), hookNavigator(EcosystemNavigationFactory), hookRoute(applicationDetailsRoutes), PackageGuard, PackageVersionsGuard, ApplicationPropertiesGuard, hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddWebApplicationComponent, name: gettext('Upload web application'), c8yIcon: 'upload' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.PACKAGE_UPLOAD, component: AddPackageComponent }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: AddExternalApplicationComponent, name: gettext('External application'), c8yIcon: 'cloud-link' }), hookWizard({ wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT, component: DeployApplicationComponent, name: gettext('Deploy package'), c8yIcon: 'big-parcel' }), hookWizard({ wizardId: EcosystemWizards.APPLICATION_UPLOAD, component: InstallFromPackageComponent, name: gettext('Install from available extension packages'), c8yIcon: 'big-parcel' }), hookWizard({ name: undefined, wizardId: EcosystemWizards.MICROSERVICE_UPLOAD, component: AddMicroserviceComponent }) ] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vjb3N5c3RlbS9lY29zeXN0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUVWLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDM0csT0FBTyxFQUFFLDBCQUEwQixF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QUFFLGdCQUFnQixDQUFDLG9CQUFvQjs0QkFDL0MsU0FBUyxFQUFFLDBCQUEwQjs0QkFDckMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzs0QkFDL0IsT0FBTyxFQUFFLFlBQVk7eUJBQ3RCLENBQUM7d0JBQ0YsVUFBVSxDQUFDOzRCQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0I7NEJBQzdDLFNBQVMsRUFBRSwyQkFBMkI7NEJBQ3RDLElBQUksRUFBRSxPQUFPLENBQUMsMkNBQTJDLENBQUM7NEJBQzFELE9BQU8sRUFBRSxZQUFZO3lCQUN0QixDQUFDO3dCQUNGLFVBQVUsQ0FBQzs0QkFDVCxJQUFJLEVBQUUsU0FBUzs0QkFDZixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsbUJBQW1COzRCQUM5QyxTQUFTLEVBQUUsd0JBQXdCO3lCQUNwQyxDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIEZvcm1zTW9kdWxlLFxuICBnZXR0ZXh0LFxuICBob29rTmF2aWdhdG9yLFxuICBob29rUm91dGUsXG4gIGhvb2tUYWIsXG4gIGhvb2tXaXphcmQsXG4gIFJvdXRlLFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFyY2hpdmVkQ29uZmlybU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL2FyY2hpdmVkLWNvbmZpcm0nO1xuaW1wb3J0IHsgTGljZW5zZUNvbmZpcm1Nb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9saWNlbnNlLWNvbmZpcm0nO1xuaW1wb3J0IHsgRWNvc3lzdGVtV2l6YXJkcywgU2hhcmVkRWNvc3lzdGVtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IEljb25TZWxlY3Rvck1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQWN0aXZpdHlMb2dDb21wb25lbnQgfSBmcm9tICcuL2FjdGl2aXR5LWxvZy9hY3Rpdml0eS1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUGx1Z2luc01vZHVsZSB9IGZyb20gJy4vYXBwbGljYXRpb24tcGx1Z2lucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvYXBwbGljYXRpb24tcHJvcGVydGllcy5ndWFyZCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tcHJvcGVydGllcy9zdWJzY3JpcHRpb24tbW9kYWwvc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL3VwZGF0ZS1hcHBsaWNhdGlvbi1tb2RhbC91cGRhdGUtYXBwbGljYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy9hZGQtZXh0ZXJuYWwtYXBwbGljYWl0b24vYWRkLWV4dGVybmFsLWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRXZWJBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb25zL2FkZC13ZWItYXBwbGljYXRpb24vYWRkLXdlYi1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbnMvYXBwbGljYXRpb24tbGlzdC9hcHBsaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnN0YWxsRnJvbVBhY2thZ2VDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy9pbnN0YWxsLWZyb20tcGFja2FnZS9pbnN0YWxsLWZyb20tcGFja2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNvc3lzdGVtTmF2aWdhdGlvbkZhY3RvcnkgfSBmcm9tICcuL2Vjb3N5c3RlbS1uYXZpZ2F0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgRWNvc3lzdGVtVGFicyB9IGZyb20gJy4vZWNvc3lzdGVtLXRhYnMuZmFjdG9yeSc7XG5pbXBvcnQgeyBGZWF0dXJlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvZmVhdHVyZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRNaWNyb3NlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuL21pY3Jvc2VydmljZXMvYWRkLW1pY3Jvc2VydmljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbWljcm9zZXJ2aWNlcy9taWNyb3NlcnZpY2UtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkUGFja2FnZUNvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvYWRkLXBhY2thZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERlcGxveUFwcGxpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS1kZXRhaWxzL3BhY2thZ2UtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZXNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLWxpc3QvcGFja2FnZXMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zR3VhcmQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMuZ3VhcmQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zQXBwc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy9wYWNrYWdlLWNvbnRlbnRzL2NvbnRlbnRzLWFwcHMvY29udGVudHMtYXBwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zUGx1Z2luc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy9wYWNrYWdlLWNvbnRlbnRzL2NvbnRlbnRzLXBsdWdpbnMvY29udGVudHMtcGx1Z2lucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZUNvbnRlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2UtY29udGVudHMvcGFja2FnZXMtY29udGVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2VWZXJzaW9uc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMvcGFja2FnZS12ZXJzaW9ucy1saXN0L3BhY2thZ2UtdmVyc2lvbnMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2VzLXZlcnNpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlR3VhcmQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UuZ3VhcmQnO1xuXG5jb25zdCBlY29zeXN0ZW1NYWluUm91dGVzOiBSb3V0ZVtdID0gW1xuICB7XG4gICAgcGF0aDogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbicsXG4gICAgcmVkaXJlY3RUbzogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICAvLyBrZWVwcyBsZWdhY3kgbGlua3MgZnVuY3Rpb25hbFxuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb25zJyxcbiAgICByZWRpcmVjdFRvOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vYXBwbGljYXRpb25zJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uTGlzdENvbXBvbmVudFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2Vjb3N5c3RlbS9leHRlbnNpb24vZXh0ZW5zaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlc0xpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vZmVhdHVyZXMnLFxuICAgIGNvbXBvbmVudDogRmVhdHVyZUxpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vbWljcm9zZXJ2aWNlL21pY3Jvc2VydmljZXMnLFxuICAgIGNvbXBvbmVudDogTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudFxuICB9XG5dO1xuXG5jb25zdCBhcHBsaWNhdGlvbkRldGFpbHNSb3V0ZXM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAncHJvcGVydGllcycsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsXG4gICAgaWNvbjogJ2xpc3QnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdQcm9wZXJ0aWVzJyksXG4gICAgY29udGV4dDogVmlld0NvbnRleHQuQXBwbGljYXRpb24sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY2FuQWN0aXZhdGU6IFtBcHBsaWNhdGlvblByb3BlcnRpZXNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbi12ZXJzaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlVmVyc2lvbnNDb21wb25lbnQsXG4gICAgaWNvbjogJ2M4eS1tb2R1bGVzJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnVmVyc2lvbnMnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5BcHBsaWNhdGlvbixcbiAgICBwcmlvcml0eTogMSxcbiAgICBjYW5BY3RpdmF0ZTogW1BhY2thZ2VWZXJzaW9uc0d1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkZlYXR1cmUsXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY2FuQWN0aXZhdGU6IFtBcHBsaWNhdGlvblByb3BlcnRpZXNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWNrYWdlLWRldGFpbHMnLFxuICAgIGNvbXBvbmVudDogUGFja2FnZURldGFpbHNDb21wb25lbnQsXG4gICAgaWNvbjogJ2JpZy1wYXJjZWwnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdFeHRlbnNpb24gcGFja2FnZScpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkV4dGVuc2lvbixcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY2FuQWN0aXZhdGU6IFtQYWNrYWdlR3VhcmRdXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncGFja2FnZS12ZXJzaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlVmVyc2lvbnNDb21wb25lbnQsXG4gICAgaWNvbjogJ2M4eS1tb2R1bGVzJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnVmVyc2lvbnMnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5FeHRlbnNpb24sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY2FuQWN0aXZhdGU6IFtQYWNrYWdlR3VhcmQsIFBhY2thZ2VWZXJzaW9uc0d1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0Lk1pY3Jvc2VydmljZSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjYW5BY3RpdmF0ZTogW0FwcGxpY2F0aW9uUHJvcGVydGllc0d1YXJkXVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsXG4gICAgQWRkTWljcm9zZXJ2aWNlQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5TG9nQ29tcG9uZW50LFxuICAgIEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgSW5zdGFsbEZyb21QYWNrYWdlQ29tcG9uZW50LFxuICAgIFBhY2thZ2VzTGlzdENvbXBvbmVudCxcbiAgICBQYWNrYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICBEZXBsb3lBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBZGRQYWNrYWdlQ29tcG9uZW50LFxuICAgIEZlYXR1cmVMaXN0Q29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0NvbXBvbmVudCxcbiAgICBQYWNrYWdlVmVyc2lvbnNQbHVnaW5zQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0FwcHNDb21wb25lbnQsXG4gICAgUGFja2FnZUNvbnRlbnRzQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0xpc3RDb21wb25lbnQsXG4gICAgU3Vic2NyaXB0aW9uTW9kYWxDb21wb25lbnQsXG4gICAgVXBkYXRlQXBwbGljYXRpb25Nb2RhbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoZWNvc3lzdGVtTWFpblJvdXRlcyksXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBBcHBsaWNhdGlvblBsdWdpbnNNb2R1bGUsXG4gICAgU2hhcmVkRWNvc3lzdGVtTW9kdWxlLFxuICAgIExpY2Vuc2VDb25maXJtTW9kdWxlLFxuICAgIEljb25TZWxlY3Rvck1vZHVsZSxcbiAgICBBMTF5TW9kdWxlLFxuICAgIEFyY2hpdmVkQ29uZmlybU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LCBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1RhYihFY29zeXN0ZW1UYWJzKSxcbiAgICBob29rTmF2aWdhdG9yKEVjb3N5c3RlbU5hdmlnYXRpb25GYWN0b3J5KSxcbiAgICBob29rUm91dGUoYXBwbGljYXRpb25EZXRhaWxzUm91dGVzKSxcbiAgICBQYWNrYWdlR3VhcmQsXG4gICAgUGFja2FnZVZlcnNpb25zR3VhcmQsXG4gICAgQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmQsXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgICAgbmFtZTogZ2V0dGV4dCgnVXBsb2FkIHdlYiBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ3VwbG9hZCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLlBBQ0tBR0VfVVBMT0FELFxuICAgICAgY29tcG9uZW50OiBBZGRQYWNrYWdlQ29tcG9uZW50XG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdFeHRlcm5hbCBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ2Nsb3VkLWxpbmsnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5CTFVFUFJJTlRfREVQTE9ZTUVOVCxcbiAgICAgIGNvbXBvbmVudDogRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdEZXBsb3kgcGFja2FnZScpLFxuICAgICAgYzh5SWNvbjogJ2JpZy1wYXJjZWwnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEluc3RhbGxGcm9tUGFja2FnZUNvbXBvbmVudCxcbiAgICAgIG5hbWU6IGdldHRleHQoJ0luc3RhbGwgZnJvbSBhdmFpbGFibGUgZXh0ZW5zaW9uIHBhY2thZ2VzJyksXG4gICAgICBjOHlJY29uOiAnYmlnLXBhcmNlbCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLk1JQ1JPU0VSVklDRV9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZE1pY3Jvc2VydmljZUNvbXBvbmVudFxuICAgIH0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWNvc3lzdGVtTW9kdWxlIHt9XG4iXX0=