@myrmidon/cadmus-refs-asserted-ids 1.0.3 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -11
- package/esm2020/lib/asserted-id/asserted-id.component.mjs +51 -18
- package/esm2020/lib/asserted-ids/asserted-ids.component.mjs +91 -156
- package/esm2020/lib/cadmus-refs-asserted-ids.module.mjs +30 -9
- package/esm2020/lib/scoped-pin-lookup/scoped-pin-lookup.component.mjs +129 -0
- package/esm2020/lib/services/pin-ref-lookup.service.mjs +71 -0
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/myrmidon-cadmus-refs-asserted-ids.mjs +351 -174
- package/fesm2015/myrmidon-cadmus-refs-asserted-ids.mjs.map +1 -1
- package/fesm2020/myrmidon-cadmus-refs-asserted-ids.mjs +345 -173
- package/fesm2020/myrmidon-cadmus-refs-asserted-ids.mjs.map +1 -1
- package/lib/asserted-id/asserted-id.component.d.ts +16 -3
- package/lib/asserted-ids/asserted-ids.component.d.ts +20 -30
- package/lib/cadmus-refs-asserted-ids.module.d.ts +15 -12
- package/lib/scoped-pin-lookup/scoped-pin-lookup.component.d.ts +39 -0
- package/lib/services/pin-ref-lookup.service.d.ts +18 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output,
|
|
2
|
-
import {
|
|
3
|
-
import { debounceTime } from 'rxjs/operators';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { take } from 'rxjs';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "@
|
|
7
|
-
import * as i3 from "@angular/
|
|
8
|
-
import * as i4 from "@angular/material/
|
|
9
|
-
import * as i5 from "@angular/material/
|
|
5
|
+
import * as i2 from "@myrmidon/ng-mat-tools";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/button";
|
|
8
|
+
import * as i5 from "@angular/material/expansion";
|
|
10
9
|
import * as i6 from "@angular/material/icon";
|
|
11
|
-
import * as i7 from "
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
import * as i7 from "../asserted-id/asserted-id.component";
|
|
11
|
+
/**
|
|
12
|
+
* Asserted IDs editor.
|
|
13
|
+
*/
|
|
15
14
|
export class AssertedIdsComponent {
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
15
|
+
constructor(formBuilder, _dialogService) {
|
|
16
|
+
this._dialogService = _dialogService;
|
|
18
17
|
this._ids = [];
|
|
19
|
-
this.
|
|
18
|
+
this._editedIndex = -1;
|
|
20
19
|
this.idsChange = new EventEmitter();
|
|
21
|
-
this.
|
|
20
|
+
this.entries = formBuilder.control([], { nonNullable: true });
|
|
22
21
|
// form
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
idsArr: this.idsArr,
|
|
22
|
+
this.form = formBuilder.group({
|
|
23
|
+
ids: this.entries,
|
|
26
24
|
});
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
@@ -37,163 +35,100 @@ export class AssertedIdsComponent {
|
|
|
37
35
|
this.updateForm(value);
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
.subscribe((lst) => {
|
|
45
|
-
if (!this._updatingForm && lst.length > 0) {
|
|
46
|
-
lst.last.nativeElement.focus();
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
unsubscribeIds() {
|
|
51
|
-
for (let i = 0; i < this._idsSubs.length; i++) {
|
|
52
|
-
this._idsSubs[i].unsubscribe();
|
|
38
|
+
updateForm(ids) {
|
|
39
|
+
if (!ids?.length) {
|
|
40
|
+
this.form.reset();
|
|
41
|
+
return;
|
|
53
42
|
}
|
|
43
|
+
this.entries.setValue(ids, { emitEvent: false });
|
|
44
|
+
this.entries.updateValueAndValidity();
|
|
45
|
+
this.form.markAsPristine();
|
|
54
46
|
}
|
|
55
|
-
|
|
56
|
-
this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
value:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (!this._updatingForm) {
|
|
77
|
-
this.emitIdsChange();
|
|
47
|
+
emitIdsChange() {
|
|
48
|
+
this.idsChange.emit(this.entries.value);
|
|
49
|
+
}
|
|
50
|
+
addId() {
|
|
51
|
+
this.editId({
|
|
52
|
+
scope: '',
|
|
53
|
+
value: '',
|
|
54
|
+
}, -1);
|
|
55
|
+
}
|
|
56
|
+
editId(id, index) {
|
|
57
|
+
this._editedIndex = index;
|
|
58
|
+
this.edited = id;
|
|
59
|
+
}
|
|
60
|
+
closeId() {
|
|
61
|
+
this._editedIndex = -1;
|
|
62
|
+
this.edited = undefined;
|
|
63
|
+
}
|
|
64
|
+
saveId(entry) {
|
|
65
|
+
const entries = [...this.entries.value];
|
|
66
|
+
if (this._editedIndex === -1) {
|
|
67
|
+
entries.push(entry);
|
|
78
68
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.closeAssertion();
|
|
82
|
-
this._idsSubs[index].unsubscribe();
|
|
83
|
-
this._idsSubs.splice(index, 1);
|
|
84
|
-
this.idsArr.removeAt(index);
|
|
85
|
-
this.emitIdsChange();
|
|
86
|
-
}
|
|
87
|
-
swapArrElems(a, i, j) {
|
|
88
|
-
if (i === j) {
|
|
89
|
-
return;
|
|
69
|
+
else {
|
|
70
|
+
entries.splice(this._editedIndex, 1, entry);
|
|
90
71
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
72
|
+
this.entries.setValue(entries);
|
|
73
|
+
this.entries.markAsDirty();
|
|
74
|
+
this.entries.updateValueAndValidity();
|
|
75
|
+
this.closeId();
|
|
76
|
+
}
|
|
77
|
+
deleteId(index) {
|
|
78
|
+
this._dialogService
|
|
79
|
+
.confirm('Confirmation', 'Delete ID?')
|
|
80
|
+
.pipe(take(1))
|
|
81
|
+
.subscribe((yes) => {
|
|
82
|
+
if (yes) {
|
|
83
|
+
if (this._editedIndex === index) {
|
|
84
|
+
this.closeId();
|
|
85
|
+
}
|
|
86
|
+
const entries = [...this.entries.value];
|
|
87
|
+
entries.splice(index, 1);
|
|
88
|
+
this.entries.setValue(entries);
|
|
89
|
+
this.entries.markAsDirty();
|
|
90
|
+
this.entries.updateValueAndValidity();
|
|
91
|
+
this.emitIdsChange();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
94
|
}
|
|
95
95
|
moveIdUp(index) {
|
|
96
96
|
if (index < 1) {
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
-
this.
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
this.
|
|
99
|
+
const entry = this.entries.value[index];
|
|
100
|
+
const entries = [...this.entries.value];
|
|
101
|
+
entries.splice(index, 1);
|
|
102
|
+
entries.splice(index - 1, 0, entry);
|
|
103
|
+
this.entries.setValue(entries);
|
|
104
|
+
this.entries.markAsDirty();
|
|
105
|
+
this.entries.updateValueAndValidity();
|
|
104
106
|
this.emitIdsChange();
|
|
105
107
|
}
|
|
106
108
|
moveIdDown(index) {
|
|
107
|
-
if (index + 1 >= this.
|
|
109
|
+
if (index + 1 >= this.entries.value.length) {
|
|
108
110
|
return;
|
|
109
111
|
}
|
|
110
|
-
this.
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this.
|
|
112
|
+
const entry = this.entries.value[index];
|
|
113
|
+
const entries = [...this.entries.value];
|
|
114
|
+
entries.splice(index, 1);
|
|
115
|
+
entries.splice(index + 1, 0, entry);
|
|
116
|
+
this.entries.setValue(entries);
|
|
117
|
+
this.entries.markAsDirty();
|
|
118
|
+
this.entries.updateValueAndValidity();
|
|
115
119
|
this.emitIdsChange();
|
|
116
120
|
}
|
|
117
|
-
|
|
118
|
-
this.
|
|
119
|
-
this.idsArr.clear();
|
|
120
|
-
this.unsubscribeIds();
|
|
121
|
-
this._idsSubs = [];
|
|
122
|
-
if (!this._updatingForm) {
|
|
123
|
-
this.emitIdsChange();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
editAssertion(index) {
|
|
127
|
-
// save the currently edited assertion if any
|
|
128
|
-
this.saveAssertion();
|
|
129
|
-
// edit the new assertion
|
|
130
|
-
this.initialAssertion = this.idsArr.at(index).controls['assertion'].value;
|
|
131
|
-
this.assertionNr = index + 1;
|
|
132
|
-
this.assEdOpen = true;
|
|
133
|
-
}
|
|
134
|
-
onAssertionChange(assertion) {
|
|
135
|
-
this.assertion = assertion;
|
|
136
|
-
}
|
|
137
|
-
saveAssertion() {
|
|
138
|
-
// save the currently edited assertion if any
|
|
139
|
-
if (this.assertionNr) {
|
|
140
|
-
const g = this.idsArr.at(this.assertionNr - 1);
|
|
141
|
-
g.controls['assertion'].setValue(this.assertion);
|
|
142
|
-
this.closeAssertion();
|
|
143
|
-
this.emitIdsChange();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
closeAssertion() {
|
|
147
|
-
if (this.assertionNr) {
|
|
148
|
-
this.assEdOpen = false;
|
|
149
|
-
this.assertionNr = 0;
|
|
150
|
-
this.initialAssertion = undefined;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
updateForm(ids) {
|
|
154
|
-
if (!this.idsArr) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
this._updatingForm = true;
|
|
158
|
-
this.clearIds();
|
|
159
|
-
if (!ids) {
|
|
160
|
-
this.form.reset();
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
for (const id of ids) {
|
|
164
|
-
this.addId(id);
|
|
165
|
-
}
|
|
166
|
-
this.form.markAsPristine();
|
|
167
|
-
}
|
|
168
|
-
this._updatingForm = false;
|
|
121
|
+
onIdChange(id) {
|
|
122
|
+
this.saveId(id);
|
|
169
123
|
this.emitIdsChange();
|
|
170
124
|
}
|
|
171
|
-
getIds() {
|
|
172
|
-
const ids = [];
|
|
173
|
-
for (let i = 0; i < this.idsArr.length; i++) {
|
|
174
|
-
const g = this.idsArr.controls[i];
|
|
175
|
-
ids.push({
|
|
176
|
-
value: g.controls.value.value?.trim(),
|
|
177
|
-
scope: g.controls.scope.value?.trim(),
|
|
178
|
-
tag: g.controls.tag.value?.trim(),
|
|
179
|
-
assertion: g.controls.assertion.value,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
return ids;
|
|
183
|
-
}
|
|
184
|
-
emitIdsChange() {
|
|
185
|
-
this.idsChange.emit(this.getIds());
|
|
186
|
-
}
|
|
187
125
|
}
|
|
188
|
-
AssertedIdsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
189
|
-
AssertedIdsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
126
|
+
AssertedIdsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AssertedIdsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
+
AssertedIdsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: AssertedIdsComponent, selector: "cadmus-refs-asserted-ids", inputs: { ids: "ids", scopeEntries: "scopeEntries", tagEntries: "tagEntries", assTagEntries: "assTagEntries", refTypeEntries: "refTypeEntries", refTagEntries: "refTagEntries" }, outputs: { idsChange: "idsChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n <div>\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"addId()\">\r\n <mat-icon>add_circle</mat-icon> ID\r\n </button>\r\n </div>\r\n <table *ngIf=\"entries.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>scope</th>\r\n <th>value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of entries.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this ID\"\r\n (click)=\"editId(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveIdUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveIdDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this ID\"\r\n (click)=\"deleteId(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.scope }}</td>\r\n <td>{{ entry.value }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\r\n <mat-expansion-panel-header>ID</mat-expansion-panel-header>\r\n <cadmus-refs-asserted-id\r\n [hasSubmit]=\"true\"\r\n [id]=\"edited\"\r\n (idChange)=\"onIdChange($event)\"\r\n (editorClose)=\"closeId()\"\r\n ></cadmus-refs-asserted-id>\r\n </mat-expansion-panel>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver;text-align:left}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.AssertedIdComponent, selector: "cadmus-refs-asserted-id", inputs: ["scopeEntries", "idTagEntries", "assTagEntries", "refTypeEntries", "refTagEntries", "id", "noEidLookup", "hasSubmit"], outputs: ["idChange", "editorClose"] }] });
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AssertedIdsComponent, decorators: [{
|
|
191
129
|
type: Component,
|
|
192
|
-
args: [{ selector: 'cadmus-refs-asserted-ids', template: "<form [formGroup]=\"form\">\r\n <div
|
|
193
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: {
|
|
194
|
-
type: ViewChildren,
|
|
195
|
-
args: ['id']
|
|
196
|
-
}], ids: [{
|
|
130
|
+
args: [{ selector: 'cadmus-refs-asserted-ids', template: "<form [formGroup]=\"form\">\r\n <div>\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"addId()\">\r\n <mat-icon>add_circle</mat-icon> ID\r\n </button>\r\n </div>\r\n <table *ngIf=\"entries.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>scope</th>\r\n <th>value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of entries.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this ID\"\r\n (click)=\"editId(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveIdUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveIdDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this ID\"\r\n (click)=\"deleteId(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.scope }}</td>\r\n <td>{{ entry.value }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\r\n <mat-expansion-panel-header>ID</mat-expansion-panel-header>\r\n <cadmus-refs-asserted-id\r\n [hasSubmit]=\"true\"\r\n [id]=\"edited\"\r\n (idChange)=\"onIdChange($event)\"\r\n (editorClose)=\"closeId()\"\r\n ></cadmus-refs-asserted-id>\r\n </mat-expansion-panel>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver;text-align:left}\n"] }]
|
|
131
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DialogService }]; }, propDecorators: { ids: [{
|
|
197
132
|
type: Input
|
|
198
133
|
}], scopeEntries: [{
|
|
199
134
|
type: Input
|
|
@@ -208,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
208
143
|
}], idsChange: [{
|
|
209
144
|
type: Output
|
|
210
145
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0ZWQtaWRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1yZWZzLWFzc2VydGVkLWlkcy9zcmMvbGliL2Fzc2VydGVkLWlkcy9hc3NlcnRlZC1pZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXJlZnMtYXNzZXJ0ZWQtaWRzL3NyYy9saWIvYXNzZXJ0ZWQtaWRzL2Fzc2VydGVkLWlkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxvQkFBb0I7SUEwRC9CLFlBQW9CLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixPQUFPO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTVE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bnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgVGhlc2F1cnVzRW50cnkgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLWNvcmUnO1xyXG5pbXBvcnQgeyBBc3NlcnRpb24gfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLXJlZnMtYXNzZXJ0aW9uJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFzc2VydGVkSWQgfSBmcm9tICcuLi9hc3NlcnRlZC1pZC9hc3NlcnRlZC1pZC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtcmVmcy1hc3NlcnRlZC1pZHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NlcnRlZC1pZHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fzc2VydGVkLWlkcy5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NlcnRlZElkc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfaWRzOiBBc3NlcnRlZElkW107XHJcbiAgcHJpdmF0ZSBfaWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9pZHNTdWJzOiBTdWJzY3JpcHRpb25bXTtcclxuICBwcml2YXRlIF91cGRhdGluZ0Zvcm06IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2lkJykgaWRRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYXNzZXJ0ZWQgSURzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBpZHMoKTogQXNzZXJ0ZWRJZFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9pZHM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgaWRzKHZhbHVlOiBBc3NlcnRlZElkW10pIHtcclxuICAgIGlmICh0aGlzLl9pZHMgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2lkcyA9IHZhbHVlIHx8IFtdO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIHNjb3BlcyB0aGVzYXVydXMgZW50cmllcy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzY29wZUVudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBJRCB0YWdzIHRoZXNhdXJ1cyBlbnRyaWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRhZ0VudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIHRoZXNhdXJpIGZvciBhc3NlcnRpb25zXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXNzVGFnRW50cmllcz86IFRoZXNhdXJ1c0VudHJ5W107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlZlR5cGVFbnRyaWVzOiBUaGVzYXVydXNFbnRyeVtdIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWZUYWdFbnRyaWVzOiBUaGVzYXVydXNFbnRyeVtdIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIGFueSBJRCBjaGFuZ2VzLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBpZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBc3NlcnRlZElkW10+O1xyXG5cclxuICBwdWJsaWMgaWRzQXJyOiBGb3JtQXJyYXk7XHJcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcclxuICAvLyBlZGl0ZWQgYXNzZXJ0aW9uXHJcbiAgcHVibGljIGFzc0VkT3BlbjogYm9vbGVhbjtcclxuICBwdWJsaWMgYXNzZXJ0aW9uTnI/OiBudW1iZXI7XHJcbiAgcHVibGljIGluaXRpYWxBc3NlcnRpb24/OiBBc3NlcnRpb247XHJcbiAgcHVibGljIGFzc2VydGlvbj86IEFzc2VydGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLl9pZHMgPSBbXTtcclxuICAgIHRoaXMuX2lkc1N1YnMgPSBbXTtcclxuICAgIHRoaXMuaWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NlcnRlZElkW10+KCk7XHJcbiAgICB0aGlzLmFzc0VkT3BlbiA9IGZhbHNlO1xyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy5pZHNBcnIgPSBfZm9ybUJ1aWxkZXIuYXJyYXkoW10pO1xyXG4gICAgdGhpcy5mb3JtID0gX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgaWRzQXJyOiB0aGlzLmlkc0FycixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIGZvY3VzIG9uIG5ld2x5IGFkZGVkIElEXHJcbiAgICB0aGlzLl9pZFN1YnNjcmlwdGlvbiA9IHRoaXMuaWRRdWVyeUxpc3Q/LmNoYW5nZXNcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxzdDogUXVlcnlMaXN0PGFueT4pID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX3VwZGF0aW5nRm9ybSAmJiBsc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbHN0Lmxhc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlSWRzKCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9pZHNTdWJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuX2lkc1N1YnNbaV0udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVJZHMoKTtcclxuICAgIHRoaXMuX2lkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJZEdyb3VwKGlkPzogQXNzZXJ0ZWRJZCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB2YWx1ZTogdGhpcy5fZm9ybUJ1aWxkZXIuY29udHJvbChpZD8udmFsdWUsIFtcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwMCksXHJcbiAgICAgIF0pLFxyXG4gICAgICBzY29wZTogdGhpcy5fZm9ybUJ1aWxkZXIuY29udHJvbChpZD8uc2NvcGUsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSksXHJcbiAgICAgIHRhZzogdGhpcy5fZm9ybUJ1aWxkZXIuY29udHJvbChpZD8udGFnLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCkpLFxyXG4gICAgICBhc3NlcnRpb246IHRoaXMuX2Zvcm1CdWlsZGVyLmNvbnRyb2woaWQ/LmFzc2VydGlvbiksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRJZChpZD86IEFzc2VydGVkSWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGcgPSB0aGlzLmdldElkR3JvdXAoaWQpO1xyXG4gICAgdGhpcy5faWRzU3Vicy5wdXNoKFxyXG4gICAgICBnLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKF8pID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRJZHNDaGFuZ2UoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmlkc0Fyci5wdXNoKGcpO1xyXG4gICAgaWYgKCF0aGlzLl91cGRhdGluZ0Zvcm0pIHtcclxuICAgICAgdGhpcy5lbWl0SWRzQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlSWQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZUFzc2VydGlvbigpO1xyXG4gICAgdGhpcy5faWRzU3Vic1tpbmRleF0udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX2lkc1N1YnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuaWRzQXJyLnJlbW92ZUF0KGluZGV4KTtcclxuICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzd2FwQXJyRWxlbXMoYTogYW55W10sIGk6IG51bWJlciwgajogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaSA9PT0gaikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB0ID0gYVtpXTtcclxuICAgIGFbaV0gPSBhW2pdO1xyXG4gICAgYVtqXSA9IHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZUlkVXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4IDwgMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsb3NlQXNzZXJ0aW9uKCk7XHJcbiAgICBjb25zdCBjdGwgPSB0aGlzLmlkc0Fyci5jb250cm9sc1tpbmRleF07XHJcbiAgICB0aGlzLmlkc0Fyci5yZW1vdmVBdChpbmRleCk7XHJcbiAgICB0aGlzLmlkc0Fyci5pbnNlcnQoaW5kZXggLSAxLCBjdGwpO1xyXG5cclxuICAgIHRoaXMuc3dhcEFyckVsZW1zKHRoaXMuX2lkc1N1YnMsIGluZGV4LCBpbmRleCAtIDEpO1xyXG5cclxuICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVJZERvd24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLmlkc0Fyci5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbG9zZUFzc2VydGlvbigpO1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaWRzQXJyLmNvbnRyb2xzW2luZGV4XTtcclxuICAgIHRoaXMuaWRzQXJyLnJlbW92ZUF0KGluZGV4KTtcclxuICAgIHRoaXMuaWRzQXJyLmluc2VydChpbmRleCArIDEsIGl0ZW0pO1xyXG5cclxuICAgIHRoaXMuc3dhcEFyckVsZW1zKHRoaXMuX2lkc1N1YnMsIGluZGV4LCBpbmRleCArIDEpO1xyXG5cclxuICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFySWRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZUFzc2VydGlvbigpO1xyXG4gICAgdGhpcy5pZHNBcnIuY2xlYXIoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVJZHMoKTtcclxuICAgIHRoaXMuX2lkc1N1YnMgPSBbXTtcclxuICAgIGlmICghdGhpcy5fdXBkYXRpbmdGb3JtKSB7XHJcbiAgICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXRBc3NlcnRpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy8gc2F2ZSB0aGUgY3VycmVudGx5IGVkaXRlZCBhc3NlcnRpb24gaWYgYW55XHJcbiAgICB0aGlzLnNhdmVBc3NlcnRpb24oKTtcclxuICAgIC8vIGVkaXQgdGhlIG5ldyBhc3NlcnRpb25cclxuICAgIHRoaXMuaW5pdGlhbEFzc2VydGlvbiA9ICh0aGlzLmlkc0Fyci5hdChpbmRleCkgYXMgRm9ybUdyb3VwKS5jb250cm9sc1tcclxuICAgICAgJ2Fzc2VydGlvbidcclxuICAgIF0udmFsdWU7XHJcbiAgICB0aGlzLmFzc2VydGlvbk5yID0gaW5kZXggKyAxO1xyXG4gICAgdGhpcy5hc3NFZE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQXNzZXJ0aW9uQ2hhbmdlKGFzc2VydGlvbjogQXNzZXJ0aW9uIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICB0aGlzLmFzc2VydGlvbiA9IGFzc2VydGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlQXNzZXJ0aW9uKCk6IHZvaWQge1xyXG4gICAgLy8gc2F2ZSB0aGUgY3VycmVudGx5IGVkaXRlZCBhc3NlcnRpb24gaWYgYW55XHJcbiAgICBpZiAodGhpcy5hc3NlcnRpb25Ocikge1xyXG4gICAgICBjb25zdCBnID0gdGhpcy5pZHNBcnIuYXQodGhpcy5hc3NlcnRpb25OciAtIDEpIGFzIEZvcm1Hcm91cDtcclxuICAgICAgZy5jb250cm9sc1snYXNzZXJ0aW9uJ10uc2V0VmFsdWUodGhpcy5hc3NlcnRpb24pO1xyXG4gICAgICB0aGlzLmNsb3NlQXNzZXJ0aW9uKCk7XHJcbiAgICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZUFzc2VydGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFzc2VydGlvbk5yKSB7XHJcbiAgICAgIHRoaXMuYXNzRWRPcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYXNzZXJ0aW9uTnIgPSAwO1xyXG4gICAgICB0aGlzLmluaXRpYWxBc3NlcnRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZvcm0oaWRzOiBBc3NlcnRlZElkW10pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pZHNBcnIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXBkYXRpbmdGb3JtID0gdHJ1ZTtcclxuICAgIHRoaXMuY2xlYXJJZHMoKTtcclxuXHJcbiAgICBpZiAoIWlkcykge1xyXG4gICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XHJcbiAgICAgICAgdGhpcy5hZGRJZChpZCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91cGRhdGluZ0Zvcm0gPSBmYWxzZTtcclxuICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJZHMoKTogQXNzZXJ0ZWRJZFtdIHtcclxuICAgIGNvbnN0IGlkczogQXNzZXJ0ZWRJZFtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaWRzQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGcgPSB0aGlzLmlkc0Fyci5jb250cm9sc1tpXSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIGlkcy5wdXNoKHtcclxuICAgICAgICB2YWx1ZTogZy5jb250cm9scy52YWx1ZS52YWx1ZT8udHJpbSgpLFxyXG4gICAgICAgIHNjb3BlOiBnLmNvbnRyb2xzLnNjb3BlLnZhbHVlPy50cmltKCksXHJcbiAgICAgICAgdGFnOiBnLmNvbnRyb2xzLnRhZy52YWx1ZT8udHJpbSgpLFxyXG4gICAgICAgIGFzc2VydGlvbjogZy5jb250cm9scy5hc3NlcnRpb24udmFsdWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlkcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdElkc0NoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRzQ2hhbmdlLmVtaXQodGhpcy5nZXRJZHMoKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxkaXYgZm9ybUFycmF5TmFtZT1cImlkc0FyclwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZElkKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmFkZF9jaXJjbGU8L21hdC1pY29uPiBhZGQgSURcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgbGV0IGl0ZW0gb2YgaWRzQXJyLmNvbnRyb2xzO1xyXG4gICAgICAgIGxldCBpID0gaW5kZXg7XHJcbiAgICAgICAgbGV0IGZpcnN0ID0gZmlyc3Q7XHJcbiAgICAgICAgbGV0IGxhc3QgPSBsYXN0XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gY2hpbGQgZm9ybSAtLT5cclxuICAgICAgPGRpdiBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgPCEtLSBjaGlsZCBhY3Rpb25zIC0tPlxyXG4gICAgICAgIHt7IGkgKyAxIH19LlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRUb29sdGlwPVwiUmVtb3ZlIHRoaXMgSURcIlxyXG4gICAgICAgICAgY29sb3I9XCJ3YXJuXCJcclxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJZChpKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmaXJzdFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIk1vdmUgSUQgdXBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1vdmVJZFVwKGkpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibGFzdFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIk1vdmUgSUQgZG93blwiXHJcbiAgICAgICAgICAoY2xpY2spPVwibW92ZUlkRG93bihpKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBjaGlsZCBjb250cm9scyAtLT5cclxuICAgICAgICA8IS0tIHZhbHVlIC0tPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+ZXh0ZXJuYWwgSUQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCAjaWQgYXV0b2ZvY3VzIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCIgLz5cclxuICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAkYW55KGl0ZW0pWydjb250cm9scyddLnZhbHVlPy5oYXNFcnJvcigncmVxdWlyZWQnKSAmJlxyXG4gICAgICAgICAgICAgICgkYW55KGl0ZW0pWydjb250cm9scyddLnZhbHVlLmRpcnR5IHx8XHJcbiAgICAgICAgICAgICAgICAkYW55KGl0ZW0pWydjb250cm9scyddLnZhbHVlLnRvdWNoZWQpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5JRCByZXF1aXJlZFxyXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgJGFueShpdGVtKVsnY29udHJvbHMnXS52YWx1ZT8uaGFzRXJyb3IoJ21heC1sZW5ndGgnKSAmJlxyXG4gICAgICAgICAgICAgICgkYW55KGl0ZW0pWydjb250cm9scyddLnZhbHVlLmRpcnR5IHx8XHJcbiAgICAgICAgICAgICAgICAkYW55KGl0ZW0pWydjb250cm9scyddLnZhbHVlLnRvdWNoZWQpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5JRCB0b28gbG9uZ1xyXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPCEtLSBzY29wZSAoYm91bmQpIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY29wZUVudHJpZXNcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiA4ZW1cIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD5zY29wZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBlIG9mIHNjb3BlRW50cmllc1wiIFt2YWx1ZV09XCJlLmlkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBlLnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIHNjb3BlIChmcmVlKSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNjb3BlRW50cmllc1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnNjb3BlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzY29wZVwiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgJGFueShpdGVtKVsnY29udHJvbHMnXS5zY29wZT8uaGFzRXJyb3IoJ21heC1sZW5ndGgnKSAmJlxyXG4gICAgICAgICAgICAgICAgKCRhbnkoaXRlbSlbJ2NvbnRyb2xzJ10uc2NvcGUuZGlydHkgfHxcclxuICAgICAgICAgICAgICAgICAgJGFueShpdGVtKVsnY29udHJvbHMnXS5zY29wZS50b3VjaGVkKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPnNjb3BlIHRvbyBsb25nXHJcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPCEtLSB0YWcgKGJvdW5kKSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFnRW50cmllc1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnRhZzwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0YWdcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZSBvZiB0YWdFbnRyaWVzXCIgW3ZhbHVlXT1cImUuaWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IGUudmFsdWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gdGFnIChmcmVlKSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRhZ0VudHJpZXNcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIndpZHRoOiA4ZW1cIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD50YWc8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRhZ1wiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgJGFueShpdGVtKVsnY29udHJvbHMnXS50YWc/Lmhhc0Vycm9yKCdtYXgtbGVuZ3RoJykgJiZcclxuICAgICAgICAgICAgICAgICgkYW55KGl0ZW0pWydjb250cm9scyddLnRhZy5kaXJ0eSB8fFxyXG4gICAgICAgICAgICAgICAgICAkYW55KGl0ZW0pWydjb250cm9scyddLnRhZy50b3VjaGVkKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPnRhZyB0b28gbG9uZ1xyXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gYXNzZXJ0aW9uIC0tPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQgYXNzZXJ0aW9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QXNzZXJ0aW9uKGkpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+ZmVlZGJhY2s8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBhc3NlcnRpb24gLS0+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbFxyXG4gICAgICAqbmdJZj1cImlkc0Fycj8ubGVuZ3RoXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFhc3NlcnRpb25OclwiXHJcbiAgICAgIFsoZXhwYW5kZWQpXT1cImFzc0VkT3BlblwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclxyXG4gICAgICAgID4je3sgYXNzZXJ0aW9uTnIgfX0gYXNzZXJ0aW9uPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclxyXG4gICAgICA+XHJcbiAgICAgIDxjYWRtdXMtcmVmcy1hc3NlcnRpb25cclxuICAgICAgICBbYXNzZXJ0aW9uXT1cImluaXRpYWxBc3NlcnRpb25cIlxyXG4gICAgICAgIFthc3NUYWdFbnRyaWVzXT1cImFzc1RhZ0VudHJpZXNcIlxyXG4gICAgICAgIFtyZWZUYWdFbnRyaWVzXT1cInJlZlRhZ0VudHJpZXNcIlxyXG4gICAgICAgIFtyZWZUeXBlRW50cmllc109XCJyZWZUeXBlRW50cmllc1wiXHJcbiAgICAgICAgKGFzc2VydGlvbkNoYW5nZSk9XCJvbkFzc2VydGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgPjwvY2FkbXVzLXJlZnMtYXNzZXJ0aW9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDZweDtcIlxyXG4gICAgICAgIChjbGljayk9XCJzYXZlQXNzZXJ0aW9uKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+IGFzc2VydGlvblxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0ZWQtaWRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1yZWZzLWFzc2VydGVkLWlkcy9zcmMvbGliL2Fzc2VydGVkLWlkcy9hc3NlcnRlZC1pZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXJlZnMtYXNzZXJ0ZWQtaWRzL3NyYy9saWIvYXNzZXJ0ZWQtaWRzL2Fzc2VydGVkLWlkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBOEIsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFJeEQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBa0QvQixZQUFZLFdBQXdCLEVBQVUsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDekUsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUF0REQ7O09BRUc7SUFDSCxJQUNXLEdBQUc7UUFDWixPQUFPLElBQUks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QUM7UUFDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2lIQTlKVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix1UkN4QmpDLHF1RUE2RUE7MkZEckRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSwwQkFBMEI7OEhBYXpCLEdBQUc7c0JBRGIsS0FBSztnQkFlQyxZQUFZO3NCQURsQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBS0MsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFRoZXNhdXJ1c0VudHJ5IH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BteXJtaWRvbi9uZy1tYXQtdG9vbHMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YnNjcmlwdGlvbiwgdGFrZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXJ0ZWRJZCB9IGZyb20gJy4uL2Fzc2VydGVkLWlkL2Fzc2VydGVkLWlkLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQXNzZXJ0ZWQgSURzIGVkaXRvci5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FkbXVzLXJlZnMtYXNzZXJ0ZWQtaWRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXJ0ZWQtaWRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hc3NlcnRlZC1pZHMuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXJ0ZWRJZHNDb21wb25lbnQge1xyXG4gIHByaXZhdGUgX2lkczogQXNzZXJ0ZWRJZFtdO1xyXG4gIHByaXZhdGUgX2VkaXRlZEluZGV4OiBudW1iZXI7XHJcbiAgcHVibGljIGVkaXRlZD86IEFzc2VydGVkSWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBhc3NlcnRlZCBJRHMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGlkcygpOiBBc3NlcnRlZElkW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkcztcclxuICB9XHJcbiAgcHVibGljIHNldCBpZHModmFsdWU6IEFzc2VydGVkSWRbXSkge1xyXG4gICAgaWYgKHRoaXMuX2lkcyAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5faWRzID0gdmFsdWUgfHwgW107XHJcbiAgICAgIHRoaXMudXBkYXRlRm9ybSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgSUQgc2NvcGVzIHRoZXNhdXJ1cyBlbnRyaWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNjb3BlRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIHRhZ3MgdGhlc2F1cnVzIGVudHJpZXMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdGFnRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gdGhlc2F1cmkgZm9yIGFzc2VydGlvbnNcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhc3NUYWdFbnRyaWVzPzogVGhlc2F1cnVzRW50cnlbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVmVHlwZUVudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlZlRhZ0VudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbmV2ZXIgYW55IElEIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGlkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFzc2VydGVkSWRbXT47XHJcblxyXG4gIHB1YmxpYyBlbnRyaWVzOiBGb3JtQ29udHJvbDxBc3NlcnRlZElkW10+O1xyXG4gIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xyXG4gICAgdGhpcy5faWRzID0gW107XHJcbiAgICB0aGlzLl9lZGl0ZWRJbmRleCA9IC0xO1xyXG4gICAgdGhpcy5pZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFzc2VydGVkSWRbXT4oKTtcclxuICAgIHRoaXMuZW50cmllcyA9IGZvcm1CdWlsZGVyLmNvbnRyb2woW10sIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XHJcbiAgICAvLyBmb3JtXHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIGlkczogdGhpcy5lbnRyaWVzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZvcm0oaWRzOiBBc3NlcnRlZElkW10pOiB2b2lkIHtcclxuICAgIGlmICghaWRzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZW50cmllcy5zZXRWYWx1ZShpZHMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZW50cmllcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdElkc0NoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRzQ2hhbmdlLmVtaXQodGhpcy5lbnRyaWVzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRJZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdElkKFxyXG4gICAgICB7XHJcbiAgICAgICAgc2NvcGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgLTFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdElkKGlkOiBBc3NlcnRlZElkLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lZGl0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5lZGl0ZWQgPSBpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUlkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZWRpdGVkSW5kZXggPSAtMTtcclxuICAgIHRoaXMuZWRpdGVkID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVJZChlbnRyeTogQXNzZXJ0ZWRJZCk6IHZvaWQge1xyXG4gICAgY29uc3QgZW50cmllcyA9IFsuLi50aGlzLmVudHJpZXMudmFsdWVdO1xyXG4gICAgaWYgKHRoaXMuX2VkaXRlZEluZGV4ID09PSAtMSkge1xyXG4gICAgICBlbnRyaWVzLnB1c2goZW50cnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZW50cmllcy5zcGxpY2UodGhpcy5fZWRpdGVkSW5kZXgsIDEsIGVudHJ5KTtcclxuICAgIH1cclxuICAgIHRoaXMuZW50cmllcy5zZXRWYWx1ZShlbnRyaWVzKTtcclxuICAgIHRoaXMuZW50cmllcy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgdGhpcy5lbnRyaWVzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuY2xvc2VJZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZUlkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2VcclxuICAgICAgLmNvbmZpcm0oJ0NvbmZpcm1hdGlvbicsICdEZWxldGUgSUQ/JylcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoeWVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHllcykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX2VkaXRlZEluZGV4ID09PSBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlSWQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5lbnRyaWVzLnZhbHVlXTtcclxuICAgICAgICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgIHRoaXMuZW50cmllcy5zZXRWYWx1ZShlbnRyaWVzKTtcclxuICAgICAgICAgIHRoaXMuZW50cmllcy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZUlkVXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4IDwgMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZW50cmllcy52YWx1ZVtpbmRleF07XHJcbiAgICBjb25zdCBlbnRyaWVzID0gWy4uLnRoaXMuZW50cmllcy52YWx1ZV07XHJcbiAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBlbnRyaWVzLnNwbGljZShpbmRleCAtIDEsIDAsIGVudHJ5KTtcclxuICAgIHRoaXMuZW50cmllcy5zZXRWYWx1ZShlbnRyaWVzKTtcclxuICAgIHRoaXMuZW50cmllcy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgdGhpcy5lbnRyaWVzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuZW1pdElkc0NoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVJZERvd24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLmVudHJpZXMudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzLnZhbHVlW2luZGV4XTtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5lbnRyaWVzLnZhbHVlXTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgZW50cnkpO1xyXG4gICAgdGhpcy5lbnRyaWVzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gICAgdGhpcy5lbnRyaWVzLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB0aGlzLmVudHJpZXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5lbWl0SWRzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JZENoYW5nZShpZDogQXNzZXJ0ZWRJZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zYXZlSWQoaWQpO1xyXG4gICAgdGhpcy5lbWl0SWRzQ2hhbmdlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxkaXY+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZElkKClcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZF9jaXJjbGU8L21hdC1pY29uPiBJRFxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPHRhYmxlICpuZ0lmPVwiZW50cmllcy52YWx1ZT8ubGVuZ3RoXCI+XHJcbiAgICA8dGhlYWQ+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICA8dGg+c2NvcGU8L3RoPlxyXG4gICAgICAgIDx0aD52YWx1ZTwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RoZWFkPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICA8dHJcclxuICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgIGxldCBlbnRyeSBvZiBlbnRyaWVzLnZhbHVlO1xyXG4gICAgICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgICAgIGxldCBmaXJzdCA9IGZpcnN0O1xyXG4gICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx0ZD5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB0aGlzIElEXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJZChlbnRyeSwgaSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiTW92ZSB0aGlzIElEIHVwXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpcnN0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJZFVwKGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X3Vwd2FyZDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiTW92ZSB0aGlzIElEIGRvd25cIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibGFzdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJtb3ZlSWREb3duKGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEZWxldGUgdGhpcyBJRFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJZChpKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5yZW1vdmVfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkPnt7IGVudHJ5LnNjb3BlIH19PC90ZD5cclxuICAgICAgICA8dGQ+e3sgZW50cnkudmFsdWUgfX08L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT5cclxuICA8L3RhYmxlPlxyXG5cclxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBbZXhwYW5kZWRdPVwiZWRpdGVkXCIgW2Rpc2FibGVkXT1cIiFlZGl0ZWRcIj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5JRDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8Y2FkbXVzLXJlZnMtYXNzZXJ0ZWQtaWRcclxuICAgICAgW2hhc1N1Ym1pdF09XCJ0cnVlXCJcclxuICAgICAgW2lkXT1cImVkaXRlZFwiXHJcbiAgICAgIChpZENoYW5nZSk9XCJvbklkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoZWRpdG9yQ2xvc2UpPVwiY2xvc2VJZCgpXCJcclxuICAgID48L2NhZG11cy1yZWZzLWFzc2VydGVkLWlkPlxyXG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
@@ -8,15 +8,20 @@ import { MatIconModule } from '@angular/material/icon';
|
|
|
8
8
|
import { MatInputModule } from '@angular/material/input';
|
|
9
9
|
import { MatSelectModule } from '@angular/material/select';
|
|
10
10
|
import { CadmusCoreModule } from '@myrmidon/cadmus-core';
|
|
11
|
+
import { CadmusApiModule } from '@myrmidon/cadmus-api';
|
|
11
12
|
import { CadmusRefsAssertionModule } from '@myrmidon/cadmus-refs-assertion';
|
|
12
13
|
import { CadmusRefsDocReferencesModule } from '@myrmidon/cadmus-refs-doc-references';
|
|
14
|
+
import { CadmusRefsLookupModule } from '@myrmidon/cadmus-refs-lookup';
|
|
13
15
|
import { AssertedIdComponent } from './asserted-id/asserted-id.component';
|
|
14
16
|
import { AssertedIdsComponent } from './asserted-ids/asserted-ids.component';
|
|
17
|
+
import { ScopedPinLookupComponent } from './scoped-pin-lookup/scoped-pin-lookup.component';
|
|
15
18
|
import * as i0 from "@angular/core";
|
|
16
19
|
export class CadmusRefsAssertedIdsModule {
|
|
17
20
|
}
|
|
18
|
-
CadmusRefsAssertedIdsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
19
|
-
CadmusRefsAssertedIdsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
21
|
+
CadmusRefsAssertedIdsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CadmusRefsAssertedIdsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
+
CadmusRefsAssertedIdsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: CadmusRefsAssertedIdsModule, declarations: [AssertedIdComponent,
|
|
23
|
+
AssertedIdsComponent,
|
|
24
|
+
ScopedPinLookupComponent], imports: [CommonModule,
|
|
20
25
|
FormsModule,
|
|
21
26
|
ReactiveFormsModule,
|
|
22
27
|
// material
|
|
@@ -29,8 +34,12 @@ CadmusRefsAssertedIdsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0
|
|
|
29
34
|
// Cadmus
|
|
30
35
|
CadmusCoreModule,
|
|
31
36
|
CadmusRefsDocReferencesModule,
|
|
32
|
-
CadmusRefsAssertionModule
|
|
33
|
-
|
|
37
|
+
CadmusRefsAssertionModule,
|
|
38
|
+
CadmusRefsLookupModule,
|
|
39
|
+
CadmusApiModule], exports: [AssertedIdComponent,
|
|
40
|
+
AssertedIdsComponent,
|
|
41
|
+
ScopedPinLookupComponent] });
|
|
42
|
+
CadmusRefsAssertedIdsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CadmusRefsAssertedIdsModule, imports: [CommonModule,
|
|
34
43
|
FormsModule,
|
|
35
44
|
ReactiveFormsModule,
|
|
36
45
|
// material
|
|
@@ -43,11 +52,17 @@ CadmusRefsAssertedIdsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0
|
|
|
43
52
|
// Cadmus
|
|
44
53
|
CadmusCoreModule,
|
|
45
54
|
CadmusRefsDocReferencesModule,
|
|
46
|
-
CadmusRefsAssertionModule
|
|
47
|
-
|
|
55
|
+
CadmusRefsAssertionModule,
|
|
56
|
+
CadmusRefsLookupModule,
|
|
57
|
+
CadmusApiModule] });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CadmusRefsAssertedIdsModule, decorators: [{
|
|
48
59
|
type: NgModule,
|
|
49
60
|
args: [{
|
|
50
|
-
declarations: [
|
|
61
|
+
declarations: [
|
|
62
|
+
AssertedIdComponent,
|
|
63
|
+
AssertedIdsComponent,
|
|
64
|
+
ScopedPinLookupComponent,
|
|
65
|
+
],
|
|
51
66
|
imports: [
|
|
52
67
|
CommonModule,
|
|
53
68
|
FormsModule,
|
|
@@ -63,8 +78,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
63
78
|
CadmusCoreModule,
|
|
64
79
|
CadmusRefsDocReferencesModule,
|
|
65
80
|
CadmusRefsAssertionModule,
|
|
81
|
+
CadmusRefsLookupModule,
|
|
82
|
+
CadmusApiModule,
|
|
83
|
+
],
|
|
84
|
+
exports: [
|
|
85
|
+
AssertedIdComponent,
|
|
86
|
+
AssertedIdsComponent,
|
|
87
|
+
ScopedPinLookupComponent,
|
|
66
88
|
],
|
|
67
|
-
exports: [AssertedIdComponent, AssertedIdsComponent],
|
|
68
89
|
}]
|
|
69
90
|
}] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FkbXVzLXJlZnMtYXNzZXJ0ZWQtaWRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1yZWZzLWFzc2VydGVkLWlkcy9zcmMvbGliL2NhZG11cy1yZWZzLWFzc2VydGVkLWlkcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBZ0MzRixNQUFNLE9BQU8sMkJBQTJCOzt3SEFBM0IsMkJBQTJCO3lIQUEzQiwyQkFBMkIsaUJBNUJwQyxtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLHdCQUF3QixhQUd4QixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxlQUFlO1FBQ2YsU0FBUztRQUNULGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0QixlQUFlLGFBR2YsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQix3QkFBd0I7eUhBR2YsMkJBQTJCLFlBdkJwQyxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxlQUFlO1FBQ2YsU0FBUztRQUNULGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0QixlQUFlOzJGQVFOLDJCQUEyQjtrQkE5QnZDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQiw2QkFBNkI7d0JBQzdCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5pbXBvcnQgeyBDYWRtdXNDb3JlTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1jb3JlJztcbmltcG9ydCB7IENhZG11c0FwaU1vZHVsZSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtYXBpJztcbmltcG9ydCB7IENhZG11c1JlZnNBc3NlcnRpb25Nb2R1bGUgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLXJlZnMtYXNzZXJ0aW9uJztcbmltcG9ydCB7IENhZG11c1JlZnNEb2NSZWZlcmVuY2VzTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1yZWZzLWRvYy1yZWZlcmVuY2VzJztcbmltcG9ydCB7IENhZG11c1JlZnNMb29rdXBNb2R1bGUgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLXJlZnMtbG9va3VwJztcblxuaW1wb3J0IHsgQXNzZXJ0ZWRJZENvbXBvbmVudCB9IGZyb20gJy4vYXNzZXJ0ZWQtaWQvYXNzZXJ0ZWQtaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2VydGVkSWRzQ29tcG9uZW50IH0gZnJvbSAnLi9hc3NlcnRlZC1pZHMvYXNzZXJ0ZWQtaWRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY29wZWRQaW5Mb29rdXBDb21wb25lbnQgfSBmcm9tICcuL3Njb3BlZC1waW4tbG9va3VwL3Njb3BlZC1waW4tbG9va3VwLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFzc2VydGVkSWRDb21wb25lbnQsXG4gICAgQXNzZXJ0ZWRJZHNDb21wb25lbnQsXG4gICAgU2NvcGVkUGluTG9va3VwQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgLy8gbWF0ZXJpYWxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAvLyBDYWRtdXNcbiAgICBDYWRtdXNDb3JlTW9kdWxlLFxuICAgIENhZG11c1JlZnNEb2NSZWZlcmVuY2VzTW9kdWxlLFxuICAgIENhZG11c1JlZnNBc3NlcnRpb25Nb2R1bGUsXG4gICAgQ2FkbXVzUmVmc0xvb2t1cE1vZHVsZSxcbiAgICBDYWRtdXNBcGlNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBc3NlcnRlZElkQ29tcG9uZW50LFxuICAgIEFzc2VydGVkSWRzQ29tcG9uZW50LFxuICAgIFNjb3BlZFBpbkxvb2t1cENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FkbXVzUmVmc0Fzc2VydGVkSWRzTW9kdWxlIHt9XG4iXX0=
|