@senior-gestao-empresarial/angular-components 8.1.1 → 8.2.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/lookups/lib/entities/erpx-cpl-itr-dere/base-calculo-lookup.mjs +53 -0
- package/esm2022/lookups/lib/erp-lookups.mjs +5 -5
- package/esm2022/lookups/lib/erp-lookups.module.mjs +4 -1
- package/esm2022/lookups/public-api.mjs +2 -1
- package/fesm2022/senior-gestao-empresarial-angular-components-lookups.mjs +59 -9
- package/fesm2022/senior-gestao-empresarial-angular-components-lookups.mjs.map +1 -1
- package/lookups/lib/entities/erpx-cpl-itr-dere/base-calculo-lookup.d.ts +11 -0
- package/lookups/public-api.d.ts +1 -0
- package/package.json +1 -1
- package/schematics/migrations/migrate-imports/symbol-map.js +1 -0
- package/schematics/migrations/migrate-imports/symbol-map.js.map +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import { ErpLookups } from '../../erp-lookups';
|
|
4
|
+
import { ErpLookupsService } from '../../erp-lookups.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
const lookupFields = [
|
|
7
|
+
{
|
|
8
|
+
name: 'codigo',
|
|
9
|
+
type: 'string',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'descricao',
|
|
13
|
+
type: 'string',
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
const searchFields = ({ translateService, }) => [
|
|
17
|
+
...lookupFields,
|
|
18
|
+
{
|
|
19
|
+
name: 'incidencia',
|
|
20
|
+
type: 'boolean',
|
|
21
|
+
optionsLabel: {
|
|
22
|
+
true: translateService.instant('erpx_cpl_itr.dere.yes'),
|
|
23
|
+
false: translateService.instant('erpx_cpl_itr.dere.no'),
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'raizIBS',
|
|
28
|
+
type: 'string',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'raizCBS',
|
|
32
|
+
type: 'string',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'observacao',
|
|
36
|
+
type: 'string',
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
export class BaseCalculoLookup extends ErpLookups {
|
|
40
|
+
constructor() {
|
|
41
|
+
const lookupService = inject(ErpLookupsService);
|
|
42
|
+
const translateService = inject(TranslateService);
|
|
43
|
+
super(lookupService, translateService, 'baseCalculo', lookupFields, searchFields({ translateService }), searchFields({ translateService }), 'erpx_cpl_itr', 'dere');
|
|
44
|
+
this.lookupService = lookupService;
|
|
45
|
+
this.translateService = translateService;
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseCalculoLookup, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseCalculoLookup }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseCalculoLookup, decorators: [{
|
|
51
|
+
type: Injectable
|
|
52
|
+
}], ctorParameters: () => [] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jYWxjdWxvLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Nuci1lcnB4LWFuZ3VsYXItY29tcG9uZW50cy9sb29rdXBzL3NyYy9saWIvZW50aXRpZXMvZXJweC1jcGwtaXRyLWRlcmUvYmFzZS1jYWxjdWxvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzlELE1BQU0sWUFBWSxHQUFrQjtJQUNoQztRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0NBQ0osQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFDbEIsZ0JBQWdCLEdBR25CLEVBQWlCLEVBQUUsQ0FBQztJQUNqQixHQUFHLFlBQVk7SUFDZjtRQUNJLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxTQUFTO1FBQ2YsWUFBWSxFQUFFO1lBQ1YsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBVztZQUNqRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFXO1NBQ3BFO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0NBQ0osQ0FBQztBQUdGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFVO0lBSTdDO1FBQ0ksTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVsRCxLQUFLLENBQ0QsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFlBQVksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFDbEMsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUNsQyxjQUFjLEVBQ2QsTUFBTSxDQUNULENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDN0MsQ0FBQzsrR0FwQlEsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBFcnBMb29rdXBzIH0gZnJvbSAnLi4vLi4vZXJwLWxvb2t1cHMnO1xuaW1wb3J0IHsgRXJwTG9va3Vwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lcnAtbG9va3Vwcy5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNUeXBlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0nO1xuXG5jb25zdCBsb29rdXBGaWVsZHM6IER5bmFtaWNUeXBlW10gPSBbXG4gICAge1xuICAgICAgICBuYW1lOiAnY29kaWdvJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG5hbWU6ICdkZXNjcmljYW8nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuXTtcblxuY29uc3Qgc2VhcmNoRmllbGRzID0gKHtcbiAgICB0cmFuc2xhdGVTZXJ2aWNlLFxufToge1xuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XG59KTogRHluYW1pY1R5cGVbXSA9PiBbXG4gICAgLi4ubG9va3VwRmllbGRzLFxuICAgIHtcbiAgICAgICAgbmFtZTogJ2luY2lkZW5jaWEnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIG9wdGlvbnNMYWJlbDoge1xuICAgICAgICAgICAgdHJ1ZTogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlcnB4X2NwbF9pdHIuZGVyZS55ZXMnKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBmYWxzZTogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlcnB4X2NwbF9pdHIuZGVyZS5ubycpIGFzIHN0cmluZyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3JhaXpJQlMnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ3JhaXpDQlMnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogJ29ic2VydmFjYW8nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJhc2VDYWxjdWxvTG9va3VwIGV4dGVuZHMgRXJwTG9va3VwcyB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxvb2t1cFNlcnZpY2U6IEVycExvb2t1cHNTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBsb29rdXBTZXJ2aWNlID0gaW5qZWN0KEVycExvb2t1cHNTZXJ2aWNlKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGxvb2t1cFNlcnZpY2UsXG4gICAgICAgICAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgJ2Jhc2VDYWxjdWxvJyxcbiAgICAgICAgICAgIGxvb2t1cEZpZWxkcyxcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkcyh7IHRyYW5zbGF0ZVNlcnZpY2UgfSksXG4gICAgICAgICAgICBzZWFyY2hGaWVsZHMoeyB0cmFuc2xhdGVTZXJ2aWNlIH0pLFxuICAgICAgICAgICAgJ2VycHhfY3BsX2l0cicsXG4gICAgICAgICAgICAnZGVyZSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb29rdXBTZXJ2aWNlID0gbG9va3VwU2VydmljZTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdHJhbnNsYXRlU2VydmljZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -100,10 +100,10 @@ export class ErpLookups {
|
|
|
100
100
|
}
|
|
101
101
|
toSnakeCase(value = '') {
|
|
102
102
|
return value
|
|
103
|
-
.replace(/(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
.
|
|
103
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1_$2')
|
|
104
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
|
|
105
|
+
.replace(/^_/, '')
|
|
106
|
+
.toLowerCase();
|
|
107
107
|
}
|
|
108
108
|
mountFormField(fields, prefix) {
|
|
109
109
|
return fields.map((field) => {
|
|
@@ -612,4 +612,4 @@ export class ErpLookups {
|
|
|
612
612
|
}
|
|
613
613
|
}
|
|
614
614
|
}
|
|
615
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbnItZXJweC1hbmd1bGFyLWNvbXBvbmVudHMvbG9va3Vwcy9zcmMvbGliL2VycC1sb29rdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQVM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsNkNBQTZDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gsTUFBTSwyQkFBMkIsR0FBMkI7SUFDeEQsRUFBRSxFQUFFLElBQUk7SUFDUixDQUFDLEVBQUUsR0FBRztJQUNOLEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLEdBQUc7SUFDTixFQUFFLEVBQUUsTUFBTTtJQUNWLENBQUMsRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBMkI7SUFDbkQsSUFBSSxFQUFFLE1BQU07SUFDWixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLENBQUMsRUFBRSxHQUFHO0NBQ1QsQ0FBQztBQWdDRixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFOLElBQVksbUJBeUJYO0FBekJELFdBQVksbUJBQW1CO0lBQzNCLCtEQUErRDtJQUMvRCxnQ0FBUyxDQUFBO0lBQ1Qsa0VBQWtFO0lBQ2xFLGdDQUFTLENBQUE7SUFDVCx1REFBdUQ7SUFDdkQsZ0NBQVMsQ0FBQTtJQUNULGdFQUFnRTtJQUNoRSxnQ0FBUyxDQUFBO0lBQ1QsbURBQW1EO0lBQ25ELGdDQUFTLENBQUE7SUFDVCw2REFBNkQ7SUFDN0Qs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LElBQUksT0FBTyxFQUFFLENBQUM7WUFDakQsTUFBa0MsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekQsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDYWxlbmRhckZpZWxkQ29uZmlnLFxuICAgIER5bmFtaWNUeXBlLFxuICAgIExvb2t1cEZpZWxkQ29uZmlnLFxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybSc7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXJwTG9va3Vwc1NlcnZpY2UgfSBmcm9tICcuL2VycC1sb29rdXBzLnNlcnZpY2UnO1xuXG4vKiogRm9ybWF0byBkZSBkYXRhIGVzcGVyYWRvIHBlbGEgY29uc3VsdGEgKi9cbmNvbnN0IFFVRVJZX0RBVEVfRk9STUFUID0gJ1lZWVktTU0tREQnO1xuXG4vKipcbiAqIEVxdWl2YWxlbnRlIGVtIG1vbWVudCBkZSBjYWRhIHRva2VuIGRvIGRpYWxldG8gbGVnYWRvIChQcmltZU5HKSB1c2FkbyBwb3JcbiAqIGBjYWxlbmRhckxvY2FsZU9wdGlvbnMuZGF0ZUZvcm1hdGAg4oCUIMOpIG8gbWVzbW8gZGlhbGV0byBxdWVcbiAqIGBjb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0YCAoYEBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGFibGVgKVxuICogY29udmVydGUgcGFyYSBmb3JtYXRhciBjb2x1bmFzIGRlIGRhdGEgbmEgZ3JpZCBhIHBhcnRpciBkZXNzYSBwcm9wcmllZGFkZS5cbiAqL1xuY29uc3QgTEVHQUNZX0NBTEVOREFSX0RBVEVfVE9LRU5TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGRkOiAnREQnLFxuICAgIGQ6ICdEJyxcbiAgICBtbTogJ01NJyxcbiAgICBtOiAnTScsXG4gICAgeXk6ICdZWVlZJyxcbiAgICB5OiAnWVknLFxufTtcblxuLyoqXG4gKiBFcXVpdmFsZW50ZSBlbSBtb21lbnQgZGUgY2FkYSB0b2tlbiBkbyBkaWFsZXRvIG5hdGl2byBkbyBgcy1kYXRlcGlja2VyYCxcbiAqIHVzYWRvIHBlbGEgcHJvcHJpZWRhZGUgYGRhdGVGb3JtYXRgIChhIHF1ZSBvIGBDYWxlbmRhckZpZWxkQ29tcG9uZW50YFxuICogcmVwYXNzYSBkaXJldG8gYW8gYHMtZGF0ZXBpY2tlcmApLiBBcXVpIGB5eWAgw6kgYW5vIGNvbSAyIGTDrWdpdG9zIOKAlCBhb1xuICogY29udHLDoXJpbyBkbyBkaWFsZXRvIGRvIFByaW1lTkcsIG9uZGUgYHl5YCB0ZW0gNCBkw61naXRvcy5cbiAqL1xuY29uc3QgREFURVBJQ0tFUl9EQVRFX1RPS0VOUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICB5eXl5OiAnWVlZWScsXG4gICAgeXk6ICdZWScsXG4gICAgTU06ICdNTScsXG4gICAgbW06ICdNTScsXG4gICAgZGQ6ICdERCcsXG4gICAgZDogJ0QnLFxufTtcblxuLyoqIEVudGlkYWRlcyBkZSBxdWUgZGVwZW5kZSAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlEZXBlbmRlbmN5IHtcbiAgICAvKiogTm9tZSBkYSBlbnRpZGFkZSBxdWUgZGVwZW5kZSAocGFpKSAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogQ2FtcG8gZGEgZW50aWRhZGUgcGFpIHF1ZSBzZXLDoSBjb21wYXJhZG8gKi9cbiAgICBmaWVsZD86IHN0cmluZztcbiAgICAvKiogVmFsb3IgZGEgZW50aWRhZGUgcGFpICovXG4gICAgdmFsdWU6ICgpID0+IHVua25vd247XG59XG5cbi8qKiBGaWx0cm8gcGFkcsOjbyBhcGxpY2FkbyBlbSB0b2RhcyByZXF1aXNpw6fDtWVzIGRhIGVudGlkYWRlLiBQb3IgcGFkcsOjbyBmaWx0cmEgcmVnaXN0cm9zIG7Do28gZXhjbHVpZG9zICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRGaWx0ZXIge1xuICAgIC8qKiBDYW1wbyBxdWUgc2Vyw6EgZmlsdHJhZG8gKi9cbiAgICBmaWVsZDogc3RyaW5nIHwgRGVmYXVsdEZpbHRlcjtcbiAgICAvKiogQ29tcGFyYcOnw6NvIHF1ZSBzZXLDoSBhcGxpY2FkYSBuYSBjb25zdWx0YSAqL1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIC8qKiBWYWxvcmVzIHF1ZSBzZXLDo28gYnVzY2Fkb3MgKi9cbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xufVxuXG4vKiogRmlsdHJvIGRpbmFtaWNvIHBhcmEgY29uc3VsdGFzIG1haXMgY29tcGxleGFzICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXIge1xuICAgIC8qKiBDYW1wbyBxdWUgc2Vyw6EgZmlsdHJhZG8gKi9cbiAgICBmaWVsZDogKCkgPT4gc3RyaW5nO1xuICAgIC8qKiBDb21wYXJhw6fDo28gcXVlIHNlcsOhIGFwbGljYWRhIG5hIGNvbnN1bHRhICovXG4gICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3I7XG4gICAgLyoqIFZhbG9yZXMgcXVlIHNlcsOjbyBidXNjYWRvcyAqL1xuICAgIHZhbHVlOiAoKSA9PiB1bmtub3duO1xufVxuXG4vKiogRmlsdGVyIFN5c3RlbSBRdWVyeSBPcHRpb24gLSBPcGVyYXRvcnMgc3VwcG9ydGVkIGluIHRoZSBleHByZXNzaW9uIGxhbmd1YWdlICovXG5leHBvcnQgZW51bSBFbnVtTG9naWNhbE9wZXJhdG9yIHtcbiAgICAvKiogRXF1YWwgKEV4OiAvU3VwcGxpZXJzPyRmaWx0ZXI9QWRkcmVzcy9DaXR5IGVxICdSZWRtb25kJykgKi9cbiAgICBFcSA9ICdlcScsXG4gICAgLyoqIE5vdCBlcXVhbCAoRXg6IC9TdXBwbGllcnM/JGZpbHRlcj1BZGRyZXNzL0NpdHkgbmUgJ0xvbmRvbicpICovXG4gICAgTmUgPSAnbmUnLFxuICAgIC8qKiBHcmVhdGVyIHRoYW4gKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBndCAyMCkgKi9cbiAgICBHdCA9ICdndCcsXG4gICAgLyoqIEdyZWF0ZXIgdGhhbiBvciBlcXVhbCAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGdlIDEwKSAqL1xuICAgIEdlID0gJ2dlJyxcbiAgICAvKiogTGVzcyB0aGFuIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbHQgMjApKi9cbiAgICBMdCA9ICdsdCcsXG4gICAgLyoqIExlc3MgdGhhbiBvciBlcXVhbCAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGxlIDEwMCkqL1xuICAgIExlID0gJ2xlJyxcbiAgICAvKiogTG9naWNhbCBhbmRcdCAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGxlIDIwMCBhbmQgUHJpY2UgZ3QgMy41KSovXG4gICAgQW5kID0gJ2FuZCcsXG4gICAgLyoqIExvZ2ljYWwgb3IgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBsZSAzLjUgb3IgUHJpY2UgZ3QgMjAwKSovXG4gICAgT3IgPSAnb3InLFxuICAgIC8qKiBMb2dpY2FsIG5lZ2F0aW9uIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9bm90IGVuZHN3aXRoKERlc2NyaXB0aW9uLCdtaWxrJykpKi9cbiAgICBOb3QgPSAnbm90JyxcbiAgICAvKiogTG9naWNhbCBpcyAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPWlkIGlzIG51bGwgKi9cbiAgICBJcyA9ICdpcycsXG4gICAgLyoqIE5lZ2F0aW9uIG9mIGxvZ2ljYWwgaXMgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1pZCBpcyBub3QgbnVsbCAqL1xuICAgIElzTm90ID0gJ2lzIG5vdCcsXG4gICAgLyoqIENvbnRhaW5zIHN0cmluZyB2YWx1ZSAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPWNvbnRhaW5pbmcobG93ZXIobmFtZSksIGxvd2VyKCdteSBuYW1lJykpKSAqL1xuICAgIENvbnRhaW5zID0gJ2NvbnRhaW5pbmcnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb25zIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIG9yZGVyOiBudW1iZXI7XG59XG5cbi8qKiBQYXLDom1ldHJvcyBwYXJhIGN1c3RvbWl6YcOnw7VlcyBkbyBsb29rdXAgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwT3B0aW9ucyB7XG4gICAgLyoqIE5vbWUgZGEgZW50aWRhZGUgKi9cbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgLyoqIE5vbWUgZG8gZm9ybUdyb3VwICovXG4gICAgZm9ybUdyb3VwPzogc3RyaW5nO1xuICAgIC8qKiBGaWx0cm8gcGFkcsOjbyAqL1xuICAgIGRlZmF1bHRGaWx0ZXI/OiBEZWZhdWx0RmlsdGVyW107XG4gICAgLyoqIEZpbHRybyBkaW7Dom1pY28gKi9cbiAgICBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdO1xuICAgIC8qKiBDYW1wb3MgZG8gbG9va3VwIChhdXRvY29tcGxldGUpICovXG4gICAgbG9va3VwRmllbGRzPzogKER5bmFtaWNUeXBlIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXTtcbiAgICAvKiogQ2FtcG9zIHF1ZSBzZXLDo28gc29saWNpdGFkb3MgbmEgY29uc3VsdGEgKi9cbiAgICBxdWVyeUZpZWxkcz86IHN0cmluZ1tdO1xuICAgIC8qKiBDYW1wb3MgZXhpYmlkb3Mgbm8gZmlsdHJvIGRhIG1vZGFsIGRlIGxpc3RhZ2VtICovXG4gICAgc2VhcmNoRmllbGRzPzogKER5bmFtaWNUeXBlIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXTtcbiAgICAvKiogQ2FtcG9zIGV4aWJpZG9zIG5hIGdyaWQgZGEgbW9kYWwgZGUgbGlzdGFnZW0gKi9cbiAgICAvKiogRGVmaW5lIHNlIG8gbG9va3VwIHBlcm1pdGlyw6EgbXVsdGkgc2VsZcOnw6NvICovXG4gICAgc2VhcmNoR3JpZEZpZWxkcz86IChEeW5hbWljVHlwZSB8IEVycExvb2t1cHNGb3JtRmllbGQpW107XG4gICAgbXVsdGlwbGU/OiBib29sZWFuO1xuICAgIC8qKiBFbnRpZGFkZXMgZGUgcXVlIGRlcGVuZGUgKi9cbiAgICBlbnRpdHlEZXBlbmRlbmN5PzogRW50aXR5RGVwZW5kZW5jeVtdO1xuICAgIC8qKiBQcmVmaXhvIHV0aWxpemFkbyBwYXJhIG1vbnRhciBvcyBsYWJlbHMgKHBvciBwYWRyw6NvIHV0aWxpemEgZG9tw61uaW8gZSBzZXJ2acOnbykgKi9cbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgLyoqIFN1Zml4byB1dGlsaXphZG8gcGFyYSBtb250YXIgb3MgbGFiZWxzIChwb3IgcGFkcsOjbyDDqSB2YXppbykgKi9cbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgLyoqIERvbcOtbmlvICovXG4gICAgZG9tYWluPzogc3RyaW5nO1xuICAgIC8qKiBTZXJ2acOnbyAqL1xuICAgIHNlcnZpY2U/OiBzdHJpbmc7XG4gICAgLyoqIERhdGEga2V5ICovXG4gICAgZGF0YUtleT86IHN0cmluZztcbiAgICAvKiogQ2FtcG9zIHBhcmEgb3JkZW5hw6fDo28gZG8gbG9va3VwIChhdXRvY29tcGxldGUpKi9cbiAgICBsb29rdXBTb3J0PzogU29ydE9wdGlvbnNbXTtcbiAgICAvKiogQ2FtcG9zIHBhcmEgYSBvcmRlbmHDp8OjbyBhbyBhYnJpciBhIG1vZGFsIGRlIGxpc3RhZ2VtICovXG4gICAgc2VhcmNoU29ydD86IFNvcnRPcHRpb25zW107XG59XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZpbHRlckZ1bmN0aW9uPFQgPSB1bmtub3duPiA9IChvcHRpb25zOiB7XG4gICAgdmFsdWU6IFQ7XG4gICAgZmlsdGVyRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59KSA9PiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZpbHRlcjxUID0gdW5rbm93bj4gPSB7XG4gICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3I7XG4gICAgdmFsdWU6IHN0cmluZyB8IEN1c3RvbUZpbHRlckZ1bmN0aW9uPFQ+O1xufTtcblxuZXhwb3J0IGNsYXNzIEVycExvb2t1cHNGb3JtRmllbGQ8VCA9IHVua25vd24+IHtcbiAgICBwdWJsaWMgbmFtZSE6IHN0cmluZztcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcbiAgICBwdWJsaWMgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIHB1YmxpYyBtdWx0aXBsZT86IGJvb2xlYW47XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVycExvb2t1cHNGb3JtRmllbGQ/OiB7XG4gICAgICAgICAgICBjdXN0b21GaWx0ZXJzPzogQ3VzdG9tRmlsdGVyPFQ+W107XG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4gICAgKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRDb25maWcpO1xuICAgIH1cbn1cblxuLy8gVE9ETzogc3RyaWN0LXJldmlldzogQEluamVjdGFibGUgcmVtb3ZpZG8g4oCUIGVzdGEgY2xhc3NlIG7Do28gcG9kZSBzZXIgaW5qZXRhZGEgdmlhIERJIGRvIEFuZ3VsYXIuXG4vLyBPcyBwYXLDom1ldHJvcyBkbyBjb25zdHJ1Y3RvciBuw6NvIHPDo28gdGlwb3MgaW5qZXTDoXZlaXMgKHByaW1pdGl2b3Mgb3Ugc2VtID9wcm92KS4gSW5zdGFuY2lhciBjb20gYG5ld2AuXG4vKipcbiAqIEVycCBMb29rdXBzXG4gKiBAY2xhc3MgRXJwTG9va3Vwc1xuICovXG5leHBvcnQgY2xhc3MgRXJwTG9va3VwcyB7XG4gICAgcHVibGljIGxvb2t1cFN1Z2dlc3Rpb25zT2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwdWJsaWMgbG9va3VwU2VhcmNoT2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmlhw6fDo28gZGUgdW0gbG9va3VwLlxuICAgICAqIEBwYXJhbSBlbnRpdHkgTm9tZSBkYSBlbnRpZGFkZS5cbiAgICAgKiBAcGFyYW0gbG9va3VwRmllbGRzIENhbXBvcyBleGliaWRvcyBubyBhdXRvY29tcGxldGUuXG4gICAgICogQHBhcmFtIHNlYXJjaEZpZWxkcyBDYW1wb3MgZXhpYmlkb3Mgbm8gZmlsdHJvIGRlbnRybyBkYSBtb2RhbC5cbiAgICAgKiBAcGFyYW0gc2VhcmNoR3JpZEZpZWxkcyBDYW1wb3MgZXhpYmlkb3MgbmEgdGFiZWxhIGRlbnRybyBkYSBtb2RhbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBsb29rdXBTZXJ2aWNlOiBFcnBMb29rdXBzU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGVudGl0eTogc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgbG9va3VwRmllbGRzOiBEeW5hbWljVHlwZVtdLFxuICAgICAgICBwdWJsaWMgc2VhcmNoRmllbGRzOiAoRHluYW1pY1R5cGUgfCBFcnBMb29rdXBzRm9ybUZpZWxkKVtdLFxuICAgICAgICBwdWJsaWMgc2VhcmNoR3JpZEZpZWxkczogRHluYW1pY1R5cGVbXSxcbiAgICAgICAgcHJvdGVjdGVkIGRvbWFpbjogc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgc2VydmljZTogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuICAgICAgICB0aGlzLmRvbWFpbiA9IGRvbWFpbjtcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICAgICAgdGhpcy5sb29rdXBGaWVsZHMgPSBsb29rdXBGaWVsZHMgPz8gW107XG4gICAgICAgIHRoaXMuc2VhcmNoRmllbGRzID0gc2VhcmNoRmllbGRzID8/IFtdO1xuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSBzZWFyY2hHcmlkRmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NuYWtlQ2FzZSh2YWx1ZTogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oPzpefFxcLj8pKFtBLVpdKS9nLCBmdW5jdGlvbiAoX3gsIHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ18nICsgeS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC9eXy8sICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnRGb3JtRmllbGQoXG4gICAgICAgIGZpZWxkczogKER5bmFtaWNUeXBlIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXSxcbiAgICAgICAgcHJlZml4OiBzdHJpbmdcbiAgICApOiBEeW5hbWljVHlwZVtdIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBsZXQgdHJhbnNsYXRpb25LZXkgPSBgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV8ke3RoaXMudG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YDtcblxuICAgICAgICAgICAgbGV0IGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG5cbiAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gdHJhbnNsYXRpb25LZXkpIHtcbiAgICAgICAgICAgICAgICAvLyBNYW50ZXIgY29tcGF0aWJpbGlkYWRlIGNvbSBvcyBsb29rdXBzIGF0dWFpcyBhdMOpIHRvZG9zIGFqdXN0YXJlbVxuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkLm5hbWUuc3BsaXQoJy4nKS5qb2luKCdfJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25LZXkgPSBgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV8ke3RoaXMudG9TbmFrZUNhc2UoZmllbGROYW1lKX1gO1xuICAgICAgICAgICAgICAgIGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB9IGFzIER5bmFtaWNUeXBlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnREZWZhdWx0RmlsdGVyKFxuICAgICAgICBkZWZhdWx0RmlsdGVyOiBEZWZhdWx0RmlsdGVyW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdleGNsdWlkbycsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3IuRXEsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBbJ2ZhbHNlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRGaWx0ZXJcbiAgICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICcoJyArXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlci52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIub3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuQ29udGFpbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKGxvd2VyKCR7ZmlsdGVyLmZpZWxkfSksIGxvd2VyKCcke3ZhbHVlfScpKWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyLm9wZXJhdG9yID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLm9wZXJhdG9yID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1Mb2dpY2FsT3BlcmF0b3IuSXMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsdGVyLmZpZWxkfSAke2ZpbHRlci5vcGVyYXRvcn0gbnVsbGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWx0ZXIuZmllbGR9ICR7ZmlsdGVyLm9wZXJhdG9yfSAnJHt2YWx1ZX0nYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignIG9yICcpICtcbiAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIGFuZCAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnREeW5hbWljRmlsdGVyKFxuICAgICAgICBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFkeW5hbWljRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkeW5hbWljRmlsdGVyXG4gICAgICAgICAgICAubWFwKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0gZmlsdGVyLnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIuZmllbGQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlci5vcGVyYXRvcjtcblxuICAgICAgICAgICAgICAgIGlmICghKHZhbHVlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbdmFsdWVzXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnKCcgK1xuICAgICAgICAgICAgICAgICAgICAodmFsdWVzIGFzIHVua25vd25bXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgY29udGFpbmluZyhsb3dlcigke2ZpZWxkfSksIGxvd2VyKCcke1N0cmluZyh2YWx1ZSl9JykpYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcGVyYXRvciA9PT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuSXMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmllbGR9ICR7b3BlcmF0b3J9IG51bGxgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWVsZH0gJHtvcGVyYXRvcn0gJyR7U3RyaW5nKHZhbHVlKX0nYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignIG9yICcpICtcbiAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIGFuZCAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnRGaWx0ZXJRdWVyeShcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgbG9va3VwRmllbGRzOiBEeW5hbWljVHlwZVtdLFxuICAgICAgICBkZWZhdWx0RmlsdGVyPzogRGVmYXVsdEZpbHRlcltdLFxuICAgICAgICBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5OiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIoTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gbG9va3VwRmllbGRzXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7ZmllbGQubmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzYW5pdGl6ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtmaWVsZC5uYW1lfSBlcSAnJHtzYW5pdGl6ZWRWYWx1ZX0nKWA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb3VudERhdGVGaWx0ZXIoZmllbGQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZXEgJyR7dmFsdWV9JylgO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiAhIWZpbHRlcilcbiAgICAgICAgICAgICAgICAuam9pbignIG9yICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBsb29rdXBGaWVsZHNcbiAgICAgICAgICAgICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgKGNvbnRhaW5pbmcobG93ZXIoJHtmaWVsZC5uYW1lfSksIGxvd2VyKCcke3ZhbHVlLnJlcGxhY2UoL1xcXFwvZywgJycpLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nKSkpYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50RGF0ZUZpbHRlcihmaWVsZCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+ICEhZmlsdGVyKVxuICAgICAgICAgICAgICAgIC5qb2luKCcgb3IgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0RmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RGVmYXVsdEZpbHRlcihkZWZhdWx0RmlsdGVyKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2VtIG5lbmh1bSBjYW1wbyBjb25zdWx0w6F2ZWwgcGFyYSBvIHRleHRvIGRpZ2l0YWRvIG8gZmlsdHJvIGRvIHRleHRvXG4gICAgICAgICAqIMOpIG9taXRpZG86IHVtIGdydXBvIHZhemlvIChgKClgKSDDqSByZWplaXRhZG8gcGVsbyBiYWNrZW5kIGNvbSA1MDAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZGVmYXVsdEZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGZpbHRlclF1ZXJ5XG4gICAgICAgICAgICAgICAgPyBgKCgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pIGFuZCAoJHtmaWx0ZXJRdWVyeX0pKWBcbiAgICAgICAgICAgICAgICA6IGAoJHtkZWZhdWx0RmlsdGVyUXVlcnl9KWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGZpbHRlclF1ZXJ5ID8gJygnICsgZmlsdGVyUXVlcnkgKyAnKScgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREeW5hbWljRmlsdGVyKGR5bmFtaWNGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChkeW5hbWljRmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICA/IGAoKCR7ZHluYW1pY0ZpbHRlclF1ZXJ5fSkgYW5kICgke2ZpbHRlclF1ZXJ5fSkpYFxuICAgICAgICAgICAgICAgIDogYCgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnkgPyAnKCcgKyBmaWx0ZXJRdWVyeSArICcpJyA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlclF1ZXJ5O1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3VudEVudW1GaWx0ZXIoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgICAgICBtdWx0aXBsZT86IGJvb2xlYW5cbiAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbXVsdGlwbGVcbiAgICAgICAgICAgID8gYCgkeyh2YWx1ZSBhcyBzdHJpbmdbXSkubWFwKChzZWxlY3RlZDogc3RyaW5nKSA9PiBgJHtuYW1lfSBlcSAnJHtzZWxlY3RlZH0nYCkuam9pbignIG9yICcpfSlgXG4gICAgICAgICAgICA6IGAoJHtuYW1lfSBlcSAnJHt2YWx1ZX0nKWA7XG4gICAgfVxuICAgIC8qKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgbW9udGFyIGFzIG9ww6fDtWVzIHBhZHLDtWVzIHBhcmEgbyBsb29rdXAgZG8gRHluYW1pYyBGb3JtICovXG4gICAgcHVibGljIG1vdW50T3B0aW9ucyhvcHRpb25zPzogTG9va3VwT3B0aW9ucyk6IExvb2t1cEZpZWxkQ29uZmlnIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucz8ucHJlZml4XG4gICAgICAgICAgICA/IG9wdGlvbnMucHJlZml4XG4gICAgICAgICAgICA6IG9wdGlvbnM/LmRvbWFpbiAmJiBvcHRpb25zPy5zZXJ2aWNlXG4gICAgICAgICAgICAgID8gYCR7b3B0aW9ucy5kb21haW59LiR7b3B0aW9ucy5zZXJ2aWNlfWBcbiAgICAgICAgICAgICAgOiBgJHt0aGlzLmRvbWFpbn0uJHt0aGlzLnNlcnZpY2V9YDtcblxuICAgICAgICBjb25zdCBzdWZmaXggPSBvcHRpb25zPy5zdWZmaXggPyBgXyR7b3B0aW9ucy5zdWZmaXh9YCA6ICcnO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgbG9va3VwRmllbGRzOiBvcHRpb25zPy5sb29rdXBGaWVsZHNcbiAgICAgICAgICAgICAgICA/IG9wdGlvbnMubG9va3VwRmllbGRzXG4gICAgICAgICAgICAgICAgOiB0aGlzLmxvb2t1cEZpZWxkcyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogb3B0aW9ucz8uZm9ybUdyb3VwID8/IHRoaXMuZW50aXR5LFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgYCR7cHJlZml4fS5sb29rdXBfJHt0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnM/LmVudGl0eSkgfHwgdGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSl9JHtzdWZmaXh9YFxuICAgICAgICAgICAgKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBzZWFyY2hUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICBgJHtwcmVmaXh9Lmxvb2t1cF8ke1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnM/LmVudGl0eSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSlcbiAgICAgICAgICAgICAgICB9X3NlYXJjaF90aXRsZWBcbiAgICAgICAgICAgICkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgdHlwZTogJ2xvb2t1cCcsXG4gICAgICAgICAgICBtdWx0aXBsZTogb3B0aW9ucz8ubXVsdGlwbGUgIT09IGZhbHNlLFxuICAgICAgICAgICAgZGF0YUtleTogb3B0aW9ucz8uZGF0YUtleSA/PyAnaWQnLFxuICAgICAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkOiAnbGFiZWwnLFxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9Lm5vdGhpbmdfZm91bmRgKSxcbiAgICAgICAgICAgIGZpbHRlckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uZmlsdGVyYCksXG4gICAgICAgICAgICBjbGVhckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2xlYXJgKSxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2FuY2VsYCksXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LnNlbGVjdGApLFxuICAgICAgICAgICAgc2VhcmNoRmllbGRzOiB0aGlzLm1vdW50Rm9ybUZpZWxkKFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcyxcbiAgICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiB0aGlzLm1vdW50Rm9ybUZpZWxkKFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlYXJjaEdyaWRGaWVsZHMgPz8gdGhpcy5zZWFyY2hHcmlkRmllbGRzLFxuICAgICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTpcbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cFN1Z2dlc3Rpb25zT2JzZXJ2YWJsZS5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIHNlYXJjaE9ic2VydmFibGU6IHRoaXMubG9va3VwU2VhcmNoT2JzZXJ2YWJsZS5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIG9uTG9va3VwUmVxdWVzdDogKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvb2t1cFJlcXVlc3QodmFsdWUsIHByZWZpeCwgb3B0aW9ucyksXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgb25TZWFyY2hSZXF1ZXN0OiAoZXZlbnQ6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0KGV2ZW50LCBwcmVmaXgsIG9wdGlvbnMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKFxuICAgICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHByZWZpeDogc3RyaW5nXG4gICAgKTogdW5rbm93biB7XG4gICAgICAgIHJldHVybiBwYXRoXG4gICAgICAgICAgICAuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgcHJvcDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCB8fCByZXN1bHRbcHJvcF0gPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LmVtcHR5X2xhYmVsYClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlc3VsdFtwcm9wXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgICAgb2JqXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNWYWx1ZSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3VudEVudGl0eUZpbHRlcihlbnRpdHk6IEVudGl0eURlcGVuZGVuY3ksIHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZW50aXR5LmZpZWxkXG4gICAgICAgICAgICA/IGAoJHtlbnRpdHkubmFtZX0uJHtlbnRpdHkuZmllbGR9IGVxICcke3ZhbHVlW2VudGl0eS5maWVsZF19JylgXG4gICAgICAgICAgICA6IGAoJHtlbnRpdHkubmFtZX0gZXEgJyR7dmFsdWVbZW50aXR5Lm5hbWVdfScpYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Mb29rdXBSZXF1ZXN0KFxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICBwcmVmaXg6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IExvb2t1cE9wdGlvbnNcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbG9va3VwRmllbGRzID0gb3B0aW9ucz8ubG9va3VwRmllbGRzID8/IHRoaXMubG9va3VwRmllbGRzO1xuICAgICAgICBjb25zdCBsb29rdXBEaXNwbGF5RmllbGRzID0gbG9va3VwRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IHRoaXMubW91bnRGaWx0ZXJRdWVyeShcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbG9va3VwRmllbGRzIGFzIER5bmFtaWNUeXBlW10sXG4gICAgICAgICAgICBvcHRpb25zPy5kZWZhdWx0RmlsdGVyLFxuICAgICAgICAgICAgb3B0aW9ucz8uZHluYW1pY0ZpbHRlclxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBkaXNwbGF5RmllbGRzID0gbG9va3VwRGlzcGxheUZpZWxkcy5jb25jYXQoXG4gICAgICAgICAgICAob3B0aW9ucz8uc2VhcmNoR3JpZEZpZWxkcyA/PyB0aGlzLnNlYXJjaEdyaWRGaWVsZHMpLm1hcChcbiAgICAgICAgICAgICAgICAoeyBuYW1lIH0pID0+IG5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8ucXVlcnlGaWVsZHMpIHtcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmNvbmNhdChvcHRpb25zLnF1ZXJ5RmllbGRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmZpbHRlcihcbiAgICAgICAgICAgICh2LCBpKSA9PiBkaXNwbGF5RmllbGRzLmluZGV4T2YodikgPT09IGlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8uZW50aXR5RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5RmlsdGVyID0gb3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5XG4gICAgICAgICAgICAgICAgLm1hcCgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZW50aXR5LnZhbHVlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbHVlKG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke25ld1ZhbHVlLm1hcCgodmFsOiBhbnkpID0+IHRoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCB2YWwpKS5qb2luKCcgb3IgJyl9KWA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCBuZXdWYWx1ZSl9KWA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+ICEhZmlsdGVyKVxuICAgICAgICAgICAgICAgIC5qb2luKCcgYW5kICcpO1xuXG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgPyAoZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgKVxuICAgICAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvb2t1cFNlcnZpY2VcbiAgICAgICAgICAgIC5saXN0KFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc29ydDogb3B0aW9ucz8ubG9va3VwU29ydCxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5lbnRpdHkgPz8gdGhpcy5lbnRpdHksXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uZG9tYWluID8/IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgobGlzdDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0LmNvbnRlbnRzLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEl0ZW1MYWJlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlYXJjaFJlcXVlc3QoXG4gICAgICAgIGV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgcHJlZml4OiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IExvb2t1cE9wdGlvbnMgPSB7fVxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpcnN0LCByb3dzLCBtdWx0aVNvcnRNZXRhLCBmaWx0ZXJEYXRhIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgcGFnZSA9IChmaXJzdCBhcyBudW1iZXIpIC8gKHJvd3MgYXMgbnVtYmVyKTtcbiAgICAgICAgY29uc3Qgc29ydCA9XG4gICAgICAgICAgICAobXVsdGlTb3J0TWV0YSBhcyBTb3J0TWV0YVtdIHwgdW5kZWZpbmVkKSA/PyBvcHRpb25zLnNlYXJjaFNvcnQ7XG4gICAgICAgIGNvbnN0IGxvb2t1cEZpZWxkcyA9IG9wdGlvbnMubG9va3VwRmllbGRzID8/IHRoaXMubG9va3VwRmllbGRzO1xuICAgICAgICBjb25zdCBsb29rdXBEaXNwbGF5RmllbGRzID0gbG9va3VwRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IChvcHRpb25zLnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcylcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHsgbmFtZSB9KSA9PlxuICAgICAgICAgICAgICAgICAgICAoZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV0gIT09XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKGZpbHRlckRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW25hbWVdICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgIChmaWx0ZXJEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtuYW1lXSAhPT0gJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbXVsdGlwbGUsIGVycExvb2t1cHNGb3JtRmllbGQgfSA9XG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZCBhcyBFcnBMb29rdXBzRm9ybUZpZWxkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV07XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJwTG9va3Vwc0Zvcm1GaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb3VudEN1c3RvbUZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnBMb29rdXBzU2VhcmNoRmllbGQ6IGZvcm1GaWVsZCBhcyBFcnBMb29rdXBzRm9ybUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGF0YTogZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlIGFzIHN0cmluZykuZm9ybWF0KCdZWVlZLU1NLUREJyl9J2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAndGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSBhcyBzdHJpbmcpLmZvcm1hdCgnSEg6bW06c3MnKX0nYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlVGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSBhcyBzdHJpbmcpLmZvcm1hdCgpfSdgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2VudW0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50RW51bUZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBhcyBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7bmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdsb29rdXAnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gZXEgJyR7KHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnaWQnXX0nKWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcgYW5kICcpO1xuICAgICAgICBpZiAob3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlGaWx0ZXIgPSBvcHRpb25zLmVudGl0eURlcGVuZGVuY3lcbiAgICAgICAgICAgICAgICAubWFwKChlbnRpdHk6IEVudGl0eURlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRpdHkudmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt2YWx1ZS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgdmFsKSkuam9pbignIG9yICcpfSlgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7dGhpcy5tb3VudEVudGl0eUZpbHRlcihlbnRpdHksIHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KX0pYDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpbHRlcikgPT4gISFmaWx0ZXIpXG4gICAgICAgICAgICAgICAgLmpvaW4oJyBhbmQgJyk7XG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgPyAoZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgKVxuICAgICAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlclF1ZXJ5ID0gdGhpcy5tb3VudERlZmF1bHRGaWx0ZXIoXG4gICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRGaWx0ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZGVmYXVsdEZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVxuICAgICAgICAgICAgICAgID8gKGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pYClcbiAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGAoJHtkZWZhdWx0RmlsdGVyUXVlcnl9KWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZHluYW1pY0ZpbHRlclF1ZXJ5ID0gdGhpcy5tb3VudER5bmFtaWNGaWx0ZXIoXG4gICAgICAgICAgICBvcHRpb25zLmR5bmFtaWNGaWx0ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZHluYW1pY0ZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVxuICAgICAgICAgICAgICAgID8gKGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYClcbiAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGAoJHtkeW5hbWljRmlsdGVyUXVlcnl9KWApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlGaWVsZHMgPSBsb29rdXBEaXNwbGF5RmllbGRzLmNvbmNhdChcbiAgICAgICAgICAgIChvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgPz8gdGhpcy5zZWFyY2hHcmlkRmllbGRzKVxuICAgICAgICAgICAgICAgIC5jb25jYXQob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzID8/IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnF1ZXJ5RmllbGRzKSB7XG4gICAgICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5jb25jYXQob3B0aW9ucy5xdWVyeUZpZWxkcyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5maWx0ZXIoXG4gICAgICAgICAgICAodiwgaSkgPT4gZGlzcGxheUZpZWxkcy5pbmRleE9mKHYpID09PSBpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5sb29rdXBTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdChcbiAgICAgICAgICAgICAgICB7IHBhZ2UsIHNvcnQsIGZpbHRlclF1ZXJ5LCBkaXNwbGF5RmllbGRzIH0sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5lbnRpdHkgPz8gdGhpcy5lbnRpdHksXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kb21haW4gPz8gdGhpcy5kb21haW4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlID8/IHRoaXMuc2VydmljZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBDcmlhciB1bSBtYXBhIGRlIGNhbXBvcyBjb20gbWF4TGVuZ3RoIGRlZmluaWRvXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkc1dpdGhNYXhMZW5ndGggPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihvcHRpb25zLnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzID8/IHRoaXMuc2VhcmNoR3JpZEZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgIF0uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heExlbmd0aCcgaW4gZmllbGQgPyBmaWVsZC5tYXhMZW5ndGggOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkLnR5cGUgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT09ICd0ZXh0QXJlYScpXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNXaXRoTWF4TGVuZ3RoLnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoIGFzIG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkRGF0YTogbGlzdC5jb250ZW50cy5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcGxpY2FyIG1heExlbmd0aCBub3MgY2FtcG9zIHF1ZSBwb3NzdWVtIGEgY29uZmlndXJhw6fDo29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNXaXRoTWF4TGVuZ3RoLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXhMZW5ndGgsIGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0TmVzdGVkVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmaWVsZFZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5lc3RlZFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUuc3Vic3RyaW5nKDAsIG1heExlbmd0aCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uLidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb2Nlc3NlZEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEl0ZW1MYWJlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxSZWNvcmRzOiBsaXN0LnRvdGFsRWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cFNlYXJjaE9ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtTGFiZWwoXG4gICAgICAgIGl0ZW06IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwcmVmaXg6IHN0cmluZyxcbiAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkczogc3RyaW5nW11cbiAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbG9va3VwRGlzcGxheUZpZWxkc1xuICAgICAgICAgICAgLm1hcCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3AoaXRlbSwgZmllbGQsIHByZWZpeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1bZmllbGRdID8/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5lbXB0eV9sYWJlbGApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIC0gJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsdHJvIGRlIHVtIGNhbXBvIGRlIGRhdGEgYSBwYXJ0aXIgZG8gdGV4dG8gZGlnaXRhZG8gbm8gYXV0b2NvbXBsZXRlLlxuICAgICAqXG4gICAgICogQ2FtcG8gZGUgZGF0YSBuw6NvIGFjZWl0YSBgY29udGFpbmluZ2AsIGVudMOjbyBvIHRleHRvIHPDsyB2aXJhIGZpbHRyb1xuICAgICAqIHF1YW5kbyDDqSB1bWEgZGF0YSB2w6FsaWRhIG5vIGZvcm1hdG8gZG8gcHLDs3ByaW8gY2FtcG86IGB2aWV3OiAnbW9udGgnYFxuICAgICAqIGzDqiBtw6pzL2FubyBlIGNvbnN1bHRhIG8gbcOqcyBpbnRlaXJvOyBub3MgZGVtYWlzIGNhc29zIGzDqiBhIGRhdGFcbiAgICAgKiBjb21wbGV0YSBlIGNvbnN1bHRhIG8gZGlhLiBUZXh0byBxdWUgbsOjbyDDqSBkYXRhIGRldm9sdmUgYG51bGxgIGUgb1xuICAgICAqIGNhbXBvIGZpY2EgZGUgZm9yYSBkbyBmaWx0cm8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBtb3VudERhdGVGaWx0ZXIoZmllbGQ6IER5bmFtaWNUeXBlLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGlzTW9udGhWaWV3ID0gKGZpZWxkIGFzIENhbGVuZGFyRmllbGRDb25maWcpLnZpZXcgPT09ICdtb250aCc7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBtb21lbnQoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlckZvcm1hdHMoZmllbGQsIGlzTW9udGhWaWV3KSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXBhcnNlZFZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNb250aFZpZXcpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RGF5ID0gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgICAgICAgIC5zdGFydE9mKCdtb250aCcpXG4gICAgICAgICAgICAgICAgLmZvcm1hdChRVUVSWV9EQVRFX0ZPUk1BVCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhc3REYXkgPSBwYXJzZWRWYWx1ZVxuICAgICAgICAgICAgICAgIC5jbG9uZSgpXG4gICAgICAgICAgICAgICAgLmVuZE9mKCdtb250aCcpXG4gICAgICAgICAgICAgICAgLmZvcm1hdChRVUVSWV9EQVRFX0ZPUk1BVCk7XG5cbiAgICAgICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZ2UgJyR7Zmlyc3REYXl9JyBhbmQgJHtmaWVsZC5uYW1lfSBsZSAnJHtsYXN0RGF5fScpYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZXEgJyR7cGFyc2VkVmFsdWUuZm9ybWF0KFFVRVJZX0RBVEVfRk9STUFUKX0nKWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0b3MgZW0gcXVlIG8gdGV4dG8gZGlnaXRhZG8gZW0gdW0gY2FtcG8gZGUgZGF0YSDDqSBpbnRlcnByZXRhZG8uXG4gICAgICpcbiAgICAgKiBBIG9yZGVtIGRvcyBjb21wb25lbnRlcyBlIG8gc2VwYXJhZG9yIHbDqm0gZG8gbG9jYWxlIGRvIHVzdcOhcmlvIOKAlCBvXG4gICAgICogYExvY2FsZVNlcnZpY2VgIGRhIHBsYXRhZm9ybWEgYXBsaWNhIGVzc2UgbG9jYWxlIG5vIG1vbWVudCwgZW50w6NvXG4gICAgICogYHB0LUJSYCBsw6ogYGRkL21tL2FhYWFgIGUgYGVuLVVTYCBsw6ogYG1tL2RkL2FhYWFgLiBRdWFuZG8gbyBjYW1wb1xuICAgICAqIGRlZmluZSBvIHByw7NwcmlvIGZvcm1hdG8gZGUgZXhpYmnDp8OjbywgZWxlIHRlbSBwcmlvcmlkYWRlOiDDqSBvIGZvcm1hdG9cbiAgICAgKiBxdWUgbyB1c3XDoXJpbyB2w6ogbm8gaW5wdXQg4oCUIGBkYXRlRm9ybWF0YCBubyBkaWFsZXRvIG5hdGl2byBkb1xuICAgICAqIGBzLWRhdGVwaWNrZXJgLCBvdSBgY2FsZW5kYXJMb2NhbGVPcHRpb25zLmRhdGVGb3JtYXRgIChkZXByZWNhdGVkKSBub1xuICAgICAqIGRpYWxldG8gbGVnYWRvIGRvIFByaW1lTkcuIENhZGEgZm9ybWF0byB0YW1iw6ltIMOpIGFjZWl0byBzZW0gbyB6ZXJvIMOgXG4gICAgICogZXNxdWVyZGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRlRmlsdGVyRm9ybWF0cyhcbiAgICAgICAgZmllbGQ6IER5bmFtaWNUeXBlLFxuICAgICAgICBpc01vbnRoVmlldzogYm9vbGVhblxuICAgICk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgeyBkYXRlRm9ybWF0LCBjYWxlbmRhckxvY2FsZU9wdGlvbnMgfSA9XG4gICAgICAgICAgICBmaWVsZCBhcyBDYWxlbmRhckZpZWxkQ29uZmlnO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkRm9ybWF0ID0gZGF0ZUZvcm1hdFxuICAgICAgICAgICAgPyB0aGlzLmZyb21EYXRlcGlja2VyRGF0ZUZvcm1hdChkYXRlRm9ybWF0KVxuICAgICAgICAgICAgOiB0aGlzLmZyb21MZWdhY3lDYWxlbmRhckRhdGVGb3JtYXQoXG4gICAgICAgICAgICAgICAgICBjYWxlbmRhckxvY2FsZU9wdGlvbnM/LmRhdGVGb3JtYXRcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBsb2NhbGVGb3JtYXQgPSBtb21lbnQubG9jYWxlRGF0YSgpLmxvbmdEYXRlRm9ybWF0KCdMJyk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0ID1cbiAgICAgICAgICAgIGZpZWxkRm9ybWF0ID8/XG4gICAgICAgICAgICAoaXNNb250aFZpZXcgPyB0aGlzLndpdGhvdXREYXlUb2tlbihsb2NhbGVGb3JtYXQpIDogbG9jYWxlRm9ybWF0KTtcblxuICAgICAgICBjb25zdCBzaG9ydEZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC9EKy9nLCAnRCcpLnJlcGxhY2UoL00rL2csICdNJyk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdCA9PT0gc2hvcnRGb3JtYXQgPyBbZm9ybWF0XSA6IFtmb3JtYXQsIHNob3J0Rm9ybWF0XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0ZSBvIGBkYXRlRm9ybWF0YCBuYXRpdm8gZG8gYHMtZGF0ZXBpY2tlcmAgKGV4LjogYGRkL01NL3l5eXlgKVxuICAgICAqIHBhcmEgbyBlcXVpdmFsZW50ZSBlbSBtb21lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmcm9tRGF0ZXBpY2tlckRhdGVGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAveXl5eXx5eXxNTXxtbXxkZHxkL2csXG4gICAgICAgICAgICAodG9rZW4pID0+IERBVEVQSUNLRVJfREFURV9UT0tFTlNbdG9rZW5dXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydGUgbyBgY2FsZW5kYXJMb2NhbGVPcHRpb25zLmRhdGVGb3JtYXRgIGxlZ2FkbyAoZGlhbGV0byBQcmltZU5HLFxuICAgICAqIGV4LjogYGRkL21tL3l5YCkgcGFyYSBvIGVxdWl2YWxlbnRlIGVtIG1vbWVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZyb21MZWdhY3lDYWxlbmRhckRhdGVGb3JtYXQoZm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAvZGR8ZHxtbXxtfHl5fHkvZyxcbiAgICAgICAgICAgICh0b2tlbikgPT4gTEVHQUNZX0NBTEVOREFSX0RBVEVfVE9LRU5TW3Rva2VuXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmUgbyBjb21wb25lbnRlIGRlIGRpYSBkZSB1bSBmb3JtYXRvIGRlIGRhdGEgKi9cbiAgICBwcml2YXRlIHdpdGhvdXREYXlUb2tlbihmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGZvcm1hdC5yZXBsYWNlKC9bQS1aYS16XS9nLCAnJylbMF0gPz8gJy8nO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5zcGxpdCgvW15BLVphLXpdLylcbiAgICAgICAgICAgIC5maWx0ZXIoKHRva2VuKSA9PiAhL15EKyQvLnRlc3QodG9rZW4pKVxuICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdW50Q3VzdG9tRmlsdGVyKHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkLFxuICAgICAgICBmaWx0ZXJEYXRhLFxuICAgIH06IHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkOiBFcnBMb29rdXBzRm9ybUZpZWxkO1xuICAgICAgICBmaWx0ZXJEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBlcnBMb29rdXBzRm9ybUZpZWxkLCBuYW1lIH0gPSBlcnBMb29rdXBzU2VhcmNoRmllbGQ7XG5cbiAgICAgICAgcmV0dXJuIGAoJHsoZXJwTG9va3Vwc0Zvcm1GaWVsZD8uY3VzdG9tRmlsdGVycyA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAoKHsgb3BlcmF0b3IsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyRGF0YVtuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKGNvbnRhaW5pbmcobG93ZXIoJHtuYW1lfSksIGxvd2VyKCcke3ZhbHVlfScpKSlgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzTm90IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9PT0gRW51bUxvZ2ljYWxPcGVyYXRvci5JcykgJiZcbiAgICAgICAgICAgICAgICAgICAgIXZhbHVlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gJHtvcGVyYXRvcn0gbnVsbClgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gJHtvcGVyYXRvcn0gJyR7dmFsdWV9JylgO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcgYW5kICcpfSlgO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUoXG4gICAgICAgIG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHBhdGg6IHN0cmluZ1xuICAgICk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoY3VycmVudDogdW5rbm93biwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIHR5cGVvZiBjdXJyZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPYmogPSBjdXJyZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50T2JqW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRPYmpba2V5XVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIG9iaiBhcyB1bmtub3duKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE5lc3RlZFZhbHVlKFxuICAgICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiB1bmtub3duXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IGxhc3RLZXkgPSBrZXlzLnBvcCgpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBrZXlzLnJlZHVjZSgoY3VycmVudDogdW5rbm93biwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIHR5cGVvZiBjdXJyZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPYmogPSBjdXJyZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50T2JqW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRPYmpba2V5XVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIG9iaiBhcyB1bmtub3duKTtcbiAgICAgICAgaWYgKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiBsYXN0S2V5KSB7XG4gICAgICAgICAgICAodGFyZ2V0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtsYXN0S2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
615
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbnItZXJweC1hbmd1bGFyLWNvbXBvbmVudHMvbG9va3Vwcy9zcmMvbGliL2VycC1sb29rdXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQVM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsNkNBQTZDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gsTUFBTSwyQkFBMkIsR0FBMkI7SUFDeEQsRUFBRSxFQUFFLElBQUk7SUFDUixDQUFDLEVBQUUsR0FBRztJQUNOLEVBQUUsRUFBRSxJQUFJO0lBQ1IsQ0FBQyxFQUFFLEdBQUc7SUFDTixFQUFFLEVBQUUsTUFBTTtJQUNWLENBQUMsRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBMkI7SUFDbkQsSUFBSSxFQUFFLE1BQU07SUFDWixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLENBQUMsRUFBRSxHQUFHO0NBQ1QsQ0FBQztBQWdDRixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFOLElBQVksbUJBeUJYO0FBekJELFdBQVksbUJBQW1CO0lBQzNCLCtEQUErRDtJQUMvRCxnQ0FBUyxDQUFBO0lBQ1Qsa0VBQWtFO0lBQ2xFLGdDQUFTLENBQUE7SUFDVCx1REFBdUQ7SUFDdkQsZ0NBQVMsQ0FBQTtJQUNULGdFQUFnRTtJQUNoRSxnQ0FBUyxDQUFBO0lBQ1QsbURBQW1EO0lBQ25ELGdDQUFTLENBQUE7SUFDVCw2REFBNkQ7SUFDN0Qs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QUFDO1lBQ2pELE1BQWtDLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2FsZW5kYXJGaWVsZENvbmZpZyxcbiAgICBEeW5hbWljVHlwZSxcbiAgICBMb29rdXBGaWVsZENvbmZpZyxcbn0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0nO1xuaW1wb3J0IHsgU29ydE1ldGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycExvb2t1cHNTZXJ2aWNlIH0gZnJvbSAnLi9lcnAtbG9va3Vwcy5zZXJ2aWNlJztcblxuLyoqIEZvcm1hdG8gZGUgZGF0YSBlc3BlcmFkbyBwZWxhIGNvbnN1bHRhICovXG5jb25zdCBRVUVSWV9EQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcblxuLyoqXG4gKiBFcXVpdmFsZW50ZSBlbSBtb21lbnQgZGUgY2FkYSB0b2tlbiBkbyBkaWFsZXRvIGxlZ2FkbyAoUHJpbWVORykgdXNhZG8gcG9yXG4gKiBgY2FsZW5kYXJMb2NhbGVPcHRpb25zLmRhdGVGb3JtYXRgIOKAlCDDqSBvIG1lc21vIGRpYWxldG8gcXVlXG4gKiBgY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdGAgKGBAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RhYmxlYClcbiAqIGNvbnZlcnRlIHBhcmEgZm9ybWF0YXIgY29sdW5hcyBkZSBkYXRhIG5hIGdyaWQgYSBwYXJ0aXIgZGVzc2EgcHJvcHJpZWRhZGUuXG4gKi9cbmNvbnN0IExFR0FDWV9DQUxFTkRBUl9EQVRFX1RPS0VOUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBkZDogJ0REJyxcbiAgICBkOiAnRCcsXG4gICAgbW06ICdNTScsXG4gICAgbTogJ00nLFxuICAgIHl5OiAnWVlZWScsXG4gICAgeTogJ1lZJyxcbn07XG5cbi8qKlxuICogRXF1aXZhbGVudGUgZW0gbW9tZW50IGRlIGNhZGEgdG9rZW4gZG8gZGlhbGV0byBuYXRpdm8gZG8gYHMtZGF0ZXBpY2tlcmAsXG4gKiB1c2FkbyBwZWxhIHByb3ByaWVkYWRlIGBkYXRlRm9ybWF0YCAoYSBxdWUgbyBgQ2FsZW5kYXJGaWVsZENvbXBvbmVudGBcbiAqIHJlcGFzc2EgZGlyZXRvIGFvIGBzLWRhdGVwaWNrZXJgKS4gQXF1aSBgeXlgIMOpIGFubyBjb20gMiBkw61naXRvcyDigJQgYW9cbiAqIGNvbnRyw6FyaW8gZG8gZGlhbGV0byBkbyBQcmltZU5HLCBvbmRlIGB5eWAgdGVtIDQgZMOtZ2l0b3MuXG4gKi9cbmNvbnN0IERBVEVQSUNLRVJfREFURV9UT0tFTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgeXl5eTogJ1lZWVknLFxuICAgIHl5OiAnWVknLFxuICAgIE1NOiAnTU0nLFxuICAgIG1tOiAnTU0nLFxuICAgIGRkOiAnREQnLFxuICAgIGQ6ICdEJyxcbn07XG5cbi8qKiBFbnRpZGFkZXMgZGUgcXVlIGRlcGVuZGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RGVwZW5kZW5jeSB7XG4gICAgLyoqIE5vbWUgZGEgZW50aWRhZGUgcXVlIGRlcGVuZGUgKHBhaSkgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIENhbXBvIGRhIGVudGlkYWRlIHBhaSBxdWUgc2Vyw6EgY29tcGFyYWRvICovXG4gICAgZmllbGQ/OiBzdHJpbmc7XG4gICAgLyoqIFZhbG9yIGRhIGVudGlkYWRlIHBhaSAqL1xuICAgIHZhbHVlOiAoKSA9PiB1bmtub3duO1xufVxuXG4vKiogRmlsdHJvIHBhZHLDo28gYXBsaWNhZG8gZW0gdG9kYXMgcmVxdWlzacOnw7VlcyBkYSBlbnRpZGFkZS4gUG9yIHBhZHLDo28gZmlsdHJhIHJlZ2lzdHJvcyBuw6NvIGV4Y2x1aWRvcyAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0RmlsdGVyIHtcbiAgICAvKiogQ2FtcG8gcXVlIHNlcsOhIGZpbHRyYWRvICovXG4gICAgZmllbGQ6IHN0cmluZyB8IERlZmF1bHRGaWx0ZXI7XG4gICAgLyoqIENvbXBhcmHDp8OjbyBxdWUgc2Vyw6EgYXBsaWNhZGEgbmEgY29uc3VsdGEgKi9cbiAgICBvcGVyYXRvcjogRW51bUxvZ2ljYWxPcGVyYXRvcjtcbiAgICAvKiogVmFsb3JlcyBxdWUgc2Vyw6NvIGJ1c2NhZG9zICovXG4gICAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqIEZpbHRybyBkaW5hbWljbyBwYXJhIGNvbnN1bHRhcyBtYWlzIGNvbXBsZXhhcyAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmlsdGVyIHtcbiAgICAvKiogQ2FtcG8gcXVlIHNlcsOhIGZpbHRyYWRvICovXG4gICAgZmllbGQ6ICgpID0+IHN0cmluZztcbiAgICAvKiogQ29tcGFyYcOnw6NvIHF1ZSBzZXLDoSBhcGxpY2FkYSBuYSBjb25zdWx0YSAqL1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIC8qKiBWYWxvcmVzIHF1ZSBzZXLDo28gYnVzY2Fkb3MgKi9cbiAgICB2YWx1ZTogKCkgPT4gdW5rbm93bjtcbn1cblxuLyoqIEZpbHRlciBTeXN0ZW0gUXVlcnkgT3B0aW9uIC0gT3BlcmF0b3JzIHN1cHBvcnRlZCBpbiB0aGUgZXhwcmVzc2lvbiBsYW5ndWFnZSAqL1xuZXhwb3J0IGVudW0gRW51bUxvZ2ljYWxPcGVyYXRvciB7XG4gICAgLyoqIEVxdWFsIChFeDogL1N1cHBsaWVycz8kZmlsdGVyPUFkZHJlc3MvQ2l0eSBlcSAnUmVkbW9uZCcpICovXG4gICAgRXEgPSAnZXEnLFxuICAgIC8qKiBOb3QgZXF1YWwgKEV4OiAvU3VwcGxpZXJzPyRmaWx0ZXI9QWRkcmVzcy9DaXR5IG5lICdMb25kb24nKSAqL1xuICAgIE5lID0gJ25lJyxcbiAgICAvKiogR3JlYXRlciB0aGFuIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgZ3QgMjApICovXG4gICAgR3QgPSAnZ3QnLFxuICAgIC8qKiBHcmVhdGVyIHRoYW4gb3IgZXF1YWwgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBnZSAxMCkgKi9cbiAgICBHZSA9ICdnZScsXG4gICAgLyoqIExlc3MgdGhhbiAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGx0IDIwKSovXG4gICAgTHQgPSAnbHQnLFxuICAgIC8qKiBMZXNzIHRoYW4gb3IgZXF1YWwgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBsZSAxMDApKi9cbiAgICBMZSA9ICdsZScsXG4gICAgLyoqIExvZ2ljYWwgYW5kXHQgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBsZSAyMDAgYW5kIFByaWNlIGd0IDMuNSkqL1xuICAgIEFuZCA9ICdhbmQnLFxuICAgIC8qKiBMb2dpY2FsIG9yIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbGUgMy41IG9yIFByaWNlIGd0IDIwMCkqL1xuICAgIE9yID0gJ29yJyxcbiAgICAvKiogTG9naWNhbCBuZWdhdGlvbiAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPW5vdCBlbmRzd2l0aChEZXNjcmlwdGlvbiwnbWlsaycpKSovXG4gICAgTm90ID0gJ25vdCcsXG4gICAgLyoqIExvZ2ljYWwgaXMgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1pZCBpcyBudWxsICovXG4gICAgSXMgPSAnaXMnLFxuICAgIC8qKiBOZWdhdGlvbiBvZiBsb2dpY2FsIGlzIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9aWQgaXMgbm90IG51bGwgKi9cbiAgICBJc05vdCA9ICdpcyBub3QnLFxuICAgIC8qKiBDb250YWlucyBzdHJpbmcgdmFsdWUgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1jb250YWluaW5nKGxvd2VyKG5hbWUpLCBsb3dlcignbXkgbmFtZScpKSkgKi9cbiAgICBDb250YWlucyA9ICdjb250YWluaW5nJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0T3B0aW9ucyB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBvcmRlcjogbnVtYmVyO1xufVxuXG4vKiogUGFyw6JtZXRyb3MgcGFyYSBjdXN0b21pemHDp8O1ZXMgZG8gbG9va3VwICovXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cE9wdGlvbnMge1xuICAgIC8qKiBOb21lIGRhIGVudGlkYWRlICovXG4gICAgZW50aXR5Pzogc3RyaW5nO1xuICAgIC8qKiBOb21lIGRvIGZvcm1Hcm91cCAqL1xuICAgIGZvcm1Hcm91cD86IHN0cmluZztcbiAgICAvKiogRmlsdHJvIHBhZHLDo28gKi9cbiAgICBkZWZhdWx0RmlsdGVyPzogRGVmYXVsdEZpbHRlcltdO1xuICAgIC8qKiBGaWx0cm8gZGluw6JtaWNvICovXG4gICAgZHluYW1pY0ZpbHRlcj86IER5bmFtaWNGaWx0ZXJbXTtcbiAgICAvKiogQ2FtcG9zIGRvIGxvb2t1cCAoYXV0b2NvbXBsZXRlKSAqL1xuICAgIGxvb2t1cEZpZWxkcz86IChEeW5hbWljVHlwZSB8IEVycExvb2t1cHNGb3JtRmllbGQpW107XG4gICAgLyoqIENhbXBvcyBxdWUgc2Vyw6NvIHNvbGljaXRhZG9zIG5hIGNvbnN1bHRhICovXG4gICAgcXVlcnlGaWVsZHM/OiBzdHJpbmdbXTtcbiAgICAvKiogQ2FtcG9zIGV4aWJpZG9zIG5vIGZpbHRybyBkYSBtb2RhbCBkZSBsaXN0YWdlbSAqL1xuICAgIHNlYXJjaEZpZWxkcz86IChEeW5hbWljVHlwZSB8IEVycExvb2t1cHNGb3JtRmllbGQpW107XG4gICAgLyoqIENhbXBvcyBleGliaWRvcyBuYSBncmlkIGRhIG1vZGFsIGRlIGxpc3RhZ2VtICovXG4gICAgLyoqIERlZmluZSBzZSBvIGxvb2t1cCBwZXJtaXRpcsOhIG11bHRpIHNlbGXDp8OjbyAqL1xuICAgIHNlYXJjaEdyaWRGaWVsZHM/OiAoRHluYW1pY1R5cGUgfCBFcnBMb29rdXBzRm9ybUZpZWxkKVtdO1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICAvKiogRW50aWRhZGVzIGRlIHF1ZSBkZXBlbmRlICovXG4gICAgZW50aXR5RGVwZW5kZW5jeT86IEVudGl0eURlcGVuZGVuY3lbXTtcbiAgICAvKiogUHJlZml4byB1dGlsaXphZG8gcGFyYSBtb250YXIgb3MgbGFiZWxzIChwb3IgcGFkcsOjbyB1dGlsaXphIGRvbcOtbmlvIGUgc2VydmnDp28pICovXG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIC8qKiBTdWZpeG8gdXRpbGl6YWRvIHBhcmEgbW9udGFyIG9zIGxhYmVscyAocG9yIHBhZHLDo28gw6kgdmF6aW8pICovXG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIC8qKiBEb23DrW5pbyAqL1xuICAgIGRvbWFpbj86IHN0cmluZztcbiAgICAvKiogU2VydmnDp28gKi9cbiAgICBzZXJ2aWNlPzogc3RyaW5nO1xuICAgIC8qKiBEYXRhIGtleSAqL1xuICAgIGRhdGFLZXk/OiBzdHJpbmc7XG4gICAgLyoqIENhbXBvcyBwYXJhIG9yZGVuYcOnw6NvIGRvIGxvb2t1cCAoYXV0b2NvbXBsZXRlKSovXG4gICAgbG9va3VwU29ydD86IFNvcnRPcHRpb25zW107XG4gICAgLyoqIENhbXBvcyBwYXJhIGEgb3JkZW5hw6fDo28gYW8gYWJyaXIgYSBtb2RhbCBkZSBsaXN0YWdlbSAqL1xuICAgIHNlYXJjaFNvcnQ/OiBTb3J0T3B0aW9uc1tdO1xufVxuXG5leHBvcnQgdHlwZSBDdXN0b21GaWx0ZXJGdW5jdGlvbjxUID0gdW5rbm93bj4gPSAob3B0aW9uczoge1xuICAgIHZhbHVlOiBUO1xuICAgIGZpbHRlckRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufSkgPT4gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDdXN0b21GaWx0ZXI8VCA9IHVua25vd24+ID0ge1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIHZhbHVlOiBzdHJpbmcgfCBDdXN0b21GaWx0ZXJGdW5jdGlvbjxUPjtcbn07XG5cbmV4cG9ydCBjbGFzcyBFcnBMb29rdXBzRm9ybUZpZWxkPFQgPSB1bmtub3duPiB7XG4gICAgcHVibGljIG5hbWUhOiBzdHJpbmc7XG4gICAgcHVibGljIHR5cGUhOiBzdHJpbmc7XG4gICAgcHVibGljIG1heExlbmd0aD86IG51bWJlcjtcbiAgICBwdWJsaWMgbXVsdGlwbGU/OiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlcnBMb29rdXBzRm9ybUZpZWxkPzoge1xuICAgICAgICAgICAgY3VzdG9tRmlsdGVycz86IEN1c3RvbUZpbHRlcjxUPltdO1xuICAgICAgICB9LFxuICAgICAgICBmaWVsZENvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuICAgICkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkQ29uZmlnKTtcbiAgICB9XG59XG5cbi8vIFRPRE86IHN0cmljdC1yZXZpZXc6IEBJbmplY3RhYmxlIHJlbW92aWRvIOKAlCBlc3RhIGNsYXNzZSBuw6NvIHBvZGUgc2VyIGluamV0YWRhIHZpYSBESSBkbyBBbmd1bGFyLlxuLy8gT3MgcGFyw6JtZXRyb3MgZG8gY29uc3RydWN0b3IgbsOjbyBzw6NvIHRpcG9zIGluamV0w6F2ZWlzIChwcmltaXRpdm9zIG91IHNlbSA/cHJvdikuIEluc3RhbmNpYXIgY29tIGBuZXdgLlxuLyoqXG4gKiBFcnAgTG9va3Vwc1xuICogQGNsYXNzIEVycExvb2t1cHNcbiAqL1xuZXhwb3J0IGNsYXNzIEVycExvb2t1cHMge1xuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgcHVibGljIGxvb2t1cFNlYXJjaE9ic2VydmFibGUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQ3JpYcOnw6NvIGRlIHVtIGxvb2t1cC5cbiAgICAgKiBAcGFyYW0gZW50aXR5IE5vbWUgZGEgZW50aWRhZGUuXG4gICAgICogQHBhcmFtIGxvb2t1cEZpZWxkcyBDYW1wb3MgZXhpYmlkb3Mgbm8gYXV0b2NvbXBsZXRlLlxuICAgICAqIEBwYXJhbSBzZWFyY2hGaWVsZHMgQ2FtcG9zIGV4aWJpZG9zIG5vIGZpbHRybyBkZW50cm8gZGEgbW9kYWwuXG4gICAgICogQHBhcmFtIHNlYXJjaEdyaWRGaWVsZHMgQ2FtcG9zIGV4aWJpZG9zIG5hIHRhYmVsYSBkZW50cm8gZGEgbW9kYWwuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgbG9va3VwU2VydmljZTogRXJwTG9va3Vwc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBlbnRpdHk6IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIGxvb2t1cEZpZWxkczogRHluYW1pY1R5cGVbXSxcbiAgICAgICAgcHVibGljIHNlYXJjaEZpZWxkczogKER5bmFtaWNUeXBlIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXSxcbiAgICAgICAgcHVibGljIHNlYXJjaEdyaWRGaWVsZHM6IER5bmFtaWNUeXBlW10sXG4gICAgICAgIHByb3RlY3RlZCBkb21haW46IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIHNlcnZpY2U6IHN0cmluZ1xuICAgICkge1xuICAgICAgICB0aGlzLmVudGl0eSA9IGVudGl0eTtcbiAgICAgICAgdGhpcy5kb21haW4gPSBkb21haW47XG4gICAgICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7XG4gICAgICAgIHRoaXMubG9va3VwRmllbGRzID0gbG9va3VwRmllbGRzID8/IFtdO1xuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHNlYXJjaEZpZWxkcyA/PyBbXTtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRmllbGRzID0gc2VhcmNoR3JpZEZpZWxkcyA/PyBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TbmFrZUNhc2UodmFsdWU6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvKFthLXowLTldKShbQS1aXSkvZywgJyQxXyQyJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oW0EtWl0rKShbQS1aXVthLXpdKS9nLCAnJDFfJDInKVxuICAgICAgICAgICAgLnJlcGxhY2UoL15fLywgJycpXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnRGb3JtRmllbGQoXG4gICAgICAgIGZpZWxkczogKER5bmFtaWNUeXBlIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXSxcbiAgICAgICAgcHJlZml4OiBzdHJpbmdcbiAgICApOiBEeW5hbWljVHlwZVtdIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBsZXQgdHJhbnNsYXRpb25LZXkgPSBgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV8ke3RoaXMudG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YDtcblxuICAgICAgICAgICAgbGV0IGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG5cbiAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gdHJhbnNsYXRpb25LZXkpIHtcbiAgICAgICAgICAgICAgICAvLyBNYW50ZXIgY29tcGF0aWJpbGlkYWRlIGNvbSBvcyBsb29rdXBzIGF0dWFpcyBhdMOpIHRvZG9zIGFqdXN0YXJlbVxuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkLm5hbWUuc3BsaXQoJy4nKS5qb2luKCdfJyk7XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25LZXkgPSBgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV8ke3RoaXMudG9TbmFrZUNhc2UoZmllbGROYW1lKX1gO1xuICAgICAgICAgICAgICAgIGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB9IGFzIER5bmFtaWNUeXBlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnREZWZhdWx0RmlsdGVyKFxuICAgICAgICBkZWZhdWx0RmlsdGVyOiBEZWZhdWx0RmlsdGVyW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdleGNsdWlkbycsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3IuRXEsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBbJ2ZhbHNlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRGaWx0ZXJcbiAgICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICcoJyArXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlci52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIub3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuQ29udGFpbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKGxvd2VyKCR7ZmlsdGVyLmZpZWxkfSksIGxvd2VyKCcke3ZhbHVlfScpKWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyLm9wZXJhdG9yID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLm9wZXJhdG9yID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVudW1Mb2dpY2FsT3BlcmF0b3IuSXMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsdGVyLmZpZWxkfSAke2ZpbHRlci5vcGVyYXRvcn0gbnVsbGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWx0ZXIuZmllbGR9ICR7ZmlsdGVyLm9wZXJhdG9yfSAnJHt2YWx1ZX0nYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignIG9yICcpICtcbiAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIGFuZCAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnREeW5hbWljRmlsdGVyKFxuICAgICAgICBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFkeW5hbWljRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkeW5hbWljRmlsdGVyXG4gICAgICAgICAgICAubWFwKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0gZmlsdGVyLnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIuZmllbGQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlci5vcGVyYXRvcjtcblxuICAgICAgICAgICAgICAgIGlmICghKHZhbHVlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbdmFsdWVzXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnKCcgK1xuICAgICAgICAgICAgICAgICAgICAodmFsdWVzIGFzIHVua25vd25bXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgY29udGFpbmluZyhsb3dlcigke2ZpZWxkfSksIGxvd2VyKCcke1N0cmluZyh2YWx1ZSl9JykpYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcGVyYXRvciA9PT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuSXMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmllbGR9ICR7b3BlcmF0b3J9IG51bGxgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWVsZH0gJHtvcGVyYXRvcn0gJyR7U3RyaW5nKHZhbHVlKX0nYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignIG9yICcpICtcbiAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIGFuZCAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnRGaWx0ZXJRdWVyeShcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgbG9va3VwRmllbGRzOiBEeW5hbWljVHlwZVtdLFxuICAgICAgICBkZWZhdWx0RmlsdGVyPzogRGVmYXVsdEZpbHRlcltdLFxuICAgICAgICBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5OiBzdHJpbmc7XG5cbiAgICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIoTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gbG9va3VwRmllbGRzXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7ZmllbGQubmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzYW5pdGl6ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtmaWVsZC5uYW1lfSBlcSAnJHtzYW5pdGl6ZWRWYWx1ZX0nKWA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb3VudERhdGVGaWx0ZXIoZmllbGQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZXEgJyR7dmFsdWV9JylgO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiAhIWZpbHRlcilcbiAgICAgICAgICAgICAgICAuam9pbignIG9yICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBsb29rdXBGaWVsZHNcbiAgICAgICAgICAgICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgKGNvbnRhaW5pbmcobG93ZXIoJHtmaWVsZC5uYW1lfSksIGxvd2VyKCcke3ZhbHVlLnJlcGxhY2UoL1xcXFwvZywgJycpLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nKSkpYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50RGF0ZUZpbHRlcihmaWVsZCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+ICEhZmlsdGVyKVxuICAgICAgICAgICAgICAgIC5qb2luKCcgb3IgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0RmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RGVmYXVsdEZpbHRlcihkZWZhdWx0RmlsdGVyKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2VtIG5lbmh1bSBjYW1wbyBjb25zdWx0w6F2ZWwgcGFyYSBvIHRleHRvIGRpZ2l0YWRvIG8gZmlsdHJvIGRvIHRleHRvXG4gICAgICAgICAqIMOpIG9taXRpZG86IHVtIGdydXBvIHZhemlvIChgKClgKSDDqSByZWplaXRhZG8gcGVsbyBiYWNrZW5kIGNvbSA1MDAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZGVmYXVsdEZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGZpbHRlclF1ZXJ5XG4gICAgICAgICAgICAgICAgPyBgKCgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pIGFuZCAoJHtmaWx0ZXJRdWVyeX0pKWBcbiAgICAgICAgICAgICAgICA6IGAoJHtkZWZhdWx0RmlsdGVyUXVlcnl9KWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGZpbHRlclF1ZXJ5ID8gJygnICsgZmlsdGVyUXVlcnkgKyAnKScgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREeW5hbWljRmlsdGVyKGR5bmFtaWNGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChkeW5hbWljRmlsdGVyUXVlcnkpIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICA/IGAoKCR7ZHluYW1pY0ZpbHRlclF1ZXJ5fSkgYW5kICgke2ZpbHRlclF1ZXJ5fSkpYFxuICAgICAgICAgICAgICAgIDogYCgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gZmlsdGVyUXVlcnkgPyAnKCcgKyBmaWx0ZXJRdWVyeSArICcpJyA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlclF1ZXJ5O1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3VudEVudW1GaWx0ZXIoXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgICAgICBtdWx0aXBsZT86IGJvb2xlYW5cbiAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbXVsdGlwbGVcbiAgICAgICAgICAgID8gYCgkeyh2YWx1ZSBhcyBzdHJpbmdbXSkubWFwKChzZWxlY3RlZDogc3RyaW5nKSA9PiBgJHtuYW1lfSBlcSAnJHtzZWxlY3RlZH0nYCkuam9pbignIG9yICcpfSlgXG4gICAgICAgICAgICA6IGAoJHtuYW1lfSBlcSAnJHt2YWx1ZX0nKWA7XG4gICAgfVxuICAgIC8qKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgbW9udGFyIGFzIG9ww6fDtWVzIHBhZHLDtWVzIHBhcmEgbyBsb29rdXAgZG8gRHluYW1pYyBGb3JtICovXG4gICAgcHVibGljIG1vdW50T3B0aW9ucyhvcHRpb25zPzogTG9va3VwT3B0aW9ucyk6IExvb2t1cEZpZWxkQ29uZmlnIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucz8ucHJlZml4XG4gICAgICAgICAgICA/IG9wdGlvbnMucHJlZml4XG4gICAgICAgICAgICA6IG9wdGlvbnM/LmRvbWFpbiAmJiBvcHRpb25zPy5zZXJ2aWNlXG4gICAgICAgICAgICAgID8gYCR7b3B0aW9ucy5kb21haW59LiR7b3B0aW9ucy5zZXJ2aWNlfWBcbiAgICAgICAgICAgICAgOiBgJHt0aGlzLmRvbWFpbn0uJHt0aGlzLnNlcnZpY2V9YDtcblxuICAgICAgICBjb25zdCBzdWZmaXggPSBvcHRpb25zPy5zdWZmaXggPyBgXyR7b3B0aW9ucy5zdWZmaXh9YCA6ICcnO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgbG9va3VwRmllbGRzOiBvcHRpb25zPy5sb29rdXBGaWVsZHNcbiAgICAgICAgICAgICAgICA/IG9wdGlvbnMubG9va3VwRmllbGRzXG4gICAgICAgICAgICAgICAgOiB0aGlzLmxvb2t1cEZpZWxkcyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogb3B0aW9ucz8uZm9ybUdyb3VwID8/IHRoaXMuZW50aXR5LFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgYCR7cHJlZml4fS5sb29rdXBfJHt0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnM/LmVudGl0eSkgfHwgdGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSl9JHtzdWZmaXh9YFxuICAgICAgICAgICAgKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICBzZWFyY2hUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICBgJHtwcmVmaXh9Lmxvb2t1cF8ke1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnM/LmVudGl0eSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSlcbiAgICAgICAgICAgICAgICB9X3NlYXJjaF90aXRsZWBcbiAgICAgICAgICAgICkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgdHlwZTogJ2xvb2t1cCcsXG4gICAgICAgICAgICBtdWx0aXBsZTogb3B0aW9ucz8ubXVsdGlwbGUgIT09IGZhbHNlLFxuICAgICAgICAgICAgZGF0YUtleTogb3B0aW9ucz8uZGF0YUtleSA/PyAnaWQnLFxuICAgICAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkOiAnbGFiZWwnLFxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9Lm5vdGhpbmdfZm91bmRgKSxcbiAgICAgICAgICAgIGZpbHRlckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uZmlsdGVyYCksXG4gICAgICAgICAgICBjbGVhckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2xlYXJgKSxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2FuY2VsYCksXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LnNlbGVjdGApLFxuICAgICAgICAgICAgc2VhcmNoRmllbGRzOiB0aGlzLm1vdW50Rm9ybUZpZWxkKFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcyxcbiAgICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiB0aGlzLm1vdW50Rm9ybUZpZWxkKFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlYXJjaEdyaWRGaWVsZHMgPz8gdGhpcy5zZWFyY2hHcmlkRmllbGRzLFxuICAgICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTpcbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cFN1Z2dlc3Rpb25zT2JzZXJ2YWJsZS5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIHNlYXJjaE9ic2VydmFibGU6IHRoaXMubG9va3VwU2VhcmNoT2JzZXJ2YWJsZS5hc09ic2VydmFibGUoKSxcbiAgICAgICAgICAgIG9uTG9va3VwUmVxdWVzdDogKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvb2t1cFJlcXVlc3QodmFsdWUsIHByZWZpeCwgb3B0aW9ucyksXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgb25TZWFyY2hSZXF1ZXN0OiAoZXZlbnQ6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0KGV2ZW50LCBwcmVmaXgsIG9wdGlvbnMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKFxuICAgICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHByZWZpeDogc3RyaW5nXG4gICAgKTogdW5rbm93biB7XG4gICAgICAgIHJldHVybiBwYXRoXG4gICAgICAgICAgICAuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgcHJvcDogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCB8fCByZXN1bHRbcHJvcF0gPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LmVtcHR5X2xhYmVsYClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHJlc3VsdFtwcm9wXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgICAgICAgICAgICAgb2JqXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNWYWx1ZSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3VudEVudGl0eUZpbHRlcihlbnRpdHk6IEVudGl0eURlcGVuZGVuY3ksIHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZW50aXR5LmZpZWxkXG4gICAgICAgICAgICA/IGAoJHtlbnRpdHkubmFtZX0uJHtlbnRpdHkuZmllbGR9IGVxICcke3ZhbHVlW2VudGl0eS5maWVsZF19JylgXG4gICAgICAgICAgICA6IGAoJHtlbnRpdHkubmFtZX0gZXEgJyR7dmFsdWVbZW50aXR5Lm5hbWVdfScpYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Mb29rdXBSZXF1ZXN0KFxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICBwcmVmaXg6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IExvb2t1cE9wdGlvbnNcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbG9va3VwRmllbGRzID0gb3B0aW9ucz8ubG9va3VwRmllbGRzID8/IHRoaXMubG9va3VwRmllbGRzO1xuICAgICAgICBjb25zdCBsb29rdXBEaXNwbGF5RmllbGRzID0gbG9va3VwRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IHRoaXMubW91bnRGaWx0ZXJRdWVyeShcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbG9va3VwRmllbGRzIGFzIER5bmFtaWNUeXBlW10sXG4gICAgICAgICAgICBvcHRpb25zPy5kZWZhdWx0RmlsdGVyLFxuICAgICAgICAgICAgb3B0aW9ucz8uZHluYW1pY0ZpbHRlclxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBkaXNwbGF5RmllbGRzID0gbG9va3VwRGlzcGxheUZpZWxkcy5jb25jYXQoXG4gICAgICAgICAgICAob3B0aW9ucz8uc2VhcmNoR3JpZEZpZWxkcyA/PyB0aGlzLnNlYXJjaEdyaWRGaWVsZHMpLm1hcChcbiAgICAgICAgICAgICAgICAoeyBuYW1lIH0pID0+IG5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8ucXVlcnlGaWVsZHMpIHtcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmNvbmNhdChvcHRpb25zLnF1ZXJ5RmllbGRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmZpbHRlcihcbiAgICAgICAgICAgICh2LCBpKSA9PiBkaXNwbGF5RmllbGRzLmluZGV4T2YodikgPT09IGlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8uZW50aXR5RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5RmlsdGVyID0gb3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5XG4gICAgICAgICAgICAgICAgLm1hcCgoZW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZW50aXR5LnZhbHVlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbHVlKG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke25ld1ZhbHVlLm1hcCgodmFsOiBhbnkpID0+IHRoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCB2YWwpKS5qb2luKCcgb3IgJyl9KWA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCBuZXdWYWx1ZSl9KWA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+ICEhZmlsdGVyKVxuICAgICAgICAgICAgICAgIC5qb2luKCcgYW5kICcpO1xuXG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgPyAoZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgKVxuICAgICAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvb2t1cFNlcnZpY2VcbiAgICAgICAgICAgIC5saXN0KFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc29ydDogb3B0aW9ucz8ubG9va3VwU29ydCxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnksXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5lbnRpdHkgPz8gdGhpcy5lbnRpdHksXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uZG9tYWluID8/IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgobGlzdDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0LmNvbnRlbnRzLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEl0ZW1MYWJlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlYXJjaFJlcXVlc3QoXG4gICAgICAgIGV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgcHJlZml4OiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IExvb2t1cE9wdGlvbnMgPSB7fVxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpcnN0LCByb3dzLCBtdWx0aVNvcnRNZXRhLCBmaWx0ZXJEYXRhIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgcGFnZSA9IChmaXJzdCBhcyBudW1iZXIpIC8gKHJvd3MgYXMgbnVtYmVyKTtcbiAgICAgICAgY29uc3Qgc29ydCA9XG4gICAgICAgICAgICAobXVsdGlTb3J0TWV0YSBhcyBTb3J0TWV0YVtdIHwgdW5kZWZpbmVkKSA/PyBvcHRpb25zLnNlYXJjaFNvcnQ7XG4gICAgICAgIGNvbnN0IGxvb2t1cEZpZWxkcyA9IG9wdGlvbnMubG9va3VwRmllbGRzID8/IHRoaXMubG9va3VwRmllbGRzO1xuICAgICAgICBjb25zdCBsb29rdXBEaXNwbGF5RmllbGRzID0gbG9va3VwRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IChvcHRpb25zLnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcylcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHsgbmFtZSB9KSA9PlxuICAgICAgICAgICAgICAgICAgICAoZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV0gIT09XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKGZpbHRlckRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW25hbWVdICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgIChmaWx0ZXJEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtuYW1lXSAhPT0gJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5tYXAoKGZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbXVsdGlwbGUsIGVycExvb2t1cHNGb3JtRmllbGQgfSA9XG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZCBhcyBFcnBMb29rdXBzRm9ybUZpZWxkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV07XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJwTG9va3Vwc0Zvcm1GaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tb3VudEN1c3RvbUZpbHRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnBMb29rdXBzU2VhcmNoRmllbGQ6IGZvcm1GaWVsZCBhcyBFcnBMb29rdXBzRm9ybUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGF0YTogZmlsdGVyRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlIGFzIHN0cmluZykuZm9ybWF0KCdZWVlZLU1NLUREJyl9J2A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAndGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSBhcyBzdHJpbmcpLmZvcm1hdCgnSEg6bW06c3MnKX0nYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlVGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSBhcyBzdHJpbmcpLmZvcm1hdCgpfSdgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2VudW0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50RW51bUZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBhcyBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7bmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdsb29rdXAnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gZXEgJyR7KHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnaWQnXX0nKWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcgYW5kICcpO1xuICAgICAgICBpZiAob3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlGaWx0ZXIgPSBvcHRpb25zLmVudGl0eURlcGVuZGVuY3lcbiAgICAgICAgICAgICAgICAubWFwKChlbnRpdHk6IEVudGl0eURlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlbnRpdHkudmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt2YWx1ZS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgdmFsKSkuam9pbignIG9yICcpfSlgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7dGhpcy5tb3VudEVudGl0eUZpbHRlcihlbnRpdHksIHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KX0pYDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpbHRlcikgPT4gISFmaWx0ZXIpXG4gICAgICAgICAgICAgICAgLmpvaW4oJyBhbmQgJyk7XG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgPyAoZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgKVxuICAgICAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlclF1ZXJ5ID0gdGhpcy5tb3VudERlZmF1bHRGaWx0ZXIoXG4gICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRGaWx0ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZGVmYXVsdEZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVxuICAgICAgICAgICAgICAgID8gKGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pYClcbiAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGAoJHtkZWZhdWx0RmlsdGVyUXVlcnl9KWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZHluYW1pY0ZpbHRlclF1ZXJ5ID0gdGhpcy5tb3VudER5bmFtaWNGaWx0ZXIoXG4gICAgICAgICAgICBvcHRpb25zLmR5bmFtaWNGaWx0ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZHluYW1pY0ZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVxuICAgICAgICAgICAgICAgID8gKGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYClcbiAgICAgICAgICAgICAgICA6IChmaWx0ZXJRdWVyeSA9IGAoJHtkeW5hbWljRmlsdGVyUXVlcnl9KWApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlGaWVsZHMgPSBsb29rdXBEaXNwbGF5RmllbGRzLmNvbmNhdChcbiAgICAgICAgICAgIChvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgPz8gdGhpcy5zZWFyY2hHcmlkRmllbGRzKVxuICAgICAgICAgICAgICAgIC5jb25jYXQob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzID8/IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnF1ZXJ5RmllbGRzKSB7XG4gICAgICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5jb25jYXQob3B0aW9ucy5xdWVyeUZpZWxkcyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5maWx0ZXIoXG4gICAgICAgICAgICAodiwgaSkgPT4gZGlzcGxheUZpZWxkcy5pbmRleE9mKHYpID09PSBpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5sb29rdXBTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdChcbiAgICAgICAgICAgICAgICB7IHBhZ2UsIHNvcnQsIGZpbHRlclF1ZXJ5LCBkaXNwbGF5RmllbGRzIH0sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5lbnRpdHkgPz8gdGhpcy5lbnRpdHksXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kb21haW4gPz8gdGhpcy5kb21haW4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlID8/IHRoaXMuc2VydmljZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBDcmlhciB1bSBtYXBhIGRlIGNhbXBvcyBjb20gbWF4TGVuZ3RoIGRlZmluaWRvXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkc1dpdGhNYXhMZW5ndGggPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihvcHRpb25zLnNlYXJjaEZpZWxkcyA/PyB0aGlzLnNlYXJjaEZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzID8/IHRoaXMuc2VhcmNoR3JpZEZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgIF0uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heExlbmd0aCcgaW4gZmllbGQgPyBmaWVsZC5tYXhMZW5ndGggOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkLnR5cGUgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPT09ICd0ZXh0QXJlYScpXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNXaXRoTWF4TGVuZ3RoLnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoIGFzIG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkRGF0YTogbGlzdC5jb250ZW50cy5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcGxpY2FyIG1heExlbmd0aCBub3MgY2FtcG9zIHF1ZSBwb3NzdWVtIGEgY29uZmlndXJhw6fDo29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNXaXRoTWF4TGVuZ3RoLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXhMZW5ndGgsIGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMuZ2V0TmVzdGVkVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBmaWVsZFZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5lc3RlZFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUuc3Vic3RyaW5nKDAsIG1heExlbmd0aCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4uLidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb2Nlc3NlZEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEl0ZW1MYWJlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXBEaXNwbGF5RmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxSZWNvcmRzOiBsaXN0LnRvdGFsRWxlbWVudHMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvb2t1cFNlYXJjaE9ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtTGFiZWwoXG4gICAgICAgIGl0ZW06IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwcmVmaXg6IHN0cmluZyxcbiAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkczogc3RyaW5nW11cbiAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbG9va3VwRGlzcGxheUZpZWxkc1xuICAgICAgICAgICAgLm1hcCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3AoaXRlbSwgZmllbGQsIHByZWZpeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1bZmllbGRdID8/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5lbXB0eV9sYWJlbGApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbignIC0gJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsdHJvIGRlIHVtIGNhbXBvIGRlIGRhdGEgYSBwYXJ0aXIgZG8gdGV4dG8gZGlnaXRhZG8gbm8gYXV0b2NvbXBsZXRlLlxuICAgICAqXG4gICAgICogQ2FtcG8gZGUgZGF0YSBuw6NvIGFjZWl0YSBgY29udGFpbmluZ2AsIGVudMOjbyBvIHRleHRvIHPDsyB2aXJhIGZpbHRyb1xuICAgICAqIHF1YW5kbyDDqSB1bWEgZGF0YSB2w6FsaWRhIG5vIGZvcm1hdG8gZG8gcHLDs3ByaW8gY2FtcG86IGB2aWV3OiAnbW9udGgnYFxuICAgICAqIGzDqiBtw6pzL2FubyBlIGNvbnN1bHRhIG8gbcOqcyBpbnRlaXJvOyBub3MgZGVtYWlzIGNhc29zIGzDqiBhIGRhdGFcbiAgICAgKiBjb21wbGV0YSBlIGNvbnN1bHRhIG8gZGlhLiBUZXh0byBxdWUgbsOjbyDDqSBkYXRhIGRldm9sdmUgYG51bGxgIGUgb1xuICAgICAqIGNhbXBvIGZpY2EgZGUgZm9yYSBkbyBmaWx0cm8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBtb3VudERhdGVGaWx0ZXIoZmllbGQ6IER5bmFtaWNUeXBlLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGlzTW9udGhWaWV3ID0gKGZpZWxkIGFzIENhbGVuZGFyRmllbGRDb25maWcpLnZpZXcgPT09ICdtb250aCc7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBtb21lbnQoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlckZvcm1hdHMoZmllbGQsIGlzTW9udGhWaWV3KSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXBhcnNlZFZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNb250aFZpZXcpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RGF5ID0gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgICAgICAgIC5zdGFydE9mKCdtb250aCcpXG4gICAgICAgICAgICAgICAgLmZvcm1hdChRVUVSWV9EQVRFX0ZPUk1BVCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGxhc3REYXkgPSBwYXJzZWRWYWx1ZVxuICAgICAgICAgICAgICAgIC5jbG9uZSgpXG4gICAgICAgICAgICAgICAgLmVuZE9mKCdtb250aCcpXG4gICAgICAgICAgICAgICAgLmZvcm1hdChRVUVSWV9EQVRFX0ZPUk1BVCk7XG5cbiAgICAgICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZ2UgJyR7Zmlyc3REYXl9JyBhbmQgJHtmaWVsZC5uYW1lfSBsZSAnJHtsYXN0RGF5fScpYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgKCR7ZmllbGQubmFtZX0gZXEgJyR7cGFyc2VkVmFsdWUuZm9ybWF0KFFVRVJZX0RBVEVfRk9STUFUKX0nKWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0b3MgZW0gcXVlIG8gdGV4dG8gZGlnaXRhZG8gZW0gdW0gY2FtcG8gZGUgZGF0YSDDqSBpbnRlcnByZXRhZG8uXG4gICAgICpcbiAgICAgKiBBIG9yZGVtIGRvcyBjb21wb25lbnRlcyBlIG8gc2VwYXJhZG9yIHbDqm0gZG8gbG9jYWxlIGRvIHVzdcOhcmlvIOKAlCBvXG4gICAgICogYExvY2FsZVNlcnZpY2VgIGRhIHBsYXRhZm9ybWEgYXBsaWNhIGVzc2UgbG9jYWxlIG5vIG1vbWVudCwgZW50w6NvXG4gICAgICogYHB0LUJSYCBsw6ogYGRkL21tL2FhYWFgIGUgYGVuLVVTYCBsw6ogYG1tL2RkL2FhYWFgLiBRdWFuZG8gbyBjYW1wb1xuICAgICAqIGRlZmluZSBvIHByw7NwcmlvIGZvcm1hdG8gZGUgZXhpYmnDp8OjbywgZWxlIHRlbSBwcmlvcmlkYWRlOiDDqSBvIGZvcm1hdG9cbiAgICAgKiBxdWUgbyB1c3XDoXJpbyB2w6ogbm8gaW5wdXQg4oCUIGBkYXRlRm9ybWF0YCBubyBkaWFsZXRvIG5hdGl2byBkb1xuICAgICAqIGBzLWRhdGVwaWNrZXJgLCBvdSBgY2FsZW5kYXJMb2NhbGVPcHRpb25zLmRhdGVGb3JtYXRgIChkZXByZWNhdGVkKSBub1xuICAgICAqIGRpYWxldG8gbGVnYWRvIGRvIFByaW1lTkcuIENhZGEgZm9ybWF0byB0YW1iw6ltIMOpIGFjZWl0byBzZW0gbyB6ZXJvIMOgXG4gICAgICogZXNxdWVyZGEuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRlRmlsdGVyRm9ybWF0cyhcbiAgICAgICAgZmllbGQ6IER5bmFtaWNUeXBlLFxuICAgICAgICBpc01vbnRoVmlldzogYm9vbGVhblxuICAgICk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgeyBkYXRlRm9ybWF0LCBjYWxlbmRhckxvY2FsZU9wdGlvbnMgfSA9XG4gICAgICAgICAgICBmaWVsZCBhcyBDYWxlbmRhckZpZWxkQ29uZmlnO1xuXG4gICAgICAgIGNvbnN0IGZpZWxkRm9ybWF0ID0gZGF0ZUZvcm1hdFxuICAgICAgICAgICAgPyB0aGlzLmZyb21EYXRlcGlja2VyRGF0ZUZvcm1hdChkYXRlRm9ybWF0KVxuICAgICAgICAgICAgOiB0aGlzLmZyb21MZWdhY3lDYWxlbmRhckRhdGVGb3JtYXQoXG4gICAgICAgICAgICAgICAgICBjYWxlbmRhckxvY2FsZU9wdGlvbnM/LmRhdGVGb3JtYXRcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBsb2NhbGVGb3JtYXQgPSBtb21lbnQubG9jYWxlRGF0YSgpLmxvbmdEYXRlRm9ybWF0KCdMJyk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0ID1cbiAgICAgICAgICAgIGZpZWxkRm9ybWF0ID8/XG4gICAgICAgICAgICAoaXNNb250aFZpZXcgPyB0aGlzLndpdGhvdXREYXlUb2tlbihsb2NhbGVGb3JtYXQpIDogbG9jYWxlRm9ybWF0KTtcblxuICAgICAgICBjb25zdCBzaG9ydEZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC9EKy9nLCAnRCcpLnJlcGxhY2UoL00rL2csICdNJyk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdCA9PT0gc2hvcnRGb3JtYXQgPyBbZm9ybWF0XSA6IFtmb3JtYXQsIHNob3J0Rm9ybWF0XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0ZSBvIGBkYXRlRm9ybWF0YCBuYXRpdm8gZG8gYHMtZGF0ZXBpY2tlcmAgKGV4LjogYGRkL01NL3l5eXlgKVxuICAgICAqIHBhcmEgbyBlcXVpdmFsZW50ZSBlbSBtb21lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmcm9tRGF0ZXBpY2tlckRhdGVGb3JtYXQoZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAveXl5eXx5eXxNTXxtbXxkZHxkL2csXG4gICAgICAgICAgICAodG9rZW4pID0+IERBVEVQSUNLRVJfREFURV9UT0tFTlNbdG9rZW5dXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydGUgbyBgY2FsZW5kYXJMb2NhbGVPcHRpb25zLmRhdGVGb3JtYXRgIGxlZ2FkbyAoZGlhbGV0byBQcmltZU5HLFxuICAgICAqIGV4LjogYGRkL21tL3l5YCkgcGFyYSBvIGVxdWl2YWxlbnRlIGVtIG1vbWVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZyb21MZWdhY3lDYWxlbmRhckRhdGVGb3JtYXQoZm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoXG4gICAgICAgICAgICAvZGR8ZHxtbXxtfHl5fHkvZyxcbiAgICAgICAgICAgICh0b2tlbikgPT4gTEVHQUNZX0NBTEVOREFSX0RBVEVfVE9LRU5TW3Rva2VuXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmUgbyBjb21wb25lbnRlIGRlIGRpYSBkZSB1bSBmb3JtYXRvIGRlIGRhdGEgKi9cbiAgICBwcml2YXRlIHdpdGhvdXREYXlUb2tlbihmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGZvcm1hdC5yZXBsYWNlKC9bQS1aYS16XS9nLCAnJylbMF0gPz8gJy8nO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5zcGxpdCgvW15BLVphLXpdLylcbiAgICAgICAgICAgIC5maWx0ZXIoKHRva2VuKSA9PiAhL15EKyQvLnRlc3QodG9rZW4pKVxuICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdW50Q3VzdG9tRmlsdGVyKHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkLFxuICAgICAgICBmaWx0ZXJEYXRhLFxuICAgIH06IHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkOiBFcnBMb29rdXBzRm9ybUZpZWxkO1xuICAgICAgICBmaWx0ZXJEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBlcnBMb29rdXBzRm9ybUZpZWxkLCBuYW1lIH0gPSBlcnBMb29rdXBzU2VhcmNoRmllbGQ7XG5cbiAgICAgICAgcmV0dXJuIGAoJHsoZXJwTG9va3Vwc0Zvcm1GaWVsZD8uY3VzdG9tRmlsdGVycyA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAoKHsgb3BlcmF0b3IsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyRGF0YVtuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKGNvbnRhaW5pbmcobG93ZXIoJHtuYW1lfSksIGxvd2VyKCcke3ZhbHVlfScpKSlgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzTm90IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvciA9PT0gRW51bUxvZ2ljYWxPcGVyYXRvci5JcykgJiZcbiAgICAgICAgICAgICAgICAgICAgIXZhbHVlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gJHtvcGVyYXRvcn0gbnVsbClgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBgKCR7bmFtZX0gJHtvcGVyYXRvcn0gJyR7dmFsdWV9JylgO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcgYW5kICcpfSlgO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUoXG4gICAgICAgIG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHBhdGg6IHN0cmluZ1xuICAgICk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoY3VycmVudDogdW5rbm93biwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIHR5cGVvZiBjdXJyZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPYmogPSBjdXJyZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50T2JqW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRPYmpba2V5XVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIG9iaiBhcyB1bmtub3duKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE5lc3RlZFZhbHVlKFxuICAgICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiB1bmtub3duXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IGxhc3RLZXkgPSBrZXlzLnBvcCgpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBrZXlzLnJlZHVjZSgoY3VycmVudDogdW5rbm93biwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIHR5cGVvZiBjdXJyZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPYmogPSBjdXJyZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50T2JqW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRPYmpba2V5XVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIG9iaiBhcyB1bmtub3duKTtcbiAgICAgICAgaWYgKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiBsYXN0S2V5KSB7XG4gICAgICAgICAgICAodGFyZ2V0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtsYXN0S2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -86,6 +86,7 @@ import { E640LotLookup } from './entities/e-640-lot-lookup';
|
|
|
86
86
|
import { EquipmentLookup } from './entities/equipment-lookup';
|
|
87
87
|
import { DfeEventoLookup } from './entities/erpx-cpl-dfe/dfe-evento-lookup';
|
|
88
88
|
import { AtividadeFinanceiraLookup } from './entities/erpx-cpl-itr-dere/atividade-financeira-lookup';
|
|
89
|
+
import { BaseCalculoLookup } from './entities/erpx-cpl-itr-dere/base-calculo-lookup';
|
|
89
90
|
import { CodigoTributacaoLookup } from './entities/erpx-cpl-itr-dere/codigo-tributacao-lookup';
|
|
90
91
|
import { CompetenciaLookup } from './entities/erpx-cpl-itr-dere/competencia-lookup';
|
|
91
92
|
import { ContasContabeisLookup } from './entities/erpx-cpl-itr-dere/contas-contabeis-lookup';
|
|
@@ -266,6 +267,7 @@ export class ErpLookupsModule {
|
|
|
266
267
|
E070FilLocRetLookup,
|
|
267
268
|
UnidadeFederativaLookup,
|
|
268
269
|
AtividadeFinanceiraLookup,
|
|
270
|
+
BaseCalculoLookup,
|
|
269
271
|
CodigoTributacaoLookup,
|
|
270
272
|
CompetenciaLookup,
|
|
271
273
|
ContasContabeisLookup,
|
|
@@ -406,6 +408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
406
408
|
E070FilLocRetLookup,
|
|
407
409
|
UnidadeFederativaLookup,
|
|
408
410
|
AtividadeFinanceiraLookup,
|
|
411
|
+
BaseCalculoLookup,
|
|
409
412
|
CodigoTributacaoLookup,
|
|
410
413
|
CompetenciaLookup,
|
|
411
414
|
ContasContabeisLookup,
|
|
@@ -416,4 +419,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
416
419
|
exports: [],
|
|
417
420
|
}]
|
|
418
421
|
}] });
|
|
419
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc25yLWVycHgtYW5ndWxhci1jb21wb25lbnRzL2xvb2t1cHMvc3JjL2xpYi9lcnAtbG9va3Vwcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxP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d0JBQ25CLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCx5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsNEJBQTRCO3dCQUM1QixTQUFTO3dCQUNULDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2pCO29CQUNELFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3JNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBZ3JlZW1lbnRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2FncmVlbWVudC1sb29rdXAnO1xuaW1wb3J0IHsgUGFyYW1ldGVyc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvYXB1cmFjYW8tZm91bmRhdGlvbi9wYXJhbWV0ZXJzLWxvb2t1cCc7XG5pbXBvcnQgeyBUeXBlVGF4ZXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2FwdXJhY2FvLWZvdW5kYXRpb24vdHlwZS10YXhlcy1sb29rdXAnO1xuaW1wb3J0IHsgQmVuZWZpY2lvRmlzY2FsTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9iZW5lZmljaW8tZmlzY2FsLWxvb2t1cCc7XG5pbXBvcnQgeyBDYXJhY3RlcmlzdGljYUZpc2NhbExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvY2FyYWN0ZXJpc3RpY2EtZmlzY2FsLWxvb2t1cCc7XG5pbXBvcnQgeyBDbGFzc2lmaWNhY2FvVHJpYnV0YXJpYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvY2xhc3NpZmljYWNhby10cmlidXRhcmlhLWxvb2t1cCc7XG5pbXBvcnQgeyBDb21wb3NpY2FvQmFzZUNhbGN1bG9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cCc7XG5pbXBvcnQgeyBDb250YUludGVybmFGaWxpYWxMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2NvbnRhLWludGVybmEtZmlsaWFsLWxvb2t1cCc7XG5pbXBvcnQgeyBEb2N1bWVudG9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2RvY3VtZW50by1sb29rdXAnO1xuaW1wb3J0IHsgRTAwMUVuZExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDEtZW5kLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDAxUGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAwMS1wZXMtbG9va3VwJztcbmltcG9ydCB7IEUwMDFUbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDAxLXRucy1sb29rdXAnO1xuaW1wb3J0IHsgRTAwMVRuc1N1cEVzdExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDEtdG5zLXN1cC1lc3QtbG9va3VwJztcbmltcG9ydCB7IEUwMDJUcHRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDAyLXRwdC1sb29rdXAnO1xuaW1wb3J0IHsgRTAwNlBhaUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDYtcGFpLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDA3VWZzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAwNy11ZnMtbG9va3VwJztcbmltcG9ydCB7IEUwMDhDZXBMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDA4LWNlcC1sb29rdXAnO1xuaW1wb3J0IHsgRTAwOFJhaUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDgtcmFpLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDEyRmFtTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAxMi1mYW0tbG9va3VwJztcbmltcG9ydCB7IEUwMTVNZWRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDE1LW1lZC1sb29rdXAnO1xuaW1wb3J0IHsgRTAyMFNuZkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjAtc25mLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDIxTW90TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAyMS1tb3QtbG9va3VwJztcbmltcG9ydCB7IEUwMjNDcnBMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDIzLWNycC1sb29rdXAnO1xuaW1wb3J0IHsgRTAyNE1zZ0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjQtbXNnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDI3RXFpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAyNy1lcWktbG9va3VwJztcbmltcG9ydCB7IEUwMjdTdHJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDI3LXN0ci1sb29rdXAnO1xuaW1wb3J0IHsgRTAyOENwZ0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjgtY3BnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDMwQWdlTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzMC1hZ2UtbG9va3VwJztcbmltcG9ydCB7IEUwMzBCYW5Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDMwLWJhbi1sb29rdXAnO1xuaW1wb3J0IHsgRTAzMU1vZUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMzEtbW9lLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDMyRWRjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzMi1lZGMtbG9va3VwJztcbmltcG9ydCB7IEUwMzRUY2NMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDM0LXRjYy1sb29rdXAnO1xuaW1wb3J0IHsgRTAzNU9jckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMzUtb2NyLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDM2SW5zTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzNi1pbnMtbG9va3VwJztcbmltcG9ydCB7IEUwMzlQb3JMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDM5LXBvci1sb29rdXAnO1xuaW1wb3J0IHsgRTA0MUNlYkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDEtY2ViLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQzTXBjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0My1tcGMtbG9va3VwJztcbmltcG9ydCB7IEUwNDNQY21Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQzLXBjbS1sb29rdXAnO1xuaW1wb3J0IHsgRTA0NENjdUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDQtY2N1LWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQ1UGxhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0NS1wbGEtbG9va3VwJztcbmltcG9ydCB7IEUwNDZIcGRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQ2LWhwZC1sb29rdXAnO1xuaW1wb3J0IHsgRTA0N050Z0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDctbnRnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQ4RmN0TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0OC1mY3QtbG9va3VwJztcbmltcG9ydCB7IEUwNDhTZmNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQ4LXNmYy1sb29rdXAnO1xuaW1wb3J0IHsgRTA1MURpc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNTEtZGlzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDY2RnBnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA2Ni1mcGctbG9va3VwJztcbmltcG9ydCB7IEUwNjdGaW5Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDY3LWZpbi1sb29rdXAnO1xuaW1wb3J0IHsgRTA2OUdyZUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNjktZ3JlLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDcwRW1wTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA3MC1lbXAtbG9va3VwJztcbmltcG9ydCB7IEUwNzBFbnRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDcwLWVudC1sb29rdXAnO1xuaW1wb3J0IHsgRTA3MEZpbExvY1JldExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzAtZmlsLWxvYy1yZXQtbG9va3VwJztcbmltcG9ydCB7IEUwNzBGaWxMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDcwLWZpbC1sb29rdXAnO1xuaW1wb3J0IHsgRTA3M1Blc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzMtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDczVmVpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA3My12ZWktbG9va3VwJztcbmltcG9ydCB7IEUwNzVEZXJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDc1LWRlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA3Nk1hckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzYtbWFyLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDgwU2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA4MC1zZXItbG9va3VwJztcbmltcG9ydCB7IEUwODFUYWJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDgxLXRhYi1sb29rdXAnO1xuaW1wb3J0IHsgRTA4MlRwckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wODItdHByLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDg1UGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA4NS1wZXMtbG9va3VwJztcbmltcG9ydCB7IEUwODlEb2NMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDg5LWRvYy1sb29rdXAnO1xuaW1wb3J0IHsgRTA5MEhycENvbUdlckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTAtaHJwLWNvbS1nZXItbG9va3VwJztcbmltcG9ydCB7IEUwOTBQZXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDkwLXBlcy1sb29rdXAnO1xuaW1wb3J0IHsgRTA5MVBsZkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTEtcGxmLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDk1SGZvU3VwR2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA5NS1oZm8tc3VwLWdlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA5NVBlc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTUtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDk5VXN1Q29tR2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA5OS11c3UtY29tLWdlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA5OVVzdVN1cENwckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTktdXN1LXN1cC1jcHItbG9va3VwJztcbmltcG9ydCB7IEUxNDBJbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMTQwLWlucy1sb29rdXAnO1xuaW1wb3J0IHsgRTE0ME5mc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0xNDAtbmZzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMjAwTG90TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTIwMC1sb3QtbG9va3VwJztcbmltcG9ydCB7IEUyMDBTZXJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMjAwLXNlci1sb29rdXAnO1xuaW1wb3J0IHsgRTIwNURlcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMDUtZGVwLWxvb2t1cCc7XG5pbXBvcnQgeyBFMjEwRHhwRTA3NURlckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMTAtZHhwLWUtMDc1LWRlci1sb29rdXAnO1xuaW1wb3J0IHsgRTIxMER4cExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMTAtZHhwLWxvb2t1cCc7XG5pbXBvcnQgeyBFMzAxVGNyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTMwMS10Y3ItbG9va3VwJztcbmltcG9ydCB7IEU0MDNGcHJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNDAzLWZwci1sb29rdXAnO1xuaW1wb3J0IHsgRTQyMEljcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS00MjAtaWNwLWxvb2t1cCc7XG5pbXBvcnQgeyBFNDIwSXBjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTQyMC1pcGMtbG9va3VwJztcbmltcG9ydCB7IEU0MjBPY3BMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNDIwLW9jcC1sb29rdXAnO1xuaW1wb3J0IHsgRTUwMVRjcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS01MDEtdGNwLWxvb2t1cCc7XG5pbXBvcnQgeyBFNjAwQ2NvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTYwMC1jY28tbG9va3VwJztcbmltcG9ydCB7IEU2NDBMb3RMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNjQwLWxvdC1sb29rdXAnO1xuaW1wb3J0IHsgRXF1aXBtZW50TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcXVpcG1lbnQtbG9va3VwJztcbmltcG9ydCB7IERmZUV2ZW50b0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZXJweC1jcGwtZGZlL2RmZS1ldmVudG8tbG9va3VwJztcbmltcG9ydCB7IEF0aXZpZGFkZUZpbmFuY2VpcmFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2F0aXZpZGFkZS1maW5hbmNlaXJhLWxvb2t1cCc7XG5pbXBvcnQgeyBDb2RpZ29UcmlidXRhY2FvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcnB4LWNwbC1pdHItZGVyZS9jb2RpZ28tdHJpYnV0YWNhby1sb29rdXAnO1xuaW1wb3J0IHsgQ29tcGV0ZW5jaWFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2NvbXBldGVuY2lhLWxvb2t1cCc7XG5pbXBvcnQgeyBDb250YXNDb250YWJlaXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2NvbnRhcy1jb250YWJlaXMtbG9va3VwJztcbmltcG9ydCB7IEUwNzBFbXBEZXJlTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcnB4LWNwbC1pdHItZGVyZS9lLTA3MC1lbXAtZGVyZS1sb29rdXAnO1xuaW1wb3J0IHsgUHJvY2Vzc29Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL3Byb2Nlc3NvLWxvb2t1cCc7XG5pbXBvcnQgeyBVbmlkYWRlRmVkZXJhdGl2YUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZXJweC1jcGwtaXRyLWRlcmUvdW5pZGFkZS1mZWRlcmF0aXZhLWxvb2t1cCc7XG5pbXBvcnQgeyBJbmRPcGVyYWNhb0Zvcm5lY2ltZW50b0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvaW5kLW9wZXJhY2FvLWZvcm5lY2ltZW50by1sb29rdXAnO1xuaW1wb3J0IHsgTGVpQ29tcGxlbWVudGFyMTE2MjAwM0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbGVpLWNvbXBsZW1lbnRhci0xMTYyMDAzLWxvb2t1cCc7XG5pbXBvcnQgeyBMaWdhY2FvSXRlbUZvcm5lY2Vkb3JMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2xpZ2FjYW8taXRlbS1mb3JuZWNlZG9yLWxvb2t1cCc7XG5pbXBvcnQgeyBMaXN0YVNlcnZpY29OYWNpb25hbExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbGlzdGEtc2Vydmljby1uYWNpb25hbC1sb29rdXAnO1xuaW1wb3J0IHsgTmF0dXJlemFSZWNlaXRhUGlzQ29maW5zIH0gZnJvbSAnLi9lbnRpdGllcy9uYXR1cmV6YS1yZWNlaXRhLXBpcy1jb2ZpbnMubG9va3VwJztcbmltcG9ydCB7IE5ic0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbmJzLWxvb2t1cCc7XG5pbXBvcnQgeyBOY21Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL25jbS1sb29rdXAnO1xuaW1wb3J0IHsgTm90YUZpc2NhbEVudHJhZGFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL25vdGEtZmlzY2FsLWVudHJhZGEtbG9va3VwJztcbmltcG9ydCB7IE9wZXJhY29lc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvb3BlcmFjb2VzLWxvb2t1cCc7XG5pbXBvcnQgeyBPcmlnZW1EZXN0aW5vTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9vcmlnZW0tZGVzdGluby1sb29rdXAnO1xuaW1wb3J0IHsgT3JpZ2VtTWVyY2Fkb3JpYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvb3JpZ2VtLW1lcmNhZG9yaWEtbG9va3VwJztcbmltcG9ydCB7IFByb2R1dG9TZXJ2aWNvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9wcm9kdXRvU2Vydmljby1sb29rdXAnO1xuaW1wb3J0IHsgUXVhbnRpZGFkZURpc3Bvbml2ZWxEZW1hbmRhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9xdGQtZGlzcG9uaXZlbC1kZW1hbmRhLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxRW5kTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtZW5kLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxUGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxVG5zTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtdG5zLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDA3VWZzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDctdWZzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDA4UmFpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDgtcmFpLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDE1TWVkTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMTUtbWVkLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDIwU25mTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjAtc25mLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDI0TXNnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjQtbXNnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDI4Q3BnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjgtY3BnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDMyRWRjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMzItZWRjLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDUxRGlzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNTEtZGlzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDY2RnBnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNjYtZnBnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDcwRW1wTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZW1wLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDcwRmlsTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZmlsLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDc1RGVyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzUtZGVyLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDgwU2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wODAtc2VyLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOYXR1cmV6YVJlY2VpdGFQaXNDb2ZpbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uYXR1cmV6YS1yZWNlaXRhLXBpcy1jb2ZpbnMnO1xuaW1wb3J0IHsgQ3BsVHJpTm90YVNhaWRhTmNtTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtbmNtLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOZkVudHJhZGFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uZi1lbnRyYWRhLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOZlNhaWRhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtbmYtc2FpZGEtbG9va3VwJztcbmltcG9ydCB7IFJlcXVpc2ljYW9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcXVpc2ljYW8tbG9va3VwJztcbmltcG9ydCB7IFNlZ21lbnRvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9zZWdtZW50by1sb29rdXAnO1xuaW1wb3J0IHsgVW5pZGFkZU1lZGlkYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvdW5pZGFkZS1tZWRpZGEtbG9va3VwJztcbmltcG9ydCB7IEJhbmtMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3dpemFyZC1lbnRpdGllcy9iYW5rLWxvb2t1cCc7XG5pbXBvcnQgeyBDb3VudHJ5TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy93aXphcmQtZW50aXRpZXMvY291bnRyeS1sb29rdXAnO1xuaW1wb3J0IHsgQ3VycmVuY3lMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3dpemFyZC1lbnRpdGllcy9jdXJyZW5jeS1sb29rdXAnO1xuaW1wb3J0IHsgRW50aXR5UGVyc29uUHJvZHVjdExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMveHQtaW50ZWdyYXRpb24vZW50aXR5LXBlcnNvbi1wcm9kdWN0LWxvb2t1cCc7XG5pbXBvcnQgeyBFcnBMb29rdXBzU2VydmljZSB9IGZyb20gJy4vZXJwLWxvb2t1cHMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0h0dHBJbnRlcmNlcHRvck1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVycExvb2t1cHNTZXJ2aWNlLFxuICAgICAgICBFMDk5VXN1Q29tR2VyTG9va3VwLFxuICAgICAgICBQcm9kdXRvU2Vydmljb0xvb2t1cCxcbiAgICAgICAgTGlnYWNhb0l0ZW1Gb3JuZWNlZG9yTG9va3VwLFxuICAgICAgICBFMDA2UGFpTG9va3VwLFxuICAgICAgICBFMDA3VWZzTG9va3VwLFxuICAgICAgICBFMDA4Q2VwTG9va3VwLFxuICAgICAgICBFMDA4UmFpTG9va3VwLFxuICAgICAgICBFMDIwU25mTG9va3VwLFxuICAgICAgICBFMDIxTW90TG9va3VwLFxuICAgICAgICBFMDIzQ3JwTG9va3VwLFxuICAgICAgICBFMDI4Q3BnTG9va3VwLFxuICAgICAgICBFMDM1T2NyTG9va3VwLFxuICAgICAgICBFMDM2SW5zTG9va3VwLFxuICAgICAgICBFMDM5UG9yTG9va3VwLFxuICAgICAgICBFMDQ3TnRnTG9va3VwLFxuICAgICAgICBFMDQ1UGxhTG9va3VwLFxuICAgICAgICBFMDcwRW1wTG9va3VwLFxuICAgICAgICBFMDcwRmlsTG9va3VwLFxuICAgICAgICBFMDczUGVzTG9va3VwLFxuICAgICAgICBFMDAxUGVzTG9va3VwLFxuICAgICAgICBFMDAxVG5zTG9va3VwLFxuICAgICAgICBFMDAyVHB0TG9va3VwLFxuICAgICAgICBFMDY3RmluTG9va3VwLFxuICAgICAgICBFMDE1TWVkTG9va3VwLFxuICAgICAgICBFMDg1UGVzTG9va3VwLFxuICAgICAgICBFMDkwUGVzTG9va3VwLFxuICAgICAgICBFMDkwSHJwQ29tR2VyTG9va3VwLFxuICAgICAgICBFMDc1RGVyTG9va3VwLFxuICAgICAgICBFMDc2TWFyTG9va3VwLFxuICAgICAgICBFMDgwU2VyTG9va3VwLFxuICAgICAgICBFMDgxVGFiTG9va3VwLFxuICAgICAgICBFMDI0TXNnTG9va3VwLFxuICAgICAgICBFMDMyRWRjTG9va3VwLFxuICAgICAgICBFMDgyVHByTG9va3VwLFxuICAgICAgICBFMDk1UGVzTG9va3VwLFxuICAgICAgICBFMjAwTG90TG9va3VwLFxuICAgICAgICBFMjAwU2VyTG9va3VwLFxuICAgICAgICBFMjEwRHhwTG9va3VwLFxuICAgICAgICBFNDAzRnByTG9va3VwLFxuICAgICAgICBFMDI3RXFpTG9va3VwLFxuICAgICAgICBFMDI3U3RyTG9va3VwLFxuICAgICAgICBFMDY2RnBnTG9va3VwLFxuICAgICAgICBFNDIwT2NwTG9va3VwLFxuICAgICAgICBFNDIwSXBjTG9va3VwLFxuICAgICAgICBFNDIwSWNwTG9va3VwLFxuICAgICAgICBFMDczVmVpTG9va3VwLFxuICAgICAgICBFNjAwQ2NvTG9va3VwLFxuICAgICAgICBFMDMwQmFuTG9va3VwLFxuICAgICAgICBFMDMxTW9lTG9va3VwLFxuICAgICAgICBFMDMwQWdlTG9va3VwLFxuICAgICAgICBFMjA1RGVwTG9va3VwLFxuICAgICAgICBFMDAxVG5zU3VwRXN0TG9va3VwLFxuICAgICAgICBFMTQwTmZzTG9va3VwLFxuICAgICAgICBFMTQwSW5zTG9va3VwLFxuICAgICAgICBFMDEyRmFtTG9va3VwLFxuICAgICAgICBFMDkxUGxmTG9va3VwLFxuICAgICAgICBFMjEwRHhwRTA3NURlckxvb2t1cCxcbiAgICAgICAgRTAwMUVuZExvb2t1cCxcbiAgICAgICAgRTA3MEVudExvb2t1cCxcbiAgICAgICAgRTMwMVRjckxvb2t1cCxcbiAgICAgICAgTmNtTG9va3VwLFxuICAgICAgICBRdWFudGlkYWRlRGlzcG9uaXZlbERlbWFuZGFMb29rdXAsXG4gICAgICAgIFVuaWRhZGVNZWRpZGFMb29rdXAsXG4gICAgICAgIFJlcXVpc2ljYW9Mb29rdXAsXG4gICAgICAgIEU2NDBMb3RMb29rdXAsXG4gICAgICAgIEUwNDZIcGRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzBFbXBMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzBGaWxMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFQZXNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjBTbmZMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMzJFZGNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFFbmRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDdVZnNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDhSYWlMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFUbnNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMTVNZWRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzVEZXJMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwODBTZXJMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYU5jbUxvb2t1cCxcbiAgICAgICAgQ3BsVHJpTm90YVNhaWRhTmF0dXJlemFSZWNlaXRhUGlzQ29maW5zTG9va3VwLFxuICAgICAgICBDcGxUcmlOb3RhU2FpZGFOZlNhaWRhTG9va3VwLFxuICAgICAgICBDcGxUcmlOb3RhU2FpZGFOZkVudHJhZGFMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNjZGcGdMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjhDcGdMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNTFEaXNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjRNc2dMb29rdXAsXG4gICAgICAgIEUwNTFEaXNMb29rdXAsXG4gICAgICAgIEUwNDRDY3VMb29rdXAsXG4gICAgICAgIE5hdHVyZXphUmVjZWl0YVBpc0NvZmlucyxcbiAgICAgICAgRTA0OEZjdExvb2t1cCxcbiAgICAgICAgRXF1aXBtZW50TG9va3VwLFxuICAgICAgICBFMDQ4U2ZjTG9va3VwLFxuICAgICAgICBDdXJyZW5jeUxvb2t1cCxcbiAgICAgICAgQ291bnRyeUxvb2t1cCxcbiAgICAgICAgQmFua0xvb2t1cCxcbiAgICAgICAgVHlwZVRheGVzTG9va3VwLFxuICAgICAgICBQYXJhbWV0ZXJzTG9va3VwLFxuICAgICAgICBCZW5lZmljaW9GaXNjYWxMb29rdXAsXG4gICAgICAgIENsYXNzaWZpY2FjYW9UcmlidXRhcmlhTG9va3VwLFxuICAgICAgICBEb2N1bWVudG9Mb29rdXAsXG4gICAgICAgIEUwOTlVc3VTdXBDcHJMb29rdXAsXG4gICAgICAgIEUwNjlHcmVMb29rdXAsXG4gICAgICAgIEU1MDFUY3BMb29rdXAsXG4gICAgICAgIEFncmVlbWVudExvb2t1cCxcbiAgICAgICAgTm90YUZpc2NhbEVudHJhZGFMb29rdXAsXG4gICAgICAgIFNlZ21lbnRvTG9va3VwLFxuICAgICAgICBFbnRpdHlQZXJzb25Qcm9kdWN0TG9va3VwLFxuICAgICAgICBDb250YUludGVybmFGaWxpYWxMb29rdXAsXG4gICAgICAgIEUwODlEb2NMb29rdXAsXG4gICAgICAgIEUwNDNNcGNMb29rdXAsXG4gICAgICAgIEUwNDNQY21Mb29rdXAsXG4gICAgICAgIEUwMzRUY2NMb29rdXAsXG4gICAgICAgIE9wZXJhY29lc0xvb2t1cCxcbiAgICAgICAgQ29tcG9zaWNhb0Jhc2VDYWxjdWxvTG9va3VwLFxuICAgICAgICBMZWlDb21wbGVtZW50YXIxMTYyMDAzTG9va3VwLFxuICAgICAgICBOYnNMb29rdXAsXG4gICAgICAgIENhcmFjdGVyaXN0aWNhRmlzY2FsTG9va3VwLFxuICAgICAgICBPcmlnZW1EZXN0aW5vTG9va3VwLFxuICAgICAgICBFMDQxQ2ViTG9va3VwLFxuICAgICAgICBPcmlnZW1NZXJjYWRvcmlhTG9va3VwLFxuICAgICAgICBFMDk1SGZvU3VwR2VyTG9va3VwLFxuICAgICAgICBJbmRPcGVyYWNhb0Zvcm5lY2ltZW50b0xvb2t1cCxcbiAgICAgICAgTGlzdGFTZXJ2aWNvTmFjaW9uYWxMb29rdXAsXG4gICAgICAgIERmZUV2ZW50b0xvb2t1cCxcbiAgICAgICAgRTA3MEZpbExvY1JldExvb2t1cCxcbiAgICAgICAgVW5pZGFkZUZlZGVyYXRpdmFMb29rdXAsXG4gICAgICAgIEF0aXZpZGFkZUZpbmFuY2VpcmFMb29rdXAsXG4gICAgICAgIENvZGlnb1RyaWJ1dGFjYW9Mb29rdXAsXG4gICAgICAgIENvbXBldGVuY2lhTG9va3VwLFxuICAgICAgICBDb250YXNDb250YWJlaXNMb29rdXAsXG4gICAgICAgIEUwNzBFbXBEZXJlTG9va3VwLFxuICAgICAgICBQcm9jZXNzb0xvb2t1cCxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEVycExvb2t1cHNNb2R1bGUge31cbiJdfQ==
|
|
422
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc25yLWVycHgtYW5ndWxhci1jb21wb25lbnRzL2xvb2t1cHMvc3JjL2xpYi9lcnAtbG9va3Vwcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxP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QUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZiwyQkFBMkI7d0JBQzNCLDRCQUE0Qjt3QkFDNUIsU0FBUzt3QkFDVCwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsNkJBQTZCO3dCQUM3QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2pCO29CQUNELFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3JNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBZ3JlZW1lbnRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2FncmVlbWVudC1sb29rdXAnO1xuaW1wb3J0IHsgUGFyYW1ldGVyc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvYXB1cmFjYW8tZm91bmRhdGlvbi9wYXJhbWV0ZXJzLWxvb2t1cCc7XG5pbXBvcnQgeyBUeXBlVGF4ZXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2FwdXJhY2FvLWZvdW5kYXRpb24vdHlwZS10YXhlcy1sb29rdXAnO1xuaW1wb3J0IHsgQmVuZWZpY2lvRmlzY2FsTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9iZW5lZmljaW8tZmlzY2FsLWxvb2t1cCc7XG5pbXBvcnQgeyBDYXJhY3RlcmlzdGljYUZpc2NhbExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvY2FyYWN0ZXJpc3RpY2EtZmlzY2FsLWxvb2t1cCc7XG5pbXBvcnQgeyBDbGFzc2lmaWNhY2FvVHJpYnV0YXJpYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvY2xhc3NpZmljYWNhby10cmlidXRhcmlhLWxvb2t1cCc7XG5pbXBvcnQgeyBDb21wb3NpY2FvQmFzZUNhbGN1bG9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cCc7XG5pbXBvcnQgeyBDb250YUludGVybmFGaWxpYWxMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2NvbnRhLWludGVybmEtZmlsaWFsLWxvb2t1cCc7XG5pbXBvcnQgeyBEb2N1bWVudG9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2RvY3VtZW50by1sb29rdXAnO1xuaW1wb3J0IHsgRTAwMUVuZExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDEtZW5kLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDAxUGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAwMS1wZXMtbG9va3VwJztcbmltcG9ydCB7IEUwMDFUbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDAxLXRucy1sb29rdXAnO1xuaW1wb3J0IHsgRTAwMVRuc1N1cEVzdExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDEtdG5zLXN1cC1lc3QtbG9va3VwJztcbmltcG9ydCB7IEUwMDJUcHRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDAyLXRwdC1sb29rdXAnO1xuaW1wb3J0IHsgRTAwNlBhaUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDYtcGFpLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDA3VWZzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAwNy11ZnMtbG9va3VwJztcbmltcG9ydCB7IEUwMDhDZXBMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDA4LWNlcC1sb29rdXAnO1xuaW1wb3J0IHsgRTAwOFJhaUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMDgtcmFpLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDEyRmFtTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAxMi1mYW0tbG9va3VwJztcbmltcG9ydCB7IEUwMTVNZWRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDE1LW1lZC1sb29rdXAnO1xuaW1wb3J0IHsgRTAyMFNuZkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjAtc25mLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDIxTW90TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAyMS1tb3QtbG9va3VwJztcbmltcG9ydCB7IEUwMjNDcnBMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDIzLWNycC1sb29rdXAnO1xuaW1wb3J0IHsgRTAyNE1zZ0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjQtbXNnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDI3RXFpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAyNy1lcWktbG9va3VwJztcbmltcG9ydCB7IEUwMjdTdHJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDI3LXN0ci1sb29rdXAnO1xuaW1wb3J0IHsgRTAyOENwZ0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMjgtY3BnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDMwQWdlTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzMC1hZ2UtbG9va3VwJztcbmltcG9ydCB7IEUwMzBCYW5Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDMwLWJhbi1sb29rdXAnO1xuaW1wb3J0IHsgRTAzMU1vZUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMzEtbW9lLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDMyRWRjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzMi1lZGMtbG9va3VwJztcbmltcG9ydCB7IEUwMzRUY2NMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDM0LXRjYy1sb29rdXAnO1xuaW1wb3J0IHsgRTAzNU9jckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wMzUtb2NyLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDM2SW5zTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTAzNi1pbnMtbG9va3VwJztcbmltcG9ydCB7IEUwMzlQb3JMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDM5LXBvci1sb29rdXAnO1xuaW1wb3J0IHsgRTA0MUNlYkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDEtY2ViLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQzTXBjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0My1tcGMtbG9va3VwJztcbmltcG9ydCB7IEUwNDNQY21Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQzLXBjbS1sb29rdXAnO1xuaW1wb3J0IHsgRTA0NENjdUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDQtY2N1LWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQ1UGxhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0NS1wbGEtbG9va3VwJztcbmltcG9ydCB7IEUwNDZIcGRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQ2LWhwZC1sb29rdXAnO1xuaW1wb3J0IHsgRTA0N050Z0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNDctbnRnLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDQ4RmN0TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA0OC1mY3QtbG9va3VwJztcbmltcG9ydCB7IEUwNDhTZmNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDQ4LXNmYy1sb29rdXAnO1xuaW1wb3J0IHsgRTA1MURpc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNTEtZGlzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDY2RnBnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA2Ni1mcGctbG9va3VwJztcbmltcG9ydCB7IEUwNjdGaW5Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDY3LWZpbi1sb29rdXAnO1xuaW1wb3J0IHsgRTA2OUdyZUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNjktZ3JlLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDcwRW1wTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA3MC1lbXAtbG9va3VwJztcbmltcG9ydCB7IEUwNzBFbnRMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDcwLWVudC1sb29rdXAnO1xuaW1wb3J0IHsgRTA3MEZpbExvY1JldExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzAtZmlsLWxvYy1yZXQtbG9va3VwJztcbmltcG9ydCB7IEUwNzBGaWxMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDcwLWZpbC1sb29rdXAnO1xuaW1wb3J0IHsgRTA3M1Blc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzMtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDczVmVpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA3My12ZWktbG9va3VwJztcbmltcG9ydCB7IEUwNzVEZXJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDc1LWRlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA3Nk1hckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wNzYtbWFyLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDgwU2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA4MC1zZXItbG9va3VwJztcbmltcG9ydCB7IEUwODFUYWJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDgxLXRhYi1sb29rdXAnO1xuaW1wb3J0IHsgRTA4MlRwckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wODItdHByLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDg1UGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA4NS1wZXMtbG9va3VwJztcbmltcG9ydCB7IEUwODlEb2NMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDg5LWRvYy1sb29rdXAnO1xuaW1wb3J0IHsgRTA5MEhycENvbUdlckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTAtaHJwLWNvbS1nZXItbG9va3VwJztcbmltcG9ydCB7IEUwOTBQZXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMDkwLXBlcy1sb29rdXAnO1xuaW1wb3J0IHsgRTA5MVBsZkxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTEtcGxmLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDk1SGZvU3VwR2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA5NS1oZm8tc3VwLWdlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA5NVBlc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTUtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMDk5VXN1Q29tR2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTA5OS11c3UtY29tLWdlci1sb29rdXAnO1xuaW1wb3J0IHsgRTA5OVVzdVN1cENwckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0wOTktdXN1LXN1cC1jcHItbG9va3VwJztcbmltcG9ydCB7IEUxNDBJbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMTQwLWlucy1sb29rdXAnO1xuaW1wb3J0IHsgRTE0ME5mc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0xNDAtbmZzLWxvb2t1cCc7XG5pbXBvcnQgeyBFMjAwTG90TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTIwMC1sb3QtbG9va3VwJztcbmltcG9ydCB7IEUyMDBTZXJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtMjAwLXNlci1sb29rdXAnO1xuaW1wb3J0IHsgRTIwNURlcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMDUtZGVwLWxvb2t1cCc7XG5pbXBvcnQgeyBFMjEwRHhwRTA3NURlckxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMTAtZHhwLWUtMDc1LWRlci1sb29rdXAnO1xuaW1wb3J0IHsgRTIxMER4cExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS0yMTAtZHhwLWxvb2t1cCc7XG5pbXBvcnQgeyBFMzAxVGNyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTMwMS10Y3ItbG9va3VwJztcbmltcG9ydCB7IEU0MDNGcHJMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNDAzLWZwci1sb29rdXAnO1xuaW1wb3J0IHsgRTQyMEljcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS00MjAtaWNwLWxvb2t1cCc7XG5pbXBvcnQgeyBFNDIwSXBjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTQyMC1pcGMtbG9va3VwJztcbmltcG9ydCB7IEU0MjBPY3BMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNDIwLW9jcC1sb29rdXAnO1xuaW1wb3J0IHsgRTUwMVRjcExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZS01MDEtdGNwLWxvb2t1cCc7XG5pbXBvcnQgeyBFNjAwQ2NvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lLTYwMC1jY28tbG9va3VwJztcbmltcG9ydCB7IEU2NDBMb3RMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2UtNjQwLWxvdC1sb29rdXAnO1xuaW1wb3J0IHsgRXF1aXBtZW50TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcXVpcG1lbnQtbG9va3VwJztcbmltcG9ydCB7IERmZUV2ZW50b0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZXJweC1jcGwtZGZlL2RmZS1ldmVudG8tbG9va3VwJztcbmltcG9ydCB7IEF0aXZpZGFkZUZpbmFuY2VpcmFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2F0aXZpZGFkZS1maW5hbmNlaXJhLWxvb2t1cCc7XG5pbXBvcnQgeyBCYXNlQ2FsY3Vsb0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZXJweC1jcGwtaXRyLWRlcmUvYmFzZS1jYWxjdWxvLWxvb2t1cCc7XG5pbXBvcnQgeyBDb2RpZ29UcmlidXRhY2FvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcnB4LWNwbC1pdHItZGVyZS9jb2RpZ28tdHJpYnV0YWNhby1sb29rdXAnO1xuaW1wb3J0IHsgQ29tcGV0ZW5jaWFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2NvbXBldGVuY2lhLWxvb2t1cCc7XG5pbXBvcnQgeyBDb250YXNDb250YWJlaXNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL2NvbnRhcy1jb250YWJlaXMtbG9va3VwJztcbmltcG9ydCB7IEUwNzBFbXBEZXJlTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9lcnB4LWNwbC1pdHItZGVyZS9lLTA3MC1lbXAtZGVyZS1sb29rdXAnO1xuaW1wb3J0IHsgUHJvY2Vzc29Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2VycHgtY3BsLWl0ci1kZXJlL3Byb2Nlc3NvLWxvb2t1cCc7XG5pbXBvcnQgeyBVbmlkYWRlRmVkZXJhdGl2YUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvZXJweC1jcGwtaXRyLWRlcmUvdW5pZGFkZS1mZWRlcmF0aXZhLWxvb2t1cCc7XG5pbXBvcnQgeyBJbmRPcGVyYWNhb0Zvcm5lY2ltZW50b0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvaW5kLW9wZXJhY2FvLWZvcm5lY2ltZW50by1sb29rdXAnO1xuaW1wb3J0IHsgTGVpQ29tcGxlbWVudGFyMTE2MjAwM0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbGVpLWNvbXBsZW1lbnRhci0xMTYyMDAzLWxvb2t1cCc7XG5pbXBvcnQgeyBMaWdhY2FvSXRlbUZvcm5lY2Vkb3JMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL2xpZ2FjYW8taXRlbS1mb3JuZWNlZG9yLWxvb2t1cCc7XG5pbXBvcnQgeyBMaXN0YVNlcnZpY29OYWNpb25hbExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbGlzdGEtc2Vydmljby1uYWNpb25hbC1sb29rdXAnO1xuaW1wb3J0IHsgTmF0dXJlemFSZWNlaXRhUGlzQ29maW5zIH0gZnJvbSAnLi9lbnRpdGllcy9uYXR1cmV6YS1yZWNlaXRhLXBpcy1jb2ZpbnMubG9va3VwJztcbmltcG9ydCB7IE5ic0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvbmJzLWxvb2t1cCc7XG5pbXBvcnQgeyBOY21Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL25jbS1sb29rdXAnO1xuaW1wb3J0IHsgTm90YUZpc2NhbEVudHJhZGFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL25vdGEtZmlzY2FsLWVudHJhZGEtbG9va3VwJztcbmltcG9ydCB7IE9wZXJhY29lc0xvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvb3BlcmFjb2VzLWxvb2t1cCc7XG5pbXBvcnQgeyBPcmlnZW1EZXN0aW5vTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9vcmlnZW0tZGVzdGluby1sb29rdXAnO1xuaW1wb3J0IHsgT3JpZ2VtTWVyY2Fkb3JpYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvb3JpZ2VtLW1lcmNhZG9yaWEtbG9va3VwJztcbmltcG9ydCB7IFByb2R1dG9TZXJ2aWNvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9wcm9kdXRvU2Vydmljby1sb29rdXAnO1xuaW1wb3J0IHsgUXVhbnRpZGFkZURpc3Bvbml2ZWxEZW1hbmRhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9xdGQtZGlzcG9uaXZlbC1kZW1hbmRhLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxRW5kTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtZW5kLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxUGVzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtcGVzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDAxVG5zTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDEtdG5zLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDA3VWZzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDctdWZzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDA4UmFpTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMDgtcmFpLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDE1TWVkTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMTUtbWVkLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDIwU25mTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjAtc25mLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDI0TXNnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjQtbXNnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDI4Q3BnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMjgtY3BnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDMyRWRjTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wMzItZWRjLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDUxRGlzTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNTEtZGlzLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDY2RnBnTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNjYtZnBnLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDcwRW1wTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZW1wLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDcwRmlsTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzAtZmlsLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDc1RGVyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wNzUtZGVyLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFFMDgwU2VyTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtZS0wODAtc2VyLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOYXR1cmV6YVJlY2VpdGFQaXNDb2ZpbnNMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uYXR1cmV6YS1yZWNlaXRhLXBpcy1jb2ZpbnMnO1xuaW1wb3J0IHsgQ3BsVHJpTm90YVNhaWRhTmNtTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtbmNtLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOZkVudHJhZGFMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcGxpY2F0aW9uLWVudGl0aWVzL2NwbC10cmktbm90YS1zYWlkYS1uZi1lbnRyYWRhLWxvb2t1cCc7XG5pbXBvcnQgeyBDcGxUcmlOb3RhU2FpZGFOZlNhaWRhTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9yZXBsaWNhdGlvbi1lbnRpdGllcy9jcGwtdHJpLW5vdGEtc2FpZGEtbmYtc2FpZGEtbG9va3VwJztcbmltcG9ydCB7IFJlcXVpc2ljYW9Mb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3JlcXVpc2ljYW8tbG9va3VwJztcbmltcG9ydCB7IFNlZ21lbnRvTG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy9zZWdtZW50by1sb29rdXAnO1xuaW1wb3J0IHsgVW5pZGFkZU1lZGlkYUxvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMvdW5pZGFkZS1tZWRpZGEtbG9va3VwJztcbmltcG9ydCB7IEJhbmtMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3dpemFyZC1lbnRpdGllcy9iYW5rLWxvb2t1cCc7XG5pbXBvcnQgeyBDb3VudHJ5TG9va3VwIH0gZnJvbSAnLi9lbnRpdGllcy93aXphcmQtZW50aXRpZXMvY291bnRyeS1sb29rdXAnO1xuaW1wb3J0IHsgQ3VycmVuY3lMb29rdXAgfSBmcm9tICcuL2VudGl0aWVzL3dpemFyZC1lbnRpdGllcy9jdXJyZW5jeS1sb29rdXAnO1xuaW1wb3J0IHsgRW50aXR5UGVyc29uUHJvZHVjdExvb2t1cCB9IGZyb20gJy4vZW50aXRpZXMveHQtaW50ZWdyYXRpb24vZW50aXR5LXBlcnNvbi1wcm9kdWN0LWxvb2t1cCc7XG5pbXBvcnQgeyBFcnBMb29rdXBzU2VydmljZSB9IGZyb20gJy4vZXJwLWxvb2t1cHMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0h0dHBJbnRlcmNlcHRvck1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVycExvb2t1cHNTZXJ2aWNlLFxuICAgICAgICBFMDk5VXN1Q29tR2VyTG9va3VwLFxuICAgICAgICBQcm9kdXRvU2Vydmljb0xvb2t1cCxcbiAgICAgICAgTGlnYWNhb0l0ZW1Gb3JuZWNlZG9yTG9va3VwLFxuICAgICAgICBFMDA2UGFpTG9va3VwLFxuICAgICAgICBFMDA3VWZzTG9va3VwLFxuICAgICAgICBFMDA4Q2VwTG9va3VwLFxuICAgICAgICBFMDA4UmFpTG9va3VwLFxuICAgICAgICBFMDIwU25mTG9va3VwLFxuICAgICAgICBFMDIxTW90TG9va3VwLFxuICAgICAgICBFMDIzQ3JwTG9va3VwLFxuICAgICAgICBFMDI4Q3BnTG9va3VwLFxuICAgICAgICBFMDM1T2NyTG9va3VwLFxuICAgICAgICBFMDM2SW5zTG9va3VwLFxuICAgICAgICBFMDM5UG9yTG9va3VwLFxuICAgICAgICBFMDQ3TnRnTG9va3VwLFxuICAgICAgICBFMDQ1UGxhTG9va3VwLFxuICAgICAgICBFMDcwRW1wTG9va3VwLFxuICAgICAgICBFMDcwRmlsTG9va3VwLFxuICAgICAgICBFMDczUGVzTG9va3VwLFxuICAgICAgICBFMDAxUGVzTG9va3VwLFxuICAgICAgICBFMDAxVG5zTG9va3VwLFxuICAgICAgICBFMDAyVHB0TG9va3VwLFxuICAgICAgICBFMDY3RmluTG9va3VwLFxuICAgICAgICBFMDE1TWVkTG9va3VwLFxuICAgICAgICBFMDg1UGVzTG9va3VwLFxuICAgICAgICBFMDkwUGVzTG9va3VwLFxuICAgICAgICBFMDkwSHJwQ29tR2VyTG9va3VwLFxuICAgICAgICBFMDc1RGVyTG9va3VwLFxuICAgICAgICBFMDc2TWFyTG9va3VwLFxuICAgICAgICBFMDgwU2VyTG9va3VwLFxuICAgICAgICBFMDgxVGFiTG9va3VwLFxuICAgICAgICBFMDI0TXNnTG9va3VwLFxuICAgICAgICBFMDMyRWRjTG9va3VwLFxuICAgICAgICBFMDgyVHByTG9va3VwLFxuICAgICAgICBFMDk1UGVzTG9va3VwLFxuICAgICAgICBFMjAwTG90TG9va3VwLFxuICAgICAgICBFMjAwU2VyTG9va3VwLFxuICAgICAgICBFMjEwRHhwTG9va3VwLFxuICAgICAgICBFNDAzRnByTG9va3VwLFxuICAgICAgICBFMDI3RXFpTG9va3VwLFxuICAgICAgICBFMDI3U3RyTG9va3VwLFxuICAgICAgICBFMDY2RnBnTG9va3VwLFxuICAgICAgICBFNDIwT2NwTG9va3VwLFxuICAgICAgICBFNDIwSXBjTG9va3VwLFxuICAgICAgICBFNDIwSWNwTG9va3VwLFxuICAgICAgICBFMDczVmVpTG9va3VwLFxuICAgICAgICBFNjAwQ2NvTG9va3VwLFxuICAgICAgICBFMDMwQmFuTG9va3VwLFxuICAgICAgICBFMDMxTW9lTG9va3VwLFxuICAgICAgICBFMDMwQWdlTG9va3VwLFxuICAgICAgICBFMjA1RGVwTG9va3VwLFxuICAgICAgICBFMDAxVG5zU3VwRXN0TG9va3VwLFxuICAgICAgICBFMTQwTmZzTG9va3VwLFxuICAgICAgICBFMTQwSW5zTG9va3VwLFxuICAgICAgICBFMDEyRmFtTG9va3VwLFxuICAgICAgICBFMDkxUGxmTG9va3VwLFxuICAgICAgICBFMjEwRHhwRTA3NURlckxvb2t1cCxcbiAgICAgICAgRTAwMUVuZExvb2t1cCxcbiAgICAgICAgRTA3MEVudExvb2t1cCxcbiAgICAgICAgRTMwMVRjckxvb2t1cCxcbiAgICAgICAgTmNtTG9va3VwLFxuICAgICAgICBRdWFudGlkYWRlRGlzcG9uaXZlbERlbWFuZGFMb29rdXAsXG4gICAgICAgIFVuaWRhZGVNZWRpZGFMb29rdXAsXG4gICAgICAgIFJlcXVpc2ljYW9Mb29rdXAsXG4gICAgICAgIEU2NDBMb3RMb29rdXAsXG4gICAgICAgIEUwNDZIcGRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzBFbXBMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzBGaWxMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFQZXNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjBTbmZMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMzJFZGNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFFbmRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDdVZnNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDhSYWlMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMDFUbnNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMTVNZWRMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNzVEZXJMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwODBTZXJMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYU5jbUxvb2t1cCxcbiAgICAgICAgQ3BsVHJpTm90YVNhaWRhTmF0dXJlemFSZWNlaXRhUGlzQ29maW5zTG9va3VwLFxuICAgICAgICBDcGxUcmlOb3RhU2FpZGFOZlNhaWRhTG9va3VwLFxuICAgICAgICBDcGxUcmlOb3RhU2FpZGFOZkVudHJhZGFMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNjZGcGdMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjhDcGdMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwNTFEaXNMb29rdXAsXG4gICAgICAgIENwbFRyaU5vdGFTYWlkYUUwMjRNc2dMb29rdXAsXG4gICAgICAgIEUwNTFEaXNMb29rdXAsXG4gICAgICAgIEUwNDRDY3VMb29rdXAsXG4gICAgICAgIE5hdHVyZXphUmVjZWl0YVBpc0NvZmlucyxcbiAgICAgICAgRTA0OEZjdExvb2t1cCxcbiAgICAgICAgRXF1aXBtZW50TG9va3VwLFxuICAgICAgICBFMDQ4U2ZjTG9va3VwLFxuICAgICAgICBDdXJyZW5jeUxvb2t1cCxcbiAgICAgICAgQ291bnRyeUxvb2t1cCxcbiAgICAgICAgQmFua0xvb2t1cCxcbiAgICAgICAgVHlwZVRheGVzTG9va3VwLFxuICAgICAgICBQYXJhbWV0ZXJzTG9va3VwLFxuICAgICAgICBCZW5lZmljaW9GaXNjYWxMb29rdXAsXG4gICAgICAgIENsYXNzaWZpY2FjYW9UcmlidXRhcmlhTG9va3VwLFxuICAgICAgICBEb2N1bWVudG9Mb29rdXAsXG4gICAgICAgIEUwOTlVc3VTdXBDcHJMb29rdXAsXG4gICAgICAgIEUwNjlHcmVMb29rdXAsXG4gICAgICAgIEU1MDFUY3BMb29rdXAsXG4gICAgICAgIEFncmVlbWVudExvb2t1cCxcbiAgICAgICAgTm90YUZpc2NhbEVudHJhZGFMb29rdXAsXG4gICAgICAgIFNlZ21lbnRvTG9va3VwLFxuICAgICAgICBFbnRpdHlQZXJzb25Qcm9kdWN0TG9va3VwLFxuICAgICAgICBDb250YUludGVybmFGaWxpYWxMb29rdXAsXG4gICAgICAgIEUwODlEb2NMb29rdXAsXG4gICAgICAgIEUwNDNNcGNMb29rdXAsXG4gICAgICAgIEUwNDNQY21Mb29rdXAsXG4gICAgICAgIEUwMzRUY2NMb29rdXAsXG4gICAgICAgIE9wZXJhY29lc0xvb2t1cCxcbiAgICAgICAgQ29tcG9zaWNhb0Jhc2VDYWxjdWxvTG9va3VwLFxuICAgICAgICBMZWlDb21wbGVtZW50YXIxMTYyMDAzTG9va3VwLFxuICAgICAgICBOYnNMb29rdXAsXG4gICAgICAgIENhcmFjdGVyaXN0aWNhRmlzY2FsTG9va3VwLFxuICAgICAgICBPcmlnZW1EZXN0aW5vTG9va3VwLFxuICAgICAgICBFMDQxQ2ViTG9va3VwLFxuICAgICAgICBPcmlnZW1NZXJjYWRvcmlhTG9va3VwLFxuICAgICAgICBFMDk1SGZvU3VwR2VyTG9va3VwLFxuICAgICAgICBJbmRPcGVyYWNhb0Zvcm5lY2ltZW50b0xvb2t1cCxcbiAgICAgICAgTGlzdGFTZXJ2aWNvTmFjaW9uYWxMb29rdXAsXG4gICAgICAgIERmZUV2ZW50b0xvb2t1cCxcbiAgICAgICAgRTA3MEZpbExvY1JldExvb2t1cCxcbiAgICAgICAgVW5pZGFkZUZlZGVyYXRpdmFMb29rdXAsXG4gICAgICAgIEF0aXZpZGFkZUZpbmFuY2VpcmFMb29rdXAsXG4gICAgICAgIEJhc2VDYWxjdWxvTG9va3VwLFxuICAgICAgICBDb2RpZ29UcmlidXRhY2FvTG9va3VwLFxuICAgICAgICBDb21wZXRlbmNpYUxvb2t1cCxcbiAgICAgICAgQ29udGFzQ29udGFiZWlzTG9va3VwLFxuICAgICAgICBFMDcwRW1wRGVyZUxvb2t1cCxcbiAgICAgICAgUHJvY2Vzc29Mb29rdXAsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBFcnBMb29rdXBzTW9kdWxlIHt9XG4iXX0=
|