@rivet-health/design-system 40.35.2 → 40.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,111 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../input/button/button.component";
5
+ import * as i3 from "../../icon/icon.component";
6
+ import * as i4 from "../../accessibility/sr-only/sr-only.component";
7
+ import * as i5 from "../../overlay/callout/tooltip/tooltip.directive";
8
+ /**
9
+ * One labelled setting that is read in place and edited inline.
10
+ *
11
+ * Reading shows the label, the current value, and an edit button. Editing
12
+ * swaps the value for a consumer-supplied field plus Cancel and Save buttons.
13
+ * The row holds no state of its own — bind `editing` and act on `edit`,
14
+ * `cancel`, and `save`.
15
+ *
16
+ * Set the value shown while reading with `value` for plain text, or project
17
+ * richer content such as a `riv-badge` into the `[display-value]` slot. Use
18
+ * one or the other: when `value` is set, the slot isn't shown.
19
+ *
20
+ * Two content slots:
21
+ * - `[display-value]` — content shown while reading, when `value` is empty
22
+ * - `#editor` template — any field component to edit the value with, such as
23
+ * `riv-text-field`, `riv-currency-field`, or `riv-simple-select`. The row
24
+ * wraps it in a `<label>` named after `label`, so don't give the field its
25
+ * own label. Only the first control in the template gets that name, so keep
26
+ * it to one field.
27
+ *
28
+ * ```html
29
+ * <riv-setting-row
30
+ * [label]="'Threshold'"
31
+ * [infoTooltip]="'Applies to new claims only'"
32
+ * [editing]="editing"
33
+ * [saving]="saving"
34
+ * (edit)="editing = true"
35
+ * (cancel)="editing = false"
36
+ * (save)="save()"
37
+ * [value]="threshold + '%'"
38
+ * >
39
+ * <ng-template #editor>
40
+ * <riv-text-field [(value)]="draft"></riv-text-field>
41
+ * </ng-template>
42
+ * </riv-setting-row>
43
+ * ```
44
+ *
45
+ * Stack rows directly to build a settings list; each row pads itself
46
+ * vertically and lays out on a shared twelve-column grid so labels, values,
47
+ * and actions line up between rows.
48
+ */
49
+ export class SettingRowComponent {
50
+ constructor() {
51
+ /** Names the setting. Also gives the edit button its screen-reader name, "Edit {label}". */
52
+ this.label = '';
53
+ /**
54
+ * The value shown while reading, as plain text and already formatted, such
55
+ * as `'$250'`. For anything richer, leave this empty and project it into
56
+ * `[display-value]` instead.
57
+ */
58
+ this.value = '';
59
+ /** Explains the setting from an info icon beside the label. */
60
+ this.infoTooltip = '';
61
+ /**
62
+ * Whether the edit field is shown. The consumer (the parent component) owns
63
+ * this state, so it can keep only one row open for editing at a time.
64
+ */
65
+ this.editing = false;
66
+ /** Blocks Save, for a draft that is not yet valid. */
67
+ this.saveDisabled = false;
68
+ /** Shows Save as loading and blocks Save and Cancel while a save is in flight. */
69
+ this.saving = false;
70
+ this.tooltipMaxWidth = '320px';
71
+ this.edit = new EventEmitter();
72
+ this.cancel = new EventEmitter();
73
+ this.save = new EventEmitter();
74
+ }
75
+ get editingClass() {
76
+ return this.editing;
77
+ }
78
+ }
79
+ SettingRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SettingRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
+ SettingRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SettingRowComponent, selector: "riv-setting-row", inputs: { label: "label", value: "value", infoTooltip: "infoTooltip", editing: "editing", saveDisabled: "saveDisabled", saving: "saving", tooltipMaxWidth: "tooltipMaxWidth" }, outputs: { edit: "edit", cancel: "cancel", save: "save" }, host: { properties: { "class.editing": "this.editingClass" } }, queries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<span class=\"label\">\n <riv-icon\n *ngIf=\"infoTooltip\"\n [name]=\"'Info'\"\n [size]=\"16\"\n [rivTooltip]=\"infoTooltip\"\n [rivTooltipMaxWidth]=\"tooltipMaxWidth\"\n ></riv-icon>\n {{ label }}\n</span>\n\n<ng-container *ngIf=\"!editing; else editMode\">\n <span class=\"value\">\n <ng-container *ngIf=\"value; else projectedValue\">{{ value }}</ng-container>\n <ng-template #projectedValue>\n <ng-content select=\"[display-value]\"></ng-content>\n </ng-template>\n </span>\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [icon]=\"'Edit2'\"\n [rivTooltip]=\"'Edit'\"\n [variant]=\"'ghost'\"\n [attr.aria-label]=\"'Edit ' + label\"\n (click)=\"edit.emit()\"\n ></button>\n </div>\n</ng-container>\n\n<ng-template #editMode>\n <label class=\"field\">\n <riv-sr-only>{{ label }}</riv-sr-only>\n <ng-container *ngTemplateOutlet=\"editor ?? null\"></ng-container>\n </label>\n\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [variant]=\"'basic'\"\n [size]=\"'medium'\"\n [disabled]=\"saving\"\n (click)=\"cancel.emit()\"\n >\n Cancel\n </button>\n <button\n rivButton\n type=\"button\"\n [variant]=\"'primary'\"\n [size]=\"'medium'\"\n [disabled]=\"saveDisabled || saving\"\n [loading]=\"saving\"\n (click)=\"save.emit()\"\n >\n Save\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--size-large);align-items:center;padding-block:var(--size-medium);color:var(--type-light-high-contrast)}.label,.value,.actions{display:flex;align-items:center;gap:var(--size-small)}.label{grid-column-end:span 4;font:var(--title-02)}.value{grid-column-end:span 7;font:var(--body-medium)}.field{grid-column-end:span 4}.actions{grid-column-end:span 1;justify-content:flex-end}:host.editing .actions{grid-column-end:span 4}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i3.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i4.SrOnlyComponent, selector: "riv-sr-only" }, { kind: "directive", type: i5.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SettingRowComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'riv-setting-row', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"label\">\n <riv-icon\n *ngIf=\"infoTooltip\"\n [name]=\"'Info'\"\n [size]=\"16\"\n [rivTooltip]=\"infoTooltip\"\n [rivTooltipMaxWidth]=\"tooltipMaxWidth\"\n ></riv-icon>\n {{ label }}\n</span>\n\n<ng-container *ngIf=\"!editing; else editMode\">\n <span class=\"value\">\n <ng-container *ngIf=\"value; else projectedValue\">{{ value }}</ng-container>\n <ng-template #projectedValue>\n <ng-content select=\"[display-value]\"></ng-content>\n </ng-template>\n </span>\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [icon]=\"'Edit2'\"\n [rivTooltip]=\"'Edit'\"\n [variant]=\"'ghost'\"\n [attr.aria-label]=\"'Edit ' + label\"\n (click)=\"edit.emit()\"\n ></button>\n </div>\n</ng-container>\n\n<ng-template #editMode>\n <label class=\"field\">\n <riv-sr-only>{{ label }}</riv-sr-only>\n <ng-container *ngTemplateOutlet=\"editor ?? null\"></ng-container>\n </label>\n\n <div class=\"actions\">\n <button\n rivButton\n type=\"button\"\n [variant]=\"'basic'\"\n [size]=\"'medium'\"\n [disabled]=\"saving\"\n (click)=\"cancel.emit()\"\n >\n Cancel\n </button>\n <button\n rivButton\n type=\"button\"\n [variant]=\"'primary'\"\n [size]=\"'medium'\"\n [disabled]=\"saveDisabled || saving\"\n [loading]=\"saving\"\n (click)=\"save.emit()\"\n >\n Save\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--size-large);align-items:center;padding-block:var(--size-medium);color:var(--type-light-high-contrast)}.label,.value,.actions{display:flex;align-items:center;gap:var(--size-small)}.label{grid-column-end:span 4;font:var(--title-02)}.value{grid-column-end:span 7;font:var(--body-medium)}.field{grid-column-end:span 4}.actions{grid-column-end:span 1;justify-content:flex-end}:host.editing .actions{grid-column-end:span 4}\n"] }]
84
+ }], propDecorators: { label: [{
85
+ type: Input
86
+ }], value: [{
87
+ type: Input
88
+ }], infoTooltip: [{
89
+ type: Input
90
+ }], editing: [{
91
+ type: Input
92
+ }], saveDisabled: [{
93
+ type: Input
94
+ }], saving: [{
95
+ type: Input
96
+ }], tooltipMaxWidth: [{
97
+ type: Input
98
+ }], edit: [{
99
+ type: Output
100
+ }], cancel: [{
101
+ type: Output
102
+ }], save: [{
103
+ type: Output
104
+ }], editor: [{
105
+ type: ContentChild,
106
+ args: ['editor']
107
+ }], editingClass: [{
108
+ type: HostBinding,
109
+ args: ['class.editing']
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvbGF5b3V0L3NldHRpbmctcm93L3NldHRpbmctcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2xheW91dC9zZXR0aW5nLXJvdy9zZXR0aW5nLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBT0gsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQU9FLDRGQUE0RjtRQUU1RixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5COzs7O1dBSUc7UUFFSCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLCtEQUErRDtRQUUvRCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV6Qjs7O1dBR0c7UUFFSCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCLHNEQUFzRDtRQUV0RCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixrRkFBa0Y7UUFFbEYsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixvQkFBZSxHQUFXLE9BQU8sQ0FBQztRQUdsQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdoQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdsQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQVNqQztJQUpDLElBQ0ksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOztpSEFsRFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsZ2NDMURoQyxxOUNBNkRBOzRGREhhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFLL0MsS0FBSztzQkFESixLQUFLO2dCQVNOLEtBQUs7c0JBREosS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sT0FBTztzQkFETixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLElBQUk7c0JBREgsTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLE1BQU07c0JBREwsWUFBWTt1QkFBQyxRQUFRO2dCQUlsQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIE9uZSBsYWJlbGxlZCBzZXR0aW5nIHRoYXQgaXMgcmVhZCBpbiBwbGFjZSBhbmQgZWRpdGVkIGlubGluZS5cbiAqXG4gKiBSZWFkaW5nIHNob3dzIHRoZSBsYWJlbCwgdGhlIGN1cnJlbnQgdmFsdWUsIGFuZCBhbiBlZGl0IGJ1dHRvbi4gRWRpdGluZ1xuICogc3dhcHMgdGhlIHZhbHVlIGZvciBhIGNvbnN1bWVyLXN1cHBsaWVkIGZpZWxkIHBsdXMgQ2FuY2VsIGFuZCBTYXZlIGJ1dHRvbnMuXG4gKiBUaGUgcm93IGhvbGRzIG5vIHN0YXRlIG9mIGl0cyBvd24g4oCUIGJpbmQgYGVkaXRpbmdgIGFuZCBhY3Qgb24gYGVkaXRgLFxuICogYGNhbmNlbGAsIGFuZCBgc2F2ZWAuXG4gKlxuICogU2V0IHRoZSB2YWx1ZSBzaG93biB3aGlsZSByZWFkaW5nIHdpdGggYHZhbHVlYCBmb3IgcGxhaW4gdGV4dCwgb3IgcHJvamVjdFxuICogcmljaGVyIGNvbnRlbnQgc3VjaCBhcyBhIGByaXYtYmFkZ2VgIGludG8gdGhlIGBbZGlzcGxheS12YWx1ZV1gIHNsb3QuIFVzZVxuICogb25lIG9yIHRoZSBvdGhlcjogd2hlbiBgdmFsdWVgIGlzIHNldCwgdGhlIHNsb3QgaXNuJ3Qgc2hvd24uXG4gKlxuICogVHdvIGNvbnRlbnQgc2xvdHM6XG4gKiAtIGBbZGlzcGxheS12YWx1ZV1gIOKAlCBjb250ZW50IHNob3duIHdoaWxlIHJlYWRpbmcsIHdoZW4gYHZhbHVlYCBpcyBlbXB0eVxuICogLSBgI2VkaXRvcmAgdGVtcGxhdGUg4oCUIGFueSBmaWVsZCBjb21wb25lbnQgdG8gZWRpdCB0aGUgdmFsdWUgd2l0aCwgc3VjaCBhc1xuICogICBgcml2LXRleHQtZmllbGRgLCBgcml2LWN1cnJlbmN5LWZpZWxkYCwgb3IgYHJpdi1zaW1wbGUtc2VsZWN0YC4gVGhlIHJvd1xuICogICB3cmFwcyBpdCBpbiBhIGA8bGFiZWw+YCBuYW1lZCBhZnRlciBgbGFiZWxgLCBzbyBkb24ndCBnaXZlIHRoZSBmaWVsZCBpdHNcbiAqICAgb3duIGxhYmVsLiBPbmx5IHRoZSBmaXJzdCBjb250cm9sIGluIHRoZSB0ZW1wbGF0ZSBnZXRzIHRoYXQgbmFtZSwgc28ga2VlcFxuICogICBpdCB0byBvbmUgZmllbGQuXG4gKlxuICogYGBgaHRtbFxuICogPHJpdi1zZXR0aW5nLXJvd1xuICogICBbbGFiZWxdPVwiJ1RocmVzaG9sZCdcIlxuICogICBbaW5mb1Rvb2x0aXBdPVwiJ0FwcGxpZXMgdG8gbmV3IGNsYWltcyBvbmx5J1wiXG4gKiAgIFtlZGl0aW5nXT1cImVkaXRpbmdcIlxuICogICBbc2F2aW5nXT1cInNhdmluZ1wiXG4gKiAgIChlZGl0KT1cImVkaXRpbmcgPSB0cnVlXCJcbiAqICAgKGNhbmNlbCk9XCJlZGl0aW5nID0gZmFsc2VcIlxuICogICAoc2F2ZSk9XCJzYXZlKClcIlxuICogICBbdmFsdWVdPVwidGhyZXNob2xkICsgJyUnXCJcbiAqID5cbiAqICAgPG5nLXRlbXBsYXRlICNlZGl0b3I+XG4gKiAgICAgPHJpdi10ZXh0LWZpZWxkIFsodmFsdWUpXT1cImRyYWZ0XCI+PC9yaXYtdGV4dC1maWVsZD5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvcml2LXNldHRpbmctcm93PlxuICogYGBgXG4gKlxuICogU3RhY2sgcm93cyBkaXJlY3RseSB0byBidWlsZCBhIHNldHRpbmdzIGxpc3Q7IGVhY2ggcm93IHBhZHMgaXRzZWxmXG4gKiB2ZXJ0aWNhbGx5IGFuZCBsYXlzIG91dCBvbiBhIHNoYXJlZCB0d2VsdmUtY29sdW1uIGdyaWQgc28gbGFiZWxzLCB2YWx1ZXMsXG4gKiBhbmQgYWN0aW9ucyBsaW5lIHVwIGJldHdlZW4gcm93cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNldHRpbmctcm93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmctcm93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZy1yb3cuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ1Jvd0NvbXBvbmVudCB7XG4gIC8qKiBOYW1lcyB0aGUgc2V0dGluZy4gQWxzbyBnaXZlcyB0aGUgZWRpdCBidXR0b24gaXRzIHNjcmVlbi1yZWFkZXIgbmFtZSwgXCJFZGl0IHtsYWJlbH1cIi4gKi9cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgc2hvd24gd2hpbGUgcmVhZGluZywgYXMgcGxhaW4gdGV4dCBhbmQgYWxyZWFkeSBmb3JtYXR0ZWQsIHN1Y2hcbiAgICogYXMgYCckMjUwJ2AuIEZvciBhbnl0aGluZyByaWNoZXIsIGxlYXZlIHRoaXMgZW1wdHkgYW5kIHByb2plY3QgaXQgaW50b1xuICAgKiBgW2Rpc3BsYXktdmFsdWVdYCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBFeHBsYWlucyB0aGUgc2V0dGluZyBmcm9tIGFuIGluZm8gaWNvbiBiZXNpZGUgdGhlIGxhYmVsLiAqL1xuICBASW5wdXQoKVxuICBpbmZvVG9vbHRpcDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGVkaXQgZmllbGQgaXMgc2hvd24uIFRoZSBjb25zdW1lciAodGhlIHBhcmVudCBjb21wb25lbnQpIG93bnNcbiAgICogdGhpcyBzdGF0ZSwgc28gaXQgY2FuIGtlZXAgb25seSBvbmUgcm93IG9wZW4gZm9yIGVkaXRpbmcgYXQgYSB0aW1lLlxuICAgKi9cbiAgQElucHV0KClcbiAgZWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBCbG9ja3MgU2F2ZSwgZm9yIGEgZHJhZnQgdGhhdCBpcyBub3QgeWV0IHZhbGlkLiAqL1xuICBASW5wdXQoKVxuICBzYXZlRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2hvd3MgU2F2ZSBhcyBsb2FkaW5nIGFuZCBibG9ja3MgU2F2ZSBhbmQgQ2FuY2VsIHdoaWxlIGEgc2F2ZSBpcyBpbiBmbGlnaHQuICovXG4gIEBJbnB1dCgpXG4gIHNhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHRvb2x0aXBNYXhXaWR0aDogc3RyaW5nID0gJzMyMHB4JztcblxuICBAT3V0cHV0KClcbiAgZWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2VkaXRvcicpXG4gIGVkaXRvcj86IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZWRpdGluZycpXG4gIGdldCBlZGl0aW5nQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGluZztcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlxuICA8cml2LWljb25cbiAgICAqbmdJZj1cImluZm9Ub29sdGlwXCJcbiAgICBbbmFtZV09XCInSW5mbydcIlxuICAgIFtzaXplXT1cIjE2XCJcbiAgICBbcml2VG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgW3JpdlRvb2x0aXBNYXhXaWR0aF09XCJ0b29sdGlwTWF4V2lkdGhcIlxuICA+PC9yaXYtaWNvbj5cbiAge3sgbGFiZWwgfX1cbjwvc3Bhbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlZGl0aW5nOyBlbHNlIGVkaXRNb2RlXCI+XG4gIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWU7IGVsc2UgcHJvamVjdGVkVmFsdWVcIj57eyB2YWx1ZSB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcHJvamVjdGVkVmFsdWU+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGlzcGxheS12YWx1ZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgIDxidXR0b25cbiAgICAgIHJpdkJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWNvbl09XCInRWRpdDInXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cIidFZGl0J1wiXG4gICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0VkaXQgJyArIGxhYmVsXCJcbiAgICAgIChjbGljayk9XCJlZGl0LmVtaXQoKVwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VkaXRNb2RlPlxuICA8bGFiZWwgY2xhc3M9XCJmaWVsZFwiPlxuICAgIDxyaXYtc3Itb25seT57eyBsYWJlbCB9fTwvcml2LXNyLW9ubHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVkaXRvciA/PyBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3ZhcmlhbnRdPVwiJ2Jhc2ljJ1wiXG4gICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2F2aW5nXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWwuZW1pdCgpXCJcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICByaXZCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3ZhcmlhbnRdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzYXZlRGlzYWJsZWQgfHwgc2F2aW5nXCJcbiAgICAgIFtsb2FkaW5nXT1cInNhdmluZ1wiXG4gICAgICAoY2xpY2spPVwic2F2ZS5lbWl0KClcIlxuICAgID5cbiAgICAgIFNhdmVcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -46,6 +46,7 @@ import { CardHeaderComponent } from './layout/card/card-header.component';
46
46
  import { CardLinkComponent } from './layout/card/card-link.component';
47
47
  import { CardMediaComponent } from './layout/card/card-media.component';
48
48
  import { CardComponent } from './layout/card/card.component';
49
+ import { SettingRowComponent } from './layout/setting-row/setting-row.component';
49
50
  import { LoadingCoverComponent } from './load/loading-cover/loading-cover.component';
50
51
  import { LoadingComponent } from './load/loading/loading.component';
51
52
  import { EditableHeadingComponent } from './navigation/editable-heading/editable-heading.component';
@@ -189,6 +190,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
189
190
  SelectComponent,
190
191
  SelectNodeComponent,
191
192
  SentenceCasePipe,
193
+ SettingRowComponent,
192
194
  SideSheetComponent,
193
195
  SimpleSelectComponent,
194
196
  SimpleTabComponent,
@@ -297,6 +299,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
297
299
  SearchSelectComponent,
298
300
  SelectComponent,
299
301
  SentenceCasePipe,
302
+ SettingRowComponent,
300
303
  SideSheetComponent,
301
304
  SimpleSelectComponent,
302
305
  SimpleTabComponent,
@@ -413,6 +416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
413
416
  SelectComponent,
414
417
  SelectNodeComponent,
415
418
  SentenceCasePipe,
419
+ SettingRowComponent,
416
420
  SideSheetComponent,
417
421
  SimpleSelectComponent,
418
422
  SimpleTabComponent,
@@ -524,6 +528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
524
528
  SearchSelectComponent,
525
529
  SelectComponent,
526
530
  SentenceCasePipe,
531
+ SettingRowComponent,
527
532
  SideSheetComponent,
528
533
  SimpleSelectComponent,
529
534
  SimpleTabComponent,
@@ -567,4 +572,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
567
572
  imports: [CommonModule, RouterModule],
568
573
  }]
569
574
  }] });
570
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixF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QW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTck9ubHlDb21wb25lbnQgfSBmcm9tICcuL2FjY2Vzc2liaWxpdHkvc3Itb25seS9zci1vbmx5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RhdGUucGlwZSc7XG5pbXBvcnQgeyBEYXlzUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RheXMucGlwZSc7XG5pbXBvcnQgeyBEb2xsYXJzUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RvbGxhcnMucGlwZSc7XG5pbXBvcnQgeyBOdW1iZXJQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgUGVyY2VudGFnZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9wZXJjZW50YWdlLnBpcGUnO1xuaW1wb3J0IHsgU2VudGVuY2VDYXNlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NlbnRlbmNlLWNhc2UucGlwZSc7XG5pbXBvcnQgeyBTbWFsbEN1cnJlbmN5UGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NtYWxsLWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgU21hbGxOdW1iZXJQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvc21hbGwtbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtYXQvc3ZnLXRleHQtdHJ1bmNhdGUvc3ZnLXRleHQtdHJ1bmNhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRydW5jYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxwaGFiZXRpY0ZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9hbHBoYWJldGljLWZpZWxkL2FscGhhYmV0aWMtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQvYXV0by1mb2N1cy9hdXRvLWZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2FyZC1jaGVja2JveC9jYXJkLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEN1cnJlbmN5RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2N1cnJlbmN5LWZpZWxkL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZGF0ZS9kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9maWx0ZXItY2hpcC9maWx0ZXItY2hpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnRpb25zSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L21lbnRpb25zLWlucHV0L21lbnRpb25zLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvbnVtYmVyLWZpZWxkL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9wZXJjZW50YWdlLWZpZWxkL3BlcmNlbnRhZ2UtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2VhcmNoLXNlbGVjdC9zZWFyY2gtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE5vZGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NlbGVjdC9zZWxlY3Qtbm9kZS9zZWxlY3Qtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9uR3JvdXBQaXBlIH0gZnJvbSAnLi9pbnB1dC9zaW1wbGUtc2VsZWN0L29wdGlvbi1ncm91cC5waXBlJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2ltcGxlLXNlbGVjdC9zaW1wbGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2l0Y2hDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc3dpdGNoLWNoZWNrYm94L3N3aXRjaC1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3RleHRhcmVhLWZpZWxkL3RleHRhcmVhLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC9jYXJkL2NhcmQtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC9jYXJkL2NhcmQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvY2FyZC9jYXJkLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRNZWRpYUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRhYmxlSGVhZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi9lZGl0YWJsZS1oZWFkaW5nL2VkaXRhYmxlLWhlYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vc2ltcGxlLXRhYnMvc2ltcGxlLXRhYi9zaW1wbGUtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3NpbXBsZS10YWJzL3NpbXBsZS10YWJzL3NpbXBsZS10YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGxWaWV3c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2VkaXQtdmlldy9lZGl0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25QaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdmlld3MvcGVybWlzc2lvbi1waWNrZXIvcGVybWlzc2lvbi1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXdzL3ZpZXdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9iYW5uZXIvYmFubmVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbWFwLWluZGljYXRvci9tYXAtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25CYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1iYWRnZS9ub3RpZmljYXRpb24tYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGxvdXRDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9jYWxsb3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWxwQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvaGVscC9oZWxwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NrU2Nyb2xsRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvbG9jay1zY3JvbGwuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvbWVudS9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvbWVudS9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NrZWRUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC9sb2NrZWQtdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L21vZGFsL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvZm9ybS1kaWFsb2cvZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlU2hlZXRDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvc2lkZS1zaGVldC9zaWRlLXNoZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5T3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L292ZXJsYXktb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L292ZXJsYXkuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvYXN0QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L3RvYXN0L3RvYXN0LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvdG9hc3QvdG9hc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNpemVEaXJlY3RpdmUgfSBmcm9tICcuL3NpemUvc2l6ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2xsYXBzZUFsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUtY29sbGFwc2UtYWxsL3RhYmxlLWNvbGxhcHNlLWFsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5TZXR0aW5nc1NpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jb2x1bW4tc2V0dGluZ3MvdGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNzdkV4cG9ydENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUtY3N2LWV4cG9ydC90YWJsZS1jc3YtZXhwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlclJlc2l6ZUhhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUvdGFibGUtaGVhZGVyLXJlc2l6ZS1oYW5kbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlU2VhcmNoQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUtc2VhcmNoLWNvbHVtbnMvdGFibGUtc2VhcmNoLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1zZWFyY2gvdGFibGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvdGFibGUvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZpc2liaWxpdHlEaXJlY3RpdmUgfSBmcm9tICcuL3Zpc2liaWxpdHkvdmlzaWJpbGl0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vY2hhcnQvY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZG9udXQvZG9udXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bm5lbENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2Z1bm5lbC1jaGFydC9mdW5uZWwtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9pc3N1ZS9pc3N1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE1pbmlQaWVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vbWluaS1waWUvbWluaS1waWUuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtY29sdW1uL3N0YWNrZWQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkUm93Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtcm93L3N0YWNrZWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RpbWUtc2VyaWVzL3RpbWUtc2VyaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVuZENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi90cmVuZC90cmVuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVyb1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbGxWaWV3c01vZGFsQ29tcG9uZW50LFxuICAgIEFscGhhYmV0aWNGaWVsZENvbXBvbmVudCxcbiAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQmFubmVyQWN0aW9uQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYXJkQWN0aW9uc0NvbXBvbmVudCxcbiAgICBDYXJkQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBDYXJkQ29udGVudENvbXBvbmVudCxcbiAgICBDYXJkSGVhZGVyQ29tcG9uZW50LFxuICAgIENhcmRMaW5rQ29tcG9uZW50LFxuICAgIENhcmRNZWRpYUNvbXBvbmVudCxcbiAgICBDaGFydENvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDdXJyZW5jeUZpZWxkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93Q29tcG9uZW50LFxuICAgIERhdGVDb21wb25lbnQsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGF0ZVJhbmdlQ29tcG9uZW50LFxuICAgIERheXNQaXBlLFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBFZGl0YWJsZUhlYWRpbmdDb21wb25lbnQsXG4gICAgRWRpdFZpZXdDb21wb25lbnQsXG4gICAgRmlsdGVyQ2hpcENvbXBvbmVudCxcbiAgICBGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgIEZ1bm5lbENoYXJ0Q29tcG9uZW50LFxuICAgIEhlbHBDb21wb25lbnQsXG4gICAgSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW5wdXRMYWJlbENvbXBvbmVudCxcbiAgICBJc3N1ZUNvbXBvbmVudCxcbiAgICBMZWdlbmRJdGVtQ29tcG9uZW50LFxuICAgIExpbmtDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ292ZXJDb21wb25lbnQsXG4gICAgTG9ja2VkVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBMb2NrU2Nyb2xsRGlyZWN0aXZlLFxuICAgIE1hcEluZGljYXRvckNvbXBvbmVudCxcbiAgICBNZW50aW9uc0lucHV0Q29tcG9uZW50LFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWV0cmljQ29tcG9uZW50LFxuICAgIE1pbmlQaWVDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uQmFkZ2VDb21wb25lbnQsXG4gICAgTnVtYmVyRmllbGRDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBPcHRpb25Hcm91cFBpcGUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPdmVybGF5T3V0bGV0Q29tcG9uZW50LFxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VQaXBlLFxuICAgIFBlcm1pc3Npb25QaWNrZXJDb21wb25lbnQsXG4gICAgUGhvbmVGaWVsZENvbXBvbmVudCxcbiAgICBQcm9ncmVzc0NvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBTZWxlY3ROb2RlQ29tcG9uZW50LFxuICAgIFNlbnRlbmNlQ2FzZVBpcGUsXG4gICAgU2lkZVNoZWV0Q29tcG9uZW50LFxuICAgIFNpbXBsZVNlbGVjdENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJzQ29tcG9uZW50LFxuICAgIFNpemVEaXJlY3RpdmUsXG4gICAgU21hbGxDdXJyZW5jeVBpcGUsXG4gICAgU21hbGxOdW1iZXJQaXBlLFxuICAgIFNyT25seUNvbXBvbmVudCxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFN0YWNrZWRSb3dDb21wb25lbnQsXG4gICAgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgIFN3aXRjaENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJsZUNvbGxhcHNlQWxsQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQsXG4gICAgVGFibGVDb2x1bW5TZXR0aW5nc1NpZGVTaGVldENvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZUNzdkV4cG9ydENvbXBvbmVudCxcbiAgICBUYWJsZUhlYWRlclJlc2l6ZUhhbmRsZUNvbXBvbmVudCxcbiAgICBUYWJsZVNlYXJjaENvbHVtbnNDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBUaW1lU2VyaWVzQ29tcG9uZW50LFxuICAgIFRvYXN0QWN0aW9uQ29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBUcmVuZENvbXBvbmVudCxcbiAgICBUcnVuY2F0ZUNvbXBvbmVudCxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgICBWaWV3TWVudUNvbXBvbmVudCxcbiAgICBWaWV3c0NvbXBvbmVudCxcbiAgICBWaXNpYmlsaXR5RGlyZWN0aXZlLFxuICAgIFplcm9TdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFsbFZpZXdzTW9kYWxDb21wb25lbnQsXG4gICAgQWxwaGFiZXRpY0ZpZWxkQ29tcG9uZW50LFxuICAgIEF1dG9Gb2N1c0RpcmVjdGl2ZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCYW5uZXJBY3Rpb25Db21wb25lbnQsXG4gICAgQmFubmVyQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgICBDYWxsb3V0Q29tcG9uZW50LFxuICAgIENhcmRBY3Rpb25zQ29tcG9uZW50LFxuICAgIENhcmRDaGVja2JveENvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIENhcmRDb250ZW50Q29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJDb21wb25lbnQsXG4gICAgQ2FyZExpbmtDb21wb25lbnQsXG4gICAgQ2FyZE1lZGlhQ29tcG9uZW50LFxuICAgIENoYXJ0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIEN1cnJlbmN5RmllbGRDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVSb3dDb21wb25lbnQsXG4gICAgRGF0ZUNvbXBvbmVudCxcbiAgICBEYXRlUGlwZSxcbiAgICBEYXRlUmFuZ2VDb21wb25lbnQsXG4gICAgRGF5c1BpcGUsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERvbGxhcnNQaXBlLFxuICAgIERvbnV0Q29tcG9uZW50LFxuICAgIEVkaXRhYmxlSGVhZGluZ0NvbXBvbmVudCxcbiAgICBFZGl0Vmlld0NvbXBvbmVudCxcbiAgICBGaWx0ZXJDaGlwQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIElzc3VlQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBMb2NrZWRUb29sdGlwRGlyZWN0aXZlLFxuICAgIE1hcEluZGljYXRvckNvbXBvbmVudCxcbiAgICBNZW50aW9uc0lucHV0Q29tcG9uZW50LFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWV0cmljQ29tcG9uZW50LFxuICAgIE1pbmlQaWVDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uQmFkZ2VDb21wb25lbnQsXG4gICAgTnVtYmVyRmllbGRDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBPcHRpb25Hcm91cFBpcGUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPdmVybGF5T3V0bGV0Q29tcG9uZW50LFxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VQaXBlLFxuICAgIFBlcm1pc3Npb25QaWNrZXJDb21wb25lbnQsXG4gICAgUGhvbmVGaWVsZENvbXBvbmVudCxcbiAgICBQcm9ncmVzc0NvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBTZW50ZW5jZUNhc2VQaXBlLFxuICAgIFNpZGVTaGVldENvbXBvbmVudCxcbiAgICBTaW1wbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU2ltcGxlVGFiQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUNvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVSb3dDb21wb25lbnQsXG4gICAgU2ltcGxlVGFic0NvbXBvbmVudCxcbiAgICBTaXplRGlyZWN0aXZlLFxuICAgIFNtYWxsQ3VycmVuY3lQaXBlLFxuICAgIFNtYWxsTnVtYmVyUGlwZSxcbiAgICBTck9ubHlDb21wb25lbnQsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFNWR1RleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICBTd2l0Y2hDaGVja2JveENvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgVGFibGVDb2xsYXBzZUFsbENvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDc3ZFeHBvcnRDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb2x1bW5zQ29tcG9uZW50LFxuICAgIFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGV4dGFyZWFGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb2FzdEFjdGlvbkNvbXBvbmVudCxcbiAgICBUb2FzdENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgVmlld01lbnVDb21wb25lbnQsXG4gICAgVmlld3NDb21wb25lbnQsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJpdk1vZHVsZSB7fVxuIl19
575
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixF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Q3JDLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTck9ubHlDb21wb25lbnQgfSBmcm9tICcuL2FjY2Vzc2liaWxpdHkvc3Itb25seS9zci1vbmx5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RhdGUucGlwZSc7XG5pbXBvcnQgeyBEYXlzUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RheXMucGlwZSc7XG5pbXBvcnQgeyBEb2xsYXJzUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL2RvbGxhcnMucGlwZSc7XG5pbXBvcnQgeyBOdW1iZXJQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgUGVyY2VudGFnZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9wZXJjZW50YWdlLnBpcGUnO1xuaW1wb3J0IHsgU2VudGVuY2VDYXNlUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NlbnRlbmNlLWNhc2UucGlwZSc7XG5pbXBvcnQgeyBTbWFsbEN1cnJlbmN5UGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL3NtYWxsLWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgU21hbGxOdW1iZXJQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvc21hbGwtbnVtYmVyLnBpcGUnO1xuaW1wb3J0IHsgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtYXQvc3ZnLXRleHQtdHJ1bmNhdGUvc3ZnLXRleHQtdHJ1bmNhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRydW5jYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxwaGFiZXRpY0ZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9hbHBoYWJldGljLWZpZWxkL2FscGhhYmV0aWMtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQvYXV0by1mb2N1cy9hdXRvLWZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2FyZC1jaGVja2JveC9jYXJkLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEN1cnJlbmN5RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2N1cnJlbmN5LWZpZWxkL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZGF0ZS9kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9maWx0ZXItY2hpcC9maWx0ZXItY2hpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnRpb25zSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L21lbnRpb25zLWlucHV0L21lbnRpb25zLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvbnVtYmVyLWZpZWxkL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9wZXJjZW50YWdlLWZpZWxkL3BlcmNlbnRhZ2UtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2VhcmNoLXNlbGVjdC9zZWFyY2gtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE5vZGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NlbGVjdC9zZWxlY3Qtbm9kZS9zZWxlY3Qtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9uR3JvdXBQaXBlIH0gZnJvbSAnLi9pbnB1dC9zaW1wbGUtc2VsZWN0L29wdGlvbi1ncm91cC5waXBlJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2ltcGxlLXNlbGVjdC9zaW1wbGUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2l0Y2hDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc3dpdGNoLWNoZWNrYm94L3N3aXRjaC1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3RleHRhcmVhLWZpZWxkL3RleHRhcmVhLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC9jYXJkL2NhcmQtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC9jYXJkL2NhcmQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvY2FyZC9jYXJkLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRNZWRpYUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2V0dGluZ1Jvd0NvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L3NldHRpbmctcm93L3NldHRpbmctcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ292ZXJDb21wb25lbnQgfSBmcm9tICcuL2xvYWQvbG9hZGluZy1jb3Zlci9sb2FkaW5nLWNvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdGFibGVIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL2VkaXRhYmxlLWhlYWRpbmcvZWRpdGFibGUtaGVhZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi9saW5rL2xpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi9zaW1wbGUtdGFicy9zaW1wbGUtdGFiL3NpbXBsZS10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYnNDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vc2ltcGxlLXRhYnMvc2ltcGxlLXRhYnMvc2ltcGxlLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi90YWJzL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicy90YWJzL3RhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFsbFZpZXdzTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdmlld3MvYWxsLXZpZXdzLW1vZGFsL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFZpZXdDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdmlld3MvZWRpdC12aWV3L2VkaXQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi92aWV3cy9wZXJtaXNzaW9uLXBpY2tlci9wZXJtaXNzaW9uLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld01lbnVDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdmlld3Mvdmlldy1tZW51L3ZpZXctbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld3NDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdmlld3Mvdmlld3Mvdmlld3MuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhbm5lckFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2Jhbm5lci9iYW5uZXItYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9iYW5uZXIvYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXBJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9tYXAtaW5kaWNhdG9yL21hcC1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWJhZGdlL25vdGlmaWNhdGlvbi1iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsbG91dENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L2NhbGxvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhlbHBDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9oZWxwL2hlbHAuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2tTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9sb2NrLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2tlZFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC90b29sdGlwL2xvY2tlZC10b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9tb2RhbC9mb3JtLWRpYWxvZy9mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9tb2RhbC9zaWRlLXNoZWV0L3NpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvdG9hc3QvdG9hc3QtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vc2l6ZS9zaXplLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbGxhcHNlQWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jb2xsYXBzZS1hbGwvdGFibGUtY29sbGFwc2UtYWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jb2x1bW4tc2V0dGluZ3MvdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jc3YtZXhwb3J0L3RhYmxlLWNzdi1leHBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlSGVhZGVyUmVzaXplSGFuZGxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVTZWFyY2hDb2x1bW5zQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1zZWFyY2gtY29sdW1ucy90YWJsZS1zZWFyY2gtY29sdW1ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlL3RhYmxlLXNlYXJjaC90YWJsZS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlzaWJpbGl0eURpcmVjdGl2ZSB9IGZyb20gJy4vdmlzaWJpbGl0eS92aXNpYmlsaXR5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDaGFydENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9jaGFydC9jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb251dENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9kb251dC9kb251dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVubmVsQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZnVubmVsLWNoYXJ0L2Z1bm5lbC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IElzc3VlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2lzc3VlL2lzc3VlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMZWdlbmRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2xlZ2VuZC1pdGVtL2xlZ2VuZC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRyaWNDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vbWV0cmljL21ldHJpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluaVBpZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9taW5pLXBpZS9taW5pLXBpZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IFN0YWNrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc3RhY2tlZC1jb2x1bW4vc3RhY2tlZC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IFN0YWNrZWRSb3dDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc3RhY2tlZC1yb3cvc3RhY2tlZC1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVTZXJpZXNDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vdGltZS1zZXJpZXMvdGltZS1zZXJpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZW5kQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RyZW5kL3RyZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZXJvU3RhdGVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vemVyby1zdGF0ZS96ZXJvLXN0YXRlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFsbFZpZXdzTW9kYWxDb21wb25lbnQsXG4gICAgQWxwaGFiZXRpY0ZpZWxkQ29tcG9uZW50LFxuICAgIEF1dG9Gb2N1c0RpcmVjdGl2ZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCYW5uZXJBY3Rpb25Db21wb25lbnQsXG4gICAgQmFubmVyQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBDYWxsb3V0Q29tcG9uZW50LFxuICAgIENhcmRBY3Rpb25zQ29tcG9uZW50LFxuICAgIENhcmRDaGVja2JveENvbXBvbmVudCxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIENhcmRDb250ZW50Q29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJDb21wb25lbnQsXG4gICAgQ2FyZExpbmtDb21wb25lbnQsXG4gICAgQ2FyZE1lZGlhQ29tcG9uZW50LFxuICAgIENoYXJ0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIEN1cnJlbmN5RmllbGRDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVSb3dDb21wb25lbnQsXG4gICAgRGF0ZUNvbXBvbmVudCxcbiAgICBEYXRlUGlwZSxcbiAgICBEYXRlUmFuZ2VDb21wb25lbnQsXG4gICAgRGF5c1BpcGUsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIERvbGxhcnNQaXBlLFxuICAgIERvbnV0Q29tcG9uZW50LFxuICAgIEVkaXRhYmxlSGVhZGluZ0NvbXBvbmVudCxcbiAgICBFZGl0Vmlld0NvbXBvbmVudCxcbiAgICBGaWx0ZXJDaGlwQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIElzc3VlQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBMb2NrZWRUb29sdGlwRGlyZWN0aXZlLFxuICAgIExvY2tTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWFwSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIE1lbnRpb25zSW5wdXRDb21wb25lbnQsXG4gICAgTWVudUNvbXBvbmVudCxcbiAgICBNZW51SXRlbUNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTWluaVBpZUNvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25CYWRnZUNvbXBvbmVudCxcbiAgICBOdW1iZXJGaWVsZENvbXBvbmVudCxcbiAgICBOdW1iZXJQaXBlLFxuICAgIE9wdGlvbkdyb3VwUGlwZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIE92ZXJsYXlPdXRsZXRDb21wb25lbnQsXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlRmllbGRDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZVBpcGUsXG4gICAgUGVybWlzc2lvblBpY2tlckNvbXBvbmVudCxcbiAgICBQaG9uZUZpZWxkQ29tcG9uZW50LFxuICAgIFByb2dyZXNzQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdE5vZGVDb21wb25lbnQsXG4gICAgU2VudGVuY2VDYXNlUGlwZSxcbiAgICBTZXR0aW5nUm93Q29tcG9uZW50LFxuICAgIFNpZGVTaGVldENvbXBvbmVudCxcbiAgICBTaW1wbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU2ltcGxlVGFiQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUNvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVSb3dDb21wb25lbnQsXG4gICAgU2ltcGxlVGFic0NvbXBvbmVudCxcbiAgICBTaXplRGlyZWN0aXZlLFxuICAgIFNtYWxsQ3VycmVuY3lQaXBlLFxuICAgIFNtYWxsTnVtYmVyUGlwZSxcbiAgICBTck9ubHlDb21wb25lbnQsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFNWR1RleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICBTd2l0Y2hDaGVja2JveENvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgVGFibGVDb2xsYXBzZUFsbENvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDc3ZFeHBvcnRDb21wb25lbnQsXG4gICAgVGFibGVIZWFkZXJSZXNpemVIYW5kbGVDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb2x1bW5zQ29tcG9uZW50LFxuICAgIFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGV4dGFyZWFGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb2FzdEFjdGlvbkNvbXBvbmVudCxcbiAgICBUb2FzdENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgVmlld01lbnVDb21wb25lbnQsXG4gICAgVmlld3NDb21wb25lbnQsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbGxWaWV3c01vZGFsQ29tcG9uZW50LFxuICAgIEFscGhhYmV0aWNGaWVsZENvbXBvbmVudCxcbiAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQmFubmVyQWN0aW9uQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYXJkQWN0aW9uc0NvbXBvbmVudCxcbiAgICBDYXJkQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBDYXJkQ29udGVudENvbXBvbmVudCxcbiAgICBDYXJkSGVhZGVyQ29tcG9uZW50LFxuICAgIENhcmRMaW5rQ29tcG9uZW50LFxuICAgIENhcmRNZWRpYUNvbXBvbmVudCxcbiAgICBDaGFydENvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDdXJyZW5jeUZpZWxkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93Q29tcG9uZW50LFxuICAgIERhdGVDb21wb25lbnQsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGF0ZVJhbmdlQ29tcG9uZW50LFxuICAgIERheXNQaXBlLFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBFZGl0YWJsZUhlYWRpbmdDb21wb25lbnQsXG4gICAgRWRpdFZpZXdDb21wb25lbnQsXG4gICAgRmlsdGVyQ2hpcENvbXBvbmVudCxcbiAgICBGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgIEZ1bm5lbENoYXJ0Q29tcG9uZW50LFxuICAgIEhlbHBDb21wb25lbnQsXG4gICAgSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW5wdXRMYWJlbENvbXBvbmVudCxcbiAgICBJc3N1ZUNvbXBvbmVudCxcbiAgICBMZWdlbmRJdGVtQ29tcG9uZW50LFxuICAgIExpbmtDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ292ZXJDb21wb25lbnQsXG4gICAgTG9ja2VkVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBNYXBJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgTWVudGlvbnNJbnB1dENvbXBvbmVudCxcbiAgICBNZW51Q29tcG9uZW50LFxuICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1ldHJpY0NvbXBvbmVudCxcbiAgICBNaW5pUGllQ29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkJhZGdlQ29tcG9uZW50LFxuICAgIE51bWJlckZpZWxkQ29tcG9uZW50LFxuICAgIE51bWJlclBpcGUsXG4gICAgT3B0aW9uR3JvdXBQaXBlLFxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXG4gICAgT3ZlcmxheU91dGxldENvbXBvbmVudCxcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VGaWVsZENvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBQZXJtaXNzaW9uUGlja2VyQ29tcG9uZW50LFxuICAgIFBob25lRmllbGRDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgU2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdENvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU2VudGVuY2VDYXNlUGlwZSxcbiAgICBTZXR0aW5nUm93Q29tcG9uZW50LFxuICAgIFNpZGVTaGVldENvbXBvbmVudCxcbiAgICBTaW1wbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU2ltcGxlVGFiQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUNvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVSb3dDb21wb25lbnQsXG4gICAgU2ltcGxlVGFic0NvbXBvbmVudCxcbiAgICBTaXplRGlyZWN0aXZlLFxuICAgIFNtYWxsQ3VycmVuY3lQaXBlLFxuICAgIFNtYWxsTnVtYmVyUGlwZSxcbiAgICBTck9ubHlDb21wb25lbnQsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFNWR1RleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICBTd2l0Y2hDaGVja2JveENvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgVGFibGVDb2xsYXBzZUFsbENvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDc3ZFeHBvcnRDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb2x1bW5zQ29tcG9uZW50LFxuICAgIFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGV4dGFyZWFGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb2FzdEFjdGlvbkNvbXBvbmVudCxcbiAgICBUb2FzdENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgVmlld01lbnVDb21wb25lbnQsXG4gICAgVmlld3NDb21wb25lbnQsXG4gICAgVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJpdk1vZHVsZSB7fVxuIl19
@@ -57,10 +57,10 @@ export var TableColumnHelpers;
57
57
  function getAlignment(metadata, index, allowSelection) {
58
58
  return getColumnAlignment(metadata.dataType, index === 0 && !allowSelection);
59
59
  }
60
- function resolveColumns(state, supportedColumns, columnNameMap, allowSelection) {
60
+ function resolveColumns(state, supportedColumns, columnNameMap, allowSelection, filterTo) {
61
61
  const allColumns = getAllColumns(state, supportedColumns, columnNameMap);
62
62
  return allColumns
63
- .filter(({ enabled }) => enabled)
63
+ .filter(({ enabled }) => (filterTo === 'enabled' ? enabled : !enabled))
64
64
  .reduce((fullColumns, settings, i) => {
65
65
  const metadata = supportedColumns.get(settings.key);
66
66
  const resolvedWidth = settings.preferredWidth === 'auto'
@@ -211,18 +211,30 @@ export var TableColumnHelpers;
211
211
  TableColumnHelpers.changeColumnEnabled = changeColumnEnabled;
212
212
  function enableAllColumns(state, columns, columnNameMap, enabled) {
213
213
  const allColumns = getAllColumns(state, columns, columnNameMap);
214
- if (enabled && allColumns.length > RivTable.ColumnsMaxShown)
214
+ if (enabled && allColumns.length > RivTable.ColumnsMaxShown) {
215
215
  return state;
216
+ }
217
+ const updatedColumnSettings = allColumns.map(currentColumnSettings => {
218
+ const currentColumnMetadata = columns.get(currentColumnSettings.key);
219
+ const isColumnAlwaysVisible = currentColumnMetadata?.alwaysVisible ?? false;
220
+ if (isColumnAlwaysVisible) {
221
+ return {
222
+ ...currentColumnSettings,
223
+ enabled: true,
224
+ };
225
+ }
226
+ return {
227
+ ...currentColumnSettings,
228
+ enabled: enabled,
229
+ // Unpin if being unchecked
230
+ pinned: !enabled ? false : currentColumnSettings.pinned,
231
+ };
232
+ });
216
233
  return {
217
234
  ...state,
218
235
  display: {
219
236
  ...state.display,
220
- columnSettings: orderIntentionally(allColumns.map(c => ({
221
- ...c,
222
- enabled: enabled,
223
- // Unpin if being unchecked
224
- pinned: !enabled ? false : c.pinned,
225
- })), columnNameMap),
237
+ columnSettings: orderIntentionally(updatedColumnSettings, columnNameMap),
226
238
  },
227
239
  };
228
240
  }
@@ -265,9 +277,35 @@ export var TableColumnHelpers;
265
277
  clickPreventDefault: metadata.clickPreventDefault,
266
278
  clickStopPropagation: metadata.clickStopPropagation,
267
279
  displayName: metadata.displayName,
280
+ alwaysVisible: metadata.alwaysVisible,
281
+ tooltipForHideIcon: metadata.tooltipForHideIcon,
268
282
  },
269
283
  ]));
270
284
  }
271
285
  TableColumnHelpers.createColumnMetadataMap = createColumnMetadataMap;
286
+ function getColumnSettingsColumnList(state) {
287
+ const allColumnMetadata = [
288
+ ...state.display.columns,
289
+ ...state.display.disabledColumns,
290
+ ];
291
+ const columnsLength = state.display.allColumns.length;
292
+ const allColumns = state.display.allColumns.map((column, i) => {
293
+ const nextColumnPinned = i + 2 <= columnsLength
294
+ ? state.display.allColumns[i + 1].pinned
295
+ : false;
296
+ const currentColumnMetadata = allColumnMetadata.find(metadata => metadata.key === column.key);
297
+ return {
298
+ ...column,
299
+ resolvedName: state.display.columnNameMap.get(column.key) ?? column.key,
300
+ stateIndex: i,
301
+ isLastPinnedColumn: column.pinned && !nextColumnPinned,
302
+ alwaysVisible: currentColumnMetadata?.alwaysVisible ?? false,
303
+ tooltipForHideIcon: currentColumnMetadata?.tooltipForHideIcon,
304
+ highlightIndices: [],
305
+ };
306
+ });
307
+ return allColumns;
308
+ }
309
+ TableColumnHelpers.getColumnSettingsColumnList = getColumnSettingsColumnList;
272
310
  })(TableColumnHelpers || (TableColumnHelpers = {}));
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS9zdGF0ZS1oZWxwZXJzL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxNQUFNLEtBQVcsa0JBQWtCLENBaWNsQztBQWpjRCxXQUFpQixrQkFBa0I7SUFDakMsU0FBZ0Isa0JBQWtCLENBQ2hDLFFBQWlDLEVBQ2pDLE9BQWdCO1FBRWhCLElBQUksT0FBTztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzNCLFFBQVEsUUFBUSxFQUFFO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxVQUFVO2dCQUNiLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxXQUFXO2dCQUNkLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssUUFBUTtnQkFDWCxPQUFPLE9BQU8sQ0FBQztTQUNsQjtJQUNILENBQUM7SUFqQmUscUNBQWtCLHFCQWlCakMsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FNM0IsS0FBcUMsRUFDckMsZ0JBQWlELEVBQ2pELGFBQXdDO1FBRXhDLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsMkVBQTJFO1FBQzNFLDZFQUE2RTtRQUM3RSx5RUFBeUU7UUFDekUsdUVBQXVFO1FBQ3ZFLGtDQUFrQztRQUNsQyxNQUFNLDhCQUE4QixHQUFHLFVBQVUsQ0FDL0MsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcs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QUFDO0lBbEJlLHdDQUFxQix3QkFrQnBDLENBQUE7SUFFRCxTQUFnQix1QkFBdUIsQ0FJckMsT0FBbUQ7UUFFbkQsT0FBTyxJQUFJLEdBQUcsQ0FDWixDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLElBQUk7WUFDSjtnQkFDRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUM5QixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7Z0JBQy9CLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtnQkFDL0IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO2dCQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7Z0JBQzNCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtnQkFDM0IsYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhO2dCQUNyQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsbUJBQW1CO2dCQUNqRCxvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO2dCQUNuRCxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7YUFDbEM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUF2QmUsMENBQXVCLDBCQXVCdEMsQ0FBQTtBQUNILENBQUMsRUFqY2dCLGtCQUFrQixLQUFsQixrQkFBa0IsUUFpY2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlmZmVyZW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcblxuZXhwb3J0IG5hbWVzcGFjZSBUYWJsZUNvbHVtbkhlbHBlcnMge1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uQWxpZ25tZW50KFxuICAgIGRhdGFUeXBlOiBSaXZUYWJsZS5Db2x1bW5EYXRhVHlwZSxcbiAgICBpc0ZpcnN0OiBib29sZWFuLFxuICApOiBSaXZUYWJsZS5Db2x1bW5BbGlnbm1lbnQge1xuICAgIGlmIChpc0ZpcnN0KSByZXR1cm4gJ2xlZnQnO1xuICAgIHN3aXRjaCAoZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgY2FzZSAnbG9uZ1RleHQnOlxuICAgICAgICByZXR1cm4gJ2xlZnQnO1xuICAgICAgY2FzZSAnYWR2YW5jZWQnOlxuICAgICAgY2FzZSAnaWNvbic6XG4gICAgICBjYXNlICdzaG9ydFRleHQnOlxuICAgICAgICByZXR1cm4gJ2NlbnRlcic7XG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ29sdW1uczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgc3VwcG9ydGVkQ29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICApOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPltdIHtcbiAgICAvLyBJZiB0aGUgdGFibGUgb2ZmZXJzIG1vcmUgY29sdW1ucyB0aGFuIHRoZSB1c2VyIGhhcyBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gICAgLy8gZm9yIChvciBpZiB0aGUgdXNlciBoYXMgbm8gY29uZmlndXJhdGlvbiBzZXR0aW5ncyB5ZXQpLCB3ZSdsbCBhcHBlbmQgdGhlbVxuICAgIC8vIHRvIHRoZSBlbmQgKHVubGVzcyB0aGV5IHNob3VsZCBiZSBwaW5uZWQgYnkgZGVmYXVsdCwgaW4gd2hpY2ggY2FzZSB3ZSdsbFxuICAgIC8vIGFwcGVuZCB0aGVtIGFmdGVyIHRoZSBvdGhlciBwaW5uZWQgY29sdW1ucykuIFRoaXMgZW5zdXJlcyB0aGF0IG5ldyBjb2x1bW5zXG4gICAgLy8gd2UgYWRkIHRvIGV4aXN0aW5nIHRhYmxlcyBvdmVyIHRpbWUgKDEpIGdldCBkaXNwbGF5ZWQgZXZlbiB0aG91Z2ggdGhleVxuICAgIC8vIGRvbid0IGFwcGVhciBpbiB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgeWV0LCBhbmQgKDIpIGRvbid0XG4gICAgLy8gaW50ZXJydXB0IHRoZWlyIGV4aXN0aW5nIHNldHVwLlxuICAgIGNvbnN0IGNvbHVtbk5hbWVzV2l0aG91dFVzZXJTZXR0aW5ncyA9IGRpZmZlcmVuY2UoXG4gICAgICBbLi4uc3VwcG9ydGVkQ29sdW1ucy5rZXlzKCldLFxuICAgICAgc3RhdGUuZGlzcGxheS5jb2x1bW5TZXR0aW5ncy5tYXAoKHsga2V5IH0pID0+IGtleSksXG4gICAgKTtcblxuICAgIC8vIFRocm93IG91dCBzZXR0aW5ncyBmb3IgY29sdW1ucyBubyBsb25nZXIgb2ZmZXJlZCBieSB0aGUgdGFibGUuXG4gICAgY29uc3QgY29sdW1uc1dpdGhVc2VyU2V0dGluZ3M6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10gPVxuICAgICAgc3RhdGUuZGlzcGxheS5jb2x1bW5TZXR0aW5ncy5maWx0ZXIoKHsga2V5IH0pID0+XG4gICAgICAgIHN1cHBvcnRlZENvbHVtbnMuaGFzKGtleSksXG4gICAgICApO1xuXG4gICAgY29uc3QgY29sdW1uc1dpdGhvdXRVc2VyU2V0dGluZ3M6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10gPSBbXG4gICAgICAuLi5jb2x1bW5OYW1lc1dpdGhvdXRVc2VyU2V0dGluZ3MsXG4gICAgXS5tYXAoKGtleTogQykgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBwcmVmZXJyZWRXaWR0aDogJ2F1dG8nLFxuICAgICAgcGlubmVkOiAhIXN1cHBvcnRlZENvbHVtbnMuZ2V0KGtleSk/LmRlZmF1bHRQaW5uZWQsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIG9yZGVySW50ZW50aW9uYWxseShcbiAgICAgIFsuLi5jb2x1bW5zV2l0aFVzZXJTZXR0aW5ncywgLi4uY29sdW1uc1dpdGhvdXRVc2VyU2V0dGluZ3NdLFxuICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gb3JkZXJJbnRlbnRpb25hbGx5PEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4+KFxuICAgIGNvbHVtbnM6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgKTogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKHYgPT4gdi5waW5uZWQpLFxuICAgICAgLi4uY29sdW1ucy5maWx0ZXIodiA9PiB2LmVuYWJsZWQgJiYgIXYucGlubmVkKSxcbiAgICAgIC4uLmNvbHVtbnNcbiAgICAgICAgLmZpbHRlcih2ID0+ICF2LmVuYWJsZWQgJiYgIXYucGlubmVkKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgIGNvbnN0IGFOYW1lID0gY29sdW1uTmFtZU1hcC5nZXQoYS5rZXkpID8/IGEua2V5O1xuICAgICAgICAgIGNvbnN0IGJOYW1lID0gY29sdW1uTmFtZU1hcC5nZXQoYi5rZXkpID8/IGIua2V5O1xuICAgICAgICAgIHJldHVybiBhTmFtZS5sb2NhbGVDb21wYXJlKGJOYW1lKTtcbiAgICAgICAgfSksXG4gICAgXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEFsaWdubWVudChcbiAgICBtZXRhZGF0YTogUml2VGFibGUuQ29sdW1uTWV0YWRhdGEsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBhbGxvd1NlbGVjdGlvbj86IGJvb2xlYW4sXG4gICk6IFJpdlRhYmxlLkNvbHVtbkFsaWdubWVudCB7XG4gICAgcmV0dXJuIGdldENvbHVtbkFsaWdubWVudChcbiAgICAgIG1ldGFkYXRhLmRhdGFUeXBlLFxuICAgICAgaW5kZXggPT09IDAgJiYgIWFsbG93U2VsZWN0aW9uLFxuICAgICk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbHVtbnM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIHN1cHBvcnRlZENvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBhbGxvd1NlbGVjdGlvbjogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgKTogUml2VGFibGUuRnVsbENvbHVtbjxDPltdIHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgc3VwcG9ydGVkQ29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG4gICAgcmV0dXJuIGFsbENvbHVtbnNcbiAgICAgIC5maWx0ZXIoKHsgZW5hYmxlZCB9KSA9PiBlbmFibGVkKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKFxuICAgICAgICAgIGZ1bGxDb2x1bW5zOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+W10sXG4gICAgICAgICAgc2V0dGluZ3M6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LFxuICAgICAgICAgIGk6IG51bWJlcixcbiAgICAgICAgKTogUml2VGFibGUuRnVsbENvbHVtbjxDPltdID0+IHtcbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHN1cHBvcnRlZENvbHVtbnMuZ2V0KHNldHRpbmdzLmtleSkhO1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkV2lkdGggPVxuICAgICAgICAgICAgc2V0dGluZ3MucHJlZmVycmVkV2lkdGggPT09ICdhdXRvJ1xuICAgICAgICAgICAgICA/IG1ldGFkYXRhLm1pbldpZHRoXG4gICAgICAgICAgICAgIDogTWF0aC5tYXgobWV0YWRhdGEubWluV2lkdGgsIHNldHRpbmdzLnByZWZlcnJlZFdpZHRoKTtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbHVtbjogUml2VGFibGUuRnVsbENvbHVtbjxDPiB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgICBmdWxsQ29sdW1uc1tpIC0gMV07XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmZ1bGxDb2x1bW5zLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5zZXR0aW5ncyxcbiAgICAgICAgICAgICAgLi4ubWV0YWRhdGEsXG4gICAgICAgICAgICAgIHdpZHRoOiByZXNvbHZlZFdpZHRoLFxuICAgICAgICAgICAgICBsZWZ0OiBzZXR0aW5ncy5waW5uZWRcbiAgICAgICAgICAgICAgICA/IHByZXZpb3VzQ29sdW1uXG4gICAgICAgICAgICAgICAgICA/IChwcmV2aW91c0NvbHVtbi5sZWZ0IHx8IDApICsgcHJldmlvdXNDb2x1bW4ud2lkdGhcbiAgICAgICAgICAgICAgICAgIDogISFhbGxvd1NlbGVjdGlvblxuICAgICAgICAgICAgICAgICAgPyA0MFxuICAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICBhbGlnbm1lbnQ6IGdldEFsaWdubWVudChtZXRhZGF0YSwgaSwgISFhbGxvd1NlbGVjdGlvbiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG4gICAgICAgIH0sXG4gICAgICAgIFtdLFxuICAgICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDb2x1bW5QaW48XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBjb2x1bW46IEMsXG4gICAgcGlubmVkOiBib29sZWFuLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcblxuICAgIGlmIChwaW5uZWQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGFsbENvbHVtbnMuZmluZChjID0+IGMua2V5ID09PSBjb2x1bW4pO1xuICAgICAgY29uc3Qgd2FzRW5hYmxlZCA9ICEhdGFyZ2V0Py5lbmFibGVkO1xuICAgICAgaWYgKCF3YXNFbmFibGVkKSB7XG4gICAgICAgIGNvbnN0IGVuYWJsZWRDb3VudCA9IGFsbENvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZW5hYmxlZCkubGVuZ3RoO1xuICAgICAgICBpZiAoZW5hYmxlZENvdW50ID49IFJpdlRhYmxlLkNvbHVtbnNNYXhTaG93bikge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTsgLy8gcmVmdXNlIHRoZSBwaW4gc2luY2UgaXQgd291bGQgZXhjZWVkIHRoZSBtYXhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGRpc3BsYXk6IHtcbiAgICAgICAgLi4uc3RhdGUuZGlzcGxheSxcbiAgICAgICAgY29sdW1uU2V0dGluZ3M6IG9yZGVySW50ZW50aW9uYWxseShcbiAgICAgICAgICBhbGxDb2x1bW5zLm1hcChjID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgcGlubmVkOiBjLmtleSA9PT0gY29sdW1uID8gcGlubmVkIDogYy5waW5uZWQsXG4gICAgICAgICAgICAvLyBDaGVjay9lbmFibGUgaWYgYmVpbmcgcGlubmVkXG4gICAgICAgICAgICBlbmFibGVkOiBjLmtleSA9PT0gY29sdW1uICYmIHBpbm5lZCA/IHRydWUgOiBjLmVuYWJsZWQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGNvbHVtbk5hbWVNYXAsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29sdW1uc0ZyZWV6ZVN0YXRlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+LFxuICAgIGNvbHVtbk5hbWVNYXA6IFJpdlRhYmxlLkNvbHVtbk5hbWVNYXA8Qz4sXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBmcmVlemU6IGJvb2xlYW4sXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgY29uc3QgYWxsQ29sdW1ucyA9IGdldEFsbENvbHVtbnMoc3RhdGUsIGNvbHVtbnMsIGNvbHVtbk5hbWVNYXApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogYWxsQ29sdW1ucy5tYXAoKGMsIGkpID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5jLCBwaW5uZWQ6IGZyZWV6ZSAmJiBpIDw9IGluZGV4IH07XG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG1vdmVDb2x1bW5UbzxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICAgIGNvbHVtbjogQyxcbiAgICBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gYWxsQ29sdW1ucy5maW5kSW5kZXgoYyA9PiBjLmtleSA9PT0gY29sdW1uKTtcbiAgICBjb25zdCBsYXN0SW5kZXggPVxuICAgICAgcG9zaXRpb24gPT0gJ2VuZCcgPyBhbGxDb2x1bW5zLmZpbmRJbmRleChjID0+ICFjLmVuYWJsZWQpIDogMDtcbiAgICBjb25zdCBuZXdJbmRleCA9XG4gICAgICBwb3NpdGlvbiA9PSAnc3RhcnQnXG4gICAgICAgID8gMFxuICAgICAgICA6IGxhc3RJbmRleCA9PSAtMVxuICAgICAgICA/IGFsbENvbHVtbnMubGVuZ3RoIC0gMVxuICAgICAgICA6IGxhc3RJbmRleDtcblxuICAgIGlmIChcbiAgICAgICFhbGxDb2x1bW5zW3ByZXZpb3VzSW5kZXhdLmVuYWJsZWQgJiZcbiAgICAgIGFsbENvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZW5hYmxlZCkubGVuZ3RoID49IFJpdlRhYmxlLkNvbHVtbnNNYXhTaG93blxuICAgIClcbiAgICAgIHJldHVybiBzdGF0ZTtcblxuICAgIGNvbnN0IG1vdmVkU3RhdGUgPSBjaGFuZ2VDb2x1bW5PcmRlcihcbiAgICAgIHN0YXRlLFxuICAgICAgY29sdW1ucyxcbiAgICAgIGNvbHVtbk5hbWVNYXAsXG4gICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgbmV3SW5kZXgsXG4gICAgKTtcbiAgICAvL01ha2Ugc3VyZSB0aGUgY29sdW1uIGlzIGVuYWJsZWRcbiAgICByZXR1cm4gY2hhbmdlQ29sdW1uRW5hYmxlZChcbiAgICAgIG1vdmVkU3RhdGUsXG4gICAgICBjb2x1bW5zLFxuICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICAgIGNvbHVtbixcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDb2x1bW5PcmRlcjxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlcixcbiAgICBuZXdJbmRleDogbnVtYmVyLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcblxuICAgIC8vIEZpcnN0LCBwdXQgdGhlIGNvbHVtbnMgaW4gdGhlIGRlc2lyZWQgb3JkZXIuXG4gICAgY29uc3QgaXRlbSA9IGFsbENvbHVtbnNbcHJldmlvdXNJbmRleF07XG4gICAgY29uc3Qgd2l0aG91dEl0ZW0gPSBhbGxDb2x1bW5zLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gcHJldmlvdXNJbmRleCk7XG4gICAgY29uc3QgcmVvcmRlcmVkID0gW1xuICAgICAgLi4ud2l0aG91dEl0ZW0uc2xpY2UoMCwgbmV3SW5kZXgpLFxuICAgICAgaXRlbSxcbiAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKG5ld0luZGV4KSxcbiAgICBdO1xuXG4gICAgLy8gVGhlbiwgd2UgbWF5IG5lZWQgdG8gZml4IHRoZSBwaW5zIChhbGwgcGlubmVkIGNvbHVtbnMgYXBwZWFyIGF0IHRoZVxuICAgIC8vIGJlZ2lubmluZyBvZiB0aGUgY29sdW1ucyBhcnJheSkgc2luY2UgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBkcmFnXG4gICAgLy8gYW5kIGRyb3AgY29sdW1ucyB0byBhbmQgZnJvbSB0aGUgcGlubmVkIGFyZWEuIElmIHRoZSB1c2VyIGRyYWdzIGFcbiAgICAvLyBjb2x1bW4gYWNyb3NzIHRoYXQgdGhyZXNob2xkLCB1cGRhdGUgaXRzIHBpbm5lZCBzdGF0dXMuXG4gICAgY29uc3QgdXBkYXRlZCA9IHJlb3JkZXJlZC5tYXAoKHNldHRpbmdzLCBpLCBhcnIpID0+IHtcbiAgICAgIGlmIChuZXdJbmRleCA9PT0gaSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnNldHRpbmdzLFxuICAgICAgICAgIHBpbm5lZDogc2V0dGluZ3MucGlubmVkXG4gICAgICAgICAgICA/IGFycltpIC0gMV0/LnBpbm5lZCA/PyB0cnVlXG4gICAgICAgICAgICA6IGFycltpICsgMV0/LnBpbm5lZCA/PyBmYWxzZSxcbiAgICAgICAgICBlbmFibGVkOiBzZXR0aW5ncy5lbmFibGVkXG4gICAgICAgICAgICA/IGFycltpIC0gMV0/LmVuYWJsZWQgPz8gdHJ1ZVxuICAgICAgICAgICAgOiBhcnJbaSArIDFdPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHJldHVybiBzZXR0aW5ncztcbiAgICB9KTtcblxuICAgIGNvbnN0IHdhc0Rpc2FibGVkID0gIWl0ZW0uZW5hYmxlZDtcbiAgICBjb25zdCBiZWNhbWVFbmFibGVkID0gdXBkYXRlZFtuZXdJbmRleF0uZW5hYmxlZDtcbiAgICBpZiAod2FzRGlzYWJsZWQgJiYgYmVjYW1lRW5hYmxlZCkge1xuICAgICAgY29uc3QgZW5hYmxlZENvdW50ID0gYWxsQ29sdW1ucy5maWx0ZXIoYyA9PiBjLmVuYWJsZWQpLmxlbmd0aDtcbiAgICAgIGlmIChlbmFibGVkQ291bnQgPj0gUml2VGFibGUuQ29sdW1uc01heFNob3duKSB7XG4gICAgICAgIC8vIFJlZnVzZSB0aGUgbW92ZTsga2VlcCBzdGF0ZSBhcy1pc1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogb3JkZXJJbnRlbnRpb25hbGx5KHVwZGF0ZWQsIGNvbHVtbk5hbWVNYXApLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZUNvbHVtbkVuYWJsZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBjb2x1bW46IEMsXG4gICAgZW5hYmxlZDogYm9vbGVhbixcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgY29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG4gICAgaWYgKFxuICAgICAgZW5hYmxlZCAmJlxuICAgICAgYWxsQ29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5lbmFibGVkKS5sZW5ndGggPj0gUml2VGFibGUuQ29sdW1uc01heFNob3duXG4gICAgKSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogb3JkZXJJbnRlbnRpb25hbGx5KFxuICAgICAgICAgIGFsbENvbHVtbnMubWFwKGMgPT4gKHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBlbmFibGVkOiBjLmtleSA9PT0gY29sdW1uID8gZW5hYmxlZCA6IGMuZW5hYmxlZCxcbiAgICAgICAgICAgIC8vIFVucGluIGlmIGJlaW5nIHVuY2hlY2tlZFxuICAgICAgICAgICAgcGlubmVkOiBjLmtleSA9PT0gY29sdW1uICYmICFlbmFibGVkID8gZmFsc2UgOiBjLnBpbm5lZCxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbmFibGVBbGxDb2x1bW5zPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+LFxuICAgIGNvbHVtbk5hbWVNYXA6IFJpdlRhYmxlLkNvbHVtbk5hbWVNYXA8Qz4sXG4gICAgZW5hYmxlZDogYm9vbGVhbixcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgY29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG4gICAgaWYgKGVuYWJsZWQgJiYgYWxsQ29sdW1ucy5sZW5ndGggPiBSaXZUYWJsZS5Db2x1bW5zTWF4U2hvd24pIHJldHVybiBzdGF0ZTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGRpc3BsYXk6IHtcbiAgICAgICAgLi4uc3RhdGUuZGlzcGxheSxcbiAgICAgICAgY29sdW1uU2V0dGluZ3M6IG9yZGVySW50ZW50aW9uYWxseShcbiAgICAgICAgICBhbGxDb2x1bW5zLm1hcChjID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICAgIC8vIFVucGluIGlmIGJlaW5nIHVuY2hlY2tlZFxuICAgICAgICAgICAgcGlubmVkOiAhZW5hYmxlZCA/IGZhbHNlIDogYy5waW5uZWQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGNvbHVtbk5hbWVNYXAsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29sdW1uV2lkdGg8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBjb2x1bW46IEMsXG4gICAgcHJlZmVycmVkV2lkdGg6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+WydwcmVmZXJyZWRXaWR0aCddLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIC4uLnN0YXRlLmRpc3BsYXksXG4gICAgICAgIGNvbHVtblNldHRpbmdzOiBhbGxDb2x1bW5zLm1hcChjID0+ICh7XG4gICAgICAgICAgLi4uYyxcbiAgICAgICAgICBwcmVmZXJyZWRXaWR0aDogYy5rZXkgPT09IGNvbHVtbiA/IHByZWZlcnJlZFdpZHRoIDogYy5wcmVmZXJyZWRXaWR0aCxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlc2V0VG9EZWZhdWx0Q29sdW1uczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICAgIGRlZmF1bHRDb2x1bW5TdGF0ZTogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz5bXSxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIC4uLnN0YXRlLmRpc3BsYXksXG4gICAgICAgIGNvbHVtblNldHRpbmdzOiBvcmRlckludGVudGlvbmFsbHkoZGVmYXVsdENvbHVtblN0YXRlLCBjb2x1bW5OYW1lTWFwKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2x1bW5NZXRhZGF0YU1hcDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gID4oXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkluTWVtb3J5Q29sdW1uTWV0YWRhdGE8Uj4+LFxuICApOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+IHtcbiAgICByZXR1cm4gbmV3IE1hcChcbiAgICAgIFsuLi5jb2x1bW5zLmVudHJpZXMoKV0ubWFwKChbbmFtZSwgbWV0YWRhdGFdKSA9PiBbXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHtcbiAgICAgICAgICBvcmRlcmFibGU6ICEhbWV0YWRhdGEub3JkZXJLZXksXG4gICAgICAgICAgZmlsdGVyYWJsZTogbWV0YWRhdGEuZmlsdGVyYWJsZSxcbiAgICAgICAgICBzZWFyY2hhYmxlOiBtZXRhZGF0YS5zZWFyY2hhYmxlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBtZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBtaW5XaWR0aDogbWV0YWRhdGEubWluV2lkdGgsXG4gICAgICAgICAgZGF0YVR5cGU6IG1ldGFkYXRhLmRhdGFUeXBlLFxuICAgICAgICAgIGRlZmF1bHRQaW5uZWQ6IG1ldGFkYXRhLmRlZmF1bHRQaW5uZWQsXG4gICAgICAgICAgY2xpY2tQcmV2ZW50RGVmYXVsdDogbWV0YWRhdGEuY2xpY2tQcmV2ZW50RGVmYXVsdCxcbiAgICAgICAgICBjbGlja1N0b3BQcm9wYWdhdGlvbjogbWV0YWRhdGEuY2xpY2tTdG9wUHJvcGFnYXRpb24sXG4gICAgICAgICAgZGlzcGxheU5hbWU6IG1ldGFkYXRhLmRpc3BsYXlOYW1lLFxuICAgICAgICB9LFxuICAgICAgXSksXG4gICAgKTtcbiAgfVxufVxuIl19
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS9zdGF0ZS1oZWxwZXJzL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxNQUFNLEtBQVcsa0JBQWtCLENBdWdCbEM7QUF2Z0JELFdBQWlCLGtCQUFrQjtJQUNqQyxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBaUMsRUFDakMsT0FBZ0I7UUFFaEIsSUFBSSxPQUFPO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDM0IsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQWpCZSxxQ0FBa0IscUJBaUJqQyxDQUFBO0lBRUQsU0FBZ0IsYUFBYSxDQU0zQixLQUFxQyxFQUNyQyxnQkFBaUQsRUFDakQsYUFBd0M7UUFFeEMsNEVBQTRFO1FBQzVFLDRFQUE0RTtRQUM1RSwyRUFBMkU7UUFDM0UsNkVBQTZFO1FBQzdFLHlFQUF5RTtRQUN6RSx1RUFBdUU7UUFDdkUsa0NBQWtDO1FBQ2xDLE1BQU0sOEJBQThCLEdBQUcsVUFBVSxDQUMvQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FB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QWEsSUFBSSxLQUFLO2dCQUM1RCxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0I7Z0JBQzdELGdCQUFnQixFQUFFLEVBQUU7YUFDckIsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQW5DZSw4Q0FBMkIsOEJBbUMxQyxDQUFBO0FBQ0gsQ0FBQyxFQXZnQmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUF1Z0JsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpZmZlcmVuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdmlzdWFsaXphdGlvbi9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcblxuZXhwb3J0IG5hbWVzcGFjZSBUYWJsZUNvbHVtbkhlbHBlcnMge1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uQWxpZ25tZW50KFxuICAgIGRhdGFUeXBlOiBSaXZUYWJsZS5Db2x1bW5EYXRhVHlwZSxcbiAgICBpc0ZpcnN0OiBib29sZWFuLFxuICApOiBSaXZUYWJsZS5Db2x1bW5BbGlnbm1lbnQge1xuICAgIGlmIChpc0ZpcnN0KSByZXR1cm4gJ2xlZnQnO1xuICAgIHN3aXRjaCAoZGF0YVR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgY2FzZSAnbG9uZ1RleHQnOlxuICAgICAgICByZXR1cm4gJ2xlZnQnO1xuICAgICAgY2FzZSAnYWR2YW5jZWQnOlxuICAgICAgY2FzZSAnaWNvbic6XG4gICAgICBjYXNlICdzaG9ydFRleHQnOlxuICAgICAgICByZXR1cm4gJ2NlbnRlcic7XG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0QWxsQ29sdW1uczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgc3VwcG9ydGVkQ29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICApOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPltdIHtcbiAgICAvLyBJZiB0aGUgdGFibGUgb2ZmZXJzIG1vcmUgY29sdW1ucyB0aGFuIHRoZSB1c2VyIGhhcyBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gICAgLy8gZm9yIChvciBpZiB0aGUgdXNlciBoYXMgbm8gY29uZmlndXJhdGlvbiBzZXR0aW5ncyB5ZXQpLCB3ZSdsbCBhcHBlbmQgdGhlbVxuICAgIC8vIHRvIHRoZSBlbmQgKHVubGVzcyB0aGV5IHNob3VsZCBiZSBwaW5uZWQgYnkgZGVmYXVsdCwgaW4gd2hpY2ggY2FzZSB3ZSdsbFxuICAgIC8vIGFwcGVuZCB0aGVtIGFmdGVyIHRoZSBvdGhlciBwaW5uZWQgY29sdW1ucykuIFRoaXMgZW5zdXJlcyB0aGF0IG5ldyBjb2x1bW5zXG4gICAgLy8gd2UgYWRkIHRvIGV4aXN0aW5nIHRhYmxlcyBvdmVyIHRpbWUgKDEpIGdldCBkaXNwbGF5ZWQgZXZlbiB0aG91Z2ggdGhleVxuICAgIC8vIGRvbid0IGFwcGVhciBpbiB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgeWV0LCBhbmQgKDIpIGRvbid0XG4gICAgLy8gaW50ZXJydXB0IHRoZWlyIGV4aXN0aW5nIHNldHVwLlxuICAgIGNvbnN0IGNvbHVtbk5hbWVzV2l0aG91dFVzZXJTZXR0aW5ncyA9IGRpZmZlcmVuY2UoXG4gICAgICBbLi4uc3VwcG9ydGVkQ29sdW1ucy5rZXlzKCldLFxuICAgICAgc3RhdGUuZGlzcGxheS5jb2x1bW5TZXR0aW5ncy5tYXAoKHsga2V5IH0pID0+IGtleSksXG4gICAgKTtcblxuICAgIC8vIFRocm93IG91dCBzZXR0aW5ncyBmb3IgY29sdW1ucyBubyBsb25nZXIgb2ZmZXJlZCBieSB0aGUgdGFibGUuXG4gICAgY29uc3QgY29sdW1uc1dpdGhVc2VyU2V0dGluZ3M6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10gPVxuICAgICAgc3RhdGUuZGlzcGxheS5jb2x1bW5TZXR0aW5ncy5maWx0ZXIoKHsga2V5IH0pID0+XG4gICAgICAgIHN1cHBvcnRlZENvbHVtbnMuaGFzKGtleSksXG4gICAgICApO1xuXG4gICAgY29uc3QgY29sdW1uc1dpdGhvdXRVc2VyU2V0dGluZ3M6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10gPSBbXG4gICAgICAuLi5jb2x1bW5OYW1lc1dpdGhvdXRVc2VyU2V0dGluZ3MsXG4gICAgXS5tYXAoKGtleTogQykgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBwcmVmZXJyZWRXaWR0aDogJ2F1dG8nLFxuICAgICAgcGlubmVkOiAhIXN1cHBvcnRlZENvbHVtbnMuZ2V0KGtleSk/LmRlZmF1bHRQaW5uZWQsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIG9yZGVySW50ZW50aW9uYWxseShcbiAgICAgIFsuLi5jb2x1bW5zV2l0aFVzZXJTZXR0aW5ncywgLi4uY29sdW1uc1dpdGhvdXRVc2VyU2V0dGluZ3NdLFxuICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gb3JkZXJJbnRlbnRpb25hbGx5PEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4+KFxuICAgIGNvbHVtbnM6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgKTogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz5bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmNvbHVtbnMuZmlsdGVyKHYgPT4gdi5waW5uZWQpLFxuICAgICAgLi4uY29sdW1ucy5maWx0ZXIodiA9PiB2LmVuYWJsZWQgJiYgIXYucGlubmVkKSxcbiAgICAgIC4uLmNvbHVtbnNcbiAgICAgICAgLmZpbHRlcih2ID0+ICF2LmVuYWJsZWQgJiYgIXYucGlubmVkKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgIGNvbnN0IGFOYW1lID0gY29sdW1uTmFtZU1hcC5nZXQoYS5rZXkpID8/IGEua2V5O1xuICAgICAgICAgIGNvbnN0IGJOYW1lID0gY29sdW1uTmFtZU1hcC5nZXQoYi5rZXkpID8/IGIua2V5O1xuICAgICAgICAgIHJldHVybiBhTmFtZS5sb2NhbGVDb21wYXJlKGJOYW1lKTtcbiAgICAgICAgfSksXG4gICAgXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEFsaWdubWVudChcbiAgICBtZXRhZGF0YTogUml2VGFibGUuQ29sdW1uTWV0YWRhdGEsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBhbGxvd1NlbGVjdGlvbj86IGJvb2xlYW4sXG4gICk6IFJpdlRhYmxlLkNvbHVtbkFsaWdubWVudCB7XG4gICAgcmV0dXJuIGdldENvbHVtbkFsaWdubWVudChcbiAgICAgIG1ldGFkYXRhLmRhdGFUeXBlLFxuICAgICAgaW5kZXggPT09IDAgJiYgIWFsbG93U2VsZWN0aW9uLFxuICAgICk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbHVtbnM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIHN1cHBvcnRlZENvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBhbGxvd1NlbGVjdGlvbjogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgICBmaWx0ZXJUbzogJ2VuYWJsZWQnIHwgJ2Rpc2FibGVkJyxcbiAgKTogUml2VGFibGUuRnVsbENvbHVtbjxDPltdIHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgc3VwcG9ydGVkQ29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG4gICAgcmV0dXJuIGFsbENvbHVtbnNcbiAgICAgIC5maWx0ZXIoKHsgZW5hYmxlZCB9KSA9PiAoZmlsdGVyVG8gPT09ICdlbmFibGVkJyA/IGVuYWJsZWQgOiAhZW5hYmxlZCkpXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoXG4gICAgICAgICAgZnVsbENvbHVtbnM6IFJpdlRhYmxlLkZ1bGxDb2x1bW48Qz5bXSxcbiAgICAgICAgICBzZXR0aW5nczogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4sXG4gICAgICAgICAgaTogbnVtYmVyLFxuICAgICAgICApOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+W10gPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gc3VwcG9ydGVkQ29sdW1ucy5nZXQoc2V0dGluZ3Mua2V5KSE7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRXaWR0aCA9XG4gICAgICAgICAgICBzZXR0aW5ncy5wcmVmZXJyZWRXaWR0aCA9PT0gJ2F1dG8nXG4gICAgICAgICAgICAgID8gbWV0YWRhdGEubWluV2lkdGhcbiAgICAgICAgICAgICAgOiBNYXRoLm1heChtZXRhZGF0YS5taW5XaWR0aCwgc2V0dGluZ3MucHJlZmVycmVkV2lkdGgpO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29sdW1uOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIGZ1bGxDb2x1bW5zW2kgLSAxXTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uZnVsbENvbHVtbnMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnNldHRpbmdzLFxuICAgICAgICAgICAgICAuLi5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgd2lkdGg6IHJlc29sdmVkV2lkdGgsXG4gICAgICAgICAgICAgIGxlZnQ6IHNldHRpbmdzLnBpbm5lZFxuICAgICAgICAgICAgICAgID8gcHJldmlvdXNDb2x1bW5cbiAgICAgICAgICAgICAgICAgID8gKHByZXZpb3VzQ29sdW1uLmxlZnQgfHwgMCkgKyBwcmV2aW91c0NvbHVtbi53aWR0aFxuICAgICAgICAgICAgICAgICAgOiAhIWFsbG93U2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgICA/IDQwXG4gICAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgIGFsaWdubWVudDogZ2V0QWxpZ25tZW50KG1ldGFkYXRhLCBpLCAhIWFsbG93U2VsZWN0aW9uKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZUNvbHVtblBpbjxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICAgIGNvbHVtbjogQyxcbiAgICBwaW5uZWQ6IGJvb2xlYW4sXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgY29uc3QgYWxsQ29sdW1ucyA9IGdldEFsbENvbHVtbnMoc3RhdGUsIGNvbHVtbnMsIGNvbHVtbk5hbWVNYXApO1xuXG4gICAgaWYgKHBpbm5lZCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gYWxsQ29sdW1ucy5maW5kKGMgPT4gYy5rZXkgPT09IGNvbHVtbik7XG4gICAgICBjb25zdCB3YXNFbmFibGVkID0gISF0YXJnZXQ/LmVuYWJsZWQ7XG4gICAgICBpZiAoIXdhc0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3QgZW5hYmxlZENvdW50ID0gYWxsQ29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5lbmFibGVkKS5sZW5ndGg7XG4gICAgICAgIGlmIChlbmFibGVkQ291bnQgPj0gUml2VGFibGUuQ29sdW1uc01heFNob3duKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlOyAvLyByZWZ1c2UgdGhlIHBpbiBzaW5jZSBpdCB3b3VsZCBleGNlZWQgdGhlIG1heFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogb3JkZXJJbnRlbnRpb25hbGx5KFxuICAgICAgICAgIGFsbENvbHVtbnMubWFwKGMgPT4gKHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBwaW5uZWQ6IGMua2V5ID09PSBjb2x1bW4gPyBwaW5uZWQgOiBjLnBpbm5lZCxcbiAgICAgICAgICAgIC8vIENoZWNrL2VuYWJsZSBpZiBiZWluZyBwaW5uZWRcbiAgICAgICAgICAgIGVuYWJsZWQ6IGMua2V5ID09PSBjb2x1bW4gJiYgcGlubmVkID8gdHJ1ZSA6IGMuZW5hYmxlZCxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDb2x1bW5zRnJlZXplU3RhdGU8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGZyZWV6ZTogYm9vbGVhbixcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgY29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIC4uLnN0YXRlLmRpc3BsYXksXG4gICAgICAgIGNvbHVtblNldHRpbmdzOiBhbGxDb2x1bW5zLm1hcCgoYywgaSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IC4uLmMsIHBpbm5lZDogZnJlZXplICYmIGkgPD0gaW5kZXggfTtcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gbW92ZUNvbHVtblRvPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+LFxuICAgIGNvbHVtbk5hbWVNYXA6IFJpdlRhYmxlLkNvbHVtbk5hbWVNYXA8Qz4sXG4gICAgY29sdW1uOiBDLFxuICAgIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcsXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgY29uc3QgYWxsQ29sdW1ucyA9IGdldEFsbENvbHVtbnMoc3RhdGUsIGNvbHVtbnMsIGNvbHVtbk5hbWVNYXApO1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBhbGxDb2x1bW5zLmZpbmRJbmRleChjID0+IGMua2V5ID09PSBjb2x1bW4pO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9XG4gICAgICBwb3NpdGlvbiA9PSAnZW5kJyA/IGFsbENvbHVtbnMuZmluZEluZGV4KGMgPT4gIWMuZW5hYmxlZCkgOiAwO1xuICAgIGNvbnN0IG5ld0luZGV4ID1cbiAgICAgIHBvc2l0aW9uID09ICdzdGFydCdcbiAgICAgICAgPyAwXG4gICAgICAgIDogbGFzdEluZGV4ID09IC0xXG4gICAgICAgID8gYWxsQ29sdW1ucy5sZW5ndGggLSAxXG4gICAgICAgIDogbGFzdEluZGV4O1xuXG4gICAgaWYgKFxuICAgICAgIWFsbENvbHVtbnNbcHJldmlvdXNJbmRleF0uZW5hYmxlZCAmJlxuICAgICAgYWxsQ29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5lbmFibGVkKS5sZW5ndGggPj0gUml2VGFibGUuQ29sdW1uc01heFNob3duXG4gICAgKVxuICAgICAgcmV0dXJuIHN0YXRlO1xuXG4gICAgY29uc3QgbW92ZWRTdGF0ZSA9IGNoYW5nZUNvbHVtbk9yZGVyKFxuICAgICAgc3RhdGUsXG4gICAgICBjb2x1bW5zLFxuICAgICAgY29sdW1uTmFtZU1hcCxcbiAgICAgIHByZXZpb3VzSW5kZXgsXG4gICAgICBuZXdJbmRleCxcbiAgICApO1xuICAgIC8vTWFrZSBzdXJlIHRoZSBjb2x1bW4gaXMgZW5hYmxlZFxuICAgIHJldHVybiBjaGFuZ2VDb2x1bW5FbmFibGVkKFxuICAgICAgbW92ZWRTdGF0ZSxcbiAgICAgIGNvbHVtbnMsXG4gICAgICBjb2x1bW5OYW1lTWFwLFxuICAgICAgY29sdW1uLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZUNvbHVtbk9yZGVyPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+LFxuICAgIGNvbHVtbk5hbWVNYXA6IFJpdlRhYmxlLkNvbHVtbk5hbWVNYXA8Qz4sXG4gICAgcHJldmlvdXNJbmRleDogbnVtYmVyLFxuICAgIG5ld0luZGV4OiBudW1iZXIsXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgY29uc3QgYWxsQ29sdW1ucyA9IGdldEFsbENvbHVtbnMoc3RhdGUsIGNvbHVtbnMsIGNvbHVtbk5hbWVNYXApO1xuXG4gICAgLy8gRmlyc3QsIHB1dCB0aGUgY29sdW1ucyBpbiB0aGUgZGVzaXJlZCBvcmRlci5cbiAgICBjb25zdCBpdGVtID0gYWxsQ29sdW1uc1twcmV2aW91c0luZGV4XTtcbiAgICBjb25zdCB3aXRob3V0SXRlbSA9IGFsbENvbHVtbnMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBwcmV2aW91c0luZGV4KTtcbiAgICBjb25zdCByZW9yZGVyZWQgPSBbXG4gICAgICAuLi53aXRob3V0SXRlbS5zbGljZSgwLCBuZXdJbmRleCksXG4gICAgICBpdGVtLFxuICAgICAgLi4ud2l0aG91dEl0ZW0uc2xpY2UobmV3SW5kZXgpLFxuICAgIF07XG5cbiAgICAvLyBUaGVuLCB3ZSBtYXkgbmVlZCB0byBmaXggdGhlIHBpbnMgKGFsbCBwaW5uZWQgY29sdW1ucyBhcHBlYXIgYXQgdGhlXG4gICAgLy8gYmVnaW5uaW5nIG9mIHRoZSBjb2x1bW5zIGFycmF5KSBzaW5jZSB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGRyYWdcbiAgICAvLyBhbmQgZHJvcCBjb2x1bW5zIHRvIGFuZCBmcm9tIHRoZSBwaW5uZWQgYXJlYS4gSWYgdGhlIHVzZXIgZHJhZ3MgYVxuICAgIC8vIGNvbHVtbiBhY3Jvc3MgdGhhdCB0aHJlc2hvbGQsIHVwZGF0ZSBpdHMgcGlubmVkIHN0YXR1cy5cbiAgICBjb25zdCB1cGRhdGVkID0gcmVvcmRlcmVkLm1hcCgoc2V0dGluZ3MsIGksIGFycikgPT4ge1xuICAgICAgaWYgKG5ld0luZGV4ID09PSBpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2V0dGluZ3MsXG4gICAgICAgICAgcGlubmVkOiBzZXR0aW5ncy5waW5uZWRcbiAgICAgICAgICAgID8gYXJyW2kgLSAxXT8ucGlubmVkID8/IHRydWVcbiAgICAgICAgICAgIDogYXJyW2kgKyAxXT8ucGlubmVkID8/IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZWQ6IHNldHRpbmdzLmVuYWJsZWRcbiAgICAgICAgICAgID8gYXJyW2kgLSAxXT8uZW5hYmxlZCA/PyB0cnVlXG4gICAgICAgICAgICA6IGFycltpICsgMV0/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgcmV0dXJuIHNldHRpbmdzO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgd2FzRGlzYWJsZWQgPSAhaXRlbS5lbmFibGVkO1xuICAgIGNvbnN0IGJlY2FtZUVuYWJsZWQgPSB1cGRhdGVkW25ld0luZGV4XS5lbmFibGVkO1xuICAgIGlmICh3YXNEaXNhYmxlZCAmJiBiZWNhbWVFbmFibGVkKSB7XG4gICAgICBjb25zdCBlbmFibGVkQ291bnQgPSBhbGxDb2x1bW5zLmZpbHRlcihjID0+IGMuZW5hYmxlZCkubGVuZ3RoO1xuICAgICAgaWYgKGVuYWJsZWRDb3VudCA+PSBSaXZUYWJsZS5Db2x1bW5zTWF4U2hvd24pIHtcbiAgICAgICAgLy8gUmVmdXNlIHRoZSBtb3ZlOyBrZWVwIHN0YXRlIGFzLWlzXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIC4uLnN0YXRlLmRpc3BsYXksXG4gICAgICAgIGNvbHVtblNldHRpbmdzOiBvcmRlckludGVudGlvbmFsbHkodXBkYXRlZCwgY29sdW1uTmFtZU1hcCksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29sdW1uRW5hYmxlZDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgY29sdW1uczogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPixcbiAgICBjb2x1bW5OYW1lTWFwOiBSaXZUYWJsZS5Db2x1bW5OYW1lTWFwPEM+LFxuICAgIGNvbHVtbjogQyxcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcbiAgICBpZiAoXG4gICAgICBlbmFibGVkICYmXG4gICAgICBhbGxDb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLmVuYWJsZWQpLmxlbmd0aCA+PSBSaXZUYWJsZS5Db2x1bW5zTWF4U2hvd25cbiAgICApIHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIC4uLnN0YXRlLmRpc3BsYXksXG4gICAgICAgIGNvbHVtblNldHRpbmdzOiBvcmRlckludGVudGlvbmFsbHkoXG4gICAgICAgICAgYWxsQ29sdW1ucy5tYXAoYyA9PiAoe1xuICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IGMua2V5ID09PSBjb2x1bW4gPyBlbmFibGVkIDogYy5lbmFibGVkLFxuICAgICAgICAgICAgLy8gVW5waW4gaWYgYmVpbmcgdW5jaGVja2VkXG4gICAgICAgICAgICBwaW5uZWQ6IGMua2V5ID09PSBjb2x1bW4gJiYgIWVuYWJsZWQgPyBmYWxzZSA6IGMucGlubmVkLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBjb2x1bW5OYW1lTWFwLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZUFsbENvbHVtbnM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBnZXRBbGxDb2x1bW5zKHN0YXRlLCBjb2x1bW5zLCBjb2x1bW5OYW1lTWFwKTtcbiAgICBpZiAoZW5hYmxlZCAmJiBhbGxDb2x1bW5zLmxlbmd0aCA+IFJpdlRhYmxlLkNvbHVtbnNNYXhTaG93bikge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDb2x1bW5TZXR0aW5nczogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz5bXSA9IGFsbENvbHVtbnMubWFwKFxuICAgICAgY3VycmVudENvbHVtblNldHRpbmdzID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudENvbHVtbk1ldGFkYXRhOiBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YSB8IHVuZGVmaW5lZCA9XG4gICAgICAgICAgY29sdW1ucy5nZXQoY3VycmVudENvbHVtblNldHRpbmdzLmtleSk7XG4gICAgICAgIGNvbnN0IGlzQ29sdW1uQWx3YXlzVmlzaWJsZTogYm9vbGVhbiA9XG4gICAgICAgICAgY3VycmVudENvbHVtbk1ldGFkYXRhPy5hbHdheXNWaXNpYmxlID8/IGZhbHNlO1xuXG4gICAgICAgIGlmIChpc0NvbHVtbkFsd2F5c1Zpc2libGUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY3VycmVudENvbHVtblNldHRpbmdzLFxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jdXJyZW50Q29sdW1uU2V0dGluZ3MsXG4gICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICAvLyBVbnBpbiBpZiBiZWluZyB1bmNoZWNrZWRcbiAgICAgICAgICBwaW5uZWQ6ICFlbmFibGVkID8gZmFsc2UgOiBjdXJyZW50Q29sdW1uU2V0dGluZ3MucGlubmVkLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogb3JkZXJJbnRlbnRpb25hbGx5KFxuICAgICAgICAgIHVwZGF0ZWRDb2x1bW5TZXR0aW5ncyxcbiAgICAgICAgICBjb2x1bW5OYW1lTWFwLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZUNvbHVtbldpZHRoPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuQ29sdW1uTWV0YWRhdGE+LFxuICAgIGNvbHVtbk5hbWVNYXA6IFJpdlRhYmxlLkNvbHVtbk5hbWVNYXA8Qz4sXG4gICAgY29sdW1uOiBDLFxuICAgIHByZWZlcnJlZFdpZHRoOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPlsncHJlZmVycmVkV2lkdGgnXSxcbiAgKTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gZ2V0QWxsQ29sdW1ucyhzdGF0ZSwgY29sdW1ucywgY29sdW1uTmFtZU1hcCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogYWxsQ29sdW1ucy5tYXAoYyA9PiAoe1xuICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgcHJlZmVycmVkV2lkdGg6IGMua2V5ID09PSBjb2x1bW4gPyBwcmVmZXJyZWRXaWR0aCA6IGMucHJlZmVycmVkV2lkdGgsXG4gICAgICAgIH0pKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByZXNldFRvRGVmYXVsdENvbHVtbnM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Db2x1bW5NZXRhZGF0YT4sXG4gICAgY29sdW1uTmFtZU1hcDogUml2VGFibGUuQ29sdW1uTmFtZU1hcDxDPixcbiAgICBkZWZhdWx0Q29sdW1uU3RhdGU6IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+W10sXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheToge1xuICAgICAgICAuLi5zdGF0ZS5kaXNwbGF5LFxuICAgICAgICBjb2x1bW5TZXR0aW5nczogb3JkZXJJbnRlbnRpb25hbGx5KGRlZmF1bHRDb2x1bW5TdGF0ZSwgY29sdW1uTmFtZU1hcCksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29sdW1uTWV0YWRhdGFNYXA8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICA+KFxuICAgIGNvbHVtbnM6IE1hcDxDLCBSaXZUYWJsZS5Jbk1lbW9yeUNvbHVtbk1ldGFkYXRhPFI+PixcbiAgKTogTWFwPEMsIFJpdlRhYmxlLkNvbHVtbk1ldGFkYXRhPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICBbLi4uY29sdW1ucy5lbnRyaWVzKCldLm1hcCgoW25hbWUsIG1ldGFkYXRhXSkgPT4gW1xuICAgICAgICBuYW1lLFxuICAgICAgICB7XG4gICAgICAgICAgb3JkZXJhYmxlOiAhIW1ldGFkYXRhLm9yZGVyS2V5LFxuICAgICAgICAgIGZpbHRlcmFibGU6IG1ldGFkYXRhLmZpbHRlcmFibGUsXG4gICAgICAgICAgc2VhcmNoYWJsZTogbWV0YWRhdGEuc2VhcmNoYWJsZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogbWV0YWRhdGEuZGVzY3JpcHRpb24sXG4gICAgICAgICAgbWluV2lkdGg6IG1ldGFkYXRhLm1pbldpZHRoLFxuICAgICAgICAgIGRhdGFUeXBlOiBtZXRhZGF0YS5kYXRhVHlwZSxcbiAgICAgICAgICBkZWZhdWx0UGlubmVkOiBtZXRhZGF0YS5kZWZhdWx0UGlubmVkLFxuICAgICAgICAgIGNsaWNrUHJldmVudERlZmF1bHQ6IG1ldGFkYXRhLmNsaWNrUHJldmVudERlZmF1bHQsXG4gICAgICAgICAgY2xpY2tTdG9wUHJvcGFnYXRpb246IG1ldGFkYXRhLmNsaWNrU3RvcFByb3BhZ2F0aW9uLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBtZXRhZGF0YS5kaXNwbGF5TmFtZSxcbiAgICAgICAgICBhbHdheXNWaXNpYmxlOiBtZXRhZGF0YS5hbHdheXNWaXNpYmxlLFxuICAgICAgICAgIHRvb2x0aXBGb3JIaWRlSWNvbjogbWV0YWRhdGEudG9vbHRpcEZvckhpZGVJY29uLFxuICAgICAgICB9LFxuICAgICAgXSksXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydCB0eXBlIENvbHVtbkxpc3Q8QyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbj4gPVxuICAgIChSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiAmIHtcbiAgICAgIHJlc29sdmVkTmFtZTogQyB8IHN0cmluZztcbiAgICAgIGhpZ2hsaWdodEluZGljZXM6IEhpZ2hsaWdodENvbXBvbmVudC5IaWdobGlnaHRJbmRpY2VzW107XG4gICAgICBzdGF0ZUluZGV4OiBudW1iZXI7XG4gICAgICBpc0xhc3RQaW5uZWRDb2x1bW46IGJvb2xlYW47XG4gICAgICBhbHdheXNWaXNpYmxlOiBib29sZWFuO1xuICAgICAgdG9vbHRpcEZvckhpZGVJY29uPzogc3RyaW5nO1xuICAgIH0pW107XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtblNldHRpbmdzQ29sdW1uTGlzdDxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5GdWxsU3RhdGU8UiwgQywgRiwgRz4pOiBDb2x1bW5MaXN0PEM+IHtcbiAgICBjb25zdCBhbGxDb2x1bW5NZXRhZGF0YSA9IFtcbiAgICAgIC4uLnN0YXRlLmRpc3BsYXkuY29sdW1ucyxcbiAgICAgIC4uLnN0YXRlLmRpc3BsYXkuZGlzYWJsZWRDb2x1bW5zLFxuICAgIF07XG4gICAgY29uc3QgY29sdW1uc0xlbmd0aCA9IHN0YXRlLmRpc3BsYXkuYWxsQ29sdW1ucy5sZW5ndGg7XG4gICAgY29uc3QgYWxsQ29sdW1uczogQ29sdW1uTGlzdDxDPiA9IHN0YXRlLmRpc3BsYXkuYWxsQ29sdW1ucy5tYXAoXG4gICAgICAoY29sdW1uLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRDb2x1bW5QaW5uZWQgPVxuICAgICAgICAgIGkgKyAyIDw9IGNvbHVtbnNMZW5ndGhcbiAgICAgICAgICAgID8gc3RhdGUuZGlzcGxheS5hbGxDb2x1bW5zW2kgKyAxXS5waW5uZWRcbiAgICAgICAgICAgIDogZmFsc2U7XG5cbiAgICAgICAgY29uc3QgY3VycmVudENvbHVtbk1ldGFkYXRhOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICBhbGxDb2x1bW5NZXRhZGF0YS5maW5kKG1ldGFkYXRhID0+IG1ldGFkYXRhLmtleSA9PT0gY29sdW1uLmtleSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgcmVzb2x2ZWROYW1lOlxuICAgICAgICAgICAgc3RhdGUuZGlzcGxheS5jb2x1bW5OYW1lTWFwLmdldChjb2x1bW4ua2V5KSA/PyBjb2x1bW4ua2V5LFxuICAgICAgICAgIHN0YXRlSW5kZXg6IGksXG4gICAgICAgICAgaXNMYXN0UGlubmVkQ29sdW1uOiBjb2x1bW4ucGlubmVkICYmICFuZXh0Q29sdW1uUGlubmVkLFxuICAgICAgICAgIGFsd2F5c1Zpc2libGU6IGN1cnJlbnRDb2x1bW5NZXRhZGF0YT8uYWx3YXlzVmlzaWJsZSA/PyBmYWxzZSxcbiAgICAgICAgICB0b29sdGlwRm9ySGlkZUljb246IGN1cnJlbnRDb2x1bW5NZXRhZGF0YT8udG9vbHRpcEZvckhpZGVJY29uLFxuICAgICAgICAgIGhpZ2hsaWdodEluZGljZXM6IFtdLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGFsbENvbHVtbnM7XG4gIH1cbn1cbiJdfQ==