@qbs-origin/origin-form 0.6.4 → 0.7.0
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/esm2022/lib/flag-icons.mjs +10 -0
- package/esm2022/lib/formly/formly-checkboxes/formly-checkboxes.component.mjs +73 -0
- package/esm2022/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.mjs +52 -12
- package/esm2022/lib/formly/formly-field-stepper/formly-field-stepper.component.mjs +15 -3
- package/esm2022/lib/models/forms.model.mjs +4 -2
- package/esm2022/lib/origin-form.component.mjs +68 -21
- package/esm2022/lib/origin-form.module.mjs +9 -1
- package/esm2022/lib/shared-components/dictionaries-tree.component.mjs +10 -3
- package/esm2022/lib/shared-components/treeview/treeview.component.mjs +19 -3
- package/fesm2022/qbs-origin-origin-form.mjs +242 -38
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/flag-icons.d.ts +9 -0
- package/lib/formly/formly-checkboxes/formly-checkboxes.component.d.ts +17 -0
- package/lib/formly/formly-dictionary-dropdown-tree/formly-dictionary-dropdown-tree.component.d.ts +3 -0
- package/lib/models/forms.model.d.ts +5 -1
- package/lib/origin-form.module.d.ts +64 -63
- package/lib/shared-components/treeview/treeview.component.d.ts +1 -0
- package/package.json +2 -2
- package/src/lib/assets/images/flag/icon-flag-de.svg +6 -5
- package/src/lib/assets/images/flag/icon-flag-it.svg +11 -0
|
@@ -11,6 +11,7 @@ import { FormlyGenerateDocumentsComponent } from './formly/formly-generate-docum
|
|
|
11
11
|
import { FormlyFieldIdentificationComponent } from './formly/formly-identification.component';
|
|
12
12
|
import { FormlyParagraphComponent } from './formly/formly-paragraph/formly-paragraph.component';
|
|
13
13
|
import { FormlyRadioComponent } from './formly/formly-radio/formly-radio-component';
|
|
14
|
+
import { FormlyCheckboxesComponent } from './formly/formly-checkboxes/formly-checkboxes.component';
|
|
14
15
|
import { RowFillerComponent } from './formly/formly-row-fille';
|
|
15
16
|
import { FormlyScanIdComponent } from './formly/formly-scan-id/formly-scan-id.component';
|
|
16
17
|
import { FormlySignComponent } from './formly/formly-sign/formly-sign.component';
|
|
@@ -78,6 +79,7 @@ import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
|
78
79
|
import { MarkdownModule } from 'ngx-markdown';
|
|
79
80
|
import { AppTreeviewComponent } from './shared-components/treeview/treeview.component';
|
|
80
81
|
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';
|
|
82
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
81
83
|
import { OriginFormTokenInterceptor } from './origin-form-token.interceptor';
|
|
82
84
|
import { DictionaryService } from './services/dictionary.service';
|
|
83
85
|
import { FormsService } from './services/forms.service';
|
|
@@ -117,6 +119,7 @@ export class OriginFormModule {
|
|
|
117
119
|
FormlyFieldIdentificationComponent,
|
|
118
120
|
FormlyParagraphComponent,
|
|
119
121
|
FormlyRadioComponent,
|
|
122
|
+
FormlyCheckboxesComponent,
|
|
120
123
|
RowFillerComponent,
|
|
121
124
|
FormlyScanIdComponent,
|
|
122
125
|
FormlySignComponent,
|
|
@@ -188,6 +191,7 @@ export class OriginFormModule {
|
|
|
188
191
|
TranslationService,
|
|
189
192
|
TranslatePipe,
|
|
190
193
|
provideHttpClient(withInterceptorsFromDi()),
|
|
194
|
+
provideAnimations(),
|
|
191
195
|
{
|
|
192
196
|
provide: HTTP_INTERCEPTORS,
|
|
193
197
|
useClass: OriginFormTokenInterceptor,
|
|
@@ -288,6 +292,7 @@ export class OriginFormModule {
|
|
|
288
292
|
component: FormlyParagraphComponent,
|
|
289
293
|
},
|
|
290
294
|
{ name: 'formly-radio', component: FormlyRadioComponent },
|
|
295
|
+
{ name: 'formly-checkboxes', component: FormlyCheckboxesComponent },
|
|
291
296
|
{
|
|
292
297
|
name: 'formly-validate-contact-info',
|
|
293
298
|
component: FormlyValidateContactInfoComponent,
|
|
@@ -323,6 +328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
323
328
|
FormlyFieldIdentificationComponent,
|
|
324
329
|
FormlyParagraphComponent,
|
|
325
330
|
FormlyRadioComponent,
|
|
331
|
+
FormlyCheckboxesComponent,
|
|
326
332
|
RowFillerComponent,
|
|
327
333
|
FormlyScanIdComponent,
|
|
328
334
|
FormlySignComponent,
|
|
@@ -435,6 +441,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
435
441
|
component: FormlyParagraphComponent,
|
|
436
442
|
},
|
|
437
443
|
{ name: 'formly-radio', component: FormlyRadioComponent },
|
|
444
|
+
{ name: 'formly-checkboxes', component: FormlyCheckboxesComponent },
|
|
438
445
|
{
|
|
439
446
|
name: 'formly-validate-contact-info',
|
|
440
447
|
component: FormlyValidateContactInfoComponent,
|
|
@@ -468,6 +475,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
468
475
|
TranslationService,
|
|
469
476
|
TranslatePipe,
|
|
470
477
|
provideHttpClient(withInterceptorsFromDi()),
|
|
478
|
+
provideAnimations(),
|
|
471
479
|
{
|
|
472
480
|
provide: HTTP_INTERCEPTORS,
|
|
473
481
|
useClass: OriginFormTokenInterceptor,
|
|
@@ -476,4 +484,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
476
484
|
]
|
|
477
485
|
}]
|
|
478
486
|
}], ctorParameters: () => [{ type: i1.ThemeInjectorService }] });
|
|
479
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9vcmlnaW4tZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFF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QjtvQ0FDbkMsU0FBUyxFQUFFLHdCQUF3QjtpQ0FDcEM7Z0NBQ0QsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFOzZCQUN2RTt5QkFDRixDQUFDO3dCQUNKLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7cUJBQzVCO29CQUNDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUVuQyxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUI7d0JBQzNCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7d0JBQzNDOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSwwQkFBMEI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDdXN0b21TZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvY3VzdG9tLXNlY3Rpb24tc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm0tc2VjdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1hY3Rpb24nO1xuaW1wb3J0IHsgRm9ybWx5Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktY2hlY2tib3gvZm9ybWx5LWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlEaWN0aW9uYXJ5RHJvcGRvd25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlEb3dubG9hZERvY3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1kb3dubG9hZC1kb2N1bWVudHMvZm9ybWx5LWRvd25sb2FkLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWZpZWxkLXN0ZXBwZXIvZm9ybWx5LWZpZWxkLXN0ZXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWdlbmVyYXRlLWRvY3VtZW50cy9mb3JtbHktZ2VuZXJhdGUtZG9jdW1lbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZElkZW50aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWlkZW50aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlQYXJhZ3JhcGhDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktcGFyYWdyYXBoL2Zvcm1seS1wYXJhZ3JhcGguY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXJhZGlvL2Zvcm1seS1yYWRpby1jb21wb25lbnQnO1xuaW1wb3J0IHsgUm93RmlsbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXJvdy1maWxsZSc7XG5pbXBvcnQgeyBGb3JtbHlTY2FuSWRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktc2Nhbi1pZC9mb3JtbHktc2Nhbi1pZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5U2lnbkNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1zaWduL2Zvcm1seS1zaWduLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy9mb3JtbHktdXBsb2FkLWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8vZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5Vmlld09mZmVyc0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12aWV3LW9mZmVycy9mb3JtbHktdmlldy1vZmZlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3RvckZvcm1Db21wb25lbnQgfSBmcm9tICcuL29yaWdpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmlnaW5Gb3JtU2VydmljZSB9IGZyb20gJy4vb3JpZ2luLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL290aGVycy9waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbGFiZWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJveHlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcm94eS5zZXJ2aWNlJztcbmltcG9ydCB7IERpY3Rpb25hcmllc1RyZWVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgU2lnbkxpYk1vZHVsZSB9IGZyb20gJ0BxYnMtb3JpZ2luL3NpZ24tbGliJztcbmltcG9ydCB7IEZvcm1seU1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgRm9ybWx5TWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRm9ybWx5TWF0VGV4dEFyZWFNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC90ZXh0YXJlYSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbi8vIE1hdGVyaWFsIEZvcm0gQ29udHJvbHNcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuLy8gTWF0ZXJpYWwgTmF2aWdhdGlvblxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuLy8gTWF0ZXJpYWwgTGF5b3V0XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuLy8gTWF0ZXJpYWwgQnV0dG9ucyAmIEluZGljYXRvcnNcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuLy8gTWF0ZXJpYWwgUG9wdXBzICYgTW9kYWxzXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuLy8gTWF0ZXJpYWwgRGF0YSB0YWJsZXNcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBNYXJrZG93bk1vZHVsZSB9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQgeyBBcHBUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEhUVFBfSU5URVJDRVBUT1JTLFxuICBwcm92aWRlSHR0cENsaWVudCxcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT3JpZ2luRm9ybVRva2VuSW50ZXJjZXB0b3IgfSBmcm9tICcuL29yaWdpbi1mb3JtLXRva2VuLmludGVyY2VwdG9yJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IE90cFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL290cC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzLFxufSBmcm9tICdAZWt5Y19xb29iaXNzL3Ficy1lY3QtY21wL2Rpc3QvbG9hZGVyJztcbmltcG9ydCB7IFRoZW1lSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS1pbmplY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vL0Vucm9sIGNhcmRcbmltcG9ydCB7IEZvcm1seUVucm9sQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1lbnJvbC1jYXJkL2Zvcm1seS1lbnJvbC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlWaWV3RG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXZpZXctZG9jdW1lbnRzL2Zvcm1seS12aWV3LWRvY3VtZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL290aGVycy90cmFuc2xhdGlvbi5waXBlJztcbmltcG9ydCB7IEV4dGVybmFsTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vb3RoZXJzL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1vcGVuLWJhbmtpbmcvZm9ybWx5LW9wZW4tYmFua2luZy5jb21wb25lbnQnO1xuXG5cbiAgZGVmaW5lQ3VzdG9tRWxlbWVudHMod2luZG93KTtcblxuICBATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgIEN1c3RvbVNlY3Rpb25Db21wb25lbnQsXG4gICAgICBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUFjdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seUNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCxcbiAgICAgIEZvcm1seURvd25sb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5Vmlld0RvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seUZpZWxkU3RlcHBlckNvbXBvbmVudCxcbiAgICAgIEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5RmllbGRJZGVudGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seVBhcmFncmFwaENvbXBvbmVudCxcbiAgICAgIEZvcm1seVJhZGlvQ29tcG9uZW50LFxuICAgICAgUm93RmlsbGVyQ29tcG9uZW50LFxuICAgICAgRm9ybWx5U2NhbklkQ29tcG9uZW50LFxuICAgICAgRm9ybWx5U2lnbkNvbXBvbmVudCxcbiAgICAgIEZvcm1seVVwbG9hZERvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seVZhbGlkYXRlQ29udGFjdEluZm9Db21wb25lbnQsXG4gICAgICBGb3JtbHlWaWV3T2ZmZXJzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5T3BlbkJhbmtpbmdDb21wb25lbnQsXG4gICAgICBQaWNrZXJDb21wb25lbnQsXG4gICAgICBcbiAgICAgIEFwcFRyZWV2aWV3Q29tcG9uZW50LFxuICAgICAgRGljdGlvbmFyaWVzVHJlZUNvbXBvbmVudCxcbiAgICAgIENvbmZpcm1hdGlvbkNvbXBvbmVudCxcbiAgICAgIEdyaWRDb21wb25lbnQsXG4gICAgICBDb2xsZWN0b3JGb3JtQ29tcG9uZW50LFxuICAgICAgRm9ybWx5RW5yb2xDYXJkQ29tcG9uZW50LFxuICAgICAgRXh0ZXJuYWxMaW5rRGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICBDb21tb25Nb2R1bGUsXG4gICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICBOZ1Njcm9sbGJhck1vZHVsZSxcbiAgICAgIFNpZ25MaWJNb2R1bGUsXG4gICAgICBQZGZWaWV3ZXJNb2R1bGUsXG4gICAgICBNYXJrZG93bk1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgbWFya2VkT3B0aW9uczoge1xuICAgICAgICAgIHByb3ZpZGU6ICdNQVJLRURfT1BUSU9OUycsXG4gICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGdmbTogdHJ1ZSxcbiAgICAgICAgICAgIGJyZWFrczogZmFsc2UsXG4gICAgICAgICAgICBwZWRhbnRpYzogZmFsc2UsXG4gICAgICAgICAgICBzbWFydExpc3RzOiB0cnVlLFxuICAgICAgICAgICAgc21hcnR5cGFudHM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIFJvdXRlck1vZHVsZS5mb3JSb290KFtdKSxcbiAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXG4gIFxuICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgICAgICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgICAgICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgICAgICAgTWF0TGlzdE1vZHVsZSxcbiAgICAgICAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgICAgTWF0VHJlZU1vZHVsZSxcbiAgICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgICAgICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgICAgICAgIE1hdENoaXBzTW9kdWxlLFxuICAgICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgICAgICAgTWF0U29ydE1vZHVsZSxcbiAgICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgICBGb3JtbHlNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgICAgICB0eXBlczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdzdGVwcGVyJywgY29tcG9uZW50OiBGb3JtbHlGaWVsZFN0ZXBwZXJDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnc2VwYXJhdG9yJywgY29tcG9uZW50OiBGb3JtU2VjdGlvblNlcGFyYXRvckNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdjdXN0b20tc2VjdGlvbicsIGNvbXBvbmVudDogQ3VzdG9tU2VjdGlvbkNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdyb3ctZmlsbGVyJywgY29tcG9uZW50OiBSb3dGaWxsZXJDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktaWRlbnRpZmljYXRpb24tY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkSWRlbnRpZmljYXRpb25Db21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1zaWduLWNvbXBvbmVudCcsIGNvbXBvbmVudDogRm9ybWx5U2lnbkNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS11cGxvYWQtZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlVcGxvYWREb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWRvd25sb2FkLWRvY3VtZW50cy1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RG93bmxvYWREb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXZpZXctZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlWaWV3RG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1nZW5lcmF0ZS1kb2N1bWVudHMtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUdlbmVyYXRlRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RGljdGlvbmFyeURyb3Bkb3duVHJlZUNvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LWNoZWNrYm94JywgY29tcG9uZW50OiBGb3JtbHlDaGVja2JveENvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1wYXJhZ3JhcGgnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5UGFyYWdyYXBoQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktcmFkaW8nLCBjb21wb25lbnQ6IEZvcm1seVJhZGlvQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mbycsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlWYWxpZGF0ZUNvbnRhY3RJbmZvQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktc2Nhbi1pZCcsIGNvbXBvbmVudDogRm9ybWx5U2NhbklkQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1hY3Rpb24tY29tcG9uZW50JywgY29tcG9uZW50OiBGb3JtbHlBY3Rpb25Db21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LXZpZXctb2ZmZXJzJywgY29tcG9uZW50OiBGb3JtbHlWaWV3T2ZmZXJzQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWVucm9sLWNhcmQtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seUVucm9sQ2FyZENvbXBvbmVudFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktb3Blbi1iYW5raW5nJywgY29tcG9uZW50OiBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgRm9ybWx5TWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIEZvcm1seU1hdFRleHRBcmVhTW9kdWxlLFxuICAgICAgICBGb3JtbHlNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIF0sXG4gICAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gICAgXG4gICAgZXhwb3J0czogW1xuICAgICAgQ29sbGVjdG9yRm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbT3JpZ2luRm9ybVNlcnZpY2UsXG4gICAgICBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgIEZvcm1zU2VydmljZSxcbiAgICAgIE90cFNlcnZpY2UsXG4gICAgICBBcHBsaWNhdGlvbkRhdGFTZXJ2aWNlLFxuICAgICAgRGlhbG9nU2VydmljZSxcbiAgICAgIExhYmVsU2VydmljZSxcbiAgICAgIFByb3h5U2VydmljZSxcbiAgICAgIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlQ2xhc3M6IE9yaWdpbkZvcm1Ub2tlbkludGVyY2VwdG9yLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXVxuICB9KVxuZXhwb3J0IGNsYXNzIE9yaWdpbkZvcm1Nb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoZW1lSW5qZWN0b3I6IFRoZW1lSW5qZWN0b3JTZXJ2aWNlKSB7fVxufVxuIl19
|
|
487
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9vcmlnaW4tZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDM0ksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDM0csT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDMUgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDbEksT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQseUJBQXlCO0FBQ3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxzQkFBc0I7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELGtCQUFrQjtBQUNsQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUUsMkJBQTJCO0FBQzNCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCx1QkFBdUI7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixzQkFBc0IsR0FDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFDTCxvQkFBb0IsR0FDckIsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsWUFBWTtBQUNaLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7OztBQUd0RyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQWdML0IsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixhQUFtQztRQUFuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFBRyxDQUFDOytHQURoRCxnQkFBZ0I7Z0hBQWhCLGdCQUFnQixpQkE1S3ZCLGFBQWE7WUFDYixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIscUNBQXFDO1lBQ3JDLGdDQUFnQztZQUNoQyw0QkFBNEI7WUFDNUIsMkJBQTJCO1lBQzNCLGdDQUFnQztZQUNoQyxrQ0FBa0M7WUFDbEMsd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsOEJBQThCO1lBQzlCLGtDQUFrQztZQUNsQyx5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLGVBQWU7WUFFZixvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixxQkFBcUIsYUFHckIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixlQUFlLHNDQWNmLGVBQWU7WUFHZixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNqQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGNBQWM7WUFDZCxlQUFlO1lBQ2YsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGNBQWM7WUFDZCxhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYyxtQkFxRGhCLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIseUJBQXlCLGFBSzNCLHNCQUFzQjtnSEFxQmYsZ0JBQWdCLGFBbkJkLENBQUMsaUJBQWlCO1lBQzNCLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osVUFBVTtZQUNWLHNCQUFzQjtZQUN0QixhQUFhO1lBQ2IsWUFBWTtZQUNaLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDM0MsaUJBQWlCLEVBQUU7WUFDbkI7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLFlBMUlDLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGNBQWMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLGFBQWEsRUFBRTtvQkFDYixPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLElBQUk7d0JBQ1QsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsUUFBUSxFQUFFLEtBQUs7d0JBQ2YsVUFBVSxFQUFFLElBQUk7d0JBQ2hCLFdBQVcsRUFBRSxLQUFLO3FCQUNuQjtpQkFDRjthQUNGLENBQUM7WUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QixlQUFlO1lBR2YsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixxQkFBcUI7WUFDakIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsZUFBZTtZQUNmLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsYUFBYTtZQUNiLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxZQUFZLENBQUMsT0FBTyxDQUFDO2dCQUNuQixLQUFLLEVBQUU7b0JBQ0wsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtvQkFDM0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRTtvQkFDL0QsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFO29CQUM3RCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFO29CQUNyRDt3QkFDRSxJQUFJLEVBQUUsaUNBQWlDO3dCQUN2QyxTQUFTLEVBQUUsa0NBQWtDO3FCQUM5QztvQkFDRCxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7b0JBQ2pFO3dCQUNFLElBQUksRUFBRSxtQ0FBbUM7d0JBQ3pDLFNBQVMsRUFBRSw4QkFBOEI7cUJBQzFDO29CQUNEO3dCQUNFLElBQUksRUFBRSxxQ0FBcUM7d0JBQzNDLFNBQVMsRUFBRSxnQ0FBZ0M7cUJBQzVDO29CQUNEO3dCQUNFLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLFNBQVMsRUFBRSw0QkFBNEI7cUJBQ3hDO29CQUNEO3dCQUNFLElBQUksRUFBRSxxQ0FBcUM7d0JBQzNDLFNBQVMsRUFBRSxnQ0FBZ0M7cUJBQzVDO29CQUNEO3dCQUNFLElBQUksRUFBRSxpQ0FBaUM7d0JBQ3ZDLFNBQVMsRUFBRSxxQ0FBcUM7cUJBQ2pEO29CQUNELEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRTtvQkFDL0Q7d0JBQ0UsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsU0FBUyxFQUFFLHdCQUF3QjtxQkFDcEM7b0JBQ0QsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRTtvQkFDekQsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFO29CQUNuRTt3QkFDRSxJQUFJLEVBQUUsOEJBQThCO3dCQUNwQyxTQUFTLEVBQUUsa0NBQWtDO3FCQUM5QztvQkFDRCxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7b0JBQzVELEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtvQkFDckUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFO29CQUNwRTt3QkFDRSxJQUFJLEVBQUUsNkJBQTZCO3dCQUNuQyxTQUFTLEVBQUUsd0JBQXdCO3FCQUNwQztvQkFDRCxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUU7aUJBQ3ZFO2FBQ0YsQ0FBQztZQUNKLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIseUJBQXlCOzs0RkEwQnBCLGdCQUFnQjtrQkE5SzFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0Qiw2QkFBNkI7d0JBQzdCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixxQ0FBcUM7d0JBQ3JDLGdDQUFnQzt3QkFDaEMsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLGdDQUFnQzt3QkFDaEMsa0NBQWtDO3dCQUNsQyx3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQiw4QkFBOEI7d0JBQzlCLGtDQUFrQzt3QkFDbEMseUJBQXlCO3dCQUN6QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBRWYsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYyxDQUFDLE9BQU8sQ0FBQzs0QkFDckIsYUFBYSxFQUFFO2dDQUNiLE9BQU8sRUFBRSxnQkFBZ0I7Z0NBQ3pCLFFBQVEsRUFBRTtvQ0FDUixHQUFHLEVBQUUsSUFBSTtvQ0FDVCxNQUFNLEVBQUUsS0FBSztvQ0FDYixRQUFRLEVBQUUsS0FBSztvQ0FDZixVQUFVLEVBQUUsSUFBSTtvQ0FDaEIsV0FBVyxFQUFFLEtBQUs7aUNBQ25COzZCQUNGO3lCQUNGLENBQUM7d0JBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3hCLGVBQWU7d0JBR2YsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDakIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLFlBQVksQ0FBQyxPQUFPLENBQUM7NEJBQ25CLEtBQUssRUFBRTtnQ0FDTCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLDJCQUEyQixFQUFFO2dDQUMzRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDZCQUE2QixFQUFFO2dDQUMvRCxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUU7Z0NBQzdELEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUU7Z0NBQ3JEO29DQUNFLElBQUksRUFBRSxpQ0FBaUM7b0NBQ3ZDLFNBQVMsRUFBRSxrQ0FBa0M7aUNBQzlDO2dDQUNELEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRTtnQ0FDakU7b0NBQ0UsSUFBSSxFQUFFLG1DQUFtQztvQ0FDekMsU0FBUyxFQUFFLDhCQUE4QjtpQ0FDMUM7Z0NBQ0Q7b0NBQ0UsSUFBSSxFQUFFLHFDQUFxQztvQ0FDM0MsU0FBUyxFQUFFLGdDQUFnQztpQ0FDNUM7Z0NBQ0Q7b0NBQ0UsSUFBSSxFQUFFLGlDQUFpQztvQ0FDdkMsU0FBUyxFQUFFLDRCQUE0QjtpQ0FDeEM7Z0NBQ0Q7b0NBQ0UsSUFBSSxFQUFFLHFDQUFxQztvQ0FDM0MsU0FBUyxFQUFFLGdDQUFnQztpQ0FDNUM7Z0NBQ0Q7b0NBQ0UsSUFBSSxFQUFFLGlDQUFpQztvQ0FDdkMsU0FBUyxFQUFFLHFDQUFxQztpQ0FDakQ7Z0NBQ0QsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFO2dDQUMvRDtvQ0FDRSxJQUFJLEVBQUUsa0JBQWtCO29DQUN4QixTQUFTLEVBQUUsd0JBQXdCO2lDQUNwQztnQ0FDRCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFO2dDQUN6RCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7Z0NBQ25FO29DQUNFLElBQUksRUFBRSw4QkFBOEI7b0NBQ3BDLFNBQVMsRUFBRSxrQ0FBa0M7aUNBQzlDO2dDQUNELEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQ0FDNUQsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dDQUNyRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7Z0NBQ3BFO29DQUNFLElBQUksRUFBRSw2QkFBNkI7b0NBQ25DLFNBQVMsRUFBRSx3QkFBd0I7aUNBQ3BDO2dDQUNELEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRTs2QkFDdkU7eUJBQ0YsQ0FBQzt3QkFDSixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3FCQUM1QjtvQkFDQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFFbkMsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3dCQUMzQyxpQkFBaUIsRUFBRTt3QkFDbkI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFLDBCQUEwQjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEN1c3RvbVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9jdXN0b20tc2VjdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1TZWN0aW9uU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybS1zZWN0aW9uLXNlcGFyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWFjdGlvbic7XG5pbXBvcnQgeyBGb3JtbHlDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1jaGVja2JveC9mb3JtbHktY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seURpY3Rpb25hcnlEcm9wZG93blRyZWVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktZGljdGlvbmFyeS1kcm9wZG93bi10cmVlL2Zvcm1seS1kaWN0aW9uYXJ5LWRyb3Bkb3duLXRyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seURvd25sb2FkRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWRvd25sb2FkLWRvY3VtZW50cy9mb3JtbHktZG93bmxvYWQtZG9jdW1lbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZFN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktZmllbGQtc3RlcHBlci9mb3JtbHktZmllbGQtc3RlcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5R2VuZXJhdGVEb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktZ2VuZXJhdGUtZG9jdW1lbnRzL2Zvcm1seS1nZW5lcmF0ZS1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seUZpZWxkSWRlbnRpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktaWRlbnRpZmljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVBhcmFncmFwaENvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1wYXJhZ3JhcGgvZm9ybWx5LXBhcmFncmFwaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5UmFkaW9Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktcmFkaW8vZm9ybWx5LXJhZGlvLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlDaGVja2JveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LWNoZWNrYm94ZXMvZm9ybWx5LWNoZWNrYm94ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFJvd0ZpbGxlckNvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS1yb3ctZmlsbGUnO1xuaW1wb3J0IHsgRm9ybWx5U2NhbklkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXNjYW4taWQvZm9ybWx5LXNjYW4taWQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVNpZ25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktc2lnbi9mb3JtbHktc2lnbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5VXBsb2FkRG9jdW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtbHkvZm9ybWx5LXVwbG9hZC1kb2N1bWVudHMvZm9ybWx5LXVwbG9hZC1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVZhbGlkYXRlQ29udGFjdEluZm9Db21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvL2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1seVZpZXdPZmZlcnNDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktdmlldy1vZmZlcnMvZm9ybWx5LXZpZXctb2ZmZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0b3JGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9vcmlnaW4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JpZ2luRm9ybVNlcnZpY2UgfSBmcm9tICcuL29yaWdpbi1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9vdGhlcnMvcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbkRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBMYWJlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xhYmVscy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3h5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJveHkuc2VydmljZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJpZXNUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy9kaWN0aW9uYXJpZXMtdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNpZ25MaWJNb2R1bGUgfSBmcm9tICdAcWJzLW9yaWdpbi9zaWduLWxpYic7XG5pbXBvcnQgeyBGb3JtbHlNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcbmltcG9ydCB7IEZvcm1seU1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IEZvcm1seU1hdFRleHRBcmVhTW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvdGV4dGFyZWEnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG4vLyBNYXRlcmlhbCBGb3JtIENvbnRyb2xzXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbi8vIE1hdGVyaWFsIE5hdmlnYXRpb25cbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcbi8vIE1hdGVyaWFsIExheW91dFxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEdyaWRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZ3JpZC1saXN0JztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbi8vIE1hdGVyaWFsIEJ1dHRvbnMgJiBJbmRpY2F0b3JzXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlLCBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbi8vIE1hdGVyaWFsIFBvcHVwcyAmIE1vZGFsc1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbi8vIE1hdGVyaWFsIERhdGEgdGFibGVzXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBOZ1Njcm9sbGJhck1vZHVsZSB9IGZyb20gJ25neC1zY3JvbGxiYXInO1xuaW1wb3J0IHsgTWFya2Rvd25Nb2R1bGUgfSBmcm9tICduZ3gtbWFya2Rvd24nO1xuaW1wb3J0IHsgQXBwVHJlZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgcHJvdmlkZUh0dHBDbGllbnQsXG4gIHdpdGhJbnRlcmNlcHRvcnNGcm9tRGksXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHByb3ZpZGVBbmltYXRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IE9yaWdpbkZvcm1Ub2tlbkludGVyY2VwdG9yIH0gZnJvbSAnLi9vcmlnaW4tZm9ybS10b2tlbi5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1zU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZm9ybXMuc2VydmljZSc7XG5pbXBvcnQgeyBPdHBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vdHAuc2VydmljZSc7XG5pbXBvcnQge1xuICBkZWZpbmVDdXN0b21FbGVtZW50cyxcbn0gZnJvbSAnQGVreWNfcW9vYmlzcy9xYnMtZWN0LWNtcC9kaXN0L2xvYWRlcic7XG5pbXBvcnQgeyBUaGVtZUluamVjdG9yU2VydmljZSB9IGZyb20gJy4vdGhlbWUtaW5qZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuLy9FbnJvbCBjYXJkXG5pbXBvcnQgeyBGb3JtbHlFbnJvbENhcmRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktZW5yb2wtY2FyZC9mb3JtbHktZW5yb2wtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5Vmlld0RvY3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybWx5L2Zvcm1seS12aWV3LWRvY3VtZW50cy9mb3JtbHktdmlldy1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFBkZlZpZXdlck1vZHVsZSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi9vdGhlcnMvdHJhbnNsYXRpb24ucGlwZSc7XG5pbXBvcnQgeyBFeHRlcm5hbExpbmtEaXJlY3RpdmUgfSBmcm9tICcuL290aGVycy9leHRlcm5hbC1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybWx5T3BlbkJhbmtpbmdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1seS9mb3JtbHktb3Blbi1iYW5raW5nL2Zvcm1seS1vcGVuLWJhbmtpbmcuY29tcG9uZW50JztcblxuXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzKHdpbmRvdyk7XG5cbiAgQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICBDdXN0b21TZWN0aW9uQ29tcG9uZW50LFxuICAgICAgRm9ybVNlY3Rpb25TZXBhcmF0b3JDb21wb25lbnQsXG4gICAgICBGb3JtbHlBY3Rpb25Db21wb25lbnQsXG4gICAgICBGb3JtbHlDaGVja2JveENvbXBvbmVudCxcbiAgICAgIEZvcm1seURpY3Rpb25hcnlEcm9wZG93blRyZWVDb21wb25lbnQsXG4gICAgICBGb3JtbHlEb3dubG9hZERvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seVZpZXdEb2N1bWVudHNDb21wb25lbnQsXG4gICAgICBGb3JtbHlGaWVsZFN0ZXBwZXJDb21wb25lbnQsXG4gICAgICBGb3JtbHlHZW5lcmF0ZURvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgIEZvcm1seUZpZWxkSWRlbnRpZmljYXRpb25Db21wb25lbnQsXG4gICAgICBGb3JtbHlQYXJhZ3JhcGhDb21wb25lbnQsXG4gICAgICBGb3JtbHlSYWRpb0NvbXBvbmVudCxcbiAgICAgIEZvcm1seUNoZWNrYm94ZXNDb21wb25lbnQsXG4gICAgICBSb3dGaWxsZXJDb21wb25lbnQsXG4gICAgICBGb3JtbHlTY2FuSWRDb21wb25lbnQsXG4gICAgICBGb3JtbHlTaWduQ29tcG9uZW50LFxuICAgICAgRm9ybWx5VXBsb2FkRG9jdW1lbnRzQ29tcG9uZW50LFxuICAgICAgRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudCxcbiAgICAgIEZvcm1seVZpZXdPZmZlcnNDb21wb25lbnQsXG4gICAgICBGb3JtbHlPcGVuQmFua2luZ0NvbXBvbmVudCxcbiAgICAgIFBpY2tlckNvbXBvbmVudCxcbiAgICAgIFxuICAgICAgQXBwVHJlZXZpZXdDb21wb25lbnQsXG4gICAgICBEaWN0aW9uYXJpZXNUcmVlQ29tcG9uZW50LFxuICAgICAgQ29uZmlybWF0aW9uQ29tcG9uZW50LFxuICAgICAgR3JpZENvbXBvbmVudCxcbiAgICAgIENvbGxlY3RvckZvcm1Db21wb25lbnQsXG4gICAgICBGb3JtbHlFbnJvbENhcmRDb21wb25lbnQsXG4gICAgICBFeHRlcm5hbExpbmtEaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICBGb3Jtc01vZHVsZSxcbiAgICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgU2lnbkxpYk1vZHVsZSxcbiAgICAgIFBkZlZpZXdlck1vZHVsZSxcbiAgICAgIE1hcmtkb3duTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICBtYXJrZWRPcHRpb25zOiB7XG4gICAgICAgICAgcHJvdmlkZTogJ01BUktFRF9PUFRJT05TJyxcbiAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgZ2ZtOiB0cnVlLFxuICAgICAgICAgICAgYnJlYWtzOiBmYWxzZSxcbiAgICAgICAgICAgIHBlZGFudGljOiBmYWxzZSxcbiAgICAgICAgICAgIHNtYXJ0TGlzdHM6IHRydWUsXG4gICAgICAgICAgICBzbWFydHlwYW50czogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgUm91dGVyTW9kdWxlLmZvclJvb3QoW10pLFxuICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICBcbiAgXG4gICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgICAgICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgICAgICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgICAgICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcbiAgICAgICAgICBNYXRHcmlkTGlzdE1vZHVsZSxcbiAgICAgICAgICBNYXRMaXN0TW9kdWxlLFxuICAgICAgICAgIE1hdFN0ZXBwZXJNb2R1bGUsXG4gICAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgICBNYXRUcmVlTW9kdWxlLFxuICAgICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgICAgICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgICAgICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxuICAgICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgICAgICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICAgICAgICBNYXRTb3J0TW9kdWxlLFxuICAgICAgICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgICAgICAgIEZvcm1seU1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAgICAgIHsgbmFtZTogJ3N0ZXBwZXInLCBjb21wb25lbnQ6IEZvcm1seUZpZWxkU3RlcHBlckNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdzZXBhcmF0b3InLCBjb21wb25lbnQ6IEZvcm1TZWN0aW9uU2VwYXJhdG9yQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2N1c3RvbS1zZWN0aW9uJywgY29tcG9uZW50OiBDdXN0b21TZWN0aW9uQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ3Jvdy1maWxsZXInLCBjb21wb25lbnQ6IFJvd0ZpbGxlckNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1seS1pZGVudGlmaWNhdGlvbi1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RmllbGRJZGVudGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LXNpZ24tY29tcG9uZW50JywgY29tcG9uZW50OiBGb3JtbHlTaWduQ29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXVwbG9hZC1kb2N1bWVudHMtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seVVwbG9hZERvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktZG93bmxvYWQtZG9jdW1lbnRzLWNvbXBvbmVudCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlEb3dubG9hZERvY3VtZW50c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktdmlldy1kb2N1bWVudHMtY29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seVZpZXdEb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWdlbmVyYXRlLWRvY3VtZW50cy1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5R2VuZXJhdGVEb2N1bWVudHNDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LWRpY3Rpb25hcnktZHJvcGRvd24tdHJlZScsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlEaWN0aW9uYXJ5RHJvcGRvd25UcmVlQ29tcG9uZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktY2hlY2tib3gnLCBjb21wb25lbnQ6IEZvcm1seUNoZWNrYm94Q29tcG9uZW50IH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybWx5LXBhcmFncmFwaCcsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGb3JtbHlQYXJhZ3JhcGhDb21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1yYWRpbycsIGNvbXBvbmVudDogRm9ybWx5UmFkaW9Db21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LWNoZWNrYm94ZXMnLCBjb21wb25lbnQ6IEZvcm1seUNoZWNrYm94ZXNDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZvcm1seVZhbGlkYXRlQ29udGFjdEluZm9Db21wb25lbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1zY2FuLWlkJywgY29tcG9uZW50OiBGb3JtbHlTY2FuSWRDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnZm9ybWx5LWFjdGlvbi1jb21wb25lbnQnLCBjb21wb25lbnQ6IEZvcm1seUFjdGlvbkNvbXBvbmVudCB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdmb3JtbHktdmlldy1vZmZlcnMnLCBjb21wb25lbnQ6IEZvcm1seVZpZXdPZmZlcnNDb21wb25lbnQgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdmb3JtbHktZW5yb2wtY2FyZC1jb21wb25lbnQnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRm9ybWx5RW5yb2xDYXJkQ29tcG9uZW50XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2Zvcm1seS1vcGVuLWJhbmtpbmcnLCBjb21wb25lbnQ6IEZvcm1seU9wZW5CYW5raW5nQ29tcG9uZW50IH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLFxuICAgICAgICBGb3JtbHlNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgRm9ybWx5TWF0VGV4dEFyZWFNb2R1bGUsXG4gICAgICAgIEZvcm1seU1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgXSxcbiAgICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgICBcbiAgICBleHBvcnRzOiBbXG4gICAgICBDb2xsZWN0b3JGb3JtQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtPcmlnaW5Gb3JtU2VydmljZSxcbiAgICAgIERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgRm9ybXNTZXJ2aWNlLFxuICAgICAgT3RwU2VydmljZSxcbiAgICAgIEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UsXG4gICAgICBEaWFsb2dTZXJ2aWNlLFxuICAgICAgTGFiZWxTZXJ2aWNlLFxuICAgICAgUHJveHlTZXJ2aWNlLFxuICAgICAgVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgIHByb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksXG4gICAgICBwcm92aWRlQW5pbWF0aW9ucygpLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlQ2xhc3M6IE9yaWdpbkZvcm1Ub2tlbkludGVyY2VwdG9yLFxuICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgXVxuICB9KVxuZXhwb3J0IGNsYXNzIE9yaWdpbkZvcm1Nb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoZW1lSW5qZWN0b3I6IFRoZW1lSW5qZWN0b3JTZXJ2aWNlKSB7fVxufVxuIl19
|
|
@@ -50,6 +50,13 @@ export class DictionariesTreeComponent {
|
|
|
50
50
|
let text = changes['filterText'].currentValue;
|
|
51
51
|
this.treeViewControl.filterText(text);
|
|
52
52
|
}
|
|
53
|
+
// Sync selection when selectedValueIds changes
|
|
54
|
+
if (changes['selectedValueIds'] && this.treeViewControl && this.allowCheckItems) {
|
|
55
|
+
const newIds = changes['selectedValueIds'].currentValue;
|
|
56
|
+
if (newIds) {
|
|
57
|
+
this.treeViewControl.updateSelectionByIds(newIds);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
53
60
|
}
|
|
54
61
|
ngAfterViewInit() {
|
|
55
62
|
// If we have a main dictionary but haven't built the tree yet, build it now
|
|
@@ -257,11 +264,11 @@ export class DictionariesTreeComponent {
|
|
|
257
264
|
return JSON.parse(news);
|
|
258
265
|
}
|
|
259
266
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DictionariesTreeComponent, deps: [{ token: i1.DictionaryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DictionariesTreeComponent, selector: "app-dictionaries-tree", inputs: { dictionaryId: "dictionaryId", selectedValueIds: "selectedValueIds", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter", drawReferenceDictionariesAsSeparateNode: "drawReferenceDictionariesAsSeparateNode", drawChildDictionariesAsSeparateNode: "drawChildDictionariesAsSeparateNode", drawRootNode: "drawRootNode", filterText: "filterText", allowSelectNonLeafNodes: "allowSelectNonLeafNodes", languageId: "languageId", valuesIdsToShow: "valuesIdsToShow", hideParentArrow: "hideParentArrow", preloadedDictionary: "preloadedDictionary", preloadedDictionaries: "preloadedDictionaries", usePreloadedData: "usePreloadedData" }, outputs: { selectedDictionaryValuesChanged: "selectedDictionaryValuesChanged" }, viewQueries: [{ propertyName: "treeViewControl", first: true, predicate: ["treeView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<app-treeview #treeView [autoSelectDescendants]=\"false\"\n
|
|
267
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DictionariesTreeComponent, selector: "app-dictionaries-tree", inputs: { dictionaryId: "dictionaryId", selectedValueIds: "selectedValueIds", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter", drawReferenceDictionariesAsSeparateNode: "drawReferenceDictionariesAsSeparateNode", drawChildDictionariesAsSeparateNode: "drawChildDictionariesAsSeparateNode", drawRootNode: "drawRootNode", filterText: "filterText", allowSelectNonLeafNodes: "allowSelectNonLeafNodes", languageId: "languageId", valuesIdsToShow: "valuesIdsToShow", hideParentArrow: "hideParentArrow", preloadedDictionary: "preloadedDictionary", preloadedDictionaries: "preloadedDictionaries", usePreloadedData: "usePreloadedData" }, outputs: { selectedDictionaryValuesChanged: "selectedDictionaryValuesChanged" }, viewQueries: [{ propertyName: "treeViewControl", first: true, predicate: ["treeView"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<div (click)=\"$event.stopPropagation()\">\n <app-treeview #treeView [autoSelectDescendants]=\"false\"\n [allowCheckItems]=\"allowCheckItems\"\n [allowFilter]=\"allowFilter\"\n (selectionChanged)=\"onTreeSelectionChanged($event)\">\n </app-treeview>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4.AppTreeviewComponent, selector: "app-treeview", inputs: ["allowAddItems", "autoSelectDescendants", "allowCheckItems", "allowFilter"], outputs: ["selectionChanged"] }] }); }
|
|
261
268
|
}
|
|
262
269
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DictionariesTreeComponent, decorators: [{
|
|
263
270
|
type: Component,
|
|
264
|
-
args: [{ selector: 'app-dictionaries-tree', template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<app-treeview #treeView [autoSelectDescendants]=\"false\"\n
|
|
271
|
+
args: [{ selector: 'app-dictionaries-tree', template: "<mat-spinner *ngIf=\"isLoading === true\" class=\"m-x-auto\"></mat-spinner>\n<div (click)=\"$event.stopPropagation()\">\n <app-treeview #treeView [autoSelectDescendants]=\"false\"\n [allowCheckItems]=\"allowCheckItems\"\n [allowFilter]=\"allowFilter\"\n (selectionChanged)=\"onTreeSelectionChanged($event)\">\n </app-treeview>\n</div>\n" }]
|
|
265
272
|
}], ctorParameters: () => [{ type: i1.DictionaryService }], propDecorators: { treeViewControl: [{
|
|
266
273
|
type: ViewChild,
|
|
267
274
|
args: ['treeView']
|
|
@@ -298,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
298
305
|
}], selectedDictionaryValuesChanged: [{
|
|
299
306
|
type: Output
|
|
300
307
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy9kaWN0aW9uYXJpZXMtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVd4QyxNQUFNLE9BQU8seUJBQXlCO0lBNkJwQyxZQUFvQixXQUE4QjtRQUE5QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLDRDQUF1QyxHQUFZLElBQUksQ0FBQztRQUN4RCx3Q0FBbUMsR0FBWSxJQUFJLENBQUM7UUFDcEQsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBR3pDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRTFDLHdDQUF3QztRQUMvQix3QkFBbUIsR0FBeUIsSUFBSSxDQUFDO1FBQ2pELDBCQUFxQixHQUFzQyxJQUFJLENBQUM7UUFDaEUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9DQUErQixHQUN2QyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQU1hLENBQUM7SUFFdEQsUUFBUTtRQUNOLHFDQUFx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UyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFzQixDQUFDO0lBQy9DLENBQUM7K0dBaFVVLHlCQUF5QjttR0FBekIseUJBQXlCLGc1QkN4QnRDLHFVQU9BOzs0RkRpQmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QjtzRkFPVixlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLFVBQVU7Z0JBQ1osWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHVDQUF1QztzQkFBL0MsS0FBSztnQkFDRyxtQ0FBbUM7c0JBQTNDLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSwrQkFBK0I7c0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5VmFsdWUsIERpY3Rpb25hcnlEdG8sIERpY3Rpb25hcnlWYWx1ZUR0byB9IGZyb20gJy4uL21vZGVscy9kaWN0aW9uYXJ5Lm1vZGVsJztcbmltcG9ydCB7IEVudmlyb25tZW50VHlwZSB9IGZyb20gJy4uL290aGVycy9lbnZpcm9ubWVudC10eXBlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vb3RoZXJzL3V0aWxzJztcbmltcG9ydCB7IERpY3Rpb25hcnlTZXJ2aWNlLCBEaWN0aW9uYXJ5VHJlZVJlc3BvbnNlRHRvIH0gZnJvbSAnLi4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHJlZXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgQXBwVHJlZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRpY3Rpb25hcmllcy10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyaWVzVHJlZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ3RyZWVWaWV3JykgdHJlZVZpZXdDb250cm9sOiBBcHBUcmVldmlld0NvbXBvbmVudDtcbiAgQElucHV0KCkgZGljdGlvbmFyeUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWVJZHM6IG51bWJlcltdO1xuICBASW5wdXQoKSBhbGxvd0NoZWNrSXRlbXM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhbGxvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcmF3UmVmZXJlbmNlRGljdGlvbmFyaWVzQXNTZXBhcmF0ZU5vZGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBkcmF3Q2hpbGREaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYXdSb290Tm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGZpbHRlclRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICBASW5wdXQoKSB2YWx1ZXNJZHNUb1Nob3c6IG51bWJlcltdO1xuICBASW5wdXQoKSBoaWRlUGFyZW50QXJyb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBORVc6IEFjY2VwdCBwcmVsb2FkZWQgZGljdGlvbmFyeSBkYXRhXG4gIEBJbnB1dCgpIHByZWxvYWRlZERpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcHJlbG9hZGVkRGljdGlvbmFyaWVzOiBNYXA8c3RyaW5nLCBEaWN0aW9uYXJ5RHRvPiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB1c2VQcmVsb2FkZWREYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWN0aW9uYXJ5VmFsdWVbXT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGljdGlvbmFyeVZhbHVlW10+KCk7XG5cbiAgYWxsRGljdGlvbmFyaWVzOiBEaWN0aW9uYXJ5RHRvW107XG4gIG1haW5EaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWN0U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gT25seSBpbml0aWFsaXplIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICghdGhpcy5hbGxEaWN0aW9uYXJpZXMpIHtcbiAgICAgIHRoaXMuYWxsRGljdGlvbmFyaWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkaWN0aW9uYXJ5SWQnXSkge1xuICAgICAgY29uc3QgY2hhbmdlZCA9IGNoYW5nZXNbJ2RpY3Rpb25hcnlJZCddO1xuICAgICAgaWYgKGNoYW5nZWQuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VkLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5FVzogSGFuZGxlIHByZWxvYWRlZCBkYXRhIGNoYW5nZXNcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydwcmVsb2FkZWREaWN0aW9uYXJ5J10gfHxcbiAgICAgIGNoYW5nZXNbJ3ByZWxvYWRlZERpY3Rpb25hcmllcyddIHx8XG4gICAgICBjaGFuZ2VzWyd1c2VQcmVsb2FkZWREYXRhJ11cbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snZmlsdGVyVGV4dCddICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICBsZXQgdGV4dCA9IGNoYW5nZXNbJ2ZpbHRlclRleHQnXS5jdXJyZW50VmFsdWUgYXMgc3RyaW5nO1xuICAgICAgdGhpcy50cmVlVmlld0NvbnRyb2wuZmlsdGVyVGV4dCh0ZXh0KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIG1haW4gZGljdGlvbmFyeSBidXQgaGF2ZW4ndCBidWlsdCB0aGUgdHJlZSB5ZXQsIGJ1aWxkIGl0IG5vd1xuICAgIGlmICh0aGlzLm1haW5EaWN0aW9uYXJ5ICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGRpY3Rpb25hcnlJZCBidXQgaGF2ZW4ndCBsb2FkZWQgdGhlIGRpY3Rpb25hcnkgeWV0LCBsb2FkIGl0IG5vd1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkIHdpdGggYSBwcmUtcG9wdWxhdGVkIGRpY3Rpb25hcnlJZFxuICAgIGlmICh0aGlzLmRpY3Rpb25hcnlJZCAmJiAhdGhpcy5tYWluRGljdGlvbmFyeSAmJiAhdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZERpY3Rpb25hcnkoKSB7XG4gICAgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgZW52OiBFbnZpcm9ubWVudFR5cGUuQ29uZmlnLCAvLyBUT0RPOiByZXRyaWV2ZSBjb3JyZWN0IGVudmlyb25tZW50XG4gICAgICAgIGxhbmd1YWdlSWQ6IHRoaXMubGFuZ3VhZ2VJZCA+IDAgPyB0aGlzLmxhbmd1YWdlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbHVlSWRzVG9TaG93OlxuICAgICAgICAgIHRoaXMudmFsdWVzSWRzVG9TaG93Py5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNJZHNUb1Nob3cgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldERpY3Rpb25hcnlUcmVlKHRoaXMuZGljdGlvbmFyeUlkLCBwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogRGljdGlvbmFyeVRyZWVSZXNwb25zZUR0bykgPT4ge1xuICAgICAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkgPSByZXNwb25zZS5tYWluRGljdGlvbmFyeTtcbiAgICAgICAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IHJlc3BvbnNlLmFsbERpY3Rpb25hcmllcztcbiAgICAgICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRpY3Rpb25hcnkgdHJlZTonLCBlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgZGljdGlvbmFyeSBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkRnJvbVByZWxvYWRlZERhdGEoKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGEgYXZhaWxhYmxlLCBmYWxsaW5nIGJhY2sgdG8gQVBJJ1xuICAgICAgKTtcbiAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tYWluRGljdGlvbmFyeSA9IHsgLi4udGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5IH07IC8vIENyZWF0ZSBhIGNvcHlcblxuICAgIC8vIEFwcGx5IHZhbHVlIGZpbHRlcmluZyBpZiBuZWVkZWRcbiAgICBpZiAodGhpcy52YWx1ZXNJZHNUb1Nob3c/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkudmFsdWVzID1cbiAgICAgICAgdGhpcy5tYWluRGljdGlvbmFyeS52YWx1ZXM/LmZpbHRlcigodikgPT5cbiAgICAgICAgICB0aGlzLnZhbHVlc0lkc1RvU2hvdy5zb21lKChjKSA9PiBjID09IHYuaWQpXG4gICAgICAgICkgfHwgW107XG4gICAgfVxuXG4gICAgLy8gVXNlIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgZm9yIGRlcGVuZGVuY2llc1xuICAgIHRoaXMubG9hZEFsbE5lZWRlZERpY3Rpb25hcmllc0Zyb21QcmVsb2FkZWQodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgbmVlZGVkIGRpY3Rpb25hcmllcyBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkQWxsTmVlZGVkRGljdGlvbmFyaWVzRnJvbVByZWxvYWRlZChkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcmllcykge1xuICAgICAgY29uc29sZS53YXJuKCdObyBwcmVsb2FkZWQgZGljdGlvbmFyaWVzIG1hcCBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggYWxsIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgLSB0aGlzIGVuc3VyZXMgY2hpbGQgZGljdGlvbmFyaWVzIGFyZSBhdmFpbGFibGVcbiAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IEFycmF5LmZyb20odGhpcy5wcmVsb2FkZWREaWN0aW9uYXJpZXMudmFsdWVzKCkpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHRyZWVcbiAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gIH1cblxuICByZWJ1aWxkVHJlZSgpIHtcbiAgICAvLyBDaGVjayBpZiB0cmVlVmlld0NvbnRyb2wgaXMgYXZhaWxhYmxlIChWaWV3Q2hpbGQgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldClcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB0aGlzLmJ1aWxkRGljdGlvbmFyeVRyZWUodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgaWYgKHRoaXMuZHJhd1Jvb3ROb2RlKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmluaXRpYWxpemUobm9kZS5jaGlsZHJlbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyAmJiB0aGlzLnNlbGVjdGVkVmFsdWVJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5leHBhbmRBbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmV4cGFuZE5vZGUoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xlYXJUcmVlKCkge1xuICAgIC8vIENoZWNrIGlmIHRyZWVWaWV3Q29udHJvbCBpcyBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB7fSBhcyBJdGVtTm9kZTtcbiAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gIH1cblxuICBidWlsZERpY3Rpb25hcnlUcmVlKGRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8pOiBJdGVtTm9kZSB7XG4gICAgbGV0IG5vZGUgPSB7XG4gICAgICBuYW1lOiBkaWN0aW9uYXJ5Lm5hbWUsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgY2FuU2VsZWN0OiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgfSBhcyBJdGVtTm9kZTtcblxuICAgIC8vIEJ1aWxkIHRoZSB0cmVlIHJlY3Vyc2l2ZWx5XG4gICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5LCBub2RlKTtcblxuICAgIC8vIFNldCBjYW5TZWxlY3QgZm9yIHJvb3Qgbm9kZSBiYXNlZCBvbiB3aGV0aGVyIGl0IGhhcyBjaGlsZHJlblxuICAgIGlmICghdGhpcy5oaWRlUGFyZW50QXJyb3cpIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gZmFsc2U7XG4gICAgICBub2RlLmhpZGVBcnJvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBidWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvLCBub2RlOiBJdGVtTm9kZSk6IHZvaWQge1xuICAgIGlmIChkaWN0aW9uYXJ5LnZhbHVlcykge1xuICAgICAgZGljdGlvbmFyeS52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBsZXQgY2hpbGRyZW5Ob2RlID0ge1xuICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgZGF0YTogdixcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBjYW5TZWxlY3Q6IGZhbHNlLFxuICAgICAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgICAgIH0gYXMgSXRlbU5vZGU7XG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlSWQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gVXRpbHMuZmluZFZhbHVlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICB2LnZhbHVlVHJhbnNsYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUubmFtZSA9IHZhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlSWRzICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcy5pbmRleE9mKHYuaWQpID49IDApIHtcbiAgICAgICAgICBjaGlsZHJlbk5vZGUuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBidWlsZCBjaGlsZCBkaWN0aW9uYXJpZXMgaWYgYW55XG4gICAgICAgIGlmICh2LmNoaWxkRGljdGlvbmFyeUlkIHx8IHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgIGxldCBkaWN0OiBEaWN0aW9uYXJ5RHRvIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgLy8gVHJ5IFVVSUQtYmFzZWQgbG9va3VwIGZpcnN0IChmb3IgcHJlbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgICAgZGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoXG4gICAgICAgICAgICAgIChkKSA9PiBkLnV1aWQgPT09IHYuY2hpbGREaWN0aW9uYXJ5VVVJRFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBJRC1iYXNlZCBsb29rdXAgKGZvciBBUEktbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKCFkaWN0ICYmIHYuY2hpbGREaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgICAgIGRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gdi5jaGlsZERpY3Rpb25hcnlJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGljdCkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0LCBjaGlsZHJlbk5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSByZWZlcmVuY2UgdmFsdWVzXG4gICAgICAgIGlmIChcbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHRoaXMuZHJhd1JlZmVyZW5jZURpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRyeSB0byBmaW5kIHJlZmVyZW5jZSBkaWN0aW9uYXJ5IGJ5IFVVSUQgZmlyc3QsIHRoZW4gYnkgSURcbiAgICAgICAgICBsZXQgcmVmRGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoKGQpID0+XG4gICAgICAgICAgICBkaWN0aW9uYXJ5LnJlZmVycmVkSW5EaWN0aW9uYXJpZXNVVUlkcz8uaW5jbHVkZXMoZC51dWlkIHx8ICcnKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXJlZkRpY3QpIHtcbiAgICAgICAgICAgIHJlZkRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gZGljdGlvbmFyeS5yZWZlcmVuY2VJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcy5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHJ2Lm5hbWUgKyBgICgke3JlZkRpY3Q/Lm5hbWV9KWAsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgZGF0YTogcnYsXG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBjYW5TZWxlY3Q6IHRydWUsIC8vIFJlZmVyZW5jZSB2YWx1ZXMgYXJlIGxlYWYgbm9kZXMgYW5kIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBoaWRlQXJyb3c6IGZhbHNlLFxuICAgICAgICAgICAgfSBhcyBJdGVtTm9kZTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgJiZcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzLmluZGV4T2YocnYuaWQpID49IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUuY2hpbGRyZW4ucHVzaChyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERldGVybWluZSBpZiB0aGUgY3VycmVudCBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBjaGlsZHJlbk5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3QoY2hpbGRyZW5Ob2RlKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGNoaWxkIG5vZGUgdG8gdGhlIGN1cnJlbnQgbm9kZSdzIGNoaWxkcmVuXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZHJlbk5vZGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgYSBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICBnZXRDYW5TZWxlY3Qobm9kZTogSXRlbU5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0xlYWYgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gaXNMZWFmIHx8IHRoaXMuYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy50cmVlVmlld0NvbnRyb2wuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgIHZhciB2YWx1ZXMgPSBzZWxlY3RlZE5vZGVzLm1hcCgobikgPT4gbi5kYXRhKSBhcyBEaWN0aW9uYXJ5VmFsdWVEdG9bXTtcbiAgICBsZXQgZHZzID0gdGhpcy5jcmVhdGVDb3B5KHZhbHVlcyk7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQubmV4dChkdnMpO1xuICB9XG5cbiAgY3JlYXRlQ29weShvYmplY3RUb0NvcHk6IERpY3Rpb25hcnlWYWx1ZUR0b1tdKTogRGljdGlvbmFyeVZhbHVlW10ge1xuICAgIHZhciBzID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0VG9Db3B5KTtcbiAgICB2YXIgbmV3cyA9IHMucmVwbGFjZSgvXCJ2YWx1ZVRyYW5zbGF0aW9uc1wiOi9nLCAnXCJ0cmFuc2xhdGlvbnNcIjonKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShuZXdzKSBhcyBEaWN0aW9uYXJ5VmFsdWVbXTtcbiAgfVxufVxuIiwiPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nID09PSB0cnVlXCIgY2xhc3M9XCJtLXgtYXV0b1wiPjwvbWF0LXNwaW5uZXI+XG48YXBwLXRyZWV2aWV3ICN0cmVlVmlldyBbYXV0b1NlbGVjdERlc2NlbmRhbnRzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2FsbG93Q2hlY2tJdGVtc109XCJhbGxvd0NoZWNrSXRlbXNcIlxuICAgICAgICAgICAgICBbYWxsb3dGaWx0ZXJdPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cblxuPC9hcHAtdHJlZXZpZXc+XG4iXX0=
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy9kaWN0aW9uYXJpZXMtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL2RpY3Rpb25hcmllcy10cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVd4QyxNQUFNLE9BQU8seUJBQXlCO0lBNkJwQyxZQUFvQixXQUE4QjtRQUE5QixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLDRDQUF1QyxHQUFZLElBQUksQ0FBQztRQUN4RCx3Q0FBbUMsR0FBWSxJQUFJLENBQUM7UUFDcEQsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFFN0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBR3pDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRTFDLHdDQUF3QztRQUMvQix3QkFBbUIsR0FBeUIsSUFBSSxDQUFDO1FBQ2pELDBCQUFxQixHQUFzQyxJQUFJLENBQUM7UUFDaEUscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9DQUErQixHQUN2QyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQU1hLENBQUM7SUFFdEQsUUFBUTtRQUNOLHFDQUFx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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnlWYWx1ZSwgRGljdGlvbmFyeUR0bywgRGljdGlvbmFyeVZhbHVlRHRvIH0gZnJvbSAnLi4vbW9kZWxzL2RpY3Rpb25hcnkubW9kZWwnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRUeXBlIH0gZnJvbSAnLi4vb3RoZXJzL2Vudmlyb25tZW50LXR5cGUnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi9vdGhlcnMvdXRpbHMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVNlcnZpY2UsIERpY3Rpb25hcnlUcmVlUmVzcG9uc2VEdG8gfSBmcm9tICcuLi9zZXJ2aWNlcy9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZSB9IGZyb20gJy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZXZpZXcvdHJlZXZpZXcuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGljdGlvbmFyaWVzLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGljdGlvbmFyaWVzLXRyZWUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJpZXNUcmVlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXRcbntcbiAgQFZpZXdDaGlsZCgndHJlZVZpZXcnKSB0cmVlVmlld0NvbnRyb2w6IEFwcFRyZWV2aWV3Q29tcG9uZW50O1xuICBASW5wdXQoKSBkaWN0aW9uYXJ5SWQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZUlkczogbnVtYmVyW107XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyYXdSZWZlcmVuY2VEaWN0aW9uYXJpZXNBc1NlcGFyYXRlTm9kZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRyYXdDaGlsZERpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhd1Jvb3ROb2RlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxvd1NlbGVjdE5vbkxlYWZOb2RlczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsYW5ndWFnZUlkOiBudW1iZXI7XG4gIEBJbnB1dCgpIHZhbHVlc0lkc1RvU2hvdzogbnVtYmVyW107XG4gIEBJbnB1dCgpIGhpZGVQYXJlbnRBcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIE5FVzogQWNjZXB0IHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGFcbiAgQElucHV0KCkgcHJlbG9hZGVkRGljdGlvbmFyeTogRGljdGlvbmFyeUR0byB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwcmVsb2FkZWREaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIERpY3Rpb25hcnlEdG8+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHVzZVByZWxvYWRlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWREaWN0aW9uYXJ5VmFsdWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPERpY3Rpb25hcnlWYWx1ZVtdPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxEaWN0aW9uYXJ5VmFsdWVbXT4oKTtcblxuICBhbGxEaWN0aW9uYXJpZXM6IERpY3Rpb25hcnlEdG9bXTtcbiAgbWFpbkRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG87XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpY3RTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBPbmx5IGluaXRpYWxpemUgaWYgbm90IGFscmVhZHkgc2V0XG4gICAgaWYgKCF0aGlzLmFsbERpY3Rpb25hcmllcykge1xuICAgICAgdGhpcy5hbGxEaWN0aW9uYXJpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RpY3Rpb25hcnlJZCddKSB7XG4gICAgICBjb25zdCBjaGFuZ2VkID0gY2hhbmdlc1snZGljdGlvbmFyeUlkJ107XG4gICAgICBpZiAoY2hhbmdlZC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTkVXOiBIYW5kbGUgcHJlbG9hZGVkIGRhdGEgY2hhbmdlc1xuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ3ByZWxvYWRlZERpY3Rpb25hcnknXSB8fFxuICAgICAgY2hhbmdlc1sncHJlbG9hZGVkRGljdGlvbmFyaWVzJ10gfHxcbiAgICAgIGNoYW5nZXNbJ3VzZVByZWxvYWRlZERhdGEnXVxuICAgICkge1xuICAgICAgaWYgKHRoaXMudXNlUHJlbG9hZGVkRGF0YSAmJiB0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgICAgdGhpcy5sb2FkRnJvbVByZWxvYWRlZERhdGEoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJUZXh0J10gJiYgdGhpcy50cmVlVmlld0NvbnRyb2wpIHtcbiAgICAgIGxldCB0ZXh0ID0gY2hhbmdlc1snZmlsdGVyVGV4dCddLmN1cnJlbnRWYWx1ZSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5maWx0ZXJUZXh0KHRleHQpO1xuICAgIH1cblxuICAgIC8vIFN5bmMgc2VsZWN0aW9uIHdoZW4gc2VsZWN0ZWRWYWx1ZUlkcyBjaGFuZ2VzXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVJZHMnXSAmJiB0aGlzLnRyZWVWaWV3Q29udHJvbCAmJiB0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgY29uc3QgbmV3SWRzID0gY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZUlkcyddLmN1cnJlbnRWYWx1ZSBhcyBudW1iZXJbXTtcbiAgICAgIGlmIChuZXdJZHMpIHtcbiAgICAgICAgdGhpcy50cmVlVmlld0NvbnRyb2wudXBkYXRlU2VsZWN0aW9uQnlJZHMobmV3SWRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIG1haW4gZGljdGlvbmFyeSBidXQgaGF2ZW4ndCBidWlsdCB0aGUgdHJlZSB5ZXQsIGJ1aWxkIGl0IG5vd1xuICAgIGlmICh0aGlzLm1haW5EaWN0aW9uYXJ5ICYmIHRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGRpY3Rpb25hcnlJZCBidXQgaGF2ZW4ndCBsb2FkZWQgdGhlIGRpY3Rpb25hcnkgeWV0LCBsb2FkIGl0IG5vd1xuICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkIHdpdGggYSBwcmUtcG9wdWxhdGVkIGRpY3Rpb25hcnlJZFxuICAgIGlmICh0aGlzLmRpY3Rpb25hcnlJZCAmJiAhdGhpcy5tYWluRGljdGlvbmFyeSAmJiAhdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICh0aGlzLnVzZVByZWxvYWRlZERhdGEgJiYgdGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMubG9hZEZyb21QcmVsb2FkZWREYXRhKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZERpY3Rpb25hcnkoKSB7XG4gICAgaWYgKHRoaXMuZGljdGlvbmFyeUlkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgZW52OiBFbnZpcm9ubWVudFR5cGUuQ29uZmlnLCAvLyBUT0RPOiByZXRyaWV2ZSBjb3JyZWN0IGVudmlyb25tZW50XG4gICAgICAgIGxhbmd1YWdlSWQ6IHRoaXMubGFuZ3VhZ2VJZCA+IDAgPyB0aGlzLmxhbmd1YWdlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgIHZhbHVlSWRzVG9TaG93OlxuICAgICAgICAgIHRoaXMudmFsdWVzSWRzVG9TaG93Py5sZW5ndGggPiAwID8gdGhpcy52YWx1ZXNJZHNUb1Nob3cgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldERpY3Rpb25hcnlUcmVlKHRoaXMuZGljdGlvbmFyeUlkLCBwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogRGljdGlvbmFyeVRyZWVSZXNwb25zZUR0bykgPT4ge1xuICAgICAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkgPSByZXNwb25zZS5tYWluRGljdGlvbmFyeTtcbiAgICAgICAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IHJlc3BvbnNlLmFsbERpY3Rpb25hcmllcztcbiAgICAgICAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRpY3Rpb25hcnkgdHJlZTonLCBlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyVHJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgZGljdGlvbmFyeSBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkRnJvbVByZWxvYWRlZERhdGEoKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByZWxvYWRlZCBkaWN0aW9uYXJ5IGRhdGEgYXZhaWxhYmxlLCBmYWxsaW5nIGJhY2sgdG8gQVBJJ1xuICAgICAgKTtcbiAgICAgIHRoaXMubG9hZERpY3Rpb25hcnkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5tYWluRGljdGlvbmFyeSA9IHsgLi4udGhpcy5wcmVsb2FkZWREaWN0aW9uYXJ5IH07IC8vIENyZWF0ZSBhIGNvcHlcblxuICAgIC8vIEFwcGx5IHZhbHVlIGZpbHRlcmluZyBpZiBuZWVkZWRcbiAgICBpZiAodGhpcy52YWx1ZXNJZHNUb1Nob3c/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubWFpbkRpY3Rpb25hcnkudmFsdWVzID1cbiAgICAgICAgdGhpcy5tYWluRGljdGlvbmFyeS52YWx1ZXM/LmZpbHRlcigodikgPT5cbiAgICAgICAgICB0aGlzLnZhbHVlc0lkc1RvU2hvdy5zb21lKChjKSA9PiBjID09IHYuaWQpXG4gICAgICAgICkgfHwgW107XG4gICAgfVxuXG4gICAgLy8gVXNlIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgZm9yIGRlcGVuZGVuY2llc1xuICAgIHRoaXMubG9hZEFsbE5lZWRlZERpY3Rpb25hcmllc0Zyb21QcmVsb2FkZWQodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBORVc6IExvYWQgbmVlZGVkIGRpY3Rpb25hcmllcyBmcm9tIHByZWxvYWRlZCBkYXRhIGluc3RlYWQgb2YgQVBJIGNhbGxzXG4gICAqL1xuICBsb2FkQWxsTmVlZGVkRGljdGlvbmFyaWVzRnJvbVByZWxvYWRlZChkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvKSB7XG4gICAgaWYgKCF0aGlzLnByZWxvYWRlZERpY3Rpb25hcmllcykge1xuICAgICAgY29uc29sZS53YXJuKCdObyBwcmVsb2FkZWQgZGljdGlvbmFyaWVzIG1hcCBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggYWxsIHByZWxvYWRlZCBkaWN0aW9uYXJpZXMgLSB0aGlzIGVuc3VyZXMgY2hpbGQgZGljdGlvbmFyaWVzIGFyZSBhdmFpbGFibGVcbiAgICB0aGlzLmFsbERpY3Rpb25hcmllcyA9IEFycmF5LmZyb20odGhpcy5wcmVsb2FkZWREaWN0aW9uYXJpZXMudmFsdWVzKCkpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHRyZWVcbiAgICB0aGlzLnJlYnVpbGRUcmVlKCk7XG4gIH1cblxuICByZWJ1aWxkVHJlZSgpIHtcbiAgICAvLyBDaGVjayBpZiB0cmVlVmlld0NvbnRyb2wgaXMgYXZhaWxhYmxlIChWaWV3Q2hpbGQgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldClcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB0aGlzLmJ1aWxkRGljdGlvbmFyeVRyZWUodGhpcy5tYWluRGljdGlvbmFyeSk7XG4gICAgaWYgKHRoaXMuZHJhd1Jvb3ROb2RlKSB7XG4gICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmluaXRpYWxpemUobm9kZS5jaGlsZHJlbik7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2hlY2tJdGVtcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcyAmJiB0aGlzLnNlbGVjdGVkVmFsdWVJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5leHBhbmRBbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZVZpZXdDb250cm9sLmV4cGFuZE5vZGUoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xlYXJUcmVlKCkge1xuICAgIC8vIENoZWNrIGlmIHRyZWVWaWV3Q29udHJvbCBpcyBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudHJlZVZpZXdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB7fSBhcyBJdGVtTm9kZTtcbiAgICB0aGlzLnRyZWVWaWV3Q29udHJvbC5pbml0aWFsaXplKFtub2RlXSk7XG4gIH1cblxuICBidWlsZERpY3Rpb25hcnlUcmVlKGRpY3Rpb25hcnk6IERpY3Rpb25hcnlEdG8pOiBJdGVtTm9kZSB7XG4gICAgbGV0IG5vZGUgPSB7XG4gICAgICBuYW1lOiBkaWN0aW9uYXJ5Lm5hbWUsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgY2FuU2VsZWN0OiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgfSBhcyBJdGVtTm9kZTtcblxuICAgIC8vIEJ1aWxkIHRoZSB0cmVlIHJlY3Vyc2l2ZWx5XG4gICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5LCBub2RlKTtcblxuICAgIC8vIFNldCBjYW5TZWxlY3QgZm9yIHJvb3Qgbm9kZSBiYXNlZCBvbiB3aGV0aGVyIGl0IGhhcyBjaGlsZHJlblxuICAgIGlmICghdGhpcy5oaWRlUGFyZW50QXJyb3cpIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3Qobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuY2FuU2VsZWN0ID0gZmFsc2U7XG4gICAgICBub2RlLmhpZGVBcnJvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBidWlsZFRyZWVDaGlsZHJlbihkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5RHRvLCBub2RlOiBJdGVtTm9kZSk6IHZvaWQge1xuICAgIGlmIChkaWN0aW9uYXJ5LnZhbHVlcykge1xuICAgICAgZGljdGlvbmFyeS52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICBsZXQgY2hpbGRyZW5Ob2RlID0ge1xuICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgZGF0YTogdixcbiAgICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICBjYW5TZWxlY3Q6IGZhbHNlLFxuICAgICAgICAgIGhpZGVBcnJvdzogZmFsc2UsXG4gICAgICAgIH0gYXMgSXRlbU5vZGU7XG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlSWQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gVXRpbHMuZmluZFZhbHVlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICB2LnZhbHVlVHJhbnNsYXRpb25zLFxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUubmFtZSA9IHZhbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlSWRzICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZUlkcy5pbmRleE9mKHYuaWQpID49IDApIHtcbiAgICAgICAgICBjaGlsZHJlbk5vZGUuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWN1cnNpdmVseSBidWlsZCBjaGlsZCBkaWN0aW9uYXJpZXMgaWYgYW55XG4gICAgICAgIGlmICh2LmNoaWxkRGljdGlvbmFyeUlkIHx8IHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgIGxldCBkaWN0OiBEaWN0aW9uYXJ5RHRvIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgLy8gVHJ5IFVVSUQtYmFzZWQgbG9va3VwIGZpcnN0IChmb3IgcHJlbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKHYuY2hpbGREaWN0aW9uYXJ5VVVJRCkge1xuICAgICAgICAgICAgZGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoXG4gICAgICAgICAgICAgIChkKSA9PiBkLnV1aWQgPT09IHYuY2hpbGREaWN0aW9uYXJ5VVVJRFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBJRC1iYXNlZCBsb29rdXAgKGZvciBBUEktbG9hZGVkIGRhdGEpXG4gICAgICAgICAgaWYgKCFkaWN0ICYmIHYuY2hpbGREaWN0aW9uYXJ5SWQpIHtcbiAgICAgICAgICAgIGRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gdi5jaGlsZERpY3Rpb25hcnlJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGljdCkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRyZWVDaGlsZHJlbihkaWN0LCBjaGlsZHJlbk5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSByZWZlcmVuY2UgdmFsdWVzXG4gICAgICAgIGlmIChcbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgIHRoaXMuZHJhd1JlZmVyZW5jZURpY3Rpb25hcmllc0FzU2VwYXJhdGVOb2RlID09PSB0cnVlXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRyeSB0byBmaW5kIHJlZmVyZW5jZSBkaWN0aW9uYXJ5IGJ5IFVVSUQgZmlyc3QsIHRoZW4gYnkgSURcbiAgICAgICAgICBsZXQgcmVmRGljdCA9IHRoaXMuYWxsRGljdGlvbmFyaWVzLmZpbmQoKGQpID0+XG4gICAgICAgICAgICBkaWN0aW9uYXJ5LnJlZmVycmVkSW5EaWN0aW9uYXJpZXNVVUlkcz8uaW5jbHVkZXMoZC51dWlkIHx8ICcnKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXJlZkRpY3QpIHtcbiAgICAgICAgICAgIHJlZkRpY3QgPSB0aGlzLmFsbERpY3Rpb25hcmllcy5maW5kKFxuICAgICAgICAgICAgICAoZCkgPT4gZC5pZCA9PT0gZGljdGlvbmFyeS5yZWZlcmVuY2VJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2LnJlZmVyZW5jZVZhbHVlcy5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHJ2Lm5hbWUgKyBgICgke3JlZkRpY3Q/Lm5hbWV9KWAsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgZGF0YTogcnYsXG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBjYW5TZWxlY3Q6IHRydWUsIC8vIFJlZmVyZW5jZSB2YWx1ZXMgYXJlIGxlYWYgbm9kZXMgYW5kIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICAgICAgICBoaWRlQXJyb3c6IGZhbHNlLFxuICAgICAgICAgICAgfSBhcyBJdGVtTm9kZTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVJZHMgJiZcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlSWRzLmluZGV4T2YocnYuaWQpID49IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjaGlsZHJlbk5vZGUuY2hpbGRyZW4ucHVzaChyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERldGVybWluZSBpZiB0aGUgY3VycmVudCBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBjaGlsZHJlbk5vZGUuY2FuU2VsZWN0ID0gdGhpcy5nZXRDYW5TZWxlY3QoY2hpbGRyZW5Ob2RlKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGNoaWxkIG5vZGUgdG8gdGhlIGN1cnJlbnQgbm9kZSdzIGNoaWxkcmVuXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZHJlbk5vZGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgYSBub2RlIGNhbiBiZSBzZWxlY3RlZFxuICBnZXRDYW5TZWxlY3Qobm9kZTogSXRlbU5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0xlYWYgPSBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gaXNMZWFmIHx8IHRoaXMuYWxsb3dTZWxlY3ROb25MZWFmTm9kZXM7XG4gIH1cblxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy50cmVlVmlld0NvbnRyb2wuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgIHZhciB2YWx1ZXMgPSBzZWxlY3RlZE5vZGVzLm1hcCgobikgPT4gbi5kYXRhKSBhcyBEaWN0aW9uYXJ5VmFsdWVEdG9bXTtcbiAgICBsZXQgZHZzID0gdGhpcy5jcmVhdGVDb3B5KHZhbHVlcyk7XG5cbiAgICB0aGlzLnNlbGVjdGVkRGljdGlvbmFyeVZhbHVlc0NoYW5nZWQubmV4dChkdnMpO1xuICB9XG5cbiAgY3JlYXRlQ29weShvYmplY3RUb0NvcHk6IERpY3Rpb25hcnlWYWx1ZUR0b1tdKTogRGljdGlvbmFyeVZhbHVlW10ge1xuICAgIHZhciBzID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0VG9Db3B5KTtcbiAgICB2YXIgbmV3cyA9IHMucmVwbGFjZSgvXCJ2YWx1ZVRyYW5zbGF0aW9uc1wiOi9nLCAnXCJ0cmFuc2xhdGlvbnNcIjonKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShuZXdzKSBhcyBEaWN0aW9uYXJ5VmFsdWVbXTtcbiAgfVxufVxuIiwiPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nID09PSB0cnVlXCIgY2xhc3M9XCJtLXgtYXV0b1wiPjwvbWF0LXNwaW5uZXI+XG48ZGl2IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgPGFwcC10cmVldmlldyAjdHJlZVZpZXcgW2F1dG9TZWxlY3REZXNjZW5kYW50c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2FsbG93Q2hlY2tJdGVtc109XCJhbGxvd0NoZWNrSXRlbXNcIlxuICAgICAgICAgICAgICAgIFthbGxvd0ZpbHRlcl09XCJhbGxvd0ZpbHRlclwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvYXBwLXRyZWV2aWV3PlxuPC9kaXY+XG4iXX0=
|
|
@@ -204,12 +204,28 @@ export class AppTreeviewComponent {
|
|
|
204
204
|
const filterValue = event.target.value;
|
|
205
205
|
return this.filterText(filterValue);
|
|
206
206
|
}
|
|
207
|
+
updateSelectionByIds(ids) {
|
|
208
|
+
if (!this.treeControl.dataNodes)
|
|
209
|
+
return;
|
|
210
|
+
// Clear current selection
|
|
211
|
+
this.checklistSelection.clear();
|
|
212
|
+
// Select nodes that match the IDs
|
|
213
|
+
this.treeControl.dataNodes.forEach((node) => {
|
|
214
|
+
if (node.data && ids.includes(node.data.id)) {
|
|
215
|
+
this.checklistSelection.select(node);
|
|
216
|
+
node.isSelected = true;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
node.isSelected = false;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
207
223
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppTreeviewComponent, deps: [{ token: i1.ChecklistDatabase }, { token: i2.TranslatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppTreeviewComponent, selector: "app-treeview", inputs: { allowAddItems: "allowAddItems", autoSelectDescendants: "autoSelectDescendants", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter" }, outputs: { selectionChanged: "selectionChanged" }, providers: [ChecklistDatabase], ngImport: i0, template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i7.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i7.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i7.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i7.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppTreeviewComponent, selector: "app-treeview", inputs: { allowAddItems: "allowAddItems", autoSelectDescendants: "autoSelectDescendants", allowCheckItems: "allowCheckItems", allowFilter: "allowFilter" }, outputs: { selectionChanged: "selectionChanged" }, providers: [ChecklistDatabase], ngImport: i0, template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems && treeControl.getLevel(node) > 0\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i7.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i7.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i7.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i7.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
209
225
|
}
|
|
210
226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppTreeviewComponent, decorators: [{
|
|
211
227
|
type: Component,
|
|
212
|
-
args: [{ selector: 'app-treeview', providers: [ChecklistDatabase], template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"] }]
|
|
228
|
+
args: [{ selector: 'app-treeview', providers: [ChecklistDatabase], template: "<mat-form-field class=\"full-width p-10\"\n *ngIf=\"allowFilter\"\n appearance=\"outline\">\n <mat-label> {{ commonKeys.actions.filter | translate }}</mat-label>\n <input matInput\n minlength=\"1\"\n (keyup)=\"applyFilter($event)\"\n placeholder=\"{{ commonKeys.actions.filter }}\"\n #input />\n</mat-form-field>\n\n<!--<cdk-virtual-scroll-viewport itemSize=\"30\" class=\"dictionary-viewport\">-->\n<mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <!-- Leaf Nodes -->\n <mat-tree-node *matTreeNodeDef=\"let node\"\n matTreeNodePadding>\n <button mat-icon-button disabled></button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems\">\n <mat-checkbox class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"leafItemSelectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n </mat-tree-node>\n\n <!-- Nodes with Children -->\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding>\n <!-- Expand/Collapse Button -->\n <button mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'Toggle ' + node.name\"\n *ngIf=\"!node.hideArrow\">\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <!-- Node Content -->\n <ng-container>\n <!-- Checkbox for Selectable Nodes when checkboxes are allowed -->\n <ng-container *ngIf=\"node.canSelect && allowCheckItems && treeControl.getLevel(node) > 0\">\n <mat-checkbox [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"selectionToggle(node)\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\">\n {{ node.name }}\n </mat-checkbox>\n </ng-container>\n <!-- Clickable Label for Selectable Nodes when checkboxes are not allowed -->\n <ng-container *ngIf=\"node.canSelect && !allowCheckItems\">\n <mat-label class=\"mdc-label\"\n style=\"cursor: pointer\"\n (click)=\"leafItemSelectionToggle(node)\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n <!-- Non-clickable Label for Non-selectable Nodes -->\n <ng-container *ngIf=\"!node.canSelect\">\n <mat-label class=\"mdc-label\">\n {{ node.name }}\n </mat-label>\n </ng-container>\n </ng-container>\n <!-- Add New Item Button -->\n <button mat-icon-button (click)=\"addNewItem(node)\" *ngIf=\"allowAddItems\">\n <mat-icon>add</mat-icon>\n </button>\n </mat-tree-node>\n</mat-tree>\n<!--</cdk-virtual-scroll-viewport>-->\n", styles: [".dictionary-viewport{height:400px;width:100%}\n"] }]
|
|
213
229
|
}], ctorParameters: () => [{ type: i1.ChecklistDatabase }, { type: i2.TranslatePipe }], propDecorators: { allowAddItems: [{
|
|
214
230
|
type: Input
|
|
215
231
|
}], autoSelectDescendants: [{
|
|
@@ -221,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
221
237
|
}], selectionChanged: [{
|
|
222
238
|
type: Output
|
|
223
239
|
}] } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQ1UsUUFBMkIsRUFDM0IsU0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQXBCekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBRXRDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELFdBQU0sR0FBWSxJQUFJLENB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QUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE1BQU0sV0FBVyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0F6T1Usb0JBQW9CO21HQUFwQixvQkFBb0Isc1BBRnBCLENBQUMsaUJBQWlCLENBQUMsMEJDckJoQyxnaEhBeUZBOzs0RkRsRWEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGNBQWMsYUFHYixDQUFDLGlCQUFpQixDQUFDO2tIQUdyQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuaW1wb3J0IHsgSXRlbUZsYXROb2RlLCBJdGVtTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4uLy4uL290aGVycy9jaGVjay1saXN0LmRhdGFiYXNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9vdGhlcnMvdHJhbnNsYXRpb24ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10cmVldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW0NoZWNrbGlzdERhdGFiYXNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVHJlZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBhbGxvd0FkZEl0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9TZWxlY3REZXNjZW5kYW50czogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIGlzSW5pdDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgc2VsZWN0ZWROb2RlOiBJdGVtRmxhdE5vZGU7XG4gIC8qKiBNYXAgZnJvbSBmbGF0IG5vZGUgdG8gbmVzdGVkIG5vZGUuIFRoaXMgaGVscHMgdXMgZmluZGluZyB0aGUgbmVzdGVkIG5vZGUgdG8gYmUgbW9kaWZpZWQgKi9cbiAgZmxhdE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1GbGF0Tm9kZSwgSXRlbU5vZGU+KCk7XG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+KCk7XG4gIHNlbGVjdGVkUGFyZW50OiBJdGVtRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcbiAgbmV3SXRlbU5hbWUgPSAnJztcbiAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxJdGVtRmxhdE5vZGU+O1xuICB0cmVlRmxhdHRlbmVyOiBNYXRUcmVlRmxhdHRlbmVyPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+O1xuICBkYXRhU291cmNlOiBNYXRUcmVlRmxhdERhdGFTb3VyY2U8SXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZT47XG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxJdGVtRmxhdE5vZGU+KHRydWUpO1xuICBjb21tb25LZXlzID0gTGFiZWxLZXlzLmNvbW1vbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhYmFzZTogQ2hlY2tsaXN0RGF0YWJhc2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlLFxuICAgICAgdGhpcy5nZXRDaGlsZHJlblxuICAgICk7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8SXRlbUZsYXROb2RlPihcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgZGF0YWJhc2UuZGF0YUNoYW5nZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0luaXQgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuICBpc0V4cGFuZGFibGUgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG4gIGdldENoaWxkcmVuID0gKG5vZGU6IEl0ZW1Ob2RlKTogSXRlbU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuO1xuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogSXRlbUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcbiAgaGFzTm9Db250ZW50ID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBJdGVtRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5uYW1lID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG5cbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUubmFtZSA9PT0gbm9kZS5uYW1lXG4gICAgICAgID8gZXhpc3RpbmdOb2RlXG4gICAgICAgIDogbmV3IEl0ZW1GbGF0Tm9kZSgpO1xuICAgIGZsYXROb2RlLm5hbWUgPSBub2RlLm5hbWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5jYW5TZWxlY3QgPSBub2RlLmNhblNlbGVjdDtcbiAgICBmbGF0Tm9kZS5kYXRhID0gbm9kZS5kYXRhO1xuICAgIGZsYXROb2RlLmlzU2VsZWN0ZWQgPSBub2RlLmlzU2VsZWN0ZWQ7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgIGZsYXROb2RlLmhpZGVBcnJvdyA9IG5vZGUuaGlkZUFycm93O1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcblxuICAgIGlmIChmbGF0Tm9kZS5pc1NlbGVjdGVkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoZmxhdE5vZGUpO1xuICAgIH1cbiAgICB0aGlzLmlzSW5pdCA9IGZhbHNlO1xuICAgIHJldHVybiBmbGF0Tm9kZTtcbiAgfTtcblxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZC4gKi9cbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBJdGVtRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID1cbiAgICAgIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogSXRlbUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICBsZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5hbGxvd0NoZWNrSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IEl0ZW1GbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9XG4gICAgICBkZXNjZW5kYW50cy5sZW5ndGggPiAwICYmXG4gICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpO1xuICAgICAgfSk7XG4gICAgaWYgKG5vZGVTZWxlY3RlZCAmJiAhZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChub2RlKTtcbiAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyogR2V0IHRoZSBwYXJlbnQgbm9kZSBvZiBhIG5vZGUgKi9cbiAgZ2V0UGFyZW50Tm9kZShub2RlOiBJdGVtRmxhdE5vZGUpOiBJdGVtRmxhdE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcblxuICAgICAgaWYgKHRoaXMuZ2V0TGV2ZWwoY3VycmVudE5vZGUpIDwgY3VycmVudExldmVsKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpbml0aWFsaXplKGRhdGE6IEl0ZW1Ob2RlW10pIHtcbiAgICB0aGlzLmRhdGFiYXNlLmluaXRpYWxpemUoZGF0YSk7XG4gIH1cblxuICBnZXRTZWxlY3RlZE5vZGVzKCk6IEl0ZW1GbGF0Tm9kZVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogSXRlbUZsYXROb2RlW10gPSBbXTtcbiAgICBpZiAoIXRoaXMuYWxsb3dDaGVja0l0ZW1zKSB7XG4gICAgICBzZWxlY3RlZE5vZGVzLnB1c2godGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG4pKSB7XG4gICAgICAgICAgbi5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKiBTZWxlY3QgdGhlIGNhdGVnb3J5IHNvIHdlIGNhbiBpbnNlcnQgdGhlIG5ldyBpdGVtLiAqL1xuICBhZGROZXdJdGVtKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLmZsYXROb2RlTWFwLmdldChub2RlKTtcbiAgICB0aGlzLmRhdGFiYXNlLmluc2VydEl0ZW0ocGFyZW50Tm9kZSEsICcnKTtcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcbiAgfVxuXG4gIC8qKiBTYXZlIHRoZSBub2RlIHRvIGRhdGFiYXNlICovXG4gIHNhdmVOb2RlKG5vZGU6IEl0ZW1GbGF0Tm9kZSwgaXRlbVZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXN0ZWROb2RlID0gdGhpcy5mbGF0Tm9kZU1hcC5nZXQobm9kZSk7XG4gICAgdGhpcy5kYXRhYmFzZS51cGRhdGVJdGVtKG5lc3RlZE5vZGUhLCBpdGVtVmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyVGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFiYXNlLmZpbHRlcih0ZXh0KTtcbiAgICB0aGlzLmV4cGFuZEFsbCgpO1xuICB9XG5cbiAgZXhwYW5kQWxsKCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBleHBhbmROb2RlKG5vZGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMgJiZcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aCA+IG5vZGVJbmRleFxuICAgICkge1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbbm9kZUluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmZpbHRlclRleHQoZmlsdGVyVmFsdWUpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoIHAtMTBcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+IHt7IGNvbW1vbktleXMuYWN0aW9ucy5maWx0ZXIgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBtaW5sZW5ndGg9XCIxXCJcbiAgICAgICAgIChrZXl1cCk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgY29tbW9uS2V5cy5hY3Rpb25zLmZpbHRlciB9fVwiXG4gICAgICAgICAjaW5wdXQgLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjwhLS08Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiMzBcIiBjbGFzcz1cImRpY3Rpb25hcnktdmlld3BvcnRcIj4tLT5cbjxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gIDwhLS0gTGVhZiBOb2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZWQ+PC9idXR0b24+XG4gICAgPCEtLSBOb2RlIENvbnRlbnQgLS0+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2hlY2tib3ggZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBhbGxvd2VkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGUuY2FuU2VsZWN0ICYmIGFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gIDwhLS0gTm9kZXMgd2l0aCBDaGlsZHJlbiAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgIDwhLS0gRXhwYW5kL0NvbGxhcHNlIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW5vZGUuaGlkZUFycm93XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gTm9kZSBDb250ZW50IC0tPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8IS0tIENoZWNrYm94IGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiBhbGxvd0NoZWNrSXRlbXNcIj5cbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJjaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIEFkZCBOZXcgSXRlbSBCdXR0b24gLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImFkZE5ld0l0ZW0obm9kZSlcIiAqbmdJZj1cImFsbG93QWRkSXRlbXNcIj5cbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L21hdC10cmVlLW5vZGU+XG48L21hdC10cmVlPlxuPCEtLTwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Pi0tPlxuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9zaGFyZWQtY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDakIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBU3JFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQ1UsUUFBMkIsRUFDM0IsU0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQXBCekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBRXRDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzVCLHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELFdBQU0sR0FBWSxJQUFJLENB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aW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHtcbiAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuaW1wb3J0IHsgSXRlbUZsYXROb2RlLCBJdGVtTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVldmlldy5tb2RlbCc7XG5pbXBvcnQgeyBDaGVja2xpc3REYXRhYmFzZSB9IGZyb20gJy4uLy4uL290aGVycy9jaGVjay1saXN0LmRhdGFiYXNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9vdGhlcnMvdHJhbnNsYXRpb24ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10cmVldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90cmVldmlldy5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW0NoZWNrbGlzdERhdGFiYXNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVHJlZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBhbGxvd0FkZEl0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9TZWxlY3REZXNjZW5kYW50czogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93Q2hlY2tJdGVtczogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIGlzSW5pdDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgc2VsZWN0ZWROb2RlOiBJdGVtRmxhdE5vZGU7XG4gIC8qKiBNYXAgZnJvbSBmbGF0IG5vZGUgdG8gbmVzdGVkIG5vZGUuIFRoaXMgaGVscHMgdXMgZmluZGluZyB0aGUgbmVzdGVkIG5vZGUgdG8gYmUgbW9kaWZpZWQgKi9cbiAgZmxhdE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1GbGF0Tm9kZSwgSXRlbU5vZGU+KCk7XG4gIC8qKiBNYXAgZnJvbSBuZXN0ZWQgbm9kZSB0byBmbGF0dGVuZWQgbm9kZS4gVGhpcyBoZWxwcyB1cyB0byBrZWVwIHRoZSBzYW1lIG9iamVjdCBmb3Igc2VsZWN0aW9uICovXG4gIG5lc3RlZE5vZGVNYXAgPSBuZXcgTWFwPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+KCk7XG4gIHNlbGVjdGVkUGFyZW50OiBJdGVtRmxhdE5vZGUgfCBudWxsID0gbnVsbDtcbiAgbmV3SXRlbU5hbWUgPSAnJztcbiAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxJdGVtRmxhdE5vZGU+O1xuICB0cmVlRmxhdHRlbmVyOiBNYXRUcmVlRmxhdHRlbmVyPEl0ZW1Ob2RlLCBJdGVtRmxhdE5vZGU+O1xuICBkYXRhU291cmNlOiBNYXRUcmVlRmxhdERhdGFTb3VyY2U8SXRlbU5vZGUsIEl0ZW1GbGF0Tm9kZT47XG4gIGNoZWNrbGlzdFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxJdGVtRmxhdE5vZGU+KHRydWUpO1xuICBjb21tb25LZXlzID0gTGFiZWxLZXlzLmNvbW1vbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhYmFzZTogQ2hlY2tsaXN0RGF0YWJhc2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlLFxuICAgICAgdGhpcy5nZXRDaGlsZHJlblxuICAgICk7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8SXRlbUZsYXROb2RlPihcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZVxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgZGF0YWJhc2UuZGF0YUNoYW5nZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0luaXQgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuICBpc0V4cGFuZGFibGUgPSAobm9kZTogSXRlbUZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG4gIGdldENoaWxkcmVuID0gKG5vZGU6IEl0ZW1Ob2RlKTogSXRlbU5vZGVbXSA9PiBub2RlLmNoaWxkcmVuO1xuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogSXRlbUZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcbiAgaGFzTm9Db250ZW50ID0gKF86IG51bWJlciwgX25vZGVEYXRhOiBJdGVtRmxhdE5vZGUpID0+IF9ub2RlRGF0YS5uYW1lID09PSAnJztcblxuICAvKipcbiAgICogVHJhbnNmb3JtZXIgdG8gY29udmVydCBuZXN0ZWQgbm9kZSB0byBmbGF0IG5vZGUuIFJlY29yZCB0aGUgbm9kZXMgaW4gbWFwcyBmb3IgbGF0ZXIgdXNlLlxuICAgKi9cbiAgdHJhbnNmb3JtZXIgPSAobm9kZTogSXRlbU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XG5cbiAgICBjb25zdCBleGlzdGluZ05vZGUgPSB0aGlzLm5lc3RlZE5vZGVNYXAuZ2V0KG5vZGUpO1xuICAgIGNvbnN0IGZsYXROb2RlID1cbiAgICAgIGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUubmFtZSA9PT0gbm9kZS5uYW1lXG4gICAgICAgID8gZXhpc3RpbmdOb2RlXG4gICAgICAgIDogbmV3IEl0ZW1GbGF0Tm9kZSgpO1xuICAgIGZsYXROb2RlLm5hbWUgPSBub2RlLm5hbWU7XG4gICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICBmbGF0Tm9kZS5jYW5TZWxlY3QgPSBub2RlLmNhblNlbGVjdDtcbiAgICBmbGF0Tm9kZS5kYXRhID0gbm9kZS5kYXRhO1xuICAgIGZsYXROb2RlLmlzU2VsZWN0ZWQgPSBub2RlLmlzU2VsZWN0ZWQ7XG4gICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbj8ubGVuZ3RoO1xuICAgIGZsYXROb2RlLmhpZGVBcnJvdyA9IG5vZGUuaGlkZUFycm93O1xuICAgIHRoaXMuZmxhdE5vZGVNYXAuc2V0KGZsYXROb2RlLCBub2RlKTtcbiAgICB0aGlzLm5lc3RlZE5vZGVNYXAuc2V0KG5vZGUsIGZsYXROb2RlKTtcblxuICAgIGlmIChmbGF0Tm9kZS5pc1NlbGVjdGVkID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoZmxhdE5vZGUpO1xuICAgIH1cbiAgICB0aGlzLmlzSW5pdCA9IGZhbHNlO1xuICAgIHJldHVybiBmbGF0Tm9kZTtcbiAgfTtcblxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZC4gKi9cbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBJdGVtRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSk7XG4gICAgY29uc3QgZGVzY0FsbFNlbGVjdGVkID1cbiAgICAgIGRlc2NlbmRhbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRlc2NlbmRhbnRzLmV2ZXJ5KChjaGlsZCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZGVzY0FsbFNlbGVjdGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXG4gIGRlc2NlbmRhbnRzUGFydGlhbGx5U2VsZWN0ZWQobm9kZTogSXRlbUZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoKGNoaWxkKSA9PlxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZClcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXG4gIHNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoZWNrQWxsUGFyZW50c1NlbGVjdGlvbihub2RlKTtcbiAgICB9XG4gIH1cblxuICBsZWFmSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBJdGVtRmxhdE5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUuY2FuU2VsZWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5hbGxvd0NoZWNrSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5uZXh0KG5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XG4gICAgICBpZiAodGhpcy5hdXRvU2VsZWN0RGVzY2VuZGFudHMpIHtcbiAgICAgICAgdGhpcy5jaGVja0FsbFBhcmVudHNTZWxlY3Rpb24obm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2tzIGFsbCB0aGUgcGFyZW50cyB3aGVuIGEgbGVhZiBub2RlIGlzIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgY2hlY2tBbGxQYXJlbnRzU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGxldCBwYXJlbnQ6IEl0ZW1GbGF0Tm9kZSB8IG51bGwgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdGhpcy5jaGVja1Jvb3ROb2RlU2VsZWN0aW9uKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2sgcm9vdCBub2RlIGNoZWNrZWQgc3RhdGUgYW5kIGNoYW5nZSBpdCBhY2NvcmRpbmdseSAqL1xuICBjaGVja1Jvb3ROb2RlU2VsZWN0aW9uKG5vZGU6IEl0ZW1GbGF0Tm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGVTZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpO1xuICAgIGNvbnN0IGRlc2NBbGxTZWxlY3RlZCA9XG4gICAgICBkZXNjZW5kYW50cy5sZW5ndGggPiAwICYmXG4gICAgICBkZXNjZW5kYW50cy5ldmVyeSgoY2hpbGQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpO1xuICAgICAgfSk7XG4gICAgaWYgKG5vZGVTZWxlY3RlZCAmJiAhZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdChub2RlKTtcbiAgICB9IGVsc2UgaWYgKCFub2RlU2VsZWN0ZWQgJiYgZGVzY0FsbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyogR2V0IHRoZSBwYXJlbnQgbm9kZSBvZiBhIG5vZGUgKi9cbiAgZ2V0UGFyZW50Tm9kZShub2RlOiBJdGVtRmxhdE5vZGUpOiBJdGVtRmxhdE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcblxuICAgICAgaWYgKHRoaXMuZ2V0TGV2ZWwoY3VycmVudE5vZGUpIDwgY3VycmVudExldmVsKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpbml0aWFsaXplKGRhdGE6IEl0ZW1Ob2RlW10pIHtcbiAgICB0aGlzLmRhdGFiYXNlLmluaXRpYWxpemUoZGF0YSk7XG4gIH1cblxuICBnZXRTZWxlY3RlZE5vZGVzKCk6IEl0ZW1GbGF0Tm9kZVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogSXRlbUZsYXROb2RlW10gPSBbXTtcbiAgICBpZiAoIXRoaXMuYWxsb3dDaGVja0l0ZW1zKSB7XG4gICAgICBzZWxlY3RlZE5vZGVzLnB1c2godGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG4pKSB7XG4gICAgICAgICAgbi5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWROb2RlcztcbiAgfVxuXG4gIC8qKiBTZWxlY3QgdGhlIGNhdGVnb3J5IHNvIHdlIGNhbiBpbnNlcnQgdGhlIG5ldyBpdGVtLiAqL1xuICBhZGROZXdJdGVtKG5vZGU6IEl0ZW1GbGF0Tm9kZSkge1xuICAgIGNvbnN0IHBhcmVudE5vZGUgPSB0aGlzLmZsYXROb2RlTWFwLmdldChub2RlKTtcbiAgICB0aGlzLmRhdGFiYXNlLmluc2VydEl0ZW0ocGFyZW50Tm9kZSEsICcnKTtcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcbiAgfVxuXG4gIC8qKiBTYXZlIHRoZSBub2RlIHRvIGRhdGFiYXNlICovXG4gIHNhdmVOb2RlKG5vZGU6IEl0ZW1GbGF0Tm9kZSwgaXRlbVZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXN0ZWROb2RlID0gdGhpcy5mbGF0Tm9kZU1hcC5nZXQobm9kZSk7XG4gICAgdGhpcy5kYXRhYmFzZS51cGRhdGVJdGVtKG5lc3RlZE5vZGUhLCBpdGVtVmFsdWUpO1xuICB9XG5cbiAgZmlsdGVyVGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFiYXNlLmZpbHRlcih0ZXh0KTtcbiAgICB0aGlzLmV4cGFuZEFsbCgpO1xuICB9XG5cbiAgZXhwYW5kQWxsKCkge1xuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBleHBhbmROb2RlKG5vZGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMgJiZcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aCA+IG5vZGVJbmRleFxuICAgICkge1xuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbbm9kZUluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmZpbHRlclRleHQoZmlsdGVyVmFsdWUpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0aW9uQnlJZHMoaWRzOiBudW1iZXJbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMpIHJldHVybjtcblxuICAgIC8vIENsZWFyIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uY2xlYXIoKTtcblxuICAgIC8vIFNlbGVjdCBub2RlcyB0aGF0IG1hdGNoIHRoZSBJRHNcbiAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5kYXRhICYmIGlkcy5pbmNsdWRlcyhub2RlLmRhdGEuaWQpKSB7XG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICAgICAgbm9kZS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoIHAtMTBcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gIDxtYXQtbGFiZWw+IHt7IGNvbW1vbktleXMuYWN0aW9ucy5maWx0ZXIgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICBtaW5sZW5ndGg9XCIxXCJcbiAgICAgICAgIChrZXl1cCk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgY29tbW9uS2V5cy5hY3Rpb25zLmZpbHRlciB9fVwiXG4gICAgICAgICAjaW5wdXQgLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjwhLS08Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiMzBcIiBjbGFzcz1cImRpY3Rpb25hcnktdmlld3BvcnRcIj4tLT5cbjxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gIDwhLS0gTGVhZiBOb2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIlxuICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZWQ+PC9idXR0b24+XG4gICAgPCEtLSBOb2RlIENvbnRlbnQgLS0+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2hlY2tib3ggZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBhbGxvd2VkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGUuY2FuU2VsZWN0ICYmIGFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tsaXN0LWxlYWYtbm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSBDbGlja2FibGUgTGFiZWwgZm9yIFNlbGVjdGFibGUgTm9kZXMgd2hlbiBjaGVja2JveGVzIGFyZSBub3QgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiAhYWxsb3dDaGVja0l0ZW1zXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGVhZkl0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZSlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTm9uLWNsaWNrYWJsZSBMYWJlbCBmb3IgTm9uLXNlbGVjdGFibGUgTm9kZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGUuY2FuU2VsZWN0XCI+XG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZGMtbGFiZWxcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuXG4gIDwhLS0gTm9kZXMgd2l0aCBDaGlsZHJlbiAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgIDwhLS0gRXhwYW5kL0NvbGxhcHNlIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW5vZGUuaGlkZUFycm93XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gTm9kZSBDb250ZW50IC0tPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8IS0tIENoZWNrYm94IGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgYWxsb3dlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNhblNlbGVjdCAmJiBhbGxvd0NoZWNrSXRlbXMgJiYgdHJlZUNvbnRyb2wuZ2V0TGV2ZWwobm9kZSkgPiAwXCI+XG4gICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwiY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gQ2xpY2thYmxlIExhYmVsIGZvciBTZWxlY3RhYmxlIE5vZGVzIHdoZW4gY2hlY2tib3hlcyBhcmUgbm90IGFsbG93ZWQgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZS5jYW5TZWxlY3QgJiYgIWFsbG93Q2hlY2tJdGVtc1wiPlxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWRjLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxlYWZJdGVtU2VsZWN0aW9uVG9nZ2xlKG5vZGUpXCI+XG4gICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIE5vbi1jbGlja2FibGUgTGFiZWwgZm9yIE5vbi1zZWxlY3RhYmxlIE5vZGVzIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub2RlLmNhblNlbGVjdFwiPlxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWRjLWxhYmVsXCI+XG4gICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBBZGQgTmV3IEl0ZW0gQnV0dG9uIC0tPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGROZXdJdGVtKG5vZGUpXCIgKm5nSWY9XCJhbGxvd0FkZEl0ZW1zXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtdHJlZS1ub2RlPlxuPC9tYXQtdHJlZT5cbjwhLS08L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD4tLT5cbiJdfQ==
|