@oiz/stzh-components-angular 3.5.0 → 3.6.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/stencil-generated/boolean-value-accessor.mjs +1 -1
- package/esm2022/lib/stencil-generated/number-value-accessor.mjs +1 -1
- package/esm2022/lib/stencil-generated/proxies.mjs +7 -7
- package/fesm2022/oiz-stzh-components-angular.mjs +6 -6
- package/fesm2022/oiz-stzh-components-angular.mjs.map +1 -1
- package/lib/stencil-generated/proxies.d.ts +2 -2
- package/package.json +2 -2
|
@@ -2488,11 +2488,11 @@ export let StzhProgressbarItem = class StzhProgressbarItem {
|
|
|
2488
2488
|
proxyOutputs(this, this.el, ['stzhClick', 'stzhDottedClick']);
|
|
2489
2489
|
}
|
|
2490
2490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhProgressbarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2491
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhProgressbarItem, selector: "stzh-progressbar-item", inputs: { analyticsId: "analyticsId", clickDisabled: "clickDisabled", current: "current", disabled: "disabled", dotted: "dotted", first: "first", hide: "hide", icon: "icon", label: "label", last: "last", passed: "passed", step: "step" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhProgressbarItem, selector: "stzh-progressbar-item", inputs: { analyticsId: "analyticsId", clickDisabled: "clickDisabled", current: "current", disabled: "disabled", dotted: "dotted", first: "first", hide: "hide", icon: "icon", incomplete: "incomplete", label: "label", last: "last", passed: "passed", step: "step" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2492
2492
|
};
|
|
2493
2493
|
StzhProgressbarItem = __decorate([
|
|
2494
2494
|
ProxyCmp({
|
|
2495
|
-
inputs: ['analyticsId', 'clickDisabled', 'current', 'disabled', 'dotted', 'first', 'hide', 'icon', 'label', 'last', 'passed', 'step']
|
|
2495
|
+
inputs: ['analyticsId', 'clickDisabled', 'current', 'disabled', 'dotted', 'first', 'hide', 'icon', 'incomplete', 'label', 'last', 'passed', 'step']
|
|
2496
2496
|
})
|
|
2497
2497
|
], StzhProgressbarItem);
|
|
2498
2498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhProgressbarItem, decorators: [{
|
|
@@ -2502,7 +2502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2502
2502
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2503
2503
|
template: '<ng-content></ng-content>',
|
|
2504
2504
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2505
|
-
inputs: ['analyticsId', 'clickDisabled', 'current', 'disabled', 'dotted', 'first', 'hide', 'icon', 'label', 'last', 'passed', 'step'],
|
|
2505
|
+
inputs: ['analyticsId', 'clickDisabled', 'current', 'disabled', 'dotted', 'first', 'hide', 'icon', 'incomplete', 'label', 'last', 'passed', 'step'],
|
|
2506
2506
|
}]
|
|
2507
2507
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
2508
2508
|
export let StzhQuote = class StzhQuote {
|
|
@@ -3389,11 +3389,11 @@ export let StzhUpload = class StzhUpload {
|
|
|
3389
3389
|
proxyOutputs(this, this.el, ['stzhFileAdded', 'stzhFilesAdded', 'stzhFileRemove', 'stzhFileRemoved', 'stzhSending', 'stzhSendingMultiple', 'stzhProcessing', 'stzhProcessingMultiple', 'stzhProgress', 'stzhProgressTotal', 'stzhError', 'stzhErrorMultiple', 'stzhSuccess', 'stzhSuccessMultiple', 'stzhCanceled', 'stzhCanceledMultiple', 'stzhComplete', 'stzhCompleteMultiple']);
|
|
3390
3390
|
}
|
|
3391
3391
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3392
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhUpload, selector: "stzh-upload", inputs: { accept: "accept", acceptedFiles: "acceptedFiles", autoProcessQueue: "autoProcessQueue", button: "button", buttonScan: "buttonScan", chunkSize: "chunkSize", chunking: "chunking", chunksUploaded: "chunksUploaded", defaultHeaders: "defaultHeaders", description: "description", disableToasts: "disableToasts", disabled: "disabled", downloadDisabled: "downloadDisabled", downloadDisabledWhileProcessing: "downloadDisabledWhileProcessing", error: "error", existingFiles: "existingFiles", filesizeBase: "filesizeBase", forceChunking: "forceChunking", headers: "headers", headersAsync: "headersAsync", heading: "heading", hiddenInputContainer: "hiddenInputContainer", hideProgress: "hideProgress", hideProgressWhileIdle: "hideProgressWhileIdle", invalid: "invalid", label: "label", localization: "localization", maxFiles: "maxFiles", maxFilesize: "maxFilesize", method: "method", name: "name", parallelChunkUploads: "parallelChunkUploads", parallelUploads: "parallelUploads", photographingEnabled: "photographingEnabled", preventHiddenInputClear: "preventHiddenInputClear", retryChunks: "retryChunks", retryChunksLimit: "retryChunksLimit", uploadMultiple: "uploadMultiple", url: "url", withCredentials: "withCredentials" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3392
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhUpload, selector: "stzh-upload", inputs: { accept: "accept", acceptedFiles: "acceptedFiles", autoProcessQueue: "autoProcessQueue", button: "button", buttonScan: "buttonScan", chunkSize: "chunkSize", chunking: "chunking", chunksUploaded: "chunksUploaded", defaultHeaders: "defaultHeaders", description: "description", disableToasts: "disableToasts", disabled: "disabled", downloadDisabled: "downloadDisabled", downloadDisabledWhileProcessing: "downloadDisabledWhileProcessing", error: "error", existingFiles: "existingFiles", filesizeBase: "filesizeBase", forceChunking: "forceChunking", headers: "headers", headersAsync: "headersAsync", heading: "heading", hiddenInputContainer: "hiddenInputContainer", hideProgress: "hideProgress", hideProgressWhileIdle: "hideProgressWhileIdle", invalid: "invalid", label: "label", localization: "localization", maxFiles: "maxFiles", maxFilesize: "maxFilesize", maxFilesizeTotal: "maxFilesizeTotal", method: "method", name: "name", parallelChunkUploads: "parallelChunkUploads", parallelUploads: "parallelUploads", photographingEnabled: "photographingEnabled", preventHiddenInputClear: "preventHiddenInputClear", retryChunks: "retryChunks", retryChunksLimit: "retryChunksLimit", uploadMultiple: "uploadMultiple", url: "url", withCredentials: "withCredentials" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3393
3393
|
};
|
|
3394
3394
|
StzhUpload = __decorate([
|
|
3395
3395
|
ProxyCmp({
|
|
3396
|
-
inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'headersAsync', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
|
|
3396
|
+
inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'headersAsync', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'maxFilesizeTotal', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
|
|
3397
3397
|
methods: ['processQueue', 'removeFile', 'removeAllFiles']
|
|
3398
3398
|
})
|
|
3399
3399
|
], StzhUpload);
|
|
@@ -3404,7 +3404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3404
3404
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3405
3405
|
template: '<ng-content></ng-content>',
|
|
3406
3406
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
3407
|
-
inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'headersAsync', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
|
|
3407
|
+
inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'headersAsync', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'maxFilesizeTotal', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
|
|
3408
3408
|
}]
|
|
3409
3409
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
3410
3410
|
export let StzhVbzCarousel = class StzhVbzCarousel {
|
|
@@ -3624,4 +3624,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3624
3624
|
inputs: ['cookie', 'cookieExpires', 'localization', 'skipPreview', 'skipPreviewIfCookieAccepted', 'url'],
|
|
3625
3625
|
}]
|
|
3626
3626
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
3627
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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LFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxXQUFXO21HQUFYLFdBQVcsb1BBSlosMkJBQTJCOztBQUkxQixXQUFXO0lBVnZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxLQUFLLENBQUM7S0FDekcsQ0FBQztHQVFXLFdBQVcsQ0FNdkI7NEZBTlksV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLEtBQUssQ0FBQztpQkFDekciLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdoZWFkaW5nJywgJ211bHRpc2VsZWN0YWJsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVmFyaWFudENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aEFjY29yZGlvblN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIFZhcmlhbnQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoVmFyaWFudENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3VidGl0bGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdWJ0aXRsZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCcsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWNjb3JkaW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzcGFjZUJldHdlZW4nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY3Rpb25zJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzcGFjZUJldHdlZW4nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWN0aW9ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWN0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2xvY2FsaXphdGlvbicsICdwb3BvdmVyQnV0dG9uU2l6ZScsICdwb3BvdmVyQnV0dG9uVmFyaWFudCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWN0aW9uc2V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2xvY2FsaXphdGlvbicsICdwb3BvdmVyQnV0dG9uU2l6ZScsICdwb3BvdmVyQnV0dG9uVmFyaWFudCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjdGlvbnNldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhBY3Rpb25DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQWN0aW9uc2V0U3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjdGlvbnNldCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnNldCB7XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW1vdW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFtb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbW91bnRDaGFuZ2VFdmVudCBhcyBJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbW91bnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbW91bnQge1xuICAvKipcbiAgICogQW1vdW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW1vdW50U3R6aEFtb3VudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hbmNob3JuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQW5jaG9ybmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFuY2hvcm5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFuY2hvcm5hdiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBbmNob3JuYXZTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcEJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcEJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwLW5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBOYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQXBwTmF2SXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBcHBOYXZTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXBwTmF2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXBwTmF2IHtcbiAgLyoqXG4gICAqIEFwcE5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQXBwTmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcHBOYXZTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwb2ludG1lbnRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBvaW50bWVudHMnLCAnYXBwb2ludG1lbnRzVGl0bGUnLCAnY2FsZW5kYXJUaXRsZScsICdjdXJyZW50RGF0ZScsICdkYXRlQWRhcHRlcicsICdkaXNhYmxlU29ydCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzaG93SXRlbXMnLCAnc29ydEJ5JywgJ3N0ZXBJdGVtcycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwb2ludG1lbnRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50IGFzIElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcG9pbnRtZW50cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcG9pbnRtZW50cyB7XG4gIC8qKlxuICAgKiBBcHBvaW50bWVudHMgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcHBvaW50bWVudHNTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXJjaGl2ZWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcmNoaXZlbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXJjaGl2ZWxpc3RTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcmNoaXZlbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFyY2hpdmVsaXN0IHtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZG93bmxvYWRBbmFseXRpY3NJZCcsICdsb2NhbGl6YXRpb24nLCAncHJlbG9hZCcsICdzcmMnLCAndHJhbnNjcmlwdCcsICd0cmFuc2NyaXB0QW5hbHl0aWNzSWQnLCAndHJhbnNjcmlwdFNob3duJ10sXG4gIG1ldGhvZHM6IFsncGxheScsICdwYXVzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hdWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZG93bmxvYWRBbmFseXRpY3NJZCcsICdsb2NhbGl6YXRpb24nLCAncHJlbG9hZCcsICdzcmMnLCAndHJhbnNjcmlwdCcsICd0cmFuc2NyaXB0QW5hbHl0aWNzSWQnLCAndHJhbnNjcmlwdFNob3duJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBdWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhQbGF5JywgJ3N0emhQbGF5aW5nJywgJ3N0emhQYXVzZScsICdzdHpoUmVwbGF5JywgJ3N0emhFbmQnLCAnc3R6aEVuZGVkJywgJ3N0emhFcnJvciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGxheUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlpbmdFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QYXVzZUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QYXVzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9SZXBsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZEV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRW5kZWRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRXJyb3JFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBdWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEF1ZGlvIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHBhdXNlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkIGZyb20gdHJ1ZSB0byBmYWxzZSwgYXMgYSByZXN1bHQgb2YgdGhlIHBsYXkoKSBtZXRob2QsIG9yIHRoZSBhdXRvcGxheSBhdHRyaWJ1dGUuXG4gICAqL1xuICBzdHpoUGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgaXMgcmVhZHkgdG8gc3RhcnQgYWZ0ZXIgaGF2aW5nIGJlZW4gcGF1c2VkIG9yIGRlbGF5ZWQgZHVlIHRvIGxhY2sgb2YgZGF0YS5cbiAgICovXG4gIHN0emhQbGF5aW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBhIHJlcXVlc3QgdG8gcGF1c2UgYW4gYWN0aXZpdHkgaXMgaGFuZGxlZCBhbmQgdGhlIGFjdGl2aXR5IGhhcyBlbnRlcmVkIGl0cyBwYXVzZWQgc3RhdGUsIG1vc3QgY29tbW9ubHkgYWZ0ZXIgdGhlIG1lZGlhIGhhcyBiZWVuIHBhdXNlZCB0aHJvdWdoIGEgY2FsbCB0byB0aGUgcGF1c2UoKSBtZXRob2QuXG4gICAqL1xuICBzdHpoUGF1c2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBtZWRpYSBwbGF5YmFjayBzdGFydHMgYWdhaW4gYWZ0ZXIgYmVpbmcgaW4gYW4gZW5kZWQgc3RhdGUuIFRoaXMgaXMgZmlyZWQgd2hlbiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlIGFuZCBtZWRpYSBsb29wcywgd2hlcmVhcyB0aGUgdmRzLXBsYXkgZXZlbnQgaXMgbm90LlxuICAgKi9cbiAgc3R6aFJlcGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9SZXBsYXlFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgZWFjaCB0aW1lIG1lZGlhIHBsYXliYWNrIGhhcyByZWFjaGVkIHRoZSBlbmQuIFRoaXMgaXMgZmlyZWQgZXZlbiBpZiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlLCB3aGljaCBpcyBnZW5lcmFsbHkgd2hlbiB5b3UnZCByZWFjaCBmb3IgdGhpcyBldmVudCBvdmVyIHRoZSBNZWRpYUVuZGVkRXZlbnQgaWYgeW91IHdhbnQgdG8gYmUgbm90aWZpZWQgb2YgbWVkaWEgbG9vcGluZy5cbiAgICovXG4gIHN0emhFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgb3Igc3RyZWFtaW5nIGhhcyBzdG9wcGVkIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgbWVkaWEgd2FzIHJlYWNoZWQgb3IgYmVjYXVzZSBubyBmdXJ0aGVyIGRhdGEgaXMgYXZhaWxhYmxlLiBUaGlzIGlzIG5vdCBmaXJlZCBpZiBwbGF5YmFjayB3aWxsIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZyBhZ2FpbiBkdWUgdG8gdGhlIGxvb3AgcHJvcGVydHkgYmVpbmcgdHJ1ZSAoc2VlIE1lZGlhUmVwbGF5RXZlbnQgYW5kIE1lZGlhRW5kRXZlbnQpLlxuICAgKi9cbiAgc3R6aEVuZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgbG9hZGluZyBvciBwbGF5YmFjayBoYXMgZW5jb3VudGVyZWQgYW55IGlzc3VlcyAoZm9yIGV4YW1wbGUsIGEgbmV0d29yayBjb25uZWN0aXZpdHkgcHJvYmxlbSkuIFRoZSBldmVudCBkZXRhaWwgY29udGFpbnMgYSBwb3RlbnRpYWwgbWVzc2FnZSBjb250YWluaW5nIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yIChlbXB0eSBzdHJpbmcgaWYgbm90aGluZyBhdmFpbGFibGUpLCBhbmQgYSBjb2RlIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJhbCB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCYW5uZXJPcGVuRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyQ2xvc2VFdmVudCBhcyBJU3R6aEJhbm5lclN0emhCYW5uZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJhbm5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhbm5lciB7XG4gIC8qKlxuICAgKiBCYW5uZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJhbm5lciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlQWRhcHRlcicsICdpdGVtJywgJ2xvY2FsaXphdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhdGhzdGF0dXMtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmF0aHN0YXR1c0l0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmF0aHN0YXR1c0l0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYXRoc3RhdHVzSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhdGhzdGF0dXMtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmF0aHN0YXR1c0xpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmF0aHN0YXR1c0xpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYXRoc3RhdHVzTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgYXMgSVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2J1dHRvbkFjY2Vzc2tleScsICdidXR0b25JZCcsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2VmZmVjdCcsICdmdWxsd2lkdGgnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdub0h5cGhlbmF0aW9uJywgJ25vUGFkZGluZ0xlZnQnLCAnbm9QYWRkaW5nUmlnaHQnLCAncmVsJywgJ3JvdW5kZWQnLCAnc2hvd1RvZ2dsZUljb24nLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENoYW5nZScsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25Gb2N1c0V2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25CbHVyRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQ2hhbmdlRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25DbGlja0V2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnV0dG9uIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudD4+O1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IChvbmx5IGNhbGxlZCBpZiB0eXBlIGlzIHJhZGlvKVxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1idXR0b25ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnV0dG9uZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnV0dG9uZ3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCdXR0b25ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaXJzdERheU9mV2VlaycsICdpc0RhdGVEaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduZXh0TW9udGhBbmFseXRpY3NJZCcsICdwcmV2TW9udGhBbmFseXRpY3NJZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzZWREYXknLCAnc2V0RGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYWxlbmRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlyc3REYXlPZldlZWsnLCAnaXNEYXRlRGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmV4dE1vbnRoQW5hbHl0aWNzSWQnLCAncHJldk1vbnRoQW5hbHl0aWNzSWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhbGVuZGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhbGVuZGFyQ2hhbmdlRXZlbnQgYXMgSVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FsZW5kYXIge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhbGVuZGFyU3R6aENhbGVuZGFyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjaGVja2VkJywgJ2NvbGxhcHNlZCcsICdjb2xsYXBzaWJsZScsICdkaXNhYmxlZCcsICdmb290ZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9uc0JhZGdlJywgJ2hlYWRlckFjdGlvbnNCYWRnZVR5cGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaGlkZU1vdmVtZW50QWN0aW9ucycsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3NlbGVjdGFibGUnLCAnc29ydGFibGVEaXNhYmxlZCcsICdzdGFycmFibGUnLCAnc3RhcnJlZCcsICdzdWJ0aXRsZScsICdzdWJ0aXRsZUludGVyYWN0aXZlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhDb2xsYXBzZScsICdzdHpoU3VidGl0bGVDbGljaycsICdzdHpoU3RhckNsaWNrJywgJ3N0emhIZWFkZXJBY3Rpb25DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRDb2xsYXBzZUV2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3RhckNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRTdGFyQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZCB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDb2xsYXBzZSBldmVudFxuICAgKi9cbiAgc3R6aENvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRDb2xsYXBzZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTdWJ0aXRsZSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFN1YnRpdGxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogU3RhciBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFN0YXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkU3RhckNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEhlYWRlciBhY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhIZWFkZXJBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xlYWQnLCAndGFyZ2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsZWFkJywgJ3RhcmdldCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZE5hdmlnYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhDYXJkTmF2aWdhdGlvblN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZE5hdmlnYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkTmF2aWdhdGlvbiB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkTmF2aWdhdGlvblN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncGxhY2Vob2xkZXJJbWFnZUVuYWJsZWQnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc2VhcmNocmVzdWx0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRTZWFyY2hyZXN1bHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudCBhcyBJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZFNlYXJjaHJlc3VsdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTZWFyY2hyZXN1bHQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFNlYXJjaHJlc3VsdFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdpc09uSG9tZXBhZ2UnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncGxhY2Vob2xkZXJJbWFnZUVuYWJsZWQnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc3VwZXJ0ZWFzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2lzT25Ib21lcGFnZScsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdXBlcnRlYXNlckNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkU3VwZXJ0ZWFzZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU3VwZXJ0ZWFzZXIge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN1cGVydGVhc2VyU3R6aENhcmRTdXBlcnRlYXNlckNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdtYXgzQ29sdW1ucycsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZGxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2xheW91dCcsICdsb2NhbGl6YXRpb24nLCAnbWF4M0NvbHVtbnMnLCAnc2hvd1RvZ2dsZUxpbmsnLCAnc29ydGFibGVEYXRhSWRBdHRyaWJ1dGUnLCAnc29ydGFibGVFbmFibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDb2xsYXBzZUFsbCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCBhcyBJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRsaXN0IHtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGFsbCBldmVudFxuICAgKi9cbiAgc3R6aENvbGxhcHNlQWxsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkbGlzdFN0emhDYXJkbGlzdENvbGxhcHNlQWxsRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnYXV0b3BsYXlUaW1lb3V0JywgJ2Rpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdub1BlZWsnLCAnbm9uSW50ZXJhY3RpdmUnLCAncHJldmVudEF1dG9wbGF5UGF1c2UnLCAncHJldmVudEF1dG9wbGF5U3RvcCcsICdwcmV2ZW50TW91c2VEcmFnJywgJ3NsaWRlJywgJ3NsaWRlcycsICdzbGlkZXNMYXJnZScsICdzbGlkZXNNZWRpdW0nLCAnc2xpZGVzU21hbGwnLCAnc2xpZGVzVWx0cmEnLCAndGFiVGhyb3VnaCcsICd2YXJpYW50JywgJ3dpdGhUcmFjayddLFxuICBtZXRob2RzOiBbJ3NsaWRlVG8nLCAnc2xpZGVUb1ByZXZpb3VzJywgJ3NsaWRlVG9OZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTbGlkZVN0YXJ0JywgJ3N0emhTbGlkZVBhc3NlZCcsICdzdHpoU2xpZGVFbmQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudCBhcyBJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2Fyb3VzZWwge1xuICAvKipcbiAgICogU2xpZGUgc3RhcnQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgcGFzc2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVQYXNzZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVQYXNzZWRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVFbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdhbGlnblNlbGYnLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoYXJ0SWQnLCAnY3JlYXRlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGFydCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoYXJ0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEZvY3VzRXZlbnQgYXMgSVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEJsdXJFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hlY2tib3gge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hlY2tib3hncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZENoZWNrYm94JywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGVja2JveGdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94Z3JvdXBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94Z3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveGdyb3VwIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92YWJsZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdyZW1vdmVMYWJlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhSZW1vdmUnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcENsaWNrRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcFJlbW92ZUV2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwRm9jdXNFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQmx1ckV2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGlwIHtcbiAgLyoqXG4gICAqIENoaXAgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ2hpcCByZW1vdmUgZXZlbnRcbiAgICovXG4gIHN0emhSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcFJlbW92ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXBncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcGdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXBncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGF0YScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtdWx0aXBsZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXBzZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXBzZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50IGFzIElTdHpoQ2hpcHNlbGVjdFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcHNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBzZWxlY3Qge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jbGFtcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xhbXBlZCcsICdleHBhbmRlZCcsICdsaW5lcycsICdsaW5lc0xhcmdlJywgJ2xpbmVzTWVkaXVtJywgJ2xpbmVzU21hbGwnLCAnbGluZXNVbHRyYScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0V4cGFuZExpbmsnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENsYW1wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsYW1wJywgJ3N0emhFeHBhbmQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcENsYW1wRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcEV4cGFuZEV2ZW50IGFzIElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDbGFtcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENsYW1wIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gY2xhbXBpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aENsYW1wOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gZXhwYW5kaW5nIHN0YXRlIGNoYW5nZWRcbiAgICovXG4gIHN0emhFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wRXhwYW5kRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29tcGFueS1sb2dvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb21wYW55TG9nbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb21wYW55TG9nbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbXBhbnlMb2dvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnZW1haWxzJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ25hbWVIZWFkaW5nTGV2ZWwnLCAnbnVtYmVycycsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3N0cmVldCcsICdzdHJlZXRJbmZvJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkcmVzcycsICdhdmFpbGFiaWxpdHknLCAnYXZhaWxhYmlsaXR5VGl0bGUnLCAnYXZhaWxhYmlsaXR5VGl0bGVMZXZlbCcsICdlbWFpbHMnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhdGlvbicsICdtYWluSGVhZGluZycsICdtYWluSGVhZGluZ0xldmVsJywgJ25hbWUnLCAnbmFtZUhlYWRpbmdMZXZlbCcsICdudW1iZXJzJywgJ3BvYm94JywgJ3BvYm94SGVhZGluZycsICdwb2JveExvY2F0aW9uJywgJ3BvYm94UG9zdGFsQ29kZScsICdwb2JveFRpdGxlJywgJ3Bvc3RhbENvZGUnLCAnc3RyZWV0JywgJ3N0cmVldEluZm8nLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFjdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydob2JiaWVzJywgJ2pvYnRpdGxlJywgJ2xvY2FsaXphdGlvbicsICdyZXNwb25zaWJpbGl0aWVzJywgJ3RyYWluaW5ncyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWN0LWN2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydob2JiaWVzJywgJ2pvYnRpdGxlJywgJ2xvY2FsaXphdGlvbicsICdyZXNwb25zaWJpbGl0aWVzJywgJ3RyYWluaW5ncyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFjdEN2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhY3RDdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3RDdiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydub01hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ25vTWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHJldmVudEVsZW1lbnRMYXlvdXQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50UmVtb3ZlTmVzdGVkJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY3NwYWNlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwcmV2ZW50UmVtb3ZlTmVzdGVkJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENzcGFjZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDc3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDc3BhY2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY3RhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGVhZCcsICdzdGlja3lEaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ3RhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEN0YUZvY3VzRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEN0YUJsdXJFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDdGFDbGlja0V2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ3RhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ3RhIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ3RhU3R6aEN0YUJsdXJFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ3RhU3R6aEN0YUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmlnTGFiZWwnLCAnY29sdW1ucycsICdjb2x1bW5zTGFyZ2UnLCAnY29sdW1uc01lZGl1bScsICdjb2x1bW5zU21hbGwnLCAnY29sdW1uc1VsdHJhJywgJ2RpcmVjdGlvbicsICdkaXJlY3Rpb25MYXJnZScsICdkaXJlY3Rpb25NZWRpdW0nLCAnZGlyZWN0aW9uU21hbGwnLCAnZGlyZWN0aW9uVWx0cmEnLCAnaXRlbXMnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2dldEN1cnJlbnREaXJlY3Rpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JpZ0xhYmVsJywgJ2NvbHVtbnMnLCAnY29sdW1uc0xhcmdlJywgJ2NvbHVtbnNNZWRpdW0nLCAnY29sdW1uc1NtYWxsJywgJ2NvbHVtbnNVbHRyYScsICdkaXJlY3Rpb24nLCAnZGlyZWN0aW9uTGFyZ2UnLCAnZGlyZWN0aW9uTWVkaXVtJywgJ2RpcmVjdGlvblNtYWxsJywgJ2RpcmVjdGlvblVsdHJhJywgJ2l0ZW1zJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFZhcmlhbnRDaGFuZ2UnLCAnc3R6aEJpZ0xhYmVsQ2hhbmdlJywgJ3N0emhEaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50IGFzIElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdCB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQmlnIGxhYmVsIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhCaWdMYWJlbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXJlY3Rpb24gYXR0cmlidXRlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUV4cGFuZGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnaWNvbicsICdpY29uSHJlZicsICdpY29uTGFiZWwnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Ub29sdGlwJywgJ2xhYmVsJywgJ2xlYWRpbmdJY29uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3JlYWRzcGVha2VySHJlZicsICdyZWFkc3BlYWtlckxhYmVsJywgJ3JlbCcsICdzdGF0dXNMYWJlbCcsICdzdGF0dXNUeXBlJywgJ3RhcmdldCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUV4cGFuZGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnaWNvbicsICdpY29uSHJlZicsICdpY29uTGFiZWwnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Ub29sdGlwJywgJ2xhYmVsJywgJ2xlYWRpbmdJY29uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3JlYWRzcGVha2VySHJlZicsICdyZWFkc3BlYWtlckxhYmVsJywgJ3JlbCcsICdzdGF0dXNMYWJlbCcsICdzdGF0dXNUeXBlJywgJ3RhcmdldCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YWxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEl0ZW1BY3Rpb25DbGljaycsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IGFzIElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YWxpc3RJdGVtIHtcbiAgLyoqXG4gICAqIEl0ZW0gYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbWVzc2FnZWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFtZXNzYWdlbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbWVzc2FnZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbWVzc2FnZWxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nU3RhdHVzJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbCcsICd0YWdzJywgJ3RhcmdldCcsICd1bnJlYWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZ1N0YXR1cycsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdub25JbnRlcmFjdGl2ZScsICdyZWwnLCAndGFncycsICd0YXJnZXQnLCAndW5yZWFkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhBY3Rpb25DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IGFzIElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtbnMnLCAnY3N2RHluYW1pY1R5cGluZycsICdjc3ZIZWFkZXInLCAnY3N2VXJsJywgJ2Rpc2FibGVNaW5XaWR0aCcsICdoaWRlQ29sdW1uSGVhZGluZ3MnLCAnaGlkZVNlYXJjaCcsICdpZEZpZWxkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3Jvd0hlYWRlckZpZWxkJywgJ3Jvd3MnLCAnc2hvd0xpc3QnLCAnc29ydEJ5JywgJ3NvcnREaXJlY3Rpb24nLCAndGFibGVMYXlvdXQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVTb3J0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGF0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhdGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUm93Q2xpY2snLCAnc3R6aENlbGxDbGljaycsICdzdHpoSGVhZGluZ0NlbGxDbGljaycsICdzdHpoU29ydENsaWNrJywgJ3N0emhTb3J0QnlDaGFuZ2UnLCAnc3R6aFNvcnREaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhdGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhdGFibGUge1xuICAvKipcbiAgICogRGF0YXRhYmxlIHJvdyBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGhlYWRpbmcgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRpbmdDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGJ5IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRCeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldERhdGUnLCAnZ2V0UG9wb3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBEYXRlcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXJhbmdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERldGFpbHMge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dPcGVuRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nQ2xvc2VFdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpYWxvZyB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGlzdHVyYmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpc3R1cmJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaXN0dXJiZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaXN0dXJiZXIge1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRWYWx1ZScsICdzZXRWYWx1ZScsICdyZXNldExvYWRlZFNlYXJjaGVzJywgJ2dldExvYWRlZFNlYXJjaGVzJywgJ2dldEl0ZW1zJywgJ2xvYWRJdGVtcycsICdzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoSXRlbUFkZCcsICdzdHpoSXRlbVJlbW92ZScsICdzdHpoT3B0aW9uQWRkJywgJ3N0emhPcHRpb25SZW1vdmUnLCAnc3R6aE9wZW4nLCAnc3R6aENsb3NlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoSW5pdCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcGVuRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3dDbG9zZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkZvY3VzRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkJsdXJFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0luaXRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGl0ZW0gYWRkZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSByZW1vdmVkIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wdGlvbiBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvbkFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhPcHRpb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZWRpdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRWRpdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEVkaXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEVkaXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRkYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRkYXRhIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2l0ZW1zU29ydERpcmVjdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbW9udGhIZWFkaW5nTGV2ZWwnLCAnc3RhcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZXZlbnRpbmZvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhckxhYmVsJywgJ2NhbGVuZGFyVXJsJywgJ2RhdGVBZGFwdGVyJywgJ2VuZCcsICdpdGVtcycsICdpdGVtc1NvcnREaXJlY3Rpb24nLCAnbG9jYWxpemF0aW9uJywgJ21vbnRoSGVhZGluZ0xldmVsJywgJ3N0YXJ0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGluZm8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRpbmZvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRpbmZvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2xvY2FsaXphdGlvbicsICdub0l0ZW1zTGluaycsICdub0l0ZW1zVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mZWVkcmVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdsb2NhbGl6YXRpb24nLCAnbm9JdGVtc0xpbmsnLCAnbm9JdGVtc1RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZlZWRyZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmVlZHJlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZlZWRyZWFkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGluaycsICd0YXJnZXQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mZWVkcmVhZGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xpbmsnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZlZWRyZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZlZWRyZWFkZXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmVlZHJlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxlZ2VuZCcsICdsZWdlbmQnLCAnbGVnZW5kQ3VydmUnLCAnbGVnZW5kTGV2ZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmllbGRzZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMZWdlbmQnLCAnbGVnZW5kJywgJ2xlZ2VuZEN1cnZlJywgJ2xlZ2VuZExldmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGaWVsZHNldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGaWVsZHNldCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZpZWxkc2V0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2NvdW50ZXInLCAnZnVsbHdpZHRoJywgJ2hlYWRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmlndXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdjb3VudGVyJywgJ2Z1bGx3aWR0aCcsICdoZWFkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGaWd1cmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmlndXJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmlndXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbiAgbWV0aG9kczogWydyZXBvc2l0aW9uJywgJ2FjdGl2YXRlJywgJ2RlYWN0aXZhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmx5aW5nZm9jdXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZseWluZ2ZvY3VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZseWluZ2ZvY3VzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmx5aW5nZm9jdXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29weXJpZ2h0JywgJ2xvY2FsaXphdGlvbicsICdtYWluVXJsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydvcGVuTGlnaHRib3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2FsbGVyeScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2Fyb3VzZWxBdXRvcGxheScsICdjYXJvdXNlbEF1dG9wbGF5VGltZW91dCcsICdjYXJvdXNlbERpc2FibGVkJywgJ2Nhcm91c2VsV2l0aFRyYWNrJywgJ2V4Y2x1ZGVGaXJzdEltYWdlJywgJ2ltYWdlcycsICdpdGVtRWxlbWVudCcsICdsb2NhbGl6YXRpb24nLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHYWxsZXJ5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdhbGxlcnkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHYWxsZXJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsJywgJ2F2YWlsYWJsZVRhZ3MnLCAnYmFzZVVybE92ZXJyaWRlJywgJ2hlYWRpbmcnLCAnbWFwRGF0YVVybCcsICdwb2lEYXRhVXJsJywgJ3Jlc2V0VGFnJywgJ3NlYXJjaEluZGV4RmllbGRzJywgJ3NlYXJjaEluZGV4SWRGaWVsZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1nZW8tcmVmLWRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsJywgJ2F2YWlsYWJsZVRhZ3MnLCAnYmFzZVVybE92ZXJyaWRlJywgJ2hlYWRpbmcnLCAnbWFwRGF0YVVybCcsICdwb2lEYXRhVXJsJywgJ3Jlc2V0VGFnJywgJ3NlYXJjaEluZGV4RmllbGRzJywgJ3NlYXJjaEluZGV4SWRGaWVsZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2VvUmVmRGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHZW9SZWZEYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoR2VvUmVmRGF0YSB7XG4gIC8qKlxuICAgKiBPdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdlb1JlZkRhdGFTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZGVuVGl0bGUnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdtYWluVGl0bGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2hldHRvYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2hldHRvYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94T3BlbkV2ZW50IGFzIElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEdoZXR0b2JveENsb3NlRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHaGV0dG9ib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHaGV0dG9ib3gge1xuICAvKipcbiAgICogR2hldHRvYm94IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwTmF2SXRlbXMnLCAnaGlkZU1ldGFiYXInLCAnaHJlZicsICdsYW5ndWFnZUFjdGl2ZScsICdsYW5ndWFnZUlkJywgJ2xhbmd1YWdlUHJldmVudFVybGNoYW5nZScsICdsYW5ndWFnZVN0YXknLCAnbGFuZ3VhZ2VzJywgJ2xvY2FsaXphdGlvbicsICdsb2dpbkVycm9yTWVzc2FnZScsICdsb2dvQW5hbHl0aWNzSWQnLCAnbG9nb1R5cGUnLCAnbWVudUJhY2tMYWJlbCcsICdtZW51SWQnLCAnbWVudUl0ZW1zJywgJ21ldGFuYXZJZCcsICdtZXRhbmF2SXRlbXMnLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZScsICdzdGlja3knLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zRW5kcG9pbnQnLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zTm90TG9nZ2VkSW4nXSxcbiAgbWV0aG9kczogWyd1cGRhdGVQb3NpdGlvbicsICdyZXF1ZXN0VXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwTmF2SXRlbXMnLCAnaGlkZU1ldGFiYXInLCAnaHJlZicsICdsYW5ndWFnZUFjdGl2ZScsICdsYW5ndWFnZUlkJywgJ2xhbmd1YWdlUHJldmVudFVybGNoYW5nZScsICdsYW5ndWFnZVN0YXknLCAnbGFuZ3VhZ2VzJywgJ2xvY2FsaXphdGlvbicsICdsb2dpbkVycm9yTWVzc2FnZScsICdsb2dvQW5hbHl0aWNzSWQnLCAnbG9nb1R5cGUnLCAnbWVudUJhY2tMYWJlbCcsICdtZW51SWQnLCAnbWVudUl0ZW1zJywgJ21ldGFuYXZJZCcsICdtZXRhbmF2SXRlbXMnLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZScsICdzdGlja3knLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zRW5kcG9pbnQnLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zTm90TG9nZ2VkSW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhNZXRhbmF2SXRlbUNsaWNrJywgJ3N0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2snLCAnc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2snLCAnc3R6aE1lbnVJdGVtQ2xpY2snLCAnc3R6aExhbmd1YWdlQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIZWFkZXIge1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNoaWxkIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBidXR0b24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBMYW5ndWFnZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhMYW5ndWFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnZlJywgJ2h0bWxDb250ZW50JywgJ2xldmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhlYWRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1cnZlJywgJ2h0bWxDb250ZW50JywgJ2xldmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIZWFkaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhlYWRpbmcgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIZWFkaW5nIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BsYWNlaG9sZGVyJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaG9tZXBhZ2Utc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwbGFjZWhvbGRlcicsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTZWFyY2hDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZUV2ZW50IGFzIElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlZEV2ZW50IGFzIElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSG9tZXBhZ2VTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIb21lcGFnZVNlYXJjaCB7XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vc3RzZWFyY2hlZEl0ZW1zJywgJ3RvcG5ld3NJdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ob21lcGFnZS1zZXJ2aWNlLWhpZ2hsaWdodHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21vc3RzZWFyY2hlZEl0ZW1zJywgJ3RvcG5ld3NJdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ocicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcm91bmQnLCAnYXJvdW5kTGVmdCcsICdhcm91bmRSaWdodCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHNwYWNlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcm91bmQnLCAnYXJvdW5kTGVmdCcsICdhcm91bmRSaWdodCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhzcGFjZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIc3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIc3BhY2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZXJyb3Jjb2RlJywgJ2hlYWRpbmcnLCAnaHJlZkJhY2snLCAnaHJlZlN0YXJ0JywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1odHRwLWVycm9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdlcnJvcmNvZGUnLCAnaGVhZGluZycsICdocmVmQmFjaycsICdocmVmU3RhcnQnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIdHRwRXJyb3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHR0cEVycm9yIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHR0cEVycm9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEljb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlmcmFtZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3cnLCAnY29va2llJywgJ2Nvb2tpZUNvbmZpcm1JY29uJywgJ2Nvb2tpZUNvbmZpcm1MYWJlbCcsICdjb29raWVDb25maXJtVGV4dCcsICdjb29raWVFeHBpcmVzJywgJ2hlaWdodCcsICdpZnJhbWVFcnJvclRleHQnLCAnaWZyYW1lSWQnLCAnaWZyYW1lUmVzaXplckhlaWdodENvcnJlY3Rpb24nLCAnaWZyYW1lUmVzaXplclNlY29uZGxldmVsRG9tYWluJywgJ2lmcmFtZVJlc2l6ZXJWYXJpYW50JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZpZXdJY29uJywgJ3ByZXZpZXdMYWJlbCcsICdyZWZlcnJlcnBvbGljeScsICdzYW5kYm94JywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICdzcmMnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElmcmFtZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhQcmV2aWV3U2tpcCcsICdzdHpoVmlld0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudCBhcyBJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSWZyYW1lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWZyYW1lIHtcbiAgLyoqXG4gICAqIFByZXZpZXcgc2tpcCAob25seSBnZXRzIGV4ZWN1dGVkIGlmIGl0IGdvZXMgZGlyZWN0bHkgdG8gaWZyYW1lIGFuZCBub3QgY29va2lld2FsbClcbiAgICovXG4gIHN0emhQcmV2aWV3U2tpcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFZpZXcgY2hhbmdlXG4gICAqL1xuICBzdHpoVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbWFnZWNvbXBhcmlzb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdoaW50TGVmdCcsICdoaW50UmlnaHQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbWFnZWNvbXBhcmlzb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgYXMgSVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW1hZ2Vjb21wYXJpc29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW1hZ2Vjb21wYXJpc29uIHtcblxuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaG93U3BpbicsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaG93U3BpbicsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhDaGFuZ2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Rm9jdXNFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Qmx1ckV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnB1dCB7XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW52ZXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbnZlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW52ZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW52ZXJ0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2Z1bGx3aWR0aCcsICdoZWlnaHQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtJZCcsICdsb2NhbGl6YXRpb24nLCAncmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdmdWxsd2lkdGgnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rSWQnLCAnbG9jYWxpemF0aW9uJywgJ3JlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0NsaWNrRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0ZvY3VzRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0JsdXJFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGluayB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlTGFiZWwnLCAnbGFiZWwnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTG9hZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aExvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlUGVyY2VudCcsICdsYWJlbCcsICdwZXJjZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRpbmdiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRpbmdiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTG9hZGluZ2JhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aExvYWRpbmdiYXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtQmx1ckV2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlT3BlbkV2ZW50IGFzIElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVzc2FnZUNsb3NlRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZXNzYWdlIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2Ugb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogTWVzc2FnZSBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1pY3Jvc2l0ZS10ZWFzZXJsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndGFncyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWljcm9zaXRlVGVhc2VybGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnlNb250aCcsICdhMTF5RGVzY3JpYmVkYnlZZWFyJywgJ2Rlc2NyaXB0aW9uTG9uZ01vbnRoJywgJ2Rlc2NyaXB0aW9uTG9uZ1llYXInLCAnZGVzY3JpcHRpb25Nb250aCcsICdkZXNjcmlwdGlvblllYXInLCAnZGlzYWJsZWQnLCAnZXJyb3JNb250aCcsICdlcnJvclllYXInLCAnZm9ybWF0JywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkTW9udGgnLCAnaW52YWxpZFllYXInLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhZZWFyJywgJ21pbicsICdtaW5ZZWFyJywgJ21vbnRoTGFiZWwnLCAnbW9udGhPcGVuJywgJ21vbnRocycsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd5ZWFyTGFiZWwnLCAneWVhck9wZW4nLCAneWVhclNvcnREaXJlY3Rpb24nLCAneWVhcnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbW9udGh5ZWFycGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnlNb250aCcsICdhMTF5RGVzY3JpYmVkYnlZZWFyJywgJ2Rlc2NyaXB0aW9uTG9uZ01vbnRoJywgJ2Rlc2NyaXB0aW9uTG9uZ1llYXInLCAnZGVzY3JpcHRpb25Nb250aCcsICdkZXNjcmlwdGlvblllYXInLCAnZGlzYWJsZWQnLCAnZXJyb3JNb250aCcsICdlcnJvclllYXInLCAnZm9ybWF0JywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkTW9udGgnLCAnaW52YWxpZFllYXInLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhZZWFyJywgJ21pbicsICdtaW5ZZWFyJywgJ21vbnRoTGFiZWwnLCAnbW9udGhPcGVuJywgJ21vbnRocycsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd5ZWFyTGFiZWwnLCAneWVhck9wZW4nLCAneWVhclNvcnREaXJlY3Rpb24nLCAneWVhcnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNb250aHllYXJwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNb250aHllYXJwaWNrZXIge1xuICAvKipcbiAgICogTW9udGh5ZWFycGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTW9udGh5ZWFycGlja2VyU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ2FkZFRvYXN0JywgJ3JlbW92ZVRvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW9mZmxpbmUtaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE9mZmxpbmVJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2ZmbGluZUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aE9mZmxpbmVJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd3cml0ZUV4dGVudFRvVXJsRW5hYmxlZCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxuICBtZXRob2RzOiBbJ2dldE1hcCcsICd3cml0ZUV4dGVudFRvVXJsJywgJ2dldFZpc2libGVNYXJrZXJzJywgJ2ZpbmRNYXJrZXJCeUlkJywgJ2FkZEljb25NYXJrZXInLCAnYWRkSWNvbk1hcmtlcnMnLCAndXBkYXRlVmlld1RvRml0TWFya2VycycsICdyZW1vdmVBbGxJY29uTWFya2VycycsICdyZW1vdmVJY29uTWFya2VyJywgJ3NldEljb25NYXJrZXJBY3RpdmUnLCAnc2V0SWNvbk1hcmtlckluYWN0aXZlJywgJ3NldEFsbEljb25NYXJrZXJzSW5hY3RpdmUnLCAnZW5hYmxlTG9jYXRpb25UcmFja2luZycsICdkaXNhYmxlTG9jYXRpb25UcmFja2luZycsICdnZXREaXN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vbG1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd3cml0ZUV4dGVudFRvVXJsRW5hYmxlZCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2xtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSW5pdGlhbGl6ZWQnLCAnc3R6aFBvc3RSZW5kZXInLCAnc3R6aE1vdmVTdGFydCcsICdzdHpoTW92ZUVuZCcsICdzdHpoTW92ZVBhblpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVFbmRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE9sbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT2xtYXAge1xuICAvKipcbiAgICogT2xtYXAgaW5pdGlhbGl6ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBJbml0aWFsaXplZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBwb3N0cmVuZGVyIGV2ZW50XG4gICAqL1xuICBzdHpoUG9zdFJlbmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmVzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZWVuZCBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlIHBhbiB6b29tIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVBhblpvb206IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnb3BlbicsICdzdGF5J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW92ZXJsYXknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE92ZXJsYXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5T3BlbkV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheUNsb3NlRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPdmVybGF5IHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlLXNraXBsaW5rcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZVNraXBsaW5rcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlU2tpcGxpbmtzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZVNraXBsaW5rcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbG9nb0hyZWYnLCAncHJpbnRBbmFseXRpY3NJZCcsICdzaGFyZURpc2FibGVkJywgJ3NoYXJlTWFpbEJvZHknLCAnc2hhcmVNYWlsU3ViamVjdCcsICdzaGFyZVNlcnZpY2VzJywgJ3NoYXJlVGl0bGUnLCAnc2hhcmVVcmwnLCAnd2l0aFByaW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vib3R0b20nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vib3R0b20ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWJvdHRvbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2Vib3R0b20ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vjb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2Vjb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWNvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnZGF0ZWxpbmUnLCAnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaGVybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSGVybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGVIZXJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlSGVybyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaG9tZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHlwaGVuc0VuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZUhvbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSG9tZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhvbWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZScsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCBhcyBJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Vmlld2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhbm9yYW1hJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYW5vcmFtYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhMb2FkJywgJ3N0emhDaGFuZ2UnLCAnc3R6aEZ1bGxzY3JlZW5DaGFuZ2UnLCAnc3R6aFNjZW5lQ2hhbmdlJywgJ3N0emhab29tQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFMb2FkRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFub3JhbWEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYW5vcmFtYSB7XG4gIC8qKlxuICAgKiBMb2FkIGV2ZW50XG4gICAqL1xuICBzdHpoTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFMb2FkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGdWxsc2NyZWVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2NlbmUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2NlbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogWm9vbSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhab29tQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvaWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW0nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvaWNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9pY2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvaWNhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wb2lsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQb2lsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBvaWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQb2lsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc3RhbmNlJywgJ2Z1bGx3aWR0aCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcG9wb3ZlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvcG92ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5FdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJPcGVuZWRFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9wb3ZlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvcG92ZXIge1xuICAvKipcbiAgICogUG9wb3ZlciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByaW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcmludCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcmludCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByaW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrRGlzYWJsZWQnLCAnZGF0YScsICdpbmRleCcsICdsb2NhbGl6YXRpb24nLCAnc3RlcHMnLCAnc3RlcHNMYXJnZScsICdzdGVwc01lZGl1bScsICdzdGVwc1NtYWxsJywgJ3N0ZXBzVWx0cmEnXSxcbiAgbWV0aG9kczogWydnZXRJdGVtRGF0YSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcm9ncmVzc2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2tEaXNhYmxlZCcsICdkYXRhJywgJ2luZGV4JywgJ2xvY2FsaXphdGlvbicsICdzdGVwcycsICdzdGVwc0xhcmdlJywgJ3N0ZXBzTWVkaXVtJywgJ3N0ZXBzU21hbGwnLCAnc3RlcHNVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUHJvZ3Jlc3NiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJvZ3Jlc3NiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQcm9ncmVzc2JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjbGlja0Rpc2FibGVkJywgJ2N1cnJlbnQnLCAnZGlzYWJsZWQnLCAnZG90dGVkJywgJ2ZpcnN0JywgJ2hpZGUnLCAnaWNvbicsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByb2dyZXNzYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2xhYmVsJywgJ2xhc3QnLCAncGFzc2VkJywgJ3N0ZXAnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByb2dyZXNzYmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoRG90dGVkQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJvZ3Jlc3NiYXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJvZ3Jlc3NiYXJJdGVtIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEb3R0ZWQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhEb3R0ZWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1xdW90ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUXVvdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUXVvdGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhRdW90ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvQ2hhbmdlRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9Gb2N1c0V2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9CbHVyRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhZGlvIHtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhZGlvZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWRSYWRpbycsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW9ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpb2dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW9ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaXQnLCAncG9ydHJhaXQnLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmF0aW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmF0aW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmF0aW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYXRpbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydocmVmJ10sXG4gIG1ldGhvZHM6IFsnb3BlblBsYXllcicsICdjbG9zZVBsYXllciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yZWFkc3BlYWtlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmVhZHNwZWFrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmVhZHNwZWFrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSZWFkc3BlYWtlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJpY2h0ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSaWNodGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSaWNodGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJpY2h0ZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUm93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zYXB0Y2hhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ251bWJlcnMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNhcHRjaGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2FwdGNoYUNoYW5nZUV2ZW50IGFzIElTdHpoU2FwdGNoYVN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2FwdGNoYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNhcHRjaGEge1xuICAvKipcbiAgICogU2FwdGNoYSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNjcm9sbHVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTY3JvbGx1cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTY3JvbGx1cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNjcm9sbHVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdhdXRvZmV0Y2hBc2lkZUZpbHRlcnMnLCAnYXV0b2ZldGNoTWFpbkZpbHRlcnMnLCAnZGVib3VuY2VUaW1lJywgJ2VtcHR5TGlua0hyZWYnLCAnZW1wdHlMaW5rTGFiZWwnLCAnZW1wdHlUZXh0JywgJ2hlYWRpbmcnLCAnaGlkZUFzaWRlRmlsdGVycycsICdoaWRlTWFpbkZpbHRlcnMnLCAnaGlkZVJlc3VsdHNIZWFkaW5nJywgJ2h5cGhlbnNFbmFibGVkJywgJ2luaXRpYWxGZXRjaCcsICdsaW1pdCcsICdsb2NhbGl6YXRpb24nLCAncHJldmVudFVwZGF0ZVVybCcsICdyZXN1bHRIZWFkaW5nTGV2ZWwnLCAnc29ydEJ5JywgJ3NvcnRPcHRpb25zJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2hpZGVSZXN1bHRzSGVhZGluZycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3NvcnRCeScsICdzb3J0T3B0aW9ucycsICdzdWJzY3JpYmVBZGRpdGlvbmFsUXVlcnlQYXJhbWV0ZXJzJywgJ3N1YnNjcmliZUxhYmVsJywgJ3N1YnNjcmliZVBhdGgnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTZWFyY2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3ZlcmxheUNsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VhcmNoIHtcbiAgLyoqXG4gICAqIFNlYXJjaCBvdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zZWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2JyZWFrb3V0JywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnLCAncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nVG9wJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2VjdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNlY3Rpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ21haWxCb2R5JywgJ21haWxTdWJqZWN0JywgJ3NlcnZpY2VzJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaGFyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ21haWxCb2R5JywgJ21haWxTdWJqZWN0JywgJ3NlcnZpY2VzJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2hhcmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2hhcmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaGFyZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlRnJvbURhdGUnLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ21pa3JvJywgJ3Nob3dGcm9tRGF0ZScsICdzbWFsbCcsICd1bHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaG93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlRnJvbURhdGUnLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ21pa3JvJywgJ3Nob3dGcm9tRGF0ZScsICdzbWFsbCcsICd1bHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2hvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaG93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaXRlbWFwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2l0ZW1hcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaXRlbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2l0ZW1hcCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXBvcnRhbC1taXR3aXJrZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpblBvcnRhbE1pdHdpcmtlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpbi1zdG9yeWJvb2stcHJldmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2luU3Rvcnlib29rUHJldmlldyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdocmVmJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua1RpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraXBsaW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdocmVmJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua1RpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2lwbGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rRm9jdXNFdmVudCBhcyBJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rQmx1ckV2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpcGxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2lwbGluayB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb2NpYWxtZWRpYXN0cmVhbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29jaWFsbWVkaWFzdHJlYW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29jaWFsbWVkaWFzdHJlYW0taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29ydGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTdHVja1RvcCcsICdzdHpoU3R1Y2tCb3R0b20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0aWNreUFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3lBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9sZGFibGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZSB7XG4gIC8qKlxuICAgKiBGb2xkYWJsZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGb2xkYWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZUl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5FdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9hc3Qgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgbWV0aG9kczogWyd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdGJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVGb2N1c0V2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVCbHVyRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5FdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvb2x0aXAge1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXR3b2NvbHVtbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFR3b2NvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRlcnNBc3luYycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWV0aG9kJywgJ25hbWUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxuICBtZXRob2RzOiBbJ3Byb2Nlc3NRdWV1ZScsICdyZW1vdmVGaWxlJywgJ3JlbW92ZUFsbEZpbGVzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXVwbG9hZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRlcnNBc3luYycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWV0aG9kJywgJ25hbWUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZpbGVBZGRlZCcsICdzdHpoRmlsZXNBZGRlZCcsICdzdHpoRmlsZVJlbW92ZScsICdzdHpoRmlsZVJlbW92ZWQnLCAnc3R6aFNlbmRpbmcnLCAnc3R6aFNlbmRpbmdNdWx0aXBsZScsICdzdHpoUHJvY2Vzc2luZycsICdzdHpoUHJvY2Vzc2luZ011bHRpcGxlJywgJ3N0emhQcm9ncmVzcycsICdzdHpoUHJvZ3Jlc3NUb3RhbCcsICdzdHpoRXJyb3InLCAnc3R6aEVycm9yTXVsdGlwbGUnLCAnc3R6aFN1Y2Nlc3MnLCAnc3R6aFN1Y2Nlc3NNdWx0aXBsZScsICdzdHpoQ2FuY2VsZWQnLCAnc3R6aENhbmNlbGVkTXVsdGlwbGUnLCAnc3R6aENvbXBsZXRlJywgJ3N0emhDb21wbGV0ZU11bHRpcGxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZVJlbW92ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFNlbmRpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvckV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvck11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVXBsb2FkIHtcbiAgLyoqXG4gICAqIEZpbGUgYWRkZWRcbiAgICovXG4gIHN0emhGaWxlQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgYWRkZWQgKG11bHRpcGxlKVxuICAgKi9cbiAgc3R6aEZpbGVzQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlIChiZWZvcmUsIGNhbmNlbGFibGUpXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSByZW1vdmVkXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBmaWxlIChhZGQgYWRkaXRpb25hbCBkYXRhIGJlZm9yZSByZXF1ZXN0IGlmIG5lY2Vzc2FyeSlcbiAgICovXG4gIHN0emhTZW5kaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBtdWx0aXBsZSBmaWxlcyAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN0YXJ0aW5nIHRvIGdldCBwcm9jZXNzZWRcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIHRvdGFsIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzVG90YWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgZXJyb3JcbiAgICovXG4gIHN0emhFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGVycm9yIChtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhFcnJvck11bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZFxuICAgKi9cbiAgc3R6aFN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoU3VjY2Vzc011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENhbmNlbGVkIGZpbGUgdXBsb2FkXG4gICAqL1xuICBzdHpoQ2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ2FuY2VsZWRNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IpXG4gICAqL1xuICBzdHpoQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDb21wbGV0ZWQgdXBsb2FkIChzdWNjZXNzZnVsbHkgb3Igd2l0aCBlcnJvciwgbXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ29tcGxldGVNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q2Fyb3VzZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnenZ2U2NyaXB0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jb25uZWN0aW9uLWZpbmRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnenZ2U2NyaXB0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNvbm5lY3Rpb25GaW5kZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpDb25uZWN0aW9uRmluZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1pbnRybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ3F1aWNrbGlua3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekludHJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekludHJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6SW50cm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1saW5lY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpMaW5lY2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IGFzIElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6TGluZWNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpMaW5lY2hpcCB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJywgJ3Nob3dDbG9zZUtleSddLFxuICBtZXRob2RzOiBbJ2dldEdoZXR0b2JveFNob3duJywgJ2dldERpc3R1cmJhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1tYWpvcnRpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiek1ham9ydGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aERpc3R1cmJhbmNlRmV0Y2hlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQgYXMgSVN0emhWYnpNYWpvcnRpY2tlclN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiek1ham9ydGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TWFqb3J0aWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBtYWpvciBkaXN0dXJiYW5jZSB3YXMgZmV0Y2hlZFxuICAgKi9cbiAgc3R6aERpc3R1cmJhbmNlRmV0Y2hlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei10aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZielRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpUaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpUaWNrZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmlzdWFsbHloaWRkZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZpc3VhbGx5aGlkZGVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZpc3VhbGx5aGlkZGVuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmlzdWFsbHloaWRkZW4ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVnNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVnNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXlvdXR1YmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhZb3V0dWJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFlvdXR1YmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhZb3V0dWJlIHt9XG5cblxuIl19
|
|
3627
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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V0FBVyxDQUFDO2lCQUNwSjs7QUF1Qk0sV0FBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFdBQVc7bUdBQVgsV0FBVyxvUEFKWiwyQkFBMkI7O0FBSTFCLFdBQVc7SUFWdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLEtBQUssQ0FBQztLQUN6RyxDQUFDO0dBUVcsV0FBVyxDQU12Qjs0RkFOWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsS0FBSyxDQUFDO2lCQUN6RyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnaGVhZGluZycsICdtdWx0aXNlbGVjdGFibGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEl0ZW1Gb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhWYXJpYW50Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY2NvcmRpb24ge1xuICAvKipcbiAgICogVmFyaWFudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdWJ0aXRsZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjY29yZGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBPcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NwYWNlQmV0d2VlbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NwYWNlQmV0d2VlbicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnbG9jYWxpemF0aW9uJywgJ3BvcG92ZXJCdXR0b25TaXplJywgJ3BvcG92ZXJCdXR0b25WYXJpYW50JywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY3Rpb25zZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnbG9jYWxpemF0aW9uJywgJ3BvcG92ZXJCdXR0b25TaXplJywgJ3BvcG92ZXJCdXR0b25WYXJpYW50JywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWN0aW9uc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEFjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWN0aW9uc2V0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWN0aW9uc2V0IHtcbiAgLyoqXG4gICAqIEhlYWRlciBhY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWN0aW9uc2V0U3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjbGVhcmFibGUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXhWYWx1ZScsICdtYXhWYWx1ZURyb3Bkb3duJywgJ21pblZhbHVlJywgJ21pblZhbHVlRHJvcGRvd24nLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hbW91bnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjbGVhcmFibGUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXhWYWx1ZScsICdtYXhWYWx1ZURyb3Bkb3duJywgJ21pblZhbHVlJywgJ21pblZhbHVlRHJvcGRvd24nLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQW1vdW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFtb3VudENoYW5nZUV2ZW50IGFzIElTdHpoQW1vdW50U3R6aEFtb3VudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFtb3VudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFtb3VudCB7XG4gIC8qKlxuICAgKiBBbW91bnQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBbW91bnRTdHpoQW1vdW50Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFuY2hvcm5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbmNob3JuYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBbmNob3JuYXZTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQW5jaG9ybmF2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQW5jaG9ybmF2IHtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFuY2hvcm5hdlN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcHAtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXBwQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXBwQmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcHAtbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcE5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhBcHBOYXZJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFwcE5hdlN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBOYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBOYXYge1xuICAvKipcbiAgICogQXBwTmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhBcHBOYXZJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFwcE5hdlN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBvaW50bWVudHMnLCAnYXBwb2ludG1lbnRzVGl0bGUnLCAnY2FsZW5kYXJUaXRsZScsICdjdXJyZW50RGF0ZScsICdkYXRlQWRhcHRlcicsICdkaXNhYmxlU29ydCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzaG93SXRlbXMnLCAnc29ydEJ5JywgJ3N0ZXBJdGVtcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcHBvaW50bWVudHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBvaW50bWVudHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQgYXMgSVN0emhBcHBvaW50bWVudHNTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXBwb2ludG1lbnRzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXBwb2ludG1lbnRzIHtcbiAgLyoqXG4gICAqIEFwcG9pbnRtZW50cyBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcmNoaXZlbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFyY2hpdmVsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFyY2hpdmVsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXJjaGl2ZWxpc3Qge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXJjaGl2ZWxpc3RTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkb3dubG9hZEFuYWx5dGljc0lkJywgJ2xvY2FsaXphdGlvbicsICdwcmVsb2FkJywgJ3NyYycsICd0cmFuc2NyaXB0JywgJ3RyYW5zY3JpcHRBbmFseXRpY3NJZCcsICd0cmFuc2NyaXB0U2hvd24nXSxcbiAgbWV0aG9kczogWydwbGF5JywgJ3BhdXNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWF1ZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkb3dubG9hZEFuYWx5dGljc0lkJywgJ2xvY2FsaXphdGlvbicsICdwcmVsb2FkJywgJ3NyYycsICd0cmFuc2NyaXB0JywgJ3RyYW5zY3JpcHRBbmFseXRpY3NJZCcsICd0cmFuc2NyaXB0U2hvd24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEF1ZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFBsYXknLCAnc3R6aFBsYXlpbmcnLCAnc3R6aFBhdXNlJywgJ3N0emhSZXBsYXknLCAnc3R6aEVuZCcsICdzdHpoRW5kZWQnLCAnc3R6aEVycm9yJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QbGF5RXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BsYXlFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGxheWluZ0V2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BhdXNlRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1JlcGxheUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9SZXBsYXlFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRW5kRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FbmRlZEV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FcnJvckV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEF1ZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXVkaW8ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgcGF1c2VkIHByb3BlcnR5IGlzIGNoYW5nZWQgZnJvbSB0cnVlIHRvIGZhbHNlLCBhcyBhIHJlc3VsdCBvZiB0aGUgcGxheSgpIG1ldGhvZCwgb3IgdGhlIGF1dG9wbGF5IGF0dHJpYnV0ZS5cbiAgICovXG4gIHN0emhQbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BsYXlFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBwbGF5YmFjayBpcyByZWFkeSB0byBzdGFydCBhZnRlciBoYXZpbmcgYmVlbiBwYXVzZWQgb3IgZGVsYXllZCBkdWUgdG8gbGFjayBvZiBkYXRhLlxuICAgKi9cbiAgc3R6aFBsYXlpbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGEgcmVxdWVzdCB0byBwYXVzZSBhbiBhY3Rpdml0eSBpcyBoYW5kbGVkIGFuZCB0aGUgYWN0aXZpdHkgaGFzIGVudGVyZWQgaXRzIHBhdXNlZCBzdGF0ZSwgbW9zdCBjb21tb25seSBhZnRlciB0aGUgbWVkaWEgaGFzIGJlZW4gcGF1c2VkIHRocm91Z2ggYSBjYWxsIHRvIHRoZSBwYXVzZSgpIG1ldGhvZC5cbiAgICovXG4gIHN0emhQYXVzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QYXVzZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIG1lZGlhIHBsYXliYWNrIHN0YXJ0cyBhZ2FpbiBhZnRlciBiZWluZyBpbiBhbiBlbmRlZCBzdGF0ZS4gVGhpcyBpcyBmaXJlZCB3aGVuIHRoZSBsb29wIHByb3BlcnR5IGlzIHRydWUgYW5kIG1lZGlhIGxvb3BzLCB3aGVyZWFzIHRoZSB2ZHMtcGxheSBldmVudCBpcyBub3QuXG4gICAqL1xuICBzdHpoUmVwbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCBlYWNoIHRpbWUgbWVkaWEgcGxheWJhY2sgaGFzIHJlYWNoZWQgdGhlIGVuZC4gVGhpcyBpcyBmaXJlZCBldmVuIGlmIHRoZSBsb29wIHByb3BlcnR5IGlzIHRydWUsIHdoaWNoIGlzIGdlbmVyYWxseSB3aGVuIHlvdSdkIHJlYWNoIGZvciB0aGlzIGV2ZW50IG92ZXIgdGhlIE1lZGlhRW5kZWRFdmVudCBpZiB5b3Ugd2FudCB0byBiZSBub3RpZmllZCBvZiBtZWRpYSBsb29waW5nLlxuICAgKi9cbiAgc3R6aEVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBwbGF5YmFjayBvciBzdHJlYW1pbmcgaGFzIHN0b3BwZWQgYmVjYXVzZSB0aGUgZW5kIG9mIHRoZSBtZWRpYSB3YXMgcmVhY2hlZCBvciBiZWNhdXNlIG5vIGZ1cnRoZXIgZGF0YSBpcyBhdmFpbGFibGUuIFRoaXMgaXMgbm90IGZpcmVkIGlmIHBsYXliYWNrIHdpbGwgc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nIGFnYWluIGR1ZSB0byB0aGUgbG9vcCBwcm9wZXJ0eSBiZWluZyB0cnVlIChzZWUgTWVkaWFSZXBsYXlFdmVudCBhbmQgTWVkaWFFbmRFdmVudCkuXG4gICAqL1xuICBzdHpoRW5kZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBtZWRpYSBsb2FkaW5nIG9yIHBsYXliYWNrIGhhcyBlbmNvdW50ZXJlZCBhbnkgaXNzdWVzIChmb3IgZXhhbXBsZSwgYSBuZXR3b3JrIGNvbm5lY3Rpdml0eSBwcm9ibGVtKS4gVGhlIGV2ZW50IGRldGFpbCBjb250YWlucyBhIHBvdGVudGlhbCBtZXNzYWdlIGNvbnRhaW5pbmcgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IgKGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIGF2YWlsYWJsZSksIGFuZCBhIGNvZGUgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmFsIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAgICovXG4gIHN0emhFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FcnJvckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJhbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEJhbm5lck9wZW5FdmVudCBhcyBJU3R6aEJhbm5lclN0emhCYW5uZXJPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCYW5uZXJDbG9zZUV2ZW50IGFzIElTdHpoQmFubmVyU3R6aEJhbm5lckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmFubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQmFubmVyIHtcbiAgLyoqXG4gICAqIEJhbm5lciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQmFubmVyU3R6aEJhbm5lck9wZW5FdmVudD4+O1xuICAvKipcbiAgICogQmFubmVyIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhdGVBZGFwdGVyJywgJ2l0ZW0nLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmF0aHN0YXR1cy1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlQWRhcHRlcicsICdpdGVtJywgJ2xvY2FsaXphdGlvbicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYXRoc3RhdHVzSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYXRoc3RhdHVzSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhdGhzdGF0dXNJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmF0aHN0YXR1cy1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYXRoc3RhdHVzTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYXRoc3RhdHVzTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhdGhzdGF0dXNMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEJyZWFkY3J1bWJTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJyZWFkY3J1bWIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCcmVhZGNydW1iIHtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJyZWFkY3J1bWJTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2J1dHRvbkFjY2Vzc2tleScsICdidXR0b25JZCcsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2VmZmVjdCcsICdmdWxsd2lkdGgnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdub0h5cGhlbmF0aW9uJywgJ25vUGFkZGluZ0xlZnQnLCAnbm9QYWRkaW5nUmlnaHQnLCAncmVsJywgJ3JvdW5kZWQnLCAnc2hvd1RvZ2dsZUljb24nLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnYnV0dG9uQWNjZXNza2V5JywgJ2J1dHRvbklkJywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWZmZWN0JywgJ2Z1bGx3aWR0aCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ25vSHlwaGVuYXRpb24nLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2hhbmdlJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkZvY3VzRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkJsdXJFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25DaGFuZ2VFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNsaWNrRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCdXR0b24ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgKG9ubHkgY2FsbGVkIGlmIHR5cGUgaXMgcmFkaW8pXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJ1dHRvbmdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCdXR0b25ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b25ncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbmdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXNlZERheScsICdzZXREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaXJzdERheU9mV2VlaycsICdpc0RhdGVEaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduZXh0TW9udGhBbmFseXRpY3NJZCcsICdwcmV2TW9udGhBbmFseXRpY3NJZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FsZW5kYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCBhcyBJU3R6aENhbGVuZGFyU3R6aENhbGVuZGFyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjaGVja2VkJywgJ2NvbGxhcHNlZCcsICdjb2xsYXBzaWJsZScsICdkaXNhYmxlZCcsICdmb290ZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9uc0JhZGdlJywgJ2hlYWRlckFjdGlvbnNCYWRnZVR5cGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaGlkZU1vdmVtZW50QWN0aW9ucycsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3NlbGVjdGFibGUnLCAnc29ydGFibGVEaXNhYmxlZCcsICdzdGFycmFibGUnLCAnc3RhcnJlZCcsICdzdWJ0aXRsZScsICdzdWJ0aXRsZUludGVyYWN0aXZlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NoZWNrZWQnLCAnY29sbGFwc2VkJywgJ2NvbGxhcHNpYmxlJywgJ2Rpc2FibGVkJywgJ2Zvb3RlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zQmFkZ2UnLCAnaGVhZGVyQWN0aW9uc0JhZGdlVHlwZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdoaWRlTW92ZW1lbnRBY3Rpb25zJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2VsZWN0YWJsZScsICdzb3J0YWJsZURpc2FibGVkJywgJ3N0YXJyYWJsZScsICdzdGFycmVkJywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlSW50ZXJhY3RpdmUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aENvbGxhcHNlJywgJ3N0emhTdWJ0aXRsZUNsaWNrJywgJ3N0emhTdGFyQ2xpY2snLCAnc3R6aEhlYWRlckFjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENvbGxhcHNlRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDb2xsYXBzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdGFyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN1YnRpdGxlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3VidGl0bGVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBTdGFyIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3RhckNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdGFyQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRlckFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1uYXZpZ2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xlYWQnLCAndGFyZ2V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkTmF2aWdhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1zZWFyY2hyZXN1bHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3BsYWNlaG9sZGVySW1hZ2VFbmFibGVkJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFNlYXJjaHJlc3VsdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFNlYXJjaHJlc3VsdFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkU2VhcmNocmVzdWx0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZFNlYXJjaHJlc3VsdCB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2lzT25Ib21lcGFnZScsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1zdXBlcnRlYXNlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnaXNPbkhvbWVwYWdlJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3BsYWNlaG9sZGVySW1hZ2VFbmFibGVkJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFN1cGVydGVhc2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTdXBlcnRlYXNlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ21heDNDb2x1bW5zJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdtYXgzQ29sdW1ucycsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENvbGxhcHNlQWxsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IGFzIElTdHpoQ2FyZGxpc3RTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZGxpc3Qge1xuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2VBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG1ldGhvZHM6IFsnc2xpZGVUbycsICdzbGlkZVRvUHJldmlvdXMnLCAnc2xpZGVUb05leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2F1dG9wbGF5VGltZW91dCcsICdkaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbm9QZWVrJywgJ25vbkludGVyYWN0aXZlJywgJ3ByZXZlbnRBdXRvcGxheVBhdXNlJywgJ3ByZXZlbnRBdXRvcGxheVN0b3AnLCAncHJldmVudE1vdXNlRHJhZycsICdzbGlkZScsICdzbGlkZXMnLCAnc2xpZGVzTGFyZ2UnLCAnc2xpZGVzTWVkaXVtJywgJ3NsaWRlc1NtYWxsJywgJ3NsaWRlc1VsdHJhJywgJ3RhYlRocm91Z2gnLCAndmFyaWFudCcsICd3aXRoVHJhY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFNsaWRlU3RhcnQnLCAnc3R6aFNsaWRlUGFzc2VkJywgJ3N0emhTbGlkZUVuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBTbGlkZSBzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aFNsaWRlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBwYXNzZWQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVBhc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBlbmQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnYWxpZ25TZWxmJywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Rm9jdXNFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Qmx1ckV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRDaGVja2JveCcsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94Z3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3hncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoZWNrYm94Z3JvdXAge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveGdyb3VwU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZlcnRlZCcsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmFibGUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAncmVtb3ZlTGFiZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aFJlbW92ZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQ2xpY2tFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwUmVtb3ZlRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBGb2N1c0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBCbHVyRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXAge1xuICAvKipcbiAgICogQ2hpcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGlwIHJlbW92ZSBldmVudFxuICAgKi9cbiAgc3R6aFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcGdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcHNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2RhdGEnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgYXMgSVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGlwc2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcHNlbGVjdCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBzZWxlY3RTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsYW1wZWQnLCAnZXhwYW5kZWQnLCAnbGluZXMnLCAnbGluZXNMYXJnZScsICdsaW5lc01lZGl1bScsICdsaW5lc1NtYWxsJywgJ2xpbmVzVWx0cmEnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dFeHBhbmRMaW5rJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNsYW1wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2xhbXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xhbXAnLCAnc3R6aEV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wQ2xhbXBFdmVudCBhcyBJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wRXhwYW5kRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENsYW1wIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2xhbXAge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBjbGFtcGluZyBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBzdHpoQ2xhbXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBleHBhbmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb21wYW55LWxvZ28nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbXBhbnlMb2dvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbXBhbnlMb2dvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29tcGFueUxvZ28ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkcmVzcycsICdhdmFpbGFiaWxpdHknLCAnYXZhaWxhYmlsaXR5VGl0bGUnLCAnYXZhaWxhYmlsaXR5VGl0bGVMZXZlbCcsICdlbWFpbHMnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhdGlvbicsICdtYWluSGVhZGluZycsICdtYWluSGVhZGluZ0xldmVsJywgJ25hbWUnLCAnbmFtZUhlYWRpbmdMZXZlbCcsICdudW1iZXJzJywgJ3BvYm94JywgJ3BvYm94SGVhZGluZycsICdwb2JveExvY2F0aW9uJywgJ3BvYm94UG9zdGFsQ29kZScsICdwb2JveFRpdGxlJywgJ3Bvc3RhbENvZGUnLCAnc3RyZWV0JywgJ3N0cmVldEluZm8nLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICduYW1lSGVhZGluZ0xldmVsJywgJ251bWJlcnMnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhY3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QtY3YnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0Q3Yge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdEN2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFjdEN2IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25vTWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbm9NYXJnaW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJldmVudEVsZW1lbnRMYXlvdXQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ3NwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aENzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGVhZCcsICdzdGlja3lEaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhRm9jdXNFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQmx1ckV2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEN0YUNsaWNrRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDdGEge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiaWdMYWJlbCcsICdjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnZ2V0Q3VycmVudERpcmVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmlnTGFiZWwnLCAnY29sdW1ucycsICdjb2x1bW5zTGFyZ2UnLCAnY29sdW1uc01lZGl1bScsICdjb2x1bW5zU21hbGwnLCAnY29sdW1uc1VsdHJhJywgJ2RpcmVjdGlvbicsICdkaXJlY3Rpb25MYXJnZScsICdkaXJlY3Rpb25NZWRpdW0nLCAnZGlyZWN0aW9uU21hbGwnLCAnZGlyZWN0aW9uVWx0cmEnLCAnaXRlbXMnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVmFyaWFudENoYW5nZScsICdzdHpoQmlnTGFiZWxDaGFuZ2UnLCAnc3R6aERpcmVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IGFzIElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RWYXJpYW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdEJpZ0xhYmVsQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdEJpZ0xhYmVsQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFsaXN0IHtcbiAgLyoqXG4gICAqIFZhcmlhbnQgYXR0cmlidXRlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFZhcmlhbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBCaWcgbGFiZWwgYXR0cmlidXRlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEJpZ0xhYmVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdEJpZ0xhYmVsQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpcmVjdGlvbiBhdHRyaWJ1dGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlyZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5RXhwYW5kZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVhZHNwZWFrZXJIcmVmJywgJ3JlYWRzcGVha2VyTGFiZWwnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5RXhwYW5kZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVhZHNwZWFrZXJIcmVmJywgJ3JlYWRzcGVha2VyTGFiZWwnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUFjdGlvbkNsaWNrJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdEl0ZW0ge1xuICAvKipcbiAgICogSXRlbSBhY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFtZXNzYWdlbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbWVzc2FnZWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nU3RhdHVzJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbCcsICd0YWdzJywgJ3RhcmdldCcsICd1bnJlYWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aEFjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZVNvcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtbnMnLCAnY3N2RHluYW1pY1R5cGluZycsICdjc3ZIZWFkZXInLCAnY3N2VXJsJywgJ2Rpc2FibGVNaW5XaWR0aCcsICdoaWRlQ29sdW1uSGVhZGluZ3MnLCAnaGlkZVNlYXJjaCcsICdpZEZpZWxkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3Jvd0hlYWRlckZpZWxkJywgJ3Jvd3MnLCAnc2hvd0xpc3QnLCAnc29ydEJ5JywgJ3NvcnREaXJlY3Rpb24nLCAndGFibGVMYXlvdXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGF0YWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhSb3dDbGljaycsICdzdHpoQ2VsbENsaWNrJywgJ3N0emhIZWFkaW5nQ2VsbENsaWNrJywgJ3N0emhTb3J0Q2xpY2snLCAnc3R6aFNvcnRCeUNoYW5nZScsICdzdHpoU29ydERpcmVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlSGVhZGluZ0NlbGxDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGF0YWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGF0YWJsZSB7XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgcm93IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoUm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENlbGxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgaGVhZGluZyBjZWxsIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGluZ0NlbGxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIHNvcnQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTb3J0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIHNvcnQgYnkgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydEJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTb3J0RGlyZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFySXNEYXRlRGlzYWJsZWQnLCAnY2FsZW5kYXJNYXgnLCAnY2FsZW5kYXJNaW4nLCAnZGF0ZUFkYXB0ZXInLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5saW5lJywgJ2ludGVybmFsRGF0ZUFkYXB0ZXInLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0RGF0ZScsICdnZXRQb3BvdmVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFySXNEYXRlRGlzYWJsZWQnLCAnY2FsZW5kYXJNYXgnLCAnY2FsZW5kYXJNaW4nLCAnZGF0ZUFkYXB0ZXInLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5saW5lJywgJ2ludGVybmFsRGF0ZUFkYXB0ZXInLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGVwaWNrZXJTdHpoRGF0ZXBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRlcGlja2VyIHtcbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ3JhbmdlTGlua3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0ZXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ3JhbmdlTGlua3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGVyYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcmFuZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRlcmFuZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnb3BlbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGV0YWlscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnb3BlbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEZXRhaWxzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGV0YWlscyB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBPcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2ExMXlSb2xlJywgJ2Nsb3NlQW5hbHl0aWNzSWQnLCAnY2xvc2VPbkJhY2tkcm9wQ2xpY2snLCAnY2xvc2VPbkVzY2FwZUtleScsICdoZWFkaW5nJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdzaXplJywgJ3N0YXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERpYWxvZ09wZW5FdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dDbG9zZUV2ZW50IGFzIElTdHpoRGlhbG9nU3R6aERpYWxvZ0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGlhbG9nIHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ09wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlhbG9nIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaXN0dXJiZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGlzdHVyYmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlck9wZW5FdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpc3R1cmJlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpc3R1cmJlciB7XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93RW1wdHlPcHRpb24nLCAnY2xvc2VBZnRlclNlbGVjdCcsICdkZWZhdWx0SXRlbXMnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpY29uJywgJ2ljb25BbmdsZScsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpc09wZW4nLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGFiZWxGaWVsZCcsICdsYWJlbEhpZGRlbicsICdsb2FkJywgJ2xvYWRUaHJvdHRsZScsICdsb2NhbGl6YXRpb24nLCAnbG9ja09wdGdyb3VwT3JkZXInLCAnbWF4T3B0aW9ucycsICdtaW5DaGFyYWN0ZXJzJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9CYWNrc3BhY2VEZWxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ25vU2VhcmNoJywgJ25vV3JhcCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2dldFZhbHVlJywgJ3NldFZhbHVlJywgJ3Jlc2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0SXRlbXMnLCAnbG9hZEl0ZW1zJywgJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93RW1wdHlPcHRpb24nLCAnY2xvc2VBZnRlclNlbGVjdCcsICdkZWZhdWx0SXRlbXMnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpY29uJywgJ2ljb25BbmdsZScsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpc09wZW4nLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGFiZWxGaWVsZCcsICdsYWJlbEhpZGRlbicsICdsb2FkJywgJ2xvYWRUaHJvdHRsZScsICdsb2NhbGl6YXRpb24nLCAnbG9ja09wdGdyb3VwT3JkZXInLCAnbWF4T3B0aW9ucycsICdtaW5DaGFyYWN0ZXJzJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9CYWNrc3BhY2VEZWxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ25vU2VhcmNoJywgJ25vV3JhcCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhJdGVtQWRkJywgJ3N0emhJdGVtUmVtb3ZlJywgJ3N0emhPcHRpb25BZGQnLCAnc3R6aE9wdGlvblJlbW92ZScsICdzdHpoT3BlbicsICdzdHpoQ2xvc2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhJbml0J10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25DaGFuZ2VFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wZW5FdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0Nsb3NlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duRm9jdXNFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQmx1ckV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93SW5pdEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuU3R6aERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BZGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBpdGVtIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIGFkZGVkIGV2ZW50XG4gICAqL1xuICBzdHpoT3B0aW9uQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBvcHRpb24gcmVtb3ZlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvblJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoSW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1lZGl0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFZGl0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRWRpdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRWRpdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWV2ZW50ZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEV2ZW50ZGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFdmVudGRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFdmVudGRhdGEge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FsZW5kYXJMYWJlbCcsICdjYWxlbmRhclVybCcsICdkYXRlQWRhcHRlcicsICdlbmQnLCAnaXRlbXMnLCAnaXRlbXNTb3J0RGlyZWN0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2l0ZW1zU29ydERpcmVjdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbW9udGhIZWFkaW5nTGV2ZWwnLCAnc3RhcnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEV2ZW50aW5mbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFdmVudGluZm8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFdmVudGluZm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnbG9jYWxpemF0aW9uJywgJ25vSXRlbXNMaW5rJywgJ25vSXRlbXNUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZlZWRyZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2xvY2FsaXphdGlvbicsICdub0l0ZW1zTGluaycsICdub0l0ZW1zVGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmVlZHJlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGZWVkcmVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmVlZHJlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsaW5rJywgJ3RhcmdldCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZlZWRyZWFkZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGluaycsICd0YXJnZXQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmVlZHJlYWRlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmVlZHJlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGZWVkcmVhZGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWVsZHNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxlZ2VuZCcsICdsZWdlbmQnLCAnbGVnZW5kQ3VydmUnLCAnbGVnZW5kTGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZWxkc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZWxkc2V0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmllbGRzZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWd1cmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2NvdW50ZXInLCAnZnVsbHdpZHRoJywgJ2hlYWRpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZ3VyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGaWd1cmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWd1cmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxuICBtZXRob2RzOiBbJ3JlcG9zaXRpb24nLCAnYWN0aXZhdGUnLCAnZGVhY3RpdmF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mbHlpbmdmb2N1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmx5aW5nZm9jdXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmx5aW5nZm9jdXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGbHlpbmdmb2N1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvcHlyaWdodCcsICdsb2NhbGl6YXRpb24nLCAnbWFpblVybCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nhcm91c2VsQXV0b3BsYXknLCAnY2Fyb3VzZWxBdXRvcGxheVRpbWVvdXQnLCAnY2Fyb3VzZWxEaXNhYmxlZCcsICdjYXJvdXNlbFdpdGhUcmFjaycsICdleGNsdWRlRmlyc3RJbWFnZScsICdpbWFnZXMnLCAnaXRlbUVsZW1lbnQnLCAnbG9jYWxpemF0aW9uJywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ29wZW5MaWdodGJveCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1nYWxsZXJ5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdhbGxlcnkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2FsbGVyeSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdhbGxlcnkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWwnLCAnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnaGVhZGluZycsICdtYXBEYXRhVXJsJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnLCAnc2VhcmNoSW5kZXhGaWVsZHMnLCAnc2VhcmNoSW5kZXhJZEZpZWxkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdlby1yZWYtZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWwnLCAnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnaGVhZGluZycsICdtYXBEYXRhVXJsJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnLCAnc2VhcmNoSW5kZXhGaWVsZHMnLCAnc2VhcmNoSW5kZXhJZEZpZWxkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHZW9SZWZEYXRhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE92ZXJsYXlDbG9zZUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhHZW9SZWZEYXRhU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdlb1JlZkRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHZW9SZWZEYXRhIHtcbiAgLyoqXG4gICAqIE92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1naGV0dG9ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGRlblRpdGxlJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnbWFpblRpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHaGV0dG9ib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhHaGV0dG9ib3hPcGVuRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94Q2xvc2VFdmVudCBhcyBJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdoZXR0b2JveCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdoZXR0b2JveCB7XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEdoZXR0b2JveCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbiddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZVBvc2l0aW9uJywgJ3JlcXVlc3RVc2VyU3BlY2lmaWNNZXRhbmF2SXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE1ldGFuYXZJdGVtQ2xpY2snLCAnc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljaycsICdzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljaycsICdzdHpoTWVudUl0ZW1DbGljaycsICdzdHpoTGFuZ3VhZ2VDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRlciB7XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2hpbGQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGJ1dHRvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VydmUnLCAnaHRtbENvbnRlbnQnLCAnbGV2ZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VydmUnLCAnaHRtbENvbnRlbnQnLCAnbGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGxhY2Vob2xkZXInLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ob21lcGFnZS1zZWFyY2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BsYWNlaG9sZGVyJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhvbWVwYWdlU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFNlYXJjaENoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIb21lcGFnZVNlYXJjaCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhvbWVwYWdlU2VhcmNoIHtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhvbWVwYWdlLXNlcnZpY2UtaGlnaGxpZ2h0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdlcnJvcmNvZGUnLCAnaGVhZGluZycsICdocmVmQmFjaycsICdocmVmU3RhcnQnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWh0dHAtZXJyb3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2Vycm9yY29kZScsICdoZWFkaW5nJywgJ2hyZWZCYWNrJywgJ2hyZWZTdGFydCcsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEh0dHBFcnJvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIdHRwRXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIdHRwRXJyb3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeVRpdGxlJywgJ25hbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeVRpdGxlJywgJ25hbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSWNvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3cnLCAnY29va2llJywgJ2Nvb2tpZUNvbmZpcm1JY29uJywgJ2Nvb2tpZUNvbmZpcm1MYWJlbCcsICdjb29raWVDb25maXJtVGV4dCcsICdjb29raWVFeHBpcmVzJywgJ2hlaWdodCcsICdpZnJhbWVFcnJvclRleHQnLCAnaWZyYW1lSWQnLCAnaWZyYW1lUmVzaXplckhlaWdodENvcnJlY3Rpb24nLCAnaWZyYW1lUmVzaXplclNlY29uZGxldmVsRG9tYWluJywgJ2lmcmFtZVJlc2l6ZXJWYXJpYW50JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZpZXdJY29uJywgJ3ByZXZpZXdMYWJlbCcsICdyZWZlcnJlcnBvbGljeScsICdzYW5kYm94JywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICdzcmMnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaWZyYW1lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvdycsICdjb29raWUnLCAnY29va2llQ29uZmlybUljb24nLCAnY29va2llQ29uZmlybUxhYmVsJywgJ2Nvb2tpZUNvbmZpcm1UZXh0JywgJ2Nvb2tpZUV4cGlyZXMnLCAnaGVpZ2h0JywgJ2lmcmFtZUVycm9yVGV4dCcsICdpZnJhbWVJZCcsICdpZnJhbWVSZXNpemVySGVpZ2h0Q29ycmVjdGlvbicsICdpZnJhbWVSZXNpemVyU2Vjb25kbGV2ZWxEb21haW4nLCAnaWZyYW1lUmVzaXplclZhcmlhbnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmlld0ljb24nLCAncHJldmlld0xhYmVsJywgJ3JlZmVycmVycG9saWN5JywgJ3NhbmRib3gnLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3NyYycsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSWZyYW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFByZXZpZXdTa2lwJywgJ3N0emhWaWV3Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudCBhcyBJU3R6aElmcmFtZVN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50IGFzIElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJZnJhbWUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJZnJhbWUge1xuICAvKipcbiAgICogUHJldmlldyBza2lwIChvbmx5IGdldHMgZXhlY3V0ZWQgaWYgaXQgZ29lcyBkaXJlY3RseSB0byBpZnJhbWUgYW5kIG5vdCBjb29raWV3YWxsKVxuICAgKi9cbiAgc3R6aFByZXZpZXdTa2lwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudD4+O1xuICAvKipcbiAgICogVmlldyBjaGFuZ2VcbiAgICovXG4gIHN0emhWaWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdoaW50TGVmdCcsICdoaW50UmlnaHQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWltYWdlY29tcGFyaXNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2hpbnRMZWZ0JywgJ2hpbnRSaWdodCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEltYWdlY29tcGFyaXNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudCBhcyBJU3R6aEltYWdlY29tcGFyaXNvblN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbWFnZWNvbXBhcmlzb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbWFnZWNvbXBhcmlzb24ge1xuXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEltYWdlY29tcGFyaXNvblN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ25vQXV0b2NvbXBsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ25vQXV0b2NvbXBsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aENoYW5nZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRDaGFuZ2VFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dENoYW5nZWRFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRGb2N1c0V2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRCbHVyRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dEJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aElucHV0IHtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbnZlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEludmVydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbnZlcnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnZlcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2Z1bGx3aWR0aCcsICdoZWlnaHQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtJZCcsICdsb2NhbGl6YXRpb24nLCAncmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rQ2xpY2tFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rRm9jdXNFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rQmx1ckV2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaW5rIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFiZWwnLCAnbGFiZWwnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1sb2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbG9hZGluZ2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZVBlcmNlbnQnLCAnbGFiZWwnLCAncGVyY2VudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTG9hZGluZ2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMb2FkaW5nYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGluZ2JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZW51IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZScsICd0YXJnZXQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZScsICd0YXJnZXQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1CbHVyRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lc3NhZ2VPcGVuRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlQ2xvc2VFdmVudCBhcyBJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lc3NhZ2Uge1xuICAvKipcbiAgICogTWVzc2FnZSBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXNzYWdlIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3RhZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWljcm9zaXRlLXRlYXNlcmxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tb250aHllYXJwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IGFzIElTdHpoTW9udGh5ZWFycGlja2VyU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1vbnRoeWVhcnBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIC8qKlxuICAgKiBNb250aHllYXJwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsnYWRkVG9hc3QnLCAncmVtb3ZlVG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb2ZmbGluZS1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2ZmbGluZUluZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhPZmZsaW5lSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT2ZmbGluZUluZGljYXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZW50ZXInLCAnY2VudGVyTWFya2VyJywgJ2hvc3RuYW1lJywgJ2xheWVyJywgJ2xheWVyQ29udHJvbCcsICdsYXllcnMnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2F0aW9uQ29udHJvbCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwcmludENvbnRyb2wnLCAncmVzb2x1dGlvbnMnLCAnc2NhbGVDb250cm9sJywgJ3dyaXRlRXh0ZW50VG9VcmxFbmFibGVkJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ10sXG4gIG1ldGhvZHM6IFsnZ2V0TWFwJywgJ3dyaXRlRXh0ZW50VG9VcmwnLCAnZ2V0VmlzaWJsZU1hcmtlcnMnLCAnZmluZE1hcmtlckJ5SWQnLCAnYWRkSWNvbk1hcmtlcicsICdhZGRJY29uTWFya2VycycsICd1cGRhdGVWaWV3VG9GaXRNYXJrZXJzJywgJ3JlbW92ZUFsbEljb25NYXJrZXJzJywgJ3JlbW92ZUljb25NYXJrZXInLCAnc2V0SWNvbk1hcmtlckFjdGl2ZScsICdzZXRJY29uTWFya2VySW5hY3RpdmUnLCAnc2V0QWxsSWNvbk1hcmtlcnNJbmFjdGl2ZScsICdlbmFibGVMb2NhdGlvblRyYWNraW5nJywgJ2Rpc2FibGVMb2NhdGlvblRyYWNraW5nJywgJ2dldERpc3RhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW9sbWFwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjZW50ZXInLCAnY2VudGVyTWFya2VyJywgJ2hvc3RuYW1lJywgJ2xheWVyJywgJ2xheWVyQ29udHJvbCcsICdsYXllcnMnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2F0aW9uQ29udHJvbCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwcmludENvbnRyb2wnLCAncmVzb2x1dGlvbnMnLCAnc2NhbGVDb250cm9sJywgJ3dyaXRlRXh0ZW50VG9VcmxFbmFibGVkJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhPbG1hcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJbml0aWFsaXplZCcsICdzdHpoUG9zdFJlbmRlcicsICdzdHpoTW92ZVN0YXJ0JywgJ3N0emhNb3ZlRW5kJywgJ3N0emhNb3ZlUGFuWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVTdGFydEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZUVuZEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2xtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPbG1hcCB7XG4gIC8qKlxuICAgKiBPbG1hcCBpbml0aWFsaXplZCBldmVudFxuICAgKi9cbiAgc3R6aEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIHBvc3RyZW5kZXIgZXZlbnRcbiAgICovXG4gIHN0emhQb3N0UmVuZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZXN0YXJ0IGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmUgcGFuIHpvb20gZXZlbnRcbiAgICovXG4gIHN0emhNb3ZlUGFuWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ29wZW4nLCAnc3RheSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE92ZXJsYXlPcGVuRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5Q2xvc2VFdmVudCBhcyBJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT3ZlcmxheSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE92ZXJsYXkge1xuICAvKipcbiAgICogRGlhbG9nIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPdmVybGF5U3R6aE92ZXJsYXlPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Utc2tpcGxpbmtzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdlU2tpcGxpbmtzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2VTa2lwbGlua3MgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlU2tpcGxpbmtzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWJvdHRvbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ2xvZ29IcmVmJywgJ3ByaW50QW5hbHl0aWNzSWQnLCAnc2hhcmVEaXNhYmxlZCcsICdzaGFyZU1haWxCb2R5JywgJ3NoYXJlTWFpbFN1YmplY3QnLCAnc2hhcmVTZXJ2aWNlcycsICdzaGFyZVRpdGxlJywgJ3NoYXJlVXJsJywgJ3dpdGhQcmludCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWJvdHRvbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlYm90dG9tIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWJvdHRvbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlY29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2RhdGVsaW5lJywgJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1oZXJvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGVIZXJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZUhlcm8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGVIZXJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1ob21lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSG9tZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGVIb21lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlSG9tZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG4gIG1ldGhvZHM6IFsncHJldicsICduZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd01hbnVhbElucHV0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndG90YWwnLCAndmFsdWUnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoUGFnaW5hdGlvblN0emhQYWdpbmF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2luYXRpb24ge1xuICAvKipcbiAgICogUGFnaW5hdGlvbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9sb2FkJywgJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2hlYWRpbmcnLCAnbG9jYWxpemF0aW9uJywgJ29yaWVudGF0aW9uT25CeURlZmF1bHQnLCAnc2NlbmUnLCAnc2NlbmVGYWRlRHVyYXRpb24nLCAnc2NlbmVzJywgJ3Nob3dDb250cm9scycsICdzaG93SG90c3BvdHMnXSxcbiAgbWV0aG9kczogWydnZXRWaWV3ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFub3JhbWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9sb2FkJywgJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2hlYWRpbmcnLCAnbG9jYWxpemF0aW9uJywgJ29yaWVudGF0aW9uT25CeURlZmF1bHQnLCAnc2NlbmUnLCAnc2NlbmVGYWRlRHVyYXRpb24nLCAnc2NlbmVzJywgJ3Nob3dDb250cm9scycsICdzaG93SG90c3BvdHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhbm9yYW1hIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aExvYWQnLCAnc3R6aENoYW5nZScsICdzdHpoRnVsbHNjcmVlbkNoYW5nZScsICdzdHpoU2NlbmVDaGFuZ2UnLCAnc3R6aFpvb21DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUxvYWRFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hTG9hZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYW5vcmFtYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhbm9yYW1hIHtcbiAgLyoqXG4gICAqIExvYWQgZXZlbnRcbiAgICovXG4gIHN0emhMb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudD4+O1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEZ1bGxzY3JlZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTY2VuZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTY2VuZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBab29tIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFpvb21DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW0nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcG9pY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUG9pY2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQb2ljYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUG9pY2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvaWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvaWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9pbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvaWxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJywgJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wb3BvdmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXN0YW5jZScsICdmdWxsd2lkdGgnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUG9wb3ZlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyT3BlbkV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByaW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByaW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJpbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2tEaXNhYmxlZCcsICdkYXRhJywgJ2luZGV4JywgJ2xvY2FsaXphdGlvbicsICdzdGVwcycsICdzdGVwc0xhcmdlJywgJ3N0ZXBzTWVkaXVtJywgJ3N0ZXBzU21hbGwnLCAnc3RlcHNVbHRyYSddLFxuICBtZXRob2RzOiBbJ2dldEl0ZW1EYXRhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByb2dyZXNzYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcm9ncmVzc2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcm9ncmVzc2JhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByb2dyZXNzYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2luY29tcGxldGUnLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcm9ncmVzc2Jhci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjbGlja0Rpc2FibGVkJywgJ2N1cnJlbnQnLCAnZGlzYWJsZWQnLCAnZG90dGVkJywgJ2ZpcnN0JywgJ2hpZGUnLCAnaWNvbicsICdpbmNvbXBsZXRlJywgJ2xhYmVsJywgJ2xhc3QnLCAncGFzc2VkJywgJ3N0ZXAnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByb2dyZXNzYmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoRG90dGVkQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IGFzIElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJvZ3Jlc3NiYXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJvZ3Jlc3NiYXJJdGVtIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEb3R0ZWQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhEb3R0ZWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1xdW90ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUXVvdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUXVvdGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhRdW90ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvQ2hhbmdlRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9Gb2N1c0V2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9CbHVyRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhZGlvIHtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhZGlvZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWRSYWRpbycsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW9ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpb2dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW9ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaXQnLCAncG9ydHJhaXQnLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmF0aW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmF0aW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmF0aW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYXRpbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydocmVmJ10sXG4gIG1ldGhvZHM6IFsnb3BlblBsYXllcicsICdjbG9zZVBsYXllciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yZWFkc3BlYWtlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmVhZHNwZWFrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmVhZHNwZWFrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSZWFkc3BlYWtlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJpY2h0ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSaWNodGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSaWNodGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJpY2h0ZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUm93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zYXB0Y2hhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ251bWJlcnMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNhcHRjaGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2FwdGNoYUNoYW5nZUV2ZW50IGFzIElTdHpoU2FwdGNoYVN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2FwdGNoYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNhcHRjaGEge1xuICAvKipcbiAgICogU2FwdGNoYSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNjcm9sbHVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTY3JvbGx1cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTY3JvbGx1cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNjcm9sbHVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdhdXRvZmV0Y2hBc2lkZUZpbHRlcnMnLCAnYXV0b2ZldGNoTWFpbkZpbHRlcnMnLCAnZGVib3VuY2VUaW1lJywgJ2VtcHR5TGlua0hyZWYnLCAnZW1wdHlMaW5rTGFiZWwnLCAnZW1wdHlUZXh0JywgJ2hlYWRpbmcnLCAnaGlkZUFzaWRlRmlsdGVycycsICdoaWRlTWFpbkZpbHRlcnMnLCAnaGlkZVJlc3VsdHNIZWFkaW5nJywgJ2h5cGhlbnNFbmFibGVkJywgJ2luaXRpYWxGZXRjaCcsICdsaW1pdCcsICdsb2NhbGl6YXRpb24nLCAncHJldmVudFVwZGF0ZVVybCcsICdyZXN1bHRIZWFkaW5nTGV2ZWwnLCAnc29ydEJ5JywgJ3NvcnRPcHRpb25zJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2hpZGVSZXN1bHRzSGVhZGluZycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3NvcnRCeScsICdzb3J0T3B0aW9ucycsICdzdWJzY3JpYmVBZGRpdGlvbmFsUXVlcnlQYXJhbWV0ZXJzJywgJ3N1YnNjcmliZUxhYmVsJywgJ3N1YnNjcmliZVBhdGgnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTZWFyY2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3ZlcmxheUNsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VhcmNoIHtcbiAgLyoqXG4gICAqIFNlYXJjaCBvdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zZWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2JyZWFrb3V0JywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnLCAncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nVG9wJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2VjdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNlY3Rpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ21haWxCb2R5JywgJ21haWxTdWJqZWN0JywgJ3NlcnZpY2VzJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaGFyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ21haWxCb2R5JywgJ21haWxTdWJqZWN0JywgJ3NlcnZpY2VzJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2hhcmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2hhcmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaGFyZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlRnJvbURhdGUnLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ21pa3JvJywgJ3Nob3dGcm9tRGF0ZScsICdzbWFsbCcsICd1bHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaG93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlRnJvbURhdGUnLCAnbGFyZ2UnLCAnbWVkaXVtJywgJ21pa3JvJywgJ3Nob3dGcm9tRGF0ZScsICdzbWFsbCcsICd1bHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2hvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaG93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaXRlbWFwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2l0ZW1hcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaXRlbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2l0ZW1hcCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXBvcnRhbC1taXR3aXJrZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpblBvcnRhbE1pdHdpcmtlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpbi1zdG9yeWJvb2stcHJldmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2luU3Rvcnlib29rUHJldmlldyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdocmVmJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua1RpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraXBsaW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdocmVmJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua1RpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2lwbGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rRm9jdXNFdmVudCBhcyBJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rQmx1ckV2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpcGxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2lwbGluayB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb2NpYWxtZWRpYXN0cmVhbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29jaWFsbWVkaWFzdHJlYW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29jaWFsbWVkaWFzdHJlYW0taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29ydGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTdHVja1RvcCcsICdzdHpoU3R1Y2tCb3R0b20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0aWNreUFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3lBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9sZGFibGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZSB7XG4gIC8qKlxuICAgKiBGb2xkYWJsZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGb2xkYWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZUl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5FdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9hc3Qgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgbWV0aG9kczogWyd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdGJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVGb2N1c0V2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVCbHVyRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5FdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvb2x0aXAge1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXR3b2NvbHVtbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFR3b2NvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRlcnNBc3luYycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWF4RmlsZXNpemVUb3RhbCcsICdtZXRob2QnLCAnbmFtZScsICdwYXJhbGxlbENodW5rVXBsb2FkcycsICdwYXJhbGxlbFVwbG9hZHMnLCAncGhvdG9ncmFwaGluZ0VuYWJsZWQnLCAncHJldmVudEhpZGRlbklucHV0Q2xlYXInLCAncmV0cnlDaHVua3MnLCAncmV0cnlDaHVua3NMaW1pdCcsICd1cGxvYWRNdWx0aXBsZScsICd1cmwnLCAnd2l0aENyZWRlbnRpYWxzJ10sXG4gIG1ldGhvZHM6IFsncHJvY2Vzc1F1ZXVlJywgJ3JlbW92ZUZpbGUnLCAncmVtb3ZlQWxsRmlsZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWNjZXB0ZWRGaWxlcycsICdhdXRvUHJvY2Vzc1F1ZXVlJywgJ2J1dHRvbicsICdidXR0b25TY2FuJywgJ2NodW5rU2l6ZScsICdjaHVua2luZycsICdjaHVua3NVcGxvYWRlZCcsICdkZWZhdWx0SGVhZGVycycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlVG9hc3RzJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZFdoaWxlUHJvY2Vzc2luZycsICdlcnJvcicsICdleGlzdGluZ0ZpbGVzJywgJ2ZpbGVzaXplQmFzZScsICdmb3JjZUNodW5raW5nJywgJ2hlYWRlcnMnLCAnaGVhZGVyc0FzeW5jJywgJ2hlYWRpbmcnLCAnaGlkZGVuSW5wdXRDb250YWluZXInLCAnaGlkZVByb2dyZXNzJywgJ2hpZGVQcm9ncmVzc1doaWxlSWRsZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXhGaWxlcycsICdtYXhGaWxlc2l6ZScsICdtYXhGaWxlc2l6ZVRvdGFsJywgJ21ldGhvZCcsICduYW1lJywgJ3BhcmFsbGVsQ2h1bmtVcGxvYWRzJywgJ3BhcmFsbGVsVXBsb2FkcycsICdwaG90b2dyYXBoaW5nRW5hYmxlZCcsICdwcmV2ZW50SGlkZGVuSW5wdXRDbGVhcicsICdyZXRyeUNodW5rcycsICdyZXRyeUNodW5rc0xpbWl0JywgJ3VwbG9hZE11bHRpcGxlJywgJ3VybCcsICd3aXRoQ3JlZGVudGlhbHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGaWxlQWRkZWQnLCAnc3R6aEZpbGVzQWRkZWQnLCAnc3R6aEZpbGVSZW1vdmUnLCAnc3R6aEZpbGVSZW1vdmVkJywgJ3N0emhTZW5kaW5nJywgJ3N0emhTZW5kaW5nTXVsdGlwbGUnLCAnc3R6aFByb2Nlc3NpbmcnLCAnc3R6aFByb2Nlc3NpbmdNdWx0aXBsZScsICdzdHpoUHJvZ3Jlc3MnLCAnc3R6aFByb2dyZXNzVG90YWwnLCAnc3R6aEVycm9yJywgJ3N0emhFcnJvck11bHRpcGxlJywgJ3N0emhTdWNjZXNzJywgJ3N0emhTdWNjZXNzTXVsdGlwbGUnLCAnc3R6aENhbmNlbGVkJywgJ3N0emhDYW5jZWxlZE11bHRpcGxlJywgJ3N0emhDb21wbGV0ZScsICdzdHpoQ29tcGxldGVNdWx0aXBsZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFVwbG9hZCB7XG4gIC8qKlxuICAgKiBGaWxlIGFkZGVkXG4gICAqL1xuICBzdHpoRmlsZUFkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGFkZGVkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhGaWxlc0FkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHJlbW92ZSAoYmVmb3JlLCBjYW5jZWxhYmxlKVxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlZFxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgZmlsZSAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgbXVsdGlwbGUgZmlsZXMgKGFkZCBhZGRpdGlvbmFsIGRhdGEgYmVmb3JlIHJlcXVlc3QgaWYgbmVjZXNzYXJ5KVxuICAgKi9cbiAgc3R6aFNlbmRpbmdNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3RhcnRpbmcgdG8gZ2V0IHByb2Nlc3NlZCAobXVsdGlwbGUpXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCB0b3RhbCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzc1RvdGFsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIGVycm9yXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBlcnJvciAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoRXJyb3JNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSBzdWNjZXNzZnVsbHkgdXBsb2FkZWRcbiAgICovXG4gIHN0emhTdWNjZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdWNjZXNzZnVsbHkgdXBsb2FkZWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aFN1Y2Nlc3NNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZFxuICAgKi9cbiAgc3R6aENhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2FuY2VsZWQgZmlsZSB1cGxvYWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENhbmNlbGVkTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbXBsZXRlZCB1cGxvYWQgKHN1Y2Nlc3NmdWxseSBvciB3aXRoIGVycm9yKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IsIG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekNhcm91c2VsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3p2dlNjcmlwdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotY29ubmVjdGlvbi1maW5kZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3p2dlNjcmlwdCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAncXVpY2tsaW5rcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotaW50cm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpJbnRybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpJbnRybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekludHJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbGluZWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6TGluZWNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgYXMgSVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekxpbmVjaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TGluZWNoaXAge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbiAgbWV0aG9kczogWydnZXRHaGV0dG9ib3hTaG93bicsICdnZXREaXN0dXJiYW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbWFqb3J0aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnLCAnc2hvd0Nsb3NlS2V5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpNYWpvcnRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhEaXN0dXJiYW5jZUZldGNoZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IGFzIElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpNYWpvcnRpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiek1ham9ydGlja2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gbWFqb3IgZGlzdHVyYmFuY2Ugd2FzIGZldGNoZWRcbiAgICovXG4gIHN0emhEaXN0dXJiYW5jZUZldGNoZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFZiek1ham9ydGlja2VyU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluayddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotdGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpUaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6VGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6VGlja2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZpc3VhbGx5aGlkZGVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWaXN1YWxseWhpZGRlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWaXN1YWxseWhpZGRlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZpc3VhbGx5aGlkZGVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12c3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVnNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC15b3V0dWJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoWW91dHViZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhZb3V0dWJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoWW91dHViZSB7fVxuXG5cbiJdfQ==
|