@huntsman-cancer-institute/navigation 17.11.1 → 17.11.3
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/components/li-nav.component.d.ts +2 -1
- package/esm2022/components/li-nav.component.mjs +15 -10
- package/esm2022/components/nav.component.mjs +1 -1
- package/fesm2022/huntsman-cancer-institute-navigation.mjs +14 -9
- package/fesm2022/huntsman-cancer-institute-navigation.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ export declare class LiNavComponent extends NavComponent {
|
|
|
14
14
|
spanClass: string;
|
|
15
15
|
iClass: string;
|
|
16
16
|
imgSrc: string;
|
|
17
|
+
altText: string;
|
|
17
18
|
iText: string;
|
|
18
19
|
iRight: boolean;
|
|
19
20
|
badgeCount: Subject<number>;
|
|
@@ -27,5 +28,5 @@ export declare class LiNavComponent extends NavComponent {
|
|
|
27
28
|
setConfig(config: any): void;
|
|
28
29
|
updateConfig(config: any): void;
|
|
29
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<LiNavComponent, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LiNavComponent, "hci-li", never, { "liClass": { "alias": "liClass"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "queryParamsHandling": { "alias": "queryParamsHandling"; "required": false; }; "aClass": { "alias": "aClass"; "required": false; }; "spanClass": { "alias": "spanClass"; "required": false; }; "iClass": { "alias": "iClass"; "required": false; }; "imgSrc": { "alias": "imgSrc"; "required": false; }; "iText": { "alias": "iText"; "required": false; }; "iRight": { "alias": "iRight"; "required": false; }; "badgeCount": { "alias": "badgeCount"; "required": false; }; "badgeLoading": { "alias": "badgeLoading"; "required": false; }; "showValueFlag": { "alias": "showValueFlag"; "required": false; }; "showValue": { "alias": "showValue"; "required": false; }; "showValueClass": { "alias": "showValueClass"; "required": false; }; "liClick": { "alias": "liClick"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LiNavComponent, "hci-li", never, { "liClass": { "alias": "liClass"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "route": { "alias": "route"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "queryParamsHandling": { "alias": "queryParamsHandling"; "required": false; }; "aClass": { "alias": "aClass"; "required": false; }; "spanClass": { "alias": "spanClass"; "required": false; }; "iClass": { "alias": "iClass"; "required": false; }; "imgSrc": { "alias": "imgSrc"; "required": false; }; "altText": { "alias": "altText"; "required": false; }; "iText": { "alias": "iText"; "required": false; }; "iRight": { "alias": "iRight"; "required": false; }; "badgeCount": { "alias": "badgeCount"; "required": false; }; "badgeLoading": { "alias": "badgeLoading"; "required": false; }; "showValueFlag": { "alias": "showValueFlag"; "required": false; }; "showValue": { "alias": "showValue"; "required": false; }; "showValueClass": { "alias": "showValueClass"; "required": false; }; "liClick": { "alias": "liClick"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
32
|
}
|
|
@@ -75,6 +75,9 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
75
75
|
if (config.imgSrc) {
|
|
76
76
|
this.imgSrc = config.imgSrc;
|
|
77
77
|
}
|
|
78
|
+
if (config.altText) {
|
|
79
|
+
this.altText = config.altText;
|
|
80
|
+
}
|
|
78
81
|
if (config.iText) {
|
|
79
82
|
this.iText = config.iText;
|
|
80
83
|
}
|
|
@@ -102,7 +105,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
102
105
|
super.updateConfig(config);
|
|
103
106
|
}
|
|
104
107
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LiNavComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i1.NavigationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LiNavComponent, selector: "hci-li", inputs: { liClass: "liClass", href: "href", target: "target", route: "route", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", aClass: "aClass", spanClass: "spanClass", iClass: "iClass", imgSrc: "imgSrc", iText: "iText", iRight: "iRight", badgeCount: "badgeCount", badgeLoading: "badgeLoading", showValueFlag: "showValueFlag", showValue: "showValue", showValueClass: "showValueClass", liClick: "liClick" }, usesInheritance: true, ngImport: i0, template: `
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LiNavComponent, selector: "hci-li", inputs: { liClass: "liClass", href: "href", target: "target", route: "route", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", aClass: "aClass", spanClass: "spanClass", iClass: "iClass", imgSrc: "imgSrc", altText: "altText", iText: "iText", iRight: "iRight", badgeCount: "badgeCount", badgeLoading: "badgeLoading", showValueFlag: "showValueFlag", showValue: "showValue", showValueClass: "showValueClass", liClick: "liClick" }, usesInheritance: true, ngImport: i0, template: `
|
|
106
109
|
<ng-container>
|
|
107
110
|
<li [id]="id + '-li'" class="hci-li {{liClass}}" (click)="handleLiClick($event)">
|
|
108
111
|
<a *ngIf="!href && !route" class="hci-li-a {{aClass}}">
|
|
@@ -112,7 +115,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
112
115
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
113
116
|
</i>
|
|
114
117
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
115
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
118
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
116
119
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
117
120
|
</i>
|
|
118
121
|
<span riRippleEffect class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -122,7 +125,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
122
125
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
123
126
|
</i>
|
|
124
127
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
125
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
128
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
126
129
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
127
130
|
</i>
|
|
128
131
|
</a>
|
|
@@ -134,7 +137,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
134
137
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
135
138
|
</i>
|
|
136
139
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
137
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
140
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
138
141
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
139
142
|
</i>
|
|
140
143
|
<span class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -144,7 +147,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
144
147
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
145
148
|
</i>
|
|
146
149
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
147
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
150
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
148
151
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
149
152
|
</i>
|
|
150
153
|
</a>
|
|
@@ -200,7 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
200
203
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
201
204
|
</i>
|
|
202
205
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
203
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
206
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
204
207
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
205
208
|
</i>
|
|
206
209
|
<span riRippleEffect class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -210,7 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
210
213
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
211
214
|
</i>
|
|
212
215
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
213
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
216
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
214
217
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
215
218
|
</i>
|
|
216
219
|
</a>
|
|
@@ -222,7 +225,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
222
225
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
223
226
|
</i>
|
|
224
227
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
225
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
228
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
226
229
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
227
230
|
</i>
|
|
228
231
|
<span class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -232,7 +235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
232
235
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
233
236
|
</i>
|
|
234
237
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
235
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
238
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
236
239
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
237
240
|
</i>
|
|
238
241
|
</a>
|
|
@@ -290,6 +293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
290
293
|
type: Input
|
|
291
294
|
}], imgSrc: [{
|
|
292
295
|
type: Input
|
|
296
|
+
}], altText: [{
|
|
297
|
+
type: Input
|
|
293
298
|
}], iText: [{
|
|
294
299
|
type: Input
|
|
295
300
|
}], iRight: [{
|
|
@@ -307,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
307
312
|
}], liClick: [{
|
|
308
313
|
type: Input
|
|
309
314
|
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGktbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbGktbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQXlJMUQsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLFlBQVk7SUF1QjlDLFlBQVksVUFBc0IsRUFBRSxRQUFtQixFQUFFLFFBQWtDLEVBQUUsaUJBQW9DLEVBQUUsaUJBQW9DO1FBQ3JLLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBdEJyRSxZQUFPLEdBQVcsVUFBVSxDQUFDO1FBSzdCLHdCQUFtQixHQUFXLE9BQU8sQ0FBQztRQUN0QyxXQUFNLEdBQVcsVUFBVSxDQUFDO1FBSzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUU1QixZQUFPLEdBQWEsR0FBRyxFQUFFO1FBQ2xDLENBQUMsQ0FBQTtJQUlELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQXRIVSxjQUFjO21HQUFkLGNBQWMsbWZBbElyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQStFQzs7QUFtRE0sY0FBYztJQXZJMUIsYUFBYSxDQUFDLGdCQUFnQixDQUFDO3FDQThKTixVQUFVLEVBQVksU0FBUyxFQUFZLHdCQUF3QixFQUFxQixpQkFBaUIsRUFBcUIsaUJBQWlCO0dBdkI1SixjQUFjLENBdUgxQjs7NEZBdkhZLGNBQWM7a0JBdEkxQixTQUFTOytCQUVJLFFBQVEsWUFFaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0ErRUM7OE1BcURJLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL3V0aWxzXCI7XHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnRUeXBlKFwiTGlOYXZDb21wb25lbnRcIilcclxuQENvbXBvbmVudChcclxuICB7XHJcbiAgICBzZWxlY3RvcjogXCJoY2ktbGlcIixcclxuICAgIHRlbXBsYXRlOlxyXG4gICAgICBgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxsaSBbaWRdPVwiaWQgKyAnLWxpJ1wiIGNsYXNzPVwiaGNpLWxpIHt7bGlDbGFzc319XCIgKGNsaWNrKT1cImhhbmRsZUxpQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8YSAqbmdJZj1cIiFocmVmICYmICFyb3V0ZVwiIGNsYXNzPVwiaGNpLWxpLWEge3thQ2xhc3N9fVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpQ2xhc3NcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7e2lUZXh0fX1cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWdTcmMgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gcmlSaXBwbGVFZmZlY3QgY2xhc3M9XCJoY2ktbGktc3BhbiB7e3NwYW5DbGFzc319XCI+e3t0aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7e2lDbGFzc319XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3tpVGV4dH19XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaW1nU3JjICYmIGlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgIDxhICpuZ0lmPVwiaHJlZlwiIFtocmVmXT1cImhyZWZcIiBbdGFyZ2V0XT1cInRhcmdldFwiIGNsYXNzPVwiaGNpLWxpLWEge3thQ2xhc3N9fVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpQ2xhc3NcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7e2lUZXh0fX1cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWdTcmMgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoY2ktbGktc3BhbiB7e3NwYW5DbGFzc319XCI+e3t0aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7e2lDbGFzc319XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3tpVGV4dH19XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaW1nU3JjICAmJiBpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2ltZ1NyY319XCIgW2NsYXNzXT1cImlDbGFzc1wiIFtjbGFzcy5oY2ktbGktaW1nXT1cInRydWVcIi8+XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICA8YSAqbmdJZj1cInJvdXRlXCJcclxuICAgICAgICAgICAgICAgcm91dGVyTGluaz1cInt7cm91dGV9fVwiXHJcbiAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmUtbGlua1wiXHJcbiAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJ7e3F1ZXJ5UGFyYW1zSGFuZGxpbmd9fVwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiaGNpLWxpLWEge3thQ2xhc3N9fVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpQ2xhc3NcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7e2lUZXh0fX1cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWdTcmMgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7e3NwYW5DbGFzc319XCI+e3t0aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImlDbGFzc1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7aVRleHR9fVxyXG4gICAgICAgICAgICAgICAgPGhjaS1iYWRnZSAqbmdJZj1cImJhZGdlQ291bnRcIiBbY291bnRTdWJqZWN0XT1cImJhZGdlQ291bnRcIiBbY291bnRMb2FkaW5nXT1cImJhZGdlTG9hZGluZ1wiPjwvaGNpLWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImltZ1NyYyAmJiBpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2ltZ1NyY319XCIgW2NsYXNzXT1cImlDbGFzc1wiIFtjbGFzcy5oY2ktbGktaW1nXT1cInRydWVcIi8+XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICAgIDxwIGNsYXNzPVwie3tzaG93VmFsdWVDbGFzc319XCIgKm5nSWY9XCJzaG93VmFsdWVGbGFnXCI+XHJcbiAgICAgICAgICAgIHt7c2hvd1ZhbHVlfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgYCxcclxuICAgIHN0eWxlczogW1xyXG4gICAgICBgXHJcbiAgICAgICAgLmhjaS1kaWMtbGktbCB7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgIGJvcmRlcjogMCB2YXIoLS1ncmV5d2FybS1tZWRkYXJrKSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oY2ktZGljLWxpLXIge1xyXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgYm9yZGVyOiAwIHZhcigtLWdyZXl3YXJtLW1lZGRhcmspICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogLS0tLS0tLSBCVE4gR1JBRCBCTFVFIDEgU1RZTEVTIERJQ1RJT05BUlkgQlVUVE9OIFNIT1cgQUxMIC0tLS0tLS0gKi9cclxuICAgICAgICAuaGNpLWRpYy1zcGFuLTEge1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlLWxpZ2h0ZXN0KTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHZhcigtLWJsdWV3YXJtLWRhcmspIDMwJSwgdmFyKC0tYmx1ZXdhcm0tbWVkZGFyaykgMTAwJSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiAtLS0tLS0tIEJUTiBHUkFEIEJMVUUgMSBTVFlMRVMgRElDVElPTkFSWSBCVVRUT04gU0hPVyBBTEwgQUNUSVZFIC0tLS0tLS0gKi9cclxuICAgICAgICAuaGNpLWRpYy1zcGFuLTMge1xyXG4gICAgICAgICAgY29sb3I6IHZhcigtLXdoaXRlLWxpZ2h0ZXN0KTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHZhcigtLWJsdWV3YXJtLW1lZGRhcmspIDAlLCB2YXIoLS1ibHVld2FybS1kYXJrKSAxMDAlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICNmaWx0ZXJSZWFkT25seSB7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oY2ktZGljLXNob3ctdmFsdWUge1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICBgXHJcbiAgICBdXHJcbiAgfVxyXG4pXHJcbmV4cG9ydCBjbGFzcyBMaU5hdkNvbXBvbmVudCBleHRlbmRzIE5hdkNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGxpQ2xhc3M6IHN0cmluZyA9IFwibmF2LWl0ZW1cIjtcclxuICBASW5wdXQoKSBocmVmOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGFyZ2V0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm91dGU6IHN0cmluZztcclxuICBASW5wdXQoKSBxdWVyeVBhcmFtczogT2JqZWN0O1xyXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IHN0cmluZyA9IFwibWVyZ2VcIjtcclxuICBASW5wdXQoKSBhQ2xhc3M6IHN0cmluZyA9IFwibmF2LWxpbmtcIjtcclxuICBASW5wdXQoKSBzcGFuQ2xhc3M6IHN0cmluZztcclxuICBASW5wdXQoKSBpQ2xhc3M6IHN0cmluZztcclxuICBASW5wdXQoKSBpbWdTcmM6IHN0cmluZztcclxuICBASW5wdXQoKSBpVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlSaWdodDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGJhZGdlQ291bnQ6IFN1YmplY3Q8bnVtYmVyPjtcclxuICBASW5wdXQoKSBiYWRnZUxvYWRpbmc6IFN1YmplY3Q8Ym9vbGVhbj47XHJcbiAgQElucHV0KCkgc2hvd1ZhbHVlRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBzaG93VmFsdWVDbGFzczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgbGlDbGljazogRnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCByZW5kZXJlcjogUmVuZGVyZXIyLCByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTGlDbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMubGlDbGljayh0aGlzLCB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLCBldmVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb25maWcoY29uZmlnKSB7XHJcbiAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWcpIHtcclxuICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmxpQ2xhc3MpIHtcclxuICAgICAgdGhpcy5saUNsYXNzID0gY29uZmlnLmxpQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5ocmVmKSB7XHJcbiAgICAgIHRoaXMuaHJlZiA9IGNvbmZpZy5ocmVmO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcudGFyZ2V0KSB7XHJcbiAgICAgIHRoaXMudGFyZ2V0ID0gY29uZmlnLnRhcmdldDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnJvdXRlKSB7XHJcbiAgICAgIHRoaXMucm91dGUgPSBjb25maWcucm91dGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5xdWVyeVBhcmFtcykge1xyXG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gY29uZmlnLnF1ZXJ5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcucXVlcnlQYXJhbXNIYW5kbGluZykge1xyXG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgPSBjb25maWcucXVlcnlQYXJhbXNIYW5kbGluZztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmFDbGFzcykge1xyXG4gICAgICB0aGlzLmFDbGFzcyA9IGNvbmZpZy5hQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5zcGFuQ2xhc3MpIHtcclxuICAgICAgdGhpcy5zcGFuQ2xhc3MgPSBjb25maWcuc3BhbkNsYXNzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuaUNsYXNzKSB7XHJcbiAgICAgIGlmICh0aGlzLmlDbGFzcyAhPT0gY29uZmlnLmlDbGFzcykge1xyXG4gICAgICAgIHRoaXMuaUNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlDbGFzcyA9IGNvbmZpZy5pQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5pbWdTcmMpIHtcclxuICAgICAgdGhpcy5pbWdTcmMgPSBjb25maWcuaW1nU3JjO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuaVRleHQpIHtcclxuICAgICAgdGhpcy5pVGV4dCA9IGNvbmZpZy5pVGV4dDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmlSaWdodCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaVJpZ2h0ID0gY29uZmlnLmlSaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmxpQ2xpY2spIHtcclxuICAgICAgdGhpcy5saUNsaWNrID0gY29uZmlnLmxpQ2xpY2s7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5iYWRnZUNvdW50KSB7XHJcbiAgICAgIHRoaXMuYmFkZ2VDb3VudCA9IGNvbmZpZy5iYWRnZUNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuYmFkZ2VMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuYmFkZ2VMb2FkaW5nID0gY29uZmlnLmJhZGdlTG9hZGluZztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnNob3dWYWx1ZUZsYWcpIHtcclxuICAgICAgdGhpcy5zaG93VmFsdWVGbGFnID0gY29uZmlnLnNob3dWYWx1ZUZsYWc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5zaG93VmFsdWUpIHtcclxuICAgICAgdGhpcy5zaG93VmFsdWUgPSBjb25maWcuc2hvd1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuc2hvd1ZhbHVlQ2xhc3MpIHtcclxuICAgICAgdGhpcy5zaG93VmFsdWVDbGFzcyA9IGNvbmZpZy5zaG93VmFsdWVDbGFzcztcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGktbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbGktbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQXlJMUQsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLFlBQVk7SUF3QjlDLFlBQVksVUFBc0IsRUFBRSxRQUFtQixFQUFFLFFBQWtDLEVBQUUsaUJBQW9DLEVBQUUsaUJBQW9DO1FBQ3JLLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBdkJyRSxZQUFPLEdBQVcsVUFBVSxDQUFDO1FBSzdCLHdCQUFtQixHQUFXLE9BQU8sQ0FBQztRQUN0QyxXQUFNLEdBQVcsVUFBVSxDQUFDO1FBTTVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUU1QixZQUFPLEdBQWEsR0FBRyxFQUFFO1FBQ2xDLENBQUMsQ0FBQTtJQUlELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzlDLENBQUM7UUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7K0dBM0hVLGNBQWM7bUdBQWQsY0FBYyx1Z0JBbElyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQStFQzs7QUFtRE0sY0FBYztJQXZJMUIsYUFBYSxDQUFDLGdCQUFnQixDQUFDO3FDQStKTixVQUFVLEVBQVksU0FBUyxFQUFZLHdCQUF3QixFQUFxQixpQkFBaUIsRUFBcUIsaUJBQWlCO0dBeEI1SixjQUFjLENBNEgxQjs7NEZBNUhZLGNBQWM7a0JBdEkxQixTQUFTOytCQUVJLFFBQVEsWUFFaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0ErRUM7OE1BcURJLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5pbXBvcnQge05hdkNvbXBvbmVudH0gZnJvbSBcIi4vbmF2LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50VHlwZShcIkxpTmF2Q29tcG9uZW50XCIpXHJcbkBDb21wb25lbnQoXHJcbiAge1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLWxpXCIsXHJcbiAgICB0ZW1wbGF0ZTpcclxuICAgICAgYFxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bGkgW2lkXT1cImlkICsgJy1saSdcIiBjbGFzcz1cImhjaS1saSB7e2xpQ2xhc3N9fVwiIChjbGljayk9XCJoYW5kbGVMaUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGEgKm5nSWY9XCIhaHJlZiAmJiAhcm91dGVcIiBjbGFzcz1cImhjaS1saS1hIHt7YUNsYXNzfX1cIj5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFpbWdTcmMgJiYgaUNsYXNzICYmICFpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaUNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3tpVGV4dH19XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaW1nU3JjICYmICFpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJ7e2ltZ1NyY319XCIgW2NsYXNzXT1cImlDbGFzc1wiIFtjbGFzcy5oY2ktbGktaW1nXT1cInRydWVcIiBbYWx0XT1cImFsdFRleHRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGhjaS1iYWRnZSAqbmdJZj1cImJhZGdlQ291bnRcIiBbY291bnRTdWJqZWN0XT1cImJhZGdlQ291bnRcIiBbY291bnRMb2FkaW5nXT1cImJhZGdlTG9hZGluZ1wiPjwvaGNpLWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiByaVJpcHBsZUVmZmVjdCBjbGFzcz1cImhjaS1saS1zcGFuIHt7c3BhbkNsYXNzfX1cIj57e3RpdGxlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhaW1nU3JjICYmIGlDbGFzcyAmJiBpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7aUNsYXNzfX1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7e2lUZXh0fX1cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWdTcmMgJiYgaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tpbWdTcmN9fVwiIFtjbGFzc109XCJpQ2xhc3NcIiBbY2xhc3MuaGNpLWxpLWltZ109XCJ0cnVlXCIgW2FsdF09XCJhbHRUZXh0XCIgLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgIDxhICpuZ0lmPVwiaHJlZlwiIFtocmVmXT1cImhyZWZcIiBbdGFyZ2V0XT1cInRhcmdldFwiIGNsYXNzPVwiaGNpLWxpLWEge3thQ2xhc3N9fVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWltZ1NyYyAmJiBpQ2xhc3MgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpQ2xhc3NcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7e2lUZXh0fX1cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpbWdTcmMgJiYgIWlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiIFthbHRdPVwiYWx0VGV4dFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGNpLWxpLXNwYW4ge3tzcGFuQ2xhc3N9fVwiPnt7dGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFpbWdTcmMgJiYgaUNsYXNzICYmIGlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3tpQ2xhc3N9fVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7aVRleHR9fVxyXG4gICAgICAgICAgICAgICAgPGhjaS1iYWRnZSAqbmdJZj1cImJhZGdlQ291bnRcIiBbY291bnRTdWJqZWN0XT1cImJhZGdlQ291bnRcIiBbY291bnRMb2FkaW5nXT1cImJhZGdlTG9hZGluZ1wiPjwvaGNpLWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImltZ1NyYyAgJiYgaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tpbWdTcmN9fVwiIFtjbGFzc109XCJpQ2xhc3NcIiBbY2xhc3MuaGNpLWxpLWltZ109XCJ0cnVlXCIgW2FsdF09XCJhbHRUZXh0XCIgLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgIDxhICpuZ0lmPVwicm91dGVcIlxyXG4gICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwie3tyb3V0ZX19XCJcclxuICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcclxuICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cInt7cXVlcnlQYXJhbXNIYW5kbGluZ319XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJoY2ktbGktYSB7e2FDbGFzc319XCI+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhaW1nU3JjICYmIGlDbGFzcyAmJiAhaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImlDbGFzc1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7aVRleHR9fVxyXG4gICAgICAgICAgICAgICAgPGhjaS1iYWRnZSAqbmdJZj1cImJhZGdlQ291bnRcIiBbY291bnRTdWJqZWN0XT1cImJhZGdlQ291bnRcIiBbY291bnRMb2FkaW5nXT1cImJhZGdlTG9hZGluZ1wiPjwvaGNpLWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cImltZ1NyYyAmJiAhaVJpZ2h0XCIgY2xhc3M9XCJoY2ktbGktaS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3tpbWdTcmN9fVwiIFtjbGFzc109XCJpQ2xhc3NcIiBbY2xhc3MuaGNpLWxpLWltZ109XCJ0cnVlXCIvPlxyXG4gICAgICAgICAgICAgICAgPGhjaS1iYWRnZSAqbmdJZj1cImJhZGdlQ291bnRcIiBbY291bnRTdWJqZWN0XT1cImJhZGdlQ291bnRcIiBbY291bnRMb2FkaW5nXT1cImJhZGdlTG9hZGluZ1wiPjwvaGNpLWJhZGdlPlxyXG4gICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7c3BhbkNsYXNzfX1cIj57e3RpdGxlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhaW1nU3JjICYmIGlDbGFzcyAmJiBpUmlnaHRcIiBjbGFzcz1cImhjaS1saS1pXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaUNsYXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3tpVGV4dH19XHJcbiAgICAgICAgICAgICAgICA8aGNpLWJhZGdlICpuZ0lmPVwiYmFkZ2VDb3VudFwiIFtjb3VudFN1YmplY3RdPVwiYmFkZ2VDb3VudFwiIFtjb3VudExvYWRpbmddPVwiYmFkZ2VMb2FkaW5nXCI+PC9oY2ktYmFkZ2U+XHJcbiAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaW1nU3JjICYmIGlSaWdodFwiIGNsYXNzPVwiaGNpLWxpLWktaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cInt7aW1nU3JjfX1cIiBbY2xhc3NdPVwiaUNsYXNzXCIgW2NsYXNzLmhjaS1saS1pbWddPVwidHJ1ZVwiLz5cclxuICAgICAgICAgICAgICAgIDxoY2ktYmFkZ2UgKm5nSWY9XCJiYWRnZUNvdW50XCIgW2NvdW50U3ViamVjdF09XCJiYWRnZUNvdW50XCIgW2NvdW50TG9hZGluZ109XCJiYWRnZUxvYWRpbmdcIj48L2hjaS1iYWRnZT5cclxuICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ7e3Nob3dWYWx1ZUNsYXNzfX1cIiAqbmdJZj1cInNob3dWYWx1ZUZsYWdcIj5cclxuICAgICAgICAgICAge3tzaG93VmFsdWV9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICBgLFxyXG4gICAgc3R5bGVzOiBbXHJcbiAgICAgIGBcclxuICAgICAgICAuaGNpLWRpYy1saS1sIHtcclxuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgYm9yZGVyOiAwIHZhcigtLWdyZXl3YXJtLW1lZGRhcmspICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhjaS1kaWMtbGktciB7XHJcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICBib3JkZXI6IDAgdmFyKC0tZ3JleXdhcm0tbWVkZGFyaykgIWltcG9ydGFudDtcclxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiAtLS0tLS0tIEJUTiBHUkFEIEJMVUUgMSBTVFlMRVMgRElDVElPTkFSWSBCVVRUT04gU0hPVyBBTEwgLS0tLS0tLSAqL1xyXG4gICAgICAgIC5oY2ktZGljLXNwYW4tMSB7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUtbGlnaHRlc3QpO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAycHggIWltcG9ydGFudDtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdmFyKC0tYmx1ZXdhcm0tZGFyaykgMzAlLCB2YXIoLS1ibHVld2FybS1tZWRkYXJrKSAxMDAlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIC0tLS0tLS0gQlROIEdSQUQgQkxVRSAxIFNUWUxFUyBESUNUSU9OQVJZIEJVVFRPTiBTSE9XIEFMTCBBQ1RJVkUgLS0tLS0tLSAqL1xyXG4gICAgICAgIC5oY2ktZGljLXNwYW4tMyB7XHJcbiAgICAgICAgICBjb2xvcjogdmFyKC0td2hpdGUtbGlnaHRlc3QpO1xyXG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAycHggIWltcG9ydGFudDtcclxuICAgICAgICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdmFyKC0tYmx1ZXdhcm0tbWVkZGFyaykgMCUsIHZhcigtLWJsdWV3YXJtLWRhcmspIDEwMCUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgI2ZpbHRlclJlYWRPbmx5IHtcclxuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmhjaS1kaWMtc2hvdy12YWx1ZSB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgIGBcclxuICAgIF1cclxuICB9XHJcbilcclxuZXhwb3J0IGNsYXNzIExpTmF2Q29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgbGlDbGFzczogc3RyaW5nID0gXCJuYXYtaXRlbVwiO1xyXG4gIEBJbnB1dCgpIGhyZWY6IHN0cmluZztcclxuICBASW5wdXQoKSB0YXJnZXQ6IHN0cmluZztcclxuICBASW5wdXQoKSByb3V0ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiBPYmplY3Q7XHJcbiAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogc3RyaW5nID0gXCJtZXJnZVwiO1xyXG4gIEBJbnB1dCgpIGFDbGFzczogc3RyaW5nID0gXCJuYXYtbGlua1wiO1xyXG4gIEBJbnB1dCgpIHNwYW5DbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGltZ1NyYzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFsdFRleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBpVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlSaWdodDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGJhZGdlQ291bnQ6IFN1YmplY3Q8bnVtYmVyPjtcclxuICBASW5wdXQoKSBiYWRnZUxvYWRpbmc6IFN1YmplY3Q8Ym9vbGVhbj47XHJcbiAgQElucHV0KCkgc2hvd1ZhbHVlRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBzaG93VmFsdWVDbGFzczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgbGlDbGljazogRnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCByZW5kZXJlcjogUmVuZGVyZXIyLCByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTGlDbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMubGlDbGljayh0aGlzLCB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLCBldmVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRDb25maWcoY29uZmlnKSB7XHJcbiAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWcpIHtcclxuICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmxpQ2xhc3MpIHtcclxuICAgICAgdGhpcy5saUNsYXNzID0gY29uZmlnLmxpQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5ocmVmKSB7XHJcbiAgICAgIHRoaXMuaHJlZiA9IGNvbmZpZy5ocmVmO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcudGFyZ2V0KSB7XHJcbiAgICAgIHRoaXMudGFyZ2V0ID0gY29uZmlnLnRhcmdldDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnJvdXRlKSB7XHJcbiAgICAgIHRoaXMucm91dGUgPSBjb25maWcucm91dGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5xdWVyeVBhcmFtcykge1xyXG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gY29uZmlnLnF1ZXJ5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcucXVlcnlQYXJhbXNIYW5kbGluZykge1xyXG4gICAgICB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgPSBjb25maWcucXVlcnlQYXJhbXNIYW5kbGluZztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmFDbGFzcykge1xyXG4gICAgICB0aGlzLmFDbGFzcyA9IGNvbmZpZy5hQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5zcGFuQ2xhc3MpIHtcclxuICAgICAgdGhpcy5zcGFuQ2xhc3MgPSBjb25maWcuc3BhbkNsYXNzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuaUNsYXNzKSB7XHJcbiAgICAgIGlmICh0aGlzLmlDbGFzcyAhPT0gY29uZmlnLmlDbGFzcykge1xyXG4gICAgICAgIHRoaXMuaUNsYXNzID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlDbGFzcyA9IGNvbmZpZy5pQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5pbWdTcmMpIHtcclxuICAgICAgdGhpcy5pbWdTcmMgPSBjb25maWcuaW1nU3JjO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuYWx0VGV4dCkge1xyXG4gICAgICB0aGlzLmFsdFRleHQgPSBjb25maWcuYWx0VGV4dDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmlUZXh0KSB7XHJcbiAgICAgIHRoaXMuaVRleHQgPSBjb25maWcuaVRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5pUmlnaHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlSaWdodCA9IGNvbmZpZy5pUmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5saUNsaWNrKSB7XHJcbiAgICAgIHRoaXMubGlDbGljayA9IGNvbmZpZy5saUNsaWNrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuYmFkZ2VDb3VudCkge1xyXG4gICAgICB0aGlzLmJhZGdlQ291bnQgPSBjb25maWcuYmFkZ2VDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmJhZGdlTG9hZGluZykge1xyXG4gICAgICB0aGlzLmJhZGdlTG9hZGluZyA9IGNvbmZpZy5iYWRnZUxvYWRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5zaG93VmFsdWVGbGFnKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhbHVlRmxhZyA9IGNvbmZpZy5zaG93VmFsdWVGbGFnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuc2hvd1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gY29uZmlnLnNob3dWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnNob3dWYWx1ZUNsYXNzKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhbHVlQ2xhc3MgPSBjb25maWcuc2hvd1ZhbHVlQ2xhc3M7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -606,4 +606,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
606
606
|
}], isCCR: [{
|
|
607
607
|
type: Input
|
|
608
608
|
}] } });
|
|
609
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBU1QsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7OztBQUVqRTs7Ozs7OztHQU9HO0FBU0gsTUFBTSxPQUFPLFlBQVk7SUF1RHZCLFlBQVksVUFBc0IsRUFBRSxRQUFtQixFQUFFLFFBQWtDLEVBQUUsaUJBQW9DLEVBQUUsaUJBQW9DO1FBckQ5SixXQUFNLEdBQVE7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRU8sV0FBTSxHQUFZLEtBQUssQ0FBQztRQUt4QixxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFDbkMsd0JBQW1CLEdBQVcsV0FBVyxDQUFDO1FBQ2hDLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQ3BDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDaEM7Ozs7V0FJRztRQUNILGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBVTlCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCOzs7V0FHRztRQUNILGlCQUFZLEdBQWdCLElBQUksR0FBRyxFQUFVLENBQUM7UUFFOUM7Ozs7OztXQU1HO1FBQ0ssZUFBVSxHQUF5QixJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQU90RSxrQkFBYSxHQUFpQixJQUFJLFlB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QUFDO1lBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQzsrR0FscEJVLFlBQVk7bUdBQVosWUFBWSxxV0FMbkI7T0FDQzs7NEZBSU0sWUFBWTtrQkFSeEIsU0FBUzttQkFDUjtvQkFDRSxRQUFRLEVBQ047T0FDQztvQkFDSCxRQUFRLEVBQUUsU0FBUztpQkFDcEI7OE1BSVEsTUFBTTtzQkFBZCxLQUFLO2dCQUdVLEVBQUU7c0JBQWpCLEtBQUs7dUJBQUMsT0FBTztnQkFDTCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixLQUFLO3VCQUFDLFVBQVU7Z0JBQ1IsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBpc0Rldk1vZGUsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZSxcclxuICBUeXBlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld1JlZixcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIENvbXBvbmVudFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtSb2xlRW50aXR5fSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXNlclwiO1xyXG5pbXBvcnQge0NvbXBvbmVudEluamVjdG9yfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgdGhhdCBhbGwgbmF2aWdhdGlvbiBjb21wb25lbnRzIGV4dGVuZCBmcm9tLiAgVGhpcyBpbmNsdWRlcyBvdGhlciBzdGFuZGFsb25lIG1vZHVsZXMgc3VjaFxyXG4gKiBhcyBhIGhlYWRlciBvciBzaWRlYmFyLiAgSXQgY29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMsIGNvbmZpZ3VyYXRpb24gdG9vbHMsIGFuZCBmdW5jdGlvbnMgdG8gYWRkL2luc2VydCBvdGhlclxyXG4gKiBOYXZDb21wb25lbnRzLlxyXG4gKiBUaGUgY29uZmlnIHByb3BlcnR5IGlzIGFueSBvYmplY3QgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgcHJvcGVydGllcyB0aGF0IHNwZWNpZmllcyBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBDb21tb25cclxuICogcHJvcGVydGllcyBpbmNsdWRlIGlkLCB0aXRsZSwgcm9vdENsYXNzIGFuZCByb2xlTmFtZS4gIEV4dGVuZGluZyBjbGFzc2VzIG1heSBoYXZlIHRoZWlyIG93biBwcm9wZXJ0aWVzIHN1Y2ggYXMgZXh0cmFcclxuICogY3NzIGNsYXNzZXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG4gIHtcclxuICAgIHRlbXBsYXRlOlxyXG4gICAgICBgXHJcbiAgICAgIGAsXHJcbiAgICBzZWxlY3RvcjogXCJoY2ktbmF2XCJcclxuICB9XHJcbilcclxuZXhwb3J0IGNsYXNzIE5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHtcclxuICAgIHJlbmRlcmVkOiB0cnVlXHJcbiAgfTtcclxuICBASW5wdXQoXCJuYXZJZFwiKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzUm9vdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR5cGU6IFR5cGU8YW55PiB8IHN0cmluZztcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJvb3RDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJvbGVOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXV0aGVudGljYXRlZEtleTogc3RyaW5nID0gXCJBVVRIQ1wiO1xyXG4gIEBJbnB1dCgpIG5vdEF1dGhlbnRpY2F0ZWRLZXk6IHN0cmluZyA9IFwiTk9UX0FVVEhDXCI7XHJcbiAgQElucHV0KFwiY2hpbGRyZW5cIikgaW5wdXRDaGlsZHJlbjogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpc0NDUjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEFuIGFycmF5IG9mIGFsbCBjb21wb25lbnQgaW5zdGFuY2VzIG9mIGNoaWxkcmVuLiAgSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3ZSB0cnkgdG8gcmVuZGVyIGV2ZXJ5dGhpbmcgaW4gdGhlXHJcbiAgICogY2hpbGRyZW4gYXJyYXkuICBIb3dldmVyLCBpZiByb2xlcyBhcmUgbm90IG1ldCwgc29tZSBjaGlsZHJlbiBtYXkgbm90IGJlIHJlbmRlcmVkIHNvIG5vIGNvbXBvbmVudCBpbnN0YW5jZSB3aWxsXHJcbiAgICogZXhpc3QgZm9yIHRoZW0uXHJcbiAgICovXHJcbiAgY2hpbGRyZW46IE5hdkNvbXBvbmVudFtdID0gW107XHJcblxyXG4gIHR5cGVOYW1lOiBzdHJpbmc7XHJcblxyXG4gIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xyXG4gIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZTtcclxuICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XHJcblxyXG4gIGFmdGVyVmlld0luaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBIHNldCBvZiBjb250YWluZXIgbmFtZXMuICBTb21lIGNvbXBvbmVudHMgbWF5IG5vdCBkZWZpbmUgYSBjb250YWluZXIgd2hpbGUgb3RoZXJzIGp1c3QgaGF2ZVxyXG4gICAqIG9uZSAoYSBcImRlZmF1bHRcIiBjb250YWluZXIpLlxyXG4gICAqL1xyXG4gIGNvbnRhaW5lclNldDogU2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBtYXAgb2YgSURzIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZpZXdSZWYuICBXaGVuIHdlIGR5bmFtaWNhbGx5IGluamVjdCBhIG5ldyBjb21wb25lbnQsIHdlIGZpcnN0IHB1bGwgdGhlIGNyZWF0ZWRcclxuICAgKiBDb21wb25lbnRSZWYgYW5kIGZyb20gdGhlcmUgaXRzIFZpZXdSZWYuICBXZSBuZWVkIHRoZSBWaWV3UmVmIHRvIGRldGVybWluZSB0aGUgY29tcG9uZW50J3MgcG9zaXRpb24gaW4gdGhlXHJcbiAgICogVmlld0NvbnRhaW5lclJlZi4gIFdpdGggYSBzZXQgb2YgVmlld1JlZnMsIHdlIGNhbiBkZXRhY2ggdGhlbSBmcm9tIHRoZSBjb250YWluZXIgYW5kIHJlLWFkZCB0aGVtIGluIGEgZGlmZmVyZW50IG9yZGVyXHJcbiAgICogYmFzZWQgb24gdGhlIGNvbXBvbmVudCdzIHNvcnRPcmRlciAod2hpY2ggaXMgYmFzZWQgb24gdGhlIHBvc2l0aW9uIGluIHRoZSBjaGlsZHJlbiBhcnJheS4gIFRoaXMgbWFwIHByb3ZpZGVzIHRoZVxyXG4gICAqIGNvbXBvbmVudCB0byB2aWV3IHJlbGF0aW9uc2hpcC5cclxuICAgKi9cclxuICBwcml2YXRlIHZpZXdSZWZNYXA6IE1hcDxzdHJpbmcsIFZpZXdSZWY+ID0gbmV3IE1hcDxzdHJpbmcsIFZpZXdSZWY+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50LiAgV2hlbiBhIGNoaWxkIGlzIGFkZGVkLCBhIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGlzIGF1dG9tYXRpY2FsbHkgc2V0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGFyZW50OiBOYXZDb21wb25lbnQ7XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XHJcbiAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICB0aGlzLnJlc29sdmVyID0gcmVzb2x2ZXI7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gbmF2aWdhdGlvblNlcnZpY2U7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XHJcblxyXG4gICAgdGhpcy5jb250YWluZXJTZXQuYWRkKFwiZGVmYXVsdFwiKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNSb290KSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRVc2VyUm9sZXMoKS5zdWJzY3JpYmUoKHVzZXJSb2xlczogUm9sZUVudGl0eVtdKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFwiVXNlciBSb2xlcyBjaGFuZ2VkLiAgUmVmcmVzaCBjaGlsZHJlbi5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVmcmVzaENoaWxkcmVuKCk7XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50Lm5nQWZ0ZXJWaWV3SW5pdFwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFmdGVyVmlld0luaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxpemVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBjb25maWcgaXMgYm91bmQgYnkgaW5wdXQsIHJlc2V0IHRoZSBjb25maWcgd2hlbiBpdCBjaGFuZ2VzLiAgQW4gaW1wb3J0YW50IG5vdGUsIGlmIGFueXRoaW5nIGluIHRoZSBjb25maWcgd2FzXHJcbiAgICogdXBkYXRlZCBieSB1cGRhdGVDb25maWcgb25seSwgdGhlbiB0aG9zZSBvcHRpb25zIHdpbGwgYmUgbG9zdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7e1twOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2V9fSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogeyBbcHJvcE5hbWU6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIm5nT25DaGFuZ2VzOlwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhjaGFuZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBjaGFuZ2Ugb2YgT2JqZWN0LmtleXMoY2hhbmdlcykpIHtcclxuICAgICAgaWYgKGNoYW5nZSAhPT0gXCJjb25maWdcIikge1xyXG4gICAgICAgIHRoaXNbY2hhbmdlXSA9IGNoYW5nZXNbY2hhbmdlXS5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2UgPT09IFwiaW5wdXRDaGlsZHJlblwiKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1tcImNoaWxkcmVuXCJdID0gY2hhbmdlc1tjaGFuZ2VdLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdbY2hhbmdlXSA9IGNoYW5nZXNbY2hhbmdlXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbXCJjb25maWdcIl0pIHtcclxuICAgICAgdGhpcy5zZXRDb25maWcodGhpcy5jb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzW1wiaWRcIl0pIHtcclxuICAgICAgdGhpcy5zZXRJZCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbXCJyb290Q2xhc3NcIl0pIHtcclxuICAgICAgdGhpcy5zZXRSb290Q2xhc3MoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wiaW5wdXRDaGlsZHJlblwiXSkge1xyXG4gICAgICB0aGlzLnNldENoaWxkcmVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0luaXRpYWxpemVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWZ0ZXJWaWV3SW5pdCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWcodGhpcy5jb25maWcpO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5wb3N0SW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zdEluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBnZXROYXZpZ2F0aW9uU2VydmljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGFsbCBjaGlsZHJlbi5cclxuICAgKi9cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJOYXZDb21wb25lbnQuY2xlYXJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlKHRoaXMuY2hpbGRyZW5baV0sIGkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBsZXQgaXNSZW5kZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnJlbmRlcmVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaXNSZW5kZXJlZCA9IHRoaXMuY29uZmlnLnJlbmRlcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGNoaWxkcmVuIGFuZCBzZWVzIGlmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHJlbmRlcmluZyBzdGF0dXMuICBJZiBhIHBlcm1pc3Npb24gZ29lcyBhd2F5LCBhIGNvbXBvbmVudCB0aGF0XHJcbiAgICogaXMgY3VycmVudGx5IHJlbmRlcmVkIG1pZ2h0IG5lZWQgdG8gYmUgcmVtb3ZlZC4gIFJlY3Vyc2l2ZWx5IG1vdmUgdGhyb3VnaCB0aGUgdHJlZSBvZiBjaGlsZHJlbi5cclxuICAgKi9cclxuICByZWZyZXNoQ2hpbGRyZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5jaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFwicmVmcmVzaENoaWxkcmVuOiBcIiArIGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHJlbmRlciA9IHRoaXMuY2FuUmVuZGVyKHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldKTtcclxuXHJcbiAgICAgICAgbGV0IGlzUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5jb25maWcuY2hpbGRyZW5baV0ucmVuZGVyZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaXNSZW5kZXJlZCA9IHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnJlbmRlcmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlbmRlciAmJiAhaXNSZW5kZXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5hZGQodGhpcy5jb25maWcuY2hpbGRyZW5baV0sIGkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlbmRlciAmJiBpc1JlbmRlcmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZSh0aGlzLmNvbmZpZy5jaGlsZHJlbltpXSwgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVjdXJzaXZlbHkgY2hlY2sgY2hpbGRyZW5cclxuICAgIGZvciAobGV0IGNvbXBvbmVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbXBvbmVudC5yZWZyZXNoQ2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRDb250YWluZXJzKCk7XHJcblxyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVc2luZyB0aGUgc29ydE9yZGVyIHByb3BlcnR5IG9mIGVhY2ggY29tcG9uZW50LCBkZXRhY2ggZWFjaCBWaWV3UmVmIGZyb20gdGhlIGNvbnRhaW5lciwgYW5kIHJlLWF0dGFjaCBiYXNlZFxyXG4gICAqIG9uIHRoZSBzb3J0T3JkZXIuXHJcbiAgICovXHJcbiAgc29ydENvbnRhaW5lcnMoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCAhdGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU29ydCB0aGUgY2hpbGRyZW4uICBJdCBkb2Vzbid0IG1hdHRlciB0aGF0IHRoaXMgbGlzdCBtYXkgY29udGFpbiBjaGlsZHJlbiBpbiBtdWx0aXBsZSBjb250YWluZXJzLlxyXG4gICAgbGV0IHNvcnRlZENoaWxkcmVuID0gdGhpcy5jb25maWcuY2hpbGRyZW4uc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGEuc29ydE9yZGVyIDwgYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAoYS5zb3J0T3JkZXIgPiBiLnNvcnRPcmRlcikge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKGxldCBjb250YWluZXJOYW1lIG9mIHRoaXMuY29udGFpbmVyU2V0KSB7XHJcbiAgICAgIGxldCBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYgPSB0aGlzLmdldENvbnRhaW5lcihjb250YWluZXJOYW1lKTtcclxuXHJcbiAgICAgIGlmICghY29udGFpbmVyKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZENoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKCFzb3J0ZWRDaGlsZHJlbltpXS5pZCkge1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzb3J0ZWRDaGlsZHJlbltpXS5jb250YWluZXIgIT09IGNvbnRhaW5lck5hbWUpIHtcclxuICAgICAgICAgIC8vIENoaWxkcmVuIGlzIGEgbGlzdCBwb3NzaWJseSBzcGFubmluZyBtdWx0aXBsZSBjb250YWluZXJzLiAgU2tpcCBpZiBub3Qgb24gdGhlIGN1cnJlbnQgY29udGFpbmVyLlxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy52aWV3UmVmTWFwLmdldChzb3J0ZWRDaGlsZHJlbltpXS5pZCkpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwic29ydENoaWxkcmVuOiBpOiBcIiArIGkgKyBcIiwgaWQ6IFwiICsgc29ydGVkQ2hpbGRyZW5baV0uaWQgKyBcIiwgZGVzdHJveWVkOiBcIiArIHRoaXMudmlld1JlZk1hcC5nZXQoc29ydGVkQ2hpbGRyZW5baV0uaWQpLmRlc3Ryb3llZCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCF0aGlzLnZpZXdSZWZNYXAuZ2V0KHNvcnRlZENoaWxkcmVuW2ldLmlkKS5kZXN0cm95ZWQpIHtcclxuICAgICAgICAgICAgY29udGFpbmVyLmluc2VydCh0aGlzLnZpZXdSZWZNYXAuZ2V0KHNvcnRlZENoaWxkcmVuW2ldLmlkKSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdSZWZNYXAuZGVsZXRlKHNvcnRlZENoaWxkcmVuW2ldLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIGNvbXBvbmVudCBieSBpZCBmcm9tIGl0cyBwYXJlbnQgY29udGFpbmVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudENvbmZpZ1xyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqL1xyXG4gIHJlbW92ZShjb21wb25lbnRDb25maWc6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5jaGlsZHJlbiB8fCAhdGhpcy5jb25maWcuY2hpbGRyZW5baW5kZXhdKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIk5hdkNvbXBvbmVudDogQ2hpbGQgXCIgKyBpbmRleCArIFwiIGRvZXMgbm90IGV4aXN0IG9uIFwiICsgdGhpcy5jb25maWcuaWQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJOYXZDb21wb25lbnQucmVtb3ZlOiBcIiArIGNvbXBvbmVudENvbmZpZy5pZCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29tcG9uZW50Q29uZmlnLmNoaWxkcmVuKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29tcG9uZW50Q29uZmlnLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHJlbmRlcmVkQ2hpbGQ6IE5hdkNvbXBvbmVudCA9IHRoaXMuZ2V0Q2hpbGQoY29tcG9uZW50Q29uZmlnLmNoaWxkcmVuW2ldLmlkKTtcclxuICAgICAgICBpZiAocmVuZGVyZWRDaGlsZCkge1xyXG4gICAgICAgICAgcmVuZGVyZWRDaGlsZC5yZW1vdmUoY29tcG9uZW50Q29uZmlnLmNoaWxkcmVuW2ldLCBpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIGlmIChjb21wb25lbnRDb25maWcuY29udGFpbmVyKSB7XHJcbiAgICAgIGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKGNvbXBvbmVudENvbmZpZy5jb250YWluZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZpZXdSZWZNYXAuZ2V0KGNvbXBvbmVudENvbmZpZy5pZCkpIHtcclxuICAgICAgY29udGFpbmVyLnJlbW92ZShjb250YWluZXIuaW5kZXhPZih0aGlzLnZpZXdSZWZNYXAuZ2V0KGNvbXBvbmVudENvbmZpZy5pZCkpKTtcclxuICAgICAgdGhpcy52aWV3UmVmTWFwLmRlbGV0ZShjb21wb25lbnRDb25maWcuaWQpO1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50Q29uZmlnLnJlbmRlcmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmNvbmZpZy5jaGlsZHJlbltpbmRleF0ucmVuZGVyZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNoaWxkKGNvbXBvbmVudENvbmZpZy5pZCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVCeUlkKGlkOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LnJlbW92ZUJ5SWQ6IFwiICsgaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jaGlsZHJlbltpXS5pZCA9PSBpZCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlKHRoaXMuY2hpbGRyZW5baV0sIGkpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZW1vdmVCeUlkOiBJRCBcIiArIGlkICsgXCIgbm90IGZvdW5kLlwiKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBjYW4gYmUgcmVuZGVyZWQgYmFzZWQgb24gdXNlciByb2xlcy4gIEEgcm9sZSBjYW4gYmUgYW55IHN0cmluZywgYnV0IHRoZXJlIGFyZSBoYXJkY29kZWRcclxuICAgKiByb2xlcyBOT1RfQVVUSEMgYW5kIEFVVEhDLiAgSWYgbm8gcm9sZU5hbWUgaXMgc3BlY2lmaWVkLCB0aGUgY29tcG9uZW50IGlzIGFsd2F5cyByZW5kZXJlZC4gIElmIHRoZSByb2xlTmFtZSBpc1xyXG4gICAqIE5PVF9BVVRIQywgdGhlIGNvbXBvbmVudCB3aWxsIG9ubHkgYmUgcmVuZGVyZWQgaWYgdGhlcmUgaXMgbm8gYXV0aGVudGljYXRlZCB1c2VyLiAgSWYgdGhlIHJvbGVOYW1lIGlzIEFVVEhDLCB0aGVcclxuICAgKiBjb21wb25lbnQgd2lsbCBiZSByZW5kZXJlZCBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLiAgSWYgdGhlIHJvbGVOYW1lIGlzIGFueSBzdHJpbmcgYW5kIG1hdGNoZXMgYSB1c2VyJ3Mgcm9sZSxcclxuICAgKiB0aGVuIHRoZSBjb21wb25lbnQgd2lsbCBiZSByZW5kZXJlZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRDb25maWdcclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgKi9cclxuICBjYW5SZW5kZXIoY29tcG9uZW50Q29uZmlnOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZW5kZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmIChjb21wb25lbnRDb25maWcucm9sZU5hbWUpIHtcclxuICAgICAgcmVuZGVyID0gZmFsc2U7XHJcbiAgICAgIGxldCB1c2VyUm9sZXM6IFJvbGVFbnRpdHlbXSA9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0VXNlclJvbGVzKCkuZ2V0VmFsdWUoKTtcclxuXHJcbiAgICAgIGlmIChjb21wb25lbnRDb25maWcucm9sZU5hbWUgPT09IHRoaXMubm90QXV0aGVudGljYXRlZEtleSAmJiAhdXNlclJvbGVzKSB7XHJcbiAgICAgICAgcmVuZGVyID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChjb21wb25lbnRDb25maWcucm9sZU5hbWUgPT09IHRoaXMuYXV0aGVudGljYXRlZEtleSAmJiB1c2VyUm9sZXMpIHtcclxuICAgICAgICByZW5kZXIgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHVzZXJSb2xlcyAmJiB1c2VyUm9sZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlbmRlciA9IHVzZXJSb2xlcy5zb21lKChyb2xlOiBSb2xlRW50aXR5KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcm9sZS5Sb2xlTmFtZSA9PT0gY29tcG9uZW50Q29uZmlnLnJvbGVOYW1lO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlbmRlcjtcclxuICB9XHJcblxyXG4gIGdldENoaWxkKGlkOiBzdHJpbmcpOiBOYXZDb21wb25lbnQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuW2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hpbGQoaWQ6IHN0cmluZykge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldLmlkID09PSBpZCkge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiBubyBpbmRleCBpcyBzcGVjaWZpZWQsIGFkZCB0aGUgY29tcG9uZW50IHRvIHRoZSBjaGlsZHJlbi4gIEluIGFsbCBjYXNlcywgc2VlIGlmIHRoZSBjb21wb25lbnQgY2FuIGJlIHJlbmRlcmVkLlxyXG4gICAqIElmIHNvLCBjYWxsIGFkZENvbXBvbmVudCB0byBoYW5kbGUgdGhlIGluamVjdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRDb25maWdcclxuICAgKiBAcGFyYW0gaW5kZXhcclxuICAgKi9cclxuICBhZGQoY29tcG9uZW50Q29uZmlnOiBhbnksIGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIk5hdkNvbXBvbmVudC5hZGQ6IFwiICsgaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb21wb25lbnRDb25maWcudHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wb25lbnQgbXVzdCBzcGVjaWZ5IGEgJ3R5cGUnIChlLmcuIFVsTmF2Q29tcG9uZW50KS5cIik7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWcuY2hpbGRyZW4pIHtcclxuICAgICAgICBpbmRleCA9IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbmRleCA9IDA7XHJcbiAgICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW4ucHVzaChjb21wb25lbnRDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNhblJlbmRlcihjb21wb25lbnRDb25maWcpKSB7XHJcbiAgICAgIHRoaXMuYWRkQ29tcG9uZW50KGNvbXBvbmVudENvbmZpZywgaW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5qZWN0cyB0aGUgY29tcG9uZW50IGRlc2NyaWJlZCBieSB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgaW4gdG8gdGhlIHZpZXcgYW5kIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGNvbXBvbmVudC5cclxuICAgKiBJZiBubyBjb250YWluZXIgaXMgc3BlY2lmaWVkLCBpbmplY3QgaW4gdG8gdGhlIFwiZGVmYXVsdFwiIGNvbnRhaW5lci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRDb25maWdcclxuICAgKiBAcGFyYW0gaW5kZXhcclxuICAgKi9cclxuICBhZGRDb21wb25lbnQoY29tcG9uZW50Q29uZmlnOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmIChjb21wb25lbnRDb25maWcudHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wb25lbnQgbXVzdCBzcGVjaWZ5IGEgJ3R5cGUnIChlLmcuIFVsTmF2Q29tcG9uZW50KS5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbXBvbmVudENvbmZpZy5jb250YWluZXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb21wb25lbnRDb25maWcuY29udGFpbmVyID0gXCJkZWZhdWx0XCI7XHJcbiAgICB9XHJcbiAgICBsZXQgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmID0gdGhpcy5nZXRDb250YWluZXIoY29tcG9uZW50Q29uZmlnLmNvbnRhaW5lcik7XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJOYXZDb21wb25lbnQuYWRkQ29tcG9uZW50OiB0bzogXCIgKyBjb21wb25lbnRDb25maWcuY29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gQ29tcG9uZW50SW5qZWN0b3IuZ2V0Q29tcG9uZW50UmVmKHRoaXMucmVzb2x2ZXIsIGNvbnRhaW5lciwgY29tcG9uZW50Q29uZmlnLnR5cGUpO1xyXG4gICAgbGV0IGNvbXBvbmVudEluc3RhbmNlID0gPE5hdkNvbXBvbmVudD5jb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcblxyXG4gICAgdGhpcy5jb25maWcuY2hpbGRyZW5baW5kZXhdLnJlbmRlcmVkID0gdHJ1ZTtcclxuICAgIGNvbXBvbmVudENvbmZpZy5yZW5kZXJlZCA9IHRydWU7XHJcblxyXG4gICAgbGV0IGlkOiBzdHJpbmcgPSBjb21wb25lbnRDb25maWcuaWQ7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIGlkID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRJZE5hdkNvbXBvbmVudCgpO1xyXG4gICAgICBjb21wb25lbnRDb25maWcuaWQgPSBpZDtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRJbnN0YW5jZS5zZXRQYXJlbnQodGhpcyk7XHJcbiAgICAoPE5hdkNvbXBvbmVudD5jb21wb25lbnRJbnN0YW5jZSkuc2V0Q29uZmlnKGNvbXBvbmVudENvbmZpZyk7XHJcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gICAgdGhpcy52aWV3UmVmTWFwLnNldChjb21wb25lbnRDb25maWcuaWQsIGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICAvL3RoaXMubmF2aWdhdGlvblNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50Q29uZmlnLmlkLCBjb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBpbnNlcnRBZnRlcihpZDogc3RyaW5nLCBjb21wb25lbnRDb25maWc6IGFueSkge1xyXG4gICAgaWYgKGNvbXBvbmVudENvbmZpZy50eXBlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGNvbXBvbmVudCBtdXN0IHNwZWNpZnkgYSAndHlwZScgKGUuZy4gVWxOYXZDb21wb25lbnQpLlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLmlkID09PSBpZCkge1xyXG4gICAgICAgIGluZGV4ID0gaSArIDE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5kZXggPD0gdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoIC0gMSkge1xyXG4gICAgICBjb21wb25lbnRDb25maWcuc29ydE9yZGVyID0gaW5kZXg7XHJcbiAgICAgIGZvciAobGV0IGkgPSBpbmRleCArIDE7IGkgPCB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnNvcnRPcmRlciA9IHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnNvcnRPcmRlciArIDE7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAwLCBjb21wb25lbnRDb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW5kZXggPSB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgIGNvbXBvbmVudENvbmZpZy5zb3J0T3JkZXIgPSBpbmRleDtcclxuICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW4ucHVzaChjb21wb25lbnRDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNhblJlbmRlcihjb21wb25lbnRDb25maWcpKSB7XHJcbiAgICAgIHRoaXMuYWRkQ29tcG9uZW50KGNvbXBvbmVudENvbmZpZywgaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc29ydENvbnRhaW5lcnMoKTtcclxuICB9XHJcblxyXG4gIGluc2VydEJlZm9yZShpZDogc3RyaW5nLCBjb21wb25lbnRDb25maWc6IGFueSkge1xyXG4gICAgaWYgKGNvbXBvbmVudENvbmZpZy50eXBlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGNvbXBvbmVudCBtdXN0IHNwZWNpZnkgYSAndHlwZScgKGUuZy4gVWxOYXZDb21wb25lbnQpLlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLmlkID09PSBpZCkge1xyXG4gICAgICAgIGluZGV4ID0gaTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmRleCA8PSB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGggLSAxKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW5baV0uc29ydE9yZGVyID0gdGhpcy5jb25maWcuY2hpbGRyZW5baV0uc29ydE9yZGVyICsgMTtcclxuICAgICAgfVxyXG4gICAgICBjb21wb25lbnRDb25maWcuc29ydE9yZGVyID0gaW5kZXg7XHJcbiAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMCwgY29tcG9uZW50Q29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGluZGV4ID0gdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICBjb21wb25lbnRDb25maWcuc29ydE9yZGVyID0gaW5kZXg7XHJcbiAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuLnB1c2goY29tcG9uZW50Q29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jYW5SZW5kZXIoY29tcG9uZW50Q29uZmlnKSkge1xyXG4gICAgICB0aGlzLmFkZENvbXBvbmVudChjb21wb25lbnRDb25maWcsIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRDb250YWluZXJzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGZ1bmN0aW9uIHRvIGJlIGV4dGVuZGVkIGJ5IG90aGVyIGNsYXNzZXMuICBUaGlzIGNsYXNzIGFuZCBzb21ldGhpbmcgbGlrZSBhIExpTmF2Q29tcG9uZW50IGRvbid0IGhhdmUgYW55IGNvbnRhaW5lcnNcclxuICAgKiBzbyBjb21wb25lbnRzIGNhbid0IGJlIGFkZGVkIHRvIHRoZW0uICBJbiBvdGhlciBjYXNlcywgdGhlIFVsTmF2Q29tcG9uZW50IGhhcyBhIHNpbmdsZSBjb250YWluZXIgc28gaXQgY2FuIGFsd2F5c1xyXG4gICAqIHJldHVybiB0aGF0IGNvbnRhaW5lciByZWdhcmRsZXNzIG9mIHRoZSBjb250YWluZXJOYW1lIHJlcXVlc3RlZCAoc2hvdWxkIGJlIFwiZGVmYXVsdFwiKS4gIEFueSBjb21wb25lbnQgc2hvdWxkIGhhdmVcclxuICAgKiBhIGNvbnRhaW5lciB0aGF0IGlzIHRoZSBcImRlZmF1bHRcIi4gIEZvciBleGFtcGxlLCBhIGhlYWRlciBjb21wb25lbnQgbWlnaHQgaGF2ZSBhIGNvbnRhaW5lciBmb3IgdGhlIGxlZnQgY29tcG9uZW50c1xyXG4gICAqIGFuZCBhIGNvbnRhaW5lciBmb3IgdGhlIHJpZ2h0IGNvbXBvbmVudHMuICBUaGUgbGVmdCBjb250YWluZXIgY2FuIGp1c3QgYmUgY2FsbGVkIFwiZGVmYXVsdFwiIGFuZCB0aGUgcmlnaHQgY29udGFpbmVyXHJcbiAgICogY291bGQgYmUgY2FsbGVkIFwicmlnaHRDb250YWluZXJcIi4gIElmIGEgY2hpbGQgY29tcG9uZW50IGRvZXNuJ3Qgc3BlY2lmeSBhIGNvbnRhaW5lciwgaXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgZGVmYXVsdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb250YWluZXJcclxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxyXG4gICAqL1xyXG4gIGdldENvbnRhaW5lcihjb250YWluZXI/OiBzdHJpbmcpOiBWaWV3Q29udGFpbmVyUmVmIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnQoaWQ6IHN0cmluZyk6IE5hdkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRDb21wb25lbnQoaWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50QnlUeXBlKHR5cGU6IHN0cmluZyk6IE5hdkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRDb21wb25lbnRCeVR5cGUodHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UGFyZW50KHBhcmVudDogTmF2Q29tcG9uZW50KSB7XHJcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJlbnQoKTogTmF2Q29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgfVxyXG5cclxuICBzZXRDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInNldENvbmZpZzogXCIgKyB0aGlzLmluaXRpYWxpemVkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIGlmIChjb25maWcucmVuZGVyZWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbmZpZy5yZW5kZXJlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xyXG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgICAgcmVuZGVyZWQ6IHRydWVcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgZnVuY3Rpb24gdG8gYmUgZXh0ZW5kZWQgYnkgb3RoZXIgY2xhc3Nlcy4gIFRoZSBjaGlsZHJlbiBzaG91bGQgY2FsbCBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKS4gIFRoaXMgc2V0cyB0aGVcclxuICAgKiBjb21tb24gcHJvcGVydGllcyBvZiB0aGUgTmF2Q29tcG9uZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWcpIHtcclxuICAgIGlmIChjb25maWcudHlwZSkge1xyXG4gICAgICB0aGlzLnR5cGUgPSBjb25maWcudHlwZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnR5cGUpIHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICB0aGlzLnR5cGVOYW1lID0gdGhpcy50eXBlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIFRoZSBjb21wb25lbnRUeXBlIGRlY29yYXRvciB3YXMgY3JlYXRlZCBmb3IgdWdsaWZpY2F0aW9uLiBVc2UgaXQhXHJcbiAgICAgIGVsc2UgaWYgKHRoaXMudHlwZVtcImNvbXBvbmVudFR5cGVcIl0pIHtcclxuICAgICAgICB0aGlzLnR5cGVOYW1lID0gdGhpcy50eXBlW1wiY29tcG9uZW50VHlwZVwiXTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnR5cGVOYW1lID0gKDxUeXBlPGFueT4+dGhpcy50eXBlKS5uYW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5pZCkge1xyXG4gICAgICB0aGlzLmlkID0gY29uZmlnLmlkO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmlkID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRJZE5hdkNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRJZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzUm9vdCkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnNldFJvb3RDb21wb25lbnQodGhpcy5pZCwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJOYXZDb21wb25lbnQudXBkYXRlQ29uZmlnOiBcIiArIHRoaXMuaWQgKyBcIjogXCIgKyB0aGlzLmluaXRpYWxpemVkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmF1dGhlbnRpY2F0ZWRLZXkpIHtcclxuICAgICAgdGhpcy5hdXRoZW50aWNhdGVkS2V5ID0gY29uZmlnLmF1dGhlbnRpY2F0ZWRLZXk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLm5vdEF1dGhlbnRpY2F0ZWRLZXkpIHtcclxuICAgICAgdGhpcy5ub3RBdXRoZW50aWNhdGVkS2V5ID0gY29uZmlnLm5vdEF1dGhlbnRpY2F0ZWRLZXk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnJvbGVOYW1lKSB7XHJcbiAgICAgIHRoaXMucm9sZU5hbWUgPSBjb25maWcucm9sZU5hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnRpdGxlKSB7XHJcbiAgICAgIHRoaXMudGl0bGUgPSBjb25maWcudGl0bGU7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnJvb3RDbGFzcykge1xyXG4gICAgICB0aGlzLnJvb3RDbGFzcyA9IGNvbmZpZy5yb290Q2xhc3M7XHJcbiAgICAgIHRoaXMuc2V0Um9vdENsYXNzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLmNoaWxkcmVuKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDaGlsZHJlbiA9IGNvbmZpZy5jaGlsZHJlbjtcclxuICAgICAgdGhpcy5zZXRDaGlsZHJlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LnVwZGF0ZUNvbmZpZzogXCIgKyAodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKSArIFwiLCBcIiArIHRoaXMuaWQgKyBcIiwgXCIgKyB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldElkKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMuaWQsIHRoaXMpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiaWRcIiwgdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb290Q2xhc3MoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yb290Q2xhc3MpIHtcclxuICAgICAgbGV0IGNsYXNzZXM6IHN0cmluZ1tdID0gdGhpcy5yb290Q2xhc3Muc3BsaXQoXCIgXCIpO1xyXG4gICAgICBmb3IgKGxldCByb290Q2xhc3Mgb2YgY2xhc3Nlcykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHJvb3RDbGFzcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENoaWxkcmVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5zb3J0T3JkZXIgPSBpO1xyXG4gICAgICB0aGlzLmFkZCh0aGlzLmNvbmZpZy5jaGlsZHJlbltpXSwgaSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCEoPFZpZXdSZWY+dGhpcy5jaGFuZ2VEZXRlY3RvclJlZikuZGVzdHJveWVkKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
609
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25hdmlnYXRpb24vc3JjL2NvbXBvbmVudHMvbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBU1QsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7OztBQUVqRTs7Ozs7OztHQU9HO0FBU0gsTUFBTSxPQUFRLFlBQVk7SUF1RHhCLFlBQVksVUFBc0IsRUFBRSxRQUFtQixFQUFFLFFBQWtDLEVBQUUsaUJBQW9DLEVBQUUsaUJBQW9DO1FBckQ5SixXQUFNLEdBQVE7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRU8sV0FBTSxHQUFZLEtBQUssQ0FBQztRQUt4QixxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFDbkMsd0JBQW1CLEdBQVcsV0FBVyxDQUFDO1FBQ2hDLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQ3BDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDaEM7Ozs7V0FJRztRQUNILGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBVTlCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCOzs7V0FHRztRQUNILGlCQUFZLEdBQWdCLElBQUksR0FBRyxFQUFVLENBQUM7UUFFOUM7Ozs7OztXQU1HO1FBQ0ssZUFBVSxHQUF5QixJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQU90RSxrQkFBYSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBdUIsRUFBRSxFQUFFO2dCQUNqRyxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztnQkFDMUQsQ0FBQztnQkFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUE2QztRQUN2RCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxLQUFLLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBRTVDLElBQUksTUFBTSxLQUFLLGVBQWUsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3pELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3JELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksVUFBVSxHQUFZLEtBQUssQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO29CQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO2dCQUVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFckQsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDbkQsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDaEQsQ0FBQztnQkFFRCxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO3FCQUFNLElBQUksQ0FBQyxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixLQUFLLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1RCxPQUFPO1FBQ1QsQ0FBQztRQUVELG9HQUFvRztRQUNwRyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUM7aUJBQU0sSUFBSSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QyxJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVuRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsT0FBTztZQUNULENBQUM7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUMxQixTQUFTO2dCQUNYLENBQUM7cUJBQU0sSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGFBQWEsRUFBRSxDQUFDO29CQUN6RCxtR0FBbUc7b0JBQ25HLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUM5QyxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ25KLENBQUM7b0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDekQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDOUQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDL0MsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBb0IsRUFBRSxLQUFhO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUQsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLEdBQUcscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0RixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELElBQUksYUFBYSxHQUFpQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hGLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ2xCLGFBQWEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxTQUEyQixDQUFDO1FBRWhDLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTdDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxVQUFVLENBQUMsRUFBTztRQUNoQixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUVqQyxPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsU0FBUyxDQUFDLGVBQW9CO1FBQzVCLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQztRQUUzQixJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ2YsSUFBSSxTQUFTLEdBQWlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUvRSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hFLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGdCQUFnQixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUMzRSxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLENBQUM7aUJBQU0sSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFnQixFQUFFLEVBQUU7b0JBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFVO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsRUFBVTtRQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUFDLGVBQW9CLEVBQUUsS0FBYztRQUN0QyxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6QixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBQyxlQUFvQixFQUFFLEtBQWE7UUFDOUMsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQsSUFBSSxlQUFlLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0UsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRCxJQUFJLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JHLElBQUksaUJBQWlCLEdBQWlCLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFFNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUM1QyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVoQyxJQUFJLEVBQUUsR0FBVyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRCxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLGlCQUFrQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELGtGQUFrRjtJQUNwRixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVUsRUFBRSxlQUFvQjtRQUMxQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBVyxTQUFTLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZCxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsZUFBZSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDNUUsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxlQUFlLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVLEVBQUUsZUFBb0I7UUFDM0MsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQsSUFBSSxLQUFLLEdBQVcsU0FBUyxDQUFDO1FBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDVixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBQ0QsZUFBZSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3BDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQVksQ0FBQyxTQUFrQjtRQUM3QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxTQUFTLENBQUMsTUFBb0I7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTTtRQUNkLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRztnQkFDWixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLE1BQU07UUFDakIsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsQ0FBQztZQUNELG9FQUFvRTtpQkFDL0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsR0FBZSxJQUFJLENBQUMsSUFBSyxDQUFDLElBQUksQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEksQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksT0FBTyxHQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELEtBQUssSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO1FBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQVcsSUFBSSxDQUFDLGlCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQzsrR0FscEJXLFlBQVk7bUdBQVosWUFBWSxxV0FMcEI7T0FDQzs7NEZBSU8sWUFBWTtrQkFSekIsU0FBUzttQkFDUjtvQkFDRSxRQUFRLEVBQ047T0FDQztvQkFDSCxRQUFRLEVBQUUsU0FBUztpQkFDcEI7OE1BSVEsTUFBTTtzQkFBZCxLQUFLO2dCQUdVLEVBQUU7c0JBQWpCLEtBQUs7dUJBQUMsT0FBTztnQkFDTCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixLQUFLO3VCQUFDLFVBQVU7Z0JBQ1IsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBpc0Rldk1vZGUsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZSxcclxuICBUeXBlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld1JlZixcclxuICBPbkluaXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIENvbXBvbmVudFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtSb2xlRW50aXR5fSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXNlclwiO1xyXG5pbXBvcnQge0NvbXBvbmVudEluamVjdG9yfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgdGhhdCBhbGwgbmF2aWdhdGlvbiBjb21wb25lbnRzIGV4dGVuZCBmcm9tLiAgVGhpcyBpbmNsdWRlcyBvdGhlciBzdGFuZGFsb25lIG1vZHVsZXMgc3VjaFxyXG4gKiBhcyBhIGhlYWRlciBvciBzaWRlYmFyLiAgSXQgY29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMsIGNvbmZpZ3VyYXRpb24gdG9vbHMsIGFuZCBmdW5jdGlvbnMgdG8gYWRkL2luc2VydCBvdGhlclxyXG4gKiBOYXZDb21wb25lbnRzLlxyXG4gKiBUaGUgY29uZmlnIHByb3BlcnR5IGlzIGFueSBvYmplY3QgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgcHJvcGVydGllcyB0aGF0IHNwZWNpZmllcyBjb25maWd1cmF0aW9uIG9wdGlvbnMuICBDb21tb25cclxuICogcHJvcGVydGllcyBpbmNsdWRlIGlkLCB0aXRsZSwgcm9vdENsYXNzIGFuZCByb2xlTmFtZS4gIEV4dGVuZGluZyBjbGFzc2VzIG1heSBoYXZlIHRoZWlyIG93biBwcm9wZXJ0aWVzIHN1Y2ggYXMgZXh0cmFcclxuICogY3NzIGNsYXNzZXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG4gIHtcclxuICAgIHRlbXBsYXRlOlxyXG4gICAgICBgXHJcbiAgICAgIGAsXHJcbiAgICBzZWxlY3RvcjogXCJoY2ktbmF2XCJcclxuICB9XHJcbilcclxuZXhwb3J0IGNsYXNzICBOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7XHJcbiAgICByZW5kZXJlZDogdHJ1ZVxyXG4gIH07XHJcbiAgQElucHV0KFwibmF2SWRcIikgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBpc1Jvb3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eXBlOiBUeXBlPGFueT4gfCBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSByb290Q2xhc3M6IHN0cmluZztcclxuICBASW5wdXQoKSByb2xlTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGF1dGhlbnRpY2F0ZWRLZXk6IHN0cmluZyA9IFwiQVVUSENcIjtcclxuICBASW5wdXQoKSBub3RBdXRoZW50aWNhdGVkS2V5OiBzdHJpbmcgPSBcIk5PVF9BVVRIQ1wiO1xyXG4gIEBJbnB1dChcImNoaWxkcmVuXCIpIGlucHV0Q2hpbGRyZW46IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgaXNDQ1I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbiBhcnJheSBvZiBhbGwgY29tcG9uZW50IGluc3RhbmNlcyBvZiBjaGlsZHJlbi4gIEl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgd2UgdHJ5IHRvIHJlbmRlciBldmVyeXRoaW5nIGluIHRoZVxyXG4gICAqIGNoaWxkcmVuIGFycmF5LiAgSG93ZXZlciwgaWYgcm9sZXMgYXJlIG5vdCBtZXQsIHNvbWUgY2hpbGRyZW4gbWF5IG5vdCBiZSByZW5kZXJlZCBzbyBubyBjb21wb25lbnQgaW5zdGFuY2Ugd2lsbFxyXG4gICAqIGV4aXN0IGZvciB0aGVtLlxyXG4gICAqL1xyXG4gIGNoaWxkcmVuOiBOYXZDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICB0eXBlTmFtZTogc3RyaW5nO1xyXG5cclxuICBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcbiAgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcclxuICBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2U7XHJcbiAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmO1xyXG5cclxuICBhZnRlclZpZXdJbml0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQSBzZXQgb2YgY29udGFpbmVyIG5hbWVzLiAgU29tZSBjb21wb25lbnRzIG1heSBub3QgZGVmaW5lIGEgY29udGFpbmVyIHdoaWxlIG90aGVycyBqdXN0IGhhdmVcclxuICAgKiBvbmUgKGEgXCJkZWZhdWx0XCIgY29udGFpbmVyKS5cclxuICAgKi9cclxuICBjb250YWluZXJTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgbWFwIG9mIElEcyB0byB0aGUgY29ycmVzcG9uZGluZyB2aWV3UmVmLiAgV2hlbiB3ZSBkeW5hbWljYWxseSBpbmplY3QgYSBuZXcgY29tcG9uZW50LCB3ZSBmaXJzdCBwdWxsIHRoZSBjcmVhdGVkXHJcbiAgICogQ29tcG9uZW50UmVmIGFuZCBmcm9tIHRoZXJlIGl0cyBWaWV3UmVmLiAgV2UgbmVlZCB0aGUgVmlld1JlZiB0byBkZXRlcm1pbmUgdGhlIGNvbXBvbmVudCdzIHBvc2l0aW9uIGluIHRoZVxyXG4gICAqIFZpZXdDb250YWluZXJSZWYuICBXaXRoIGEgc2V0IG9mIFZpZXdSZWZzLCB3ZSBjYW4gZGV0YWNoIHRoZW0gZnJvbSB0aGUgY29udGFpbmVyIGFuZCByZS1hZGQgdGhlbSBpbiBhIGRpZmZlcmVudCBvcmRlclxyXG4gICAqIGJhc2VkIG9uIHRoZSBjb21wb25lbnQncyBzb3J0T3JkZXIgKHdoaWNoIGlzIGJhc2VkIG9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgY2hpbGRyZW4gYXJyYXkuICBUaGlzIG1hcCBwcm92aWRlcyB0aGVcclxuICAgKiBjb21wb25lbnQgdG8gdmlldyByZWxhdGlvbnNoaXAuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB2aWV3UmVmTWFwOiBNYXA8c3RyaW5nLCBWaWV3UmVmPiA9IG5ldyBNYXA8c3RyaW5nLCBWaWV3UmVmPigpO1xyXG5cclxuICAvKipcclxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudC4gIFdoZW4gYSBjaGlsZCBpcyBhZGRlZCwgYSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBpcyBhdXRvbWF0aWNhbGx5IHNldC5cclxuICAgKi9cclxuICBwcml2YXRlIHBhcmVudDogTmF2Q29tcG9uZW50O1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgdGhpcy5yZXNvbHZlciA9IHJlc29sdmVyO1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSA9IG5hdmlnYXRpb25TZXJ2aWNlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZiA9IGNoYW5nZURldGVjdG9yUmVmO1xyXG5cclxuICAgIHRoaXMuY29udGFpbmVyU2V0LmFkZChcImRlZmF1bHRcIik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzUm9vdCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0VXNlclJvbGVzKCkuc3Vic2NyaWJlKCh1c2VyUm9sZXM6IFJvbGVFbnRpdHlbXSkgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcIlVzZXIgUm9sZXMgY2hhbmdlZC4gIFJlZnJlc2ggY2hpbGRyZW4uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlZnJlc2hDaGlsZHJlbigpO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIk5hdkNvbXBvbmVudC5uZ0FmdGVyVmlld0luaXRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hZnRlclZpZXdJbml0ID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsaXplZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgY29uZmlnIGlzIGJvdW5kIGJ5IGlucHV0LCByZXNldCB0aGUgY29uZmlnIHdoZW4gaXQgY2hhbmdlcy4gIEFuIGltcG9ydGFudCBub3RlLCBpZiBhbnl0aGluZyBpbiB0aGUgY29uZmlnIHdhc1xyXG4gICAqIHVwZGF0ZWQgYnkgdXBkYXRlQ29uZmlnIG9ubHksIHRoZW4gdGhvc2Ugb3B0aW9ucyB3aWxsIGJlIGxvc3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3tbcDogc3RyaW5nXTogU2ltcGxlQ2hhbmdlfX0gY2hhbmdlc1xyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJuZ09uQ2hhbmdlczpcIik7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoY2hhbmdlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgY2hhbmdlIG9mIE9iamVjdC5rZXlzKGNoYW5nZXMpKSB7XHJcbiAgICAgIGlmIChjaGFuZ2UgIT09IFwiY29uZmlnXCIpIHtcclxuICAgICAgICB0aGlzW2NoYW5nZV0gPSBjaGFuZ2VzW2NoYW5nZV0uY3VycmVudFZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoY2hhbmdlID09PSBcImlucHV0Q2hpbGRyZW5cIikge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdbXCJjaGlsZHJlblwiXSA9IGNoYW5nZXNbY2hhbmdlXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlnW2NoYW5nZV0gPSBjaGFuZ2VzW2NoYW5nZV0uY3VycmVudFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzW1wiY29uZmlnXCJdKSB7XHJcbiAgICAgIHRoaXMuc2V0Q29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlc1tcImlkXCJdKSB7XHJcbiAgICAgIHRoaXMuc2V0SWQoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wicm9vdENsYXNzXCJdKSB7XHJcbiAgICAgIHRoaXMuc2V0Um9vdENsYXNzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1tcImlucHV0Q2hpbGRyZW5cIl0pIHtcclxuICAgICAgdGhpcy5zZXRDaGlsZHJlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJbml0aWFsaXplZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFmdGVyVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMucG9zdEluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2VydmljZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhbGwgY2hpbGRyZW4uXHJcbiAgICovXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LmNsZWFyXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0aGlzLnJlbW92ZSh0aGlzLmNoaWxkcmVuW2ldLCBpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoaWxkcmVuID0gW107XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgbGV0IGlzUmVuZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5yZW5kZXJlZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlzUmVuZGVyZWQgPSB0aGlzLmNvbmZpZy5yZW5kZXJlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBjaGlsZHJlbiBhbmQgc2VlcyBpZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiByZW5kZXJpbmcgc3RhdHVzLiAgSWYgYSBwZXJtaXNzaW9uIGdvZXMgYXdheSwgYSBjb21wb25lbnQgdGhhdFxyXG4gICAqIGlzIGN1cnJlbnRseSByZW5kZXJlZCBtaWdodCBuZWVkIHRvIGJlIHJlbW92ZWQuICBSZWN1cnNpdmVseSBtb3ZlIHRocm91Z2ggdGhlIHRyZWUgb2YgY2hpbGRyZW4uXHJcbiAgICovXHJcbiAgcmVmcmVzaENoaWxkcmVuKCkge1xyXG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuY2hpbGRyZW4pIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcInJlZnJlc2hDaGlsZHJlbjogXCIgKyBpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZW5kZXIgPSB0aGlzLmNhblJlbmRlcih0aGlzLmNvbmZpZy5jaGlsZHJlbltpXSk7XHJcblxyXG4gICAgICAgIGxldCBpc1JlbmRlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnJlbmRlcmVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGlzUmVuZGVyZWQgPSB0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5yZW5kZXJlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXIgJiYgIWlzUmVuZGVyZWQpIHtcclxuICAgICAgICAgIHRoaXMuYWRkKHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLCBpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKCFyZW5kZXIgJiYgaXNSZW5kZXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmUodGhpcy5jb25maWcuY2hpbGRyZW5baV0sIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlY3Vyc2l2ZWx5IGNoZWNrIGNoaWxkcmVuXHJcbiAgICBmb3IgKGxldCBjb21wb25lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xyXG4gICAgICBjb21wb25lbnQucmVmcmVzaENoaWxkcmVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zb3J0Q29udGFpbmVycygpO1xyXG5cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXNpbmcgdGhlIHNvcnRPcmRlciBwcm9wZXJ0eSBvZiBlYWNoIGNvbXBvbmVudCwgZGV0YWNoIGVhY2ggVmlld1JlZiBmcm9tIHRoZSBjb250YWluZXIsIGFuZCByZS1hdHRhY2ggYmFzZWRcclxuICAgKiBvbiB0aGUgc29ydE9yZGVyLlxyXG4gICAqL1xyXG4gIHNvcnRDb250YWluZXJzKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkcmVuID09PSB1bmRlZmluZWQgfHwgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNvcnQgdGhlIGNoaWxkcmVuLiAgSXQgZG9lc24ndCBtYXR0ZXIgdGhhdCB0aGlzIGxpc3QgbWF5IGNvbnRhaW4gY2hpbGRyZW4gaW4gbXVsdGlwbGUgY29udGFpbmVycy5cclxuICAgIGxldCBzb3J0ZWRDaGlsZHJlbiA9IHRoaXMuY29uZmlnLmNoaWxkcmVuLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgIGlmIChhLnNvcnRPcmRlciA8IGIuc29ydE9yZGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICB9IGVsc2UgaWYgKGEuc29ydE9yZGVyID4gYi5zb3J0T3JkZXIpIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChsZXQgY29udGFpbmVyTmFtZSBvZiB0aGlzLmNvbnRhaW5lclNldCkge1xyXG4gICAgICBsZXQgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmID0gdGhpcy5nZXRDb250YWluZXIoY29udGFpbmVyTmFtZSk7XHJcblxyXG4gICAgICBpZiAoIWNvbnRhaW5lcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICghc29ydGVkQ2hpbGRyZW5baV0uaWQpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc29ydGVkQ2hpbGRyZW5baV0uY29udGFpbmVyICE9PSBjb250YWluZXJOYW1lKSB7XHJcbiAgICAgICAgICAvLyBDaGlsZHJlbiBpcyBhIGxpc3QgcG9zc2libHkgc3Bhbm5pbmcgbXVsdGlwbGUgY29udGFpbmVycy4gIFNraXAgaWYgbm90IG9uIHRoZSBjdXJyZW50IGNvbnRhaW5lci5cclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlld1JlZk1hcC5nZXQoc29ydGVkQ2hpbGRyZW5baV0uaWQpKSB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhcInNvcnRDaGlsZHJlbjogaTogXCIgKyBpICsgXCIsIGlkOiBcIiArIHNvcnRlZENoaWxkcmVuW2ldLmlkICsgXCIsIGRlc3Ryb3llZDogXCIgKyB0aGlzLnZpZXdSZWZNYXAuZ2V0KHNvcnRlZENoaWxkcmVuW2ldLmlkKS5kZXN0cm95ZWQpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghdGhpcy52aWV3UmVmTWFwLmdldChzb3J0ZWRDaGlsZHJlbltpXS5pZCkuZGVzdHJveWVkKSB7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5pbnNlcnQodGhpcy52aWV3UmVmTWFwLmdldChzb3J0ZWRDaGlsZHJlbltpXS5pZCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3UmVmTWFwLmRlbGV0ZShzb3J0ZWRDaGlsZHJlbltpXS5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSBjb21wb25lbnQgYnkgaWQgZnJvbSBpdHMgcGFyZW50IGNvbnRhaW5lci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRDb25maWdcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKi9cclxuICByZW1vdmUoY29tcG9uZW50Q29uZmlnOiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICghdGhpcy5jb25maWcuY2hpbGRyZW4gfHwgIXRoaXMuY29uZmlnLmNoaWxkcmVuW2luZGV4XSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXCJOYXZDb21wb25lbnQ6IENoaWxkIFwiICsgaW5kZXggKyBcIiBkb2VzIG5vdCBleGlzdCBvbiBcIiArIHRoaXMuY29uZmlnLmlkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LnJlbW92ZTogXCIgKyBjb21wb25lbnRDb25maWcuaWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbXBvbmVudENvbmZpZy5jaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudENvbmZpZy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCByZW5kZXJlZENoaWxkOiBOYXZDb21wb25lbnQgPSB0aGlzLmdldENoaWxkKGNvbXBvbmVudENvbmZpZy5jaGlsZHJlbltpXS5pZCk7XHJcbiAgICAgICAgaWYgKHJlbmRlcmVkQ2hpbGQpIHtcclxuICAgICAgICAgIHJlbmRlcmVkQ2hpbGQucmVtb3ZlKGNvbXBvbmVudENvbmZpZy5jaGlsZHJlbltpXSwgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBpZiAoY29tcG9uZW50Q29uZmlnLmNvbnRhaW5lcikge1xyXG4gICAgICBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihjb21wb25lbnRDb25maWcuY29udGFpbmVyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52aWV3UmVmTWFwLmdldChjb21wb25lbnRDb25maWcuaWQpKSB7XHJcbiAgICAgIGNvbnRhaW5lci5yZW1vdmUoY29udGFpbmVyLmluZGV4T2YodGhpcy52aWV3UmVmTWFwLmdldChjb21wb25lbnRDb25maWcuaWQpKSk7XHJcbiAgICAgIHRoaXMudmlld1JlZk1hcC5kZWxldGUoY29tcG9uZW50Q29uZmlnLmlkKTtcclxuICAgIH1cclxuICAgIGNvbXBvbmVudENvbmZpZy5yZW5kZXJlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb25maWcuY2hpbGRyZW5baW5kZXhdLnJlbmRlcmVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5yZW1vdmVDaGlsZChjb21wb25lbnRDb25maWcuaWQpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQnlJZChpZDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIk5hdkNvbXBvbmVudC5yZW1vdmVCeUlkOiBcIiArIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY2hpbGRyZW5baV0uaWQgPT0gaWQpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZSh0aGlzLmNoaWxkcmVuW2ldLCBpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwicmVtb3ZlQnlJZDogSUQgXCIgKyBpZCArIFwiIG5vdCBmb3VuZC5cIik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgY2FuIGJlIHJlbmRlcmVkIGJhc2VkIG9uIHVzZXIgcm9sZXMuICBBIHJvbGUgY2FuIGJlIGFueSBzdHJpbmcsIGJ1dCB0aGVyZSBhcmUgaGFyZGNvZGVkXHJcbiAgICogcm9sZXMgTk9UX0FVVEhDIGFuZCBBVVRIQy4gIElmIG5vIHJvbGVOYW1lIGlzIHNwZWNpZmllZCwgdGhlIGNvbXBvbmVudCBpcyBhbHdheXMgcmVuZGVyZWQuICBJZiB0aGUgcm9sZU5hbWUgaXNcclxuICAgKiBOT1RfQVVUSEMsIHRoZSBjb21wb25lbnQgd2lsbCBvbmx5IGJlIHJlbmRlcmVkIGlmIHRoZXJlIGlzIG5vIGF1dGhlbnRpY2F0ZWQgdXNlci4gIElmIHRoZSByb2xlTmFtZSBpcyBBVVRIQywgdGhlXHJcbiAgICogY29tcG9uZW50IHdpbGwgYmUgcmVuZGVyZWQgaWYgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZC4gIElmIHRoZSByb2xlTmFtZSBpcyBhbnkgc3RyaW5nIGFuZCBtYXRjaGVzIGEgdXNlcidzIHJvbGUsXHJcbiAgICogdGhlbiB0aGUgY29tcG9uZW50IHdpbGwgYmUgcmVuZGVyZWQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29tcG9uZW50Q29uZmlnXHJcbiAgICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAgICovXHJcbiAgY2FuUmVuZGVyKGNvbXBvbmVudENvbmZpZzogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVuZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAoY29tcG9uZW50Q29uZmlnLnJvbGVOYW1lKSB7XHJcbiAgICAgIHJlbmRlciA9IGZhbHNlO1xyXG4gICAgICBsZXQgdXNlclJvbGVzOiBSb2xlRW50aXR5W10gPSB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldFVzZXJSb2xlcygpLmdldFZhbHVlKCk7XHJcblxyXG4gICAgICBpZiAoY29tcG9uZW50Q29uZmlnLnJvbGVOYW1lID09PSB0aGlzLm5vdEF1dGhlbnRpY2F0ZWRLZXkgJiYgIXVzZXJSb2xlcykge1xyXG4gICAgICAgIHJlbmRlciA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50Q29uZmlnLnJvbGVOYW1lID09PSB0aGlzLmF1dGhlbnRpY2F0ZWRLZXkgJiYgdXNlclJvbGVzKSB7XHJcbiAgICAgICAgcmVuZGVyID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmICh1c2VyUm9sZXMgJiYgdXNlclJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZW5kZXIgPSB1c2VyUm9sZXMuc29tZSgocm9sZTogUm9sZUVudGl0eSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJvbGUuUm9sZU5hbWUgPT09IGNvbXBvbmVudENvbmZpZy5yb2xlTmFtZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZW5kZXI7XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZChpZDogc3RyaW5nKTogTmF2Q29tcG9uZW50IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jaGlsZHJlbltpXS5pZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaWxkKGlkOiBzdHJpbmcpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jaGlsZHJlbltpXS5pZCA9PT0gaWQpIHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgbm8gaW5kZXggaXMgc3BlY2lmaWVkLCBhZGQgdGhlIGNvbXBvbmVudCB0byB0aGUgY2hpbGRyZW4uICBJbiBhbGwgY2FzZXMsIHNlZSBpZiB0aGUgY29tcG9uZW50IGNhbiBiZSByZW5kZXJlZC5cclxuICAgKiBJZiBzbywgY2FsbCBhZGRDb21wb25lbnQgdG8gaGFuZGxlIHRoZSBpbmplY3Rpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29tcG9uZW50Q29uZmlnXHJcbiAgICogQHBhcmFtIGluZGV4XHJcbiAgICovXHJcbiAgYWRkKGNvbXBvbmVudENvbmZpZzogYW55LCBpbmRleD86IG51bWJlcikge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJOYXZDb21wb25lbnQuYWRkOiBcIiArIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29tcG9uZW50Q29uZmlnLnR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgY29tcG9uZW50IG11c3Qgc3BlY2lmeSBhICd0eXBlJyAoZS5nLiBVbE5hdkNvbXBvbmVudCkuXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaW5kZXggPSB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5kZXggPSAwO1xyXG4gICAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuID0gW107XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuLnB1c2goY29tcG9uZW50Q29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jYW5SZW5kZXIoY29tcG9uZW50Q29uZmlnKSkge1xyXG4gICAgICB0aGlzLmFkZENvbXBvbmVudChjb21wb25lbnRDb25maWcsIGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluamVjdHMgdGhlIGNvbXBvbmVudCBkZXNjcmliZWQgYnkgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGluIHRvIHRoZSB2aWV3IGFuZCBjcmVhdGVzIGFuIGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQuXHJcbiAgICogSWYgbm8gY29udGFpbmVyIGlzIHNwZWNpZmllZCwgaW5qZWN0IGluIHRvIHRoZSBcImRlZmF1bHRcIiBjb250YWluZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29tcG9uZW50Q29uZmlnXHJcbiAgICogQHBhcmFtIGluZGV4XHJcbiAgICovXHJcbiAgYWRkQ29tcG9uZW50KGNvbXBvbmVudENvbmZpZzogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAoY29tcG9uZW50Q29uZmlnLnR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgY29tcG9uZW50IG11c3Qgc3BlY2lmeSBhICd0eXBlJyAoZS5nLiBVbE5hdkNvbXBvbmVudCkuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb21wb25lbnRDb25maWcuY29udGFpbmVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29tcG9uZW50Q29uZmlnLmNvbnRhaW5lciA9IFwiZGVmYXVsdFwiO1xyXG4gICAgfVxyXG4gICAgbGV0IGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiA9IHRoaXMuZ2V0Q29udGFpbmVyKGNvbXBvbmVudENvbmZpZy5jb250YWluZXIpO1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LmFkZENvbXBvbmVudDogdG86IFwiICsgY29tcG9uZW50Q29uZmlnLmNvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IENvbXBvbmVudEluamVjdG9yLmdldENvbXBvbmVudFJlZih0aGlzLnJlc29sdmVyLCBjb250YWluZXIsIGNvbXBvbmVudENvbmZpZy50eXBlKTtcclxuICAgIGxldCBjb21wb25lbnRJbnN0YW5jZSA9IDxOYXZDb21wb25lbnQ+Y29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG5cclxuICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuW2luZGV4XS5yZW5kZXJlZCA9IHRydWU7XHJcbiAgICBjb21wb25lbnRDb25maWcucmVuZGVyZWQgPSB0cnVlO1xyXG5cclxuICAgIGxldCBpZDogc3RyaW5nID0gY29tcG9uZW50Q29uZmlnLmlkO1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICBpZCA9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0SWROYXZDb21wb25lbnQoKTtcclxuICAgICAgY29tcG9uZW50Q29uZmlnLmlkID0gaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50SW5zdGFuY2Uuc2V0UGFyZW50KHRoaXMpO1xyXG4gICAgKDxOYXZDb21wb25lbnQ+Y29tcG9uZW50SW5zdGFuY2UpLnNldENvbmZpZyhjb21wb25lbnRDb25maWcpO1xyXG4gICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNvbXBvbmVudEluc3RhbmNlKTtcclxuICAgIHRoaXMudmlld1JlZk1hcC5zZXQoY29tcG9uZW50Q29uZmlnLmlkLCBjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgLy90aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudENvbmZpZy5pZCwgY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgaW5zZXJ0QWZ0ZXIoaWQ6IHN0cmluZywgY29tcG9uZW50Q29uZmlnOiBhbnkpIHtcclxuICAgIGlmIChjb21wb25lbnRDb25maWcudHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wb25lbnQgbXVzdCBzcGVjaWZ5IGEgJ3R5cGUnIChlLmcuIFVsTmF2Q29tcG9uZW50KS5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5pZCA9PT0gaWQpIHtcclxuICAgICAgICBpbmRleCA9IGkgKyAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluZGV4IDw9IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aCAtIDEpIHtcclxuICAgICAgY29tcG9uZW50Q29uZmlnLnNvcnRPcmRlciA9IGluZGV4O1xyXG4gICAgICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyBpIDwgdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5zb3J0T3JkZXIgPSB0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5zb3J0T3JkZXIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMCwgY29tcG9uZW50Q29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGluZGV4ID0gdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICBjb21wb25lbnRDb25maWcuc29ydE9yZGVyID0gaW5kZXg7XHJcbiAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuLnB1c2goY29tcG9uZW50Q29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jYW5SZW5kZXIoY29tcG9uZW50Q29uZmlnKSkge1xyXG4gICAgICB0aGlzLmFkZENvbXBvbmVudChjb21wb25lbnRDb25maWcsIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRDb250YWluZXJzKCk7XHJcbiAgfVxyXG5cclxuICBpbnNlcnRCZWZvcmUoaWQ6IHN0cmluZywgY29tcG9uZW50Q29uZmlnOiBhbnkpIHtcclxuICAgIGlmIChjb21wb25lbnRDb25maWcudHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBjb21wb25lbnQgbXVzdCBzcGVjaWZ5IGEgJ3R5cGUnIChlLmcuIFVsTmF2Q29tcG9uZW50KS5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5jaGlsZHJlbltpXS5pZCA9PT0gaWQpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoaW5kZXggPD0gdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoIC0gMSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCB0aGlzLmNvbmZpZy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnNvcnRPcmRlciA9IHRoaXMuY29uZmlnLmNoaWxkcmVuW2ldLnNvcnRPcmRlciArIDE7XHJcbiAgICAgIH1cclxuICAgICAgY29tcG9uZW50Q29uZmlnLnNvcnRPcmRlciA9IGluZGV4O1xyXG4gICAgICB0aGlzLmNvbmZpZy5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDAsIGNvbXBvbmVudENvbmZpZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbmRleCA9IHRoaXMuY29uZmlnLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgY29tcG9uZW50Q29uZmlnLnNvcnRPcmRlciA9IGluZGV4O1xyXG4gICAgICB0aGlzLmNvbmZpZy5jaGlsZHJlbi5wdXNoKGNvbXBvbmVudENvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2FuUmVuZGVyKGNvbXBvbmVudENvbmZpZykpIHtcclxuICAgICAgdGhpcy5hZGRDb21wb25lbnQoY29tcG9uZW50Q29uZmlnLCBpbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zb3J0Q29udGFpbmVycygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQSBmdW5jdGlvbiB0byBiZSBleHRlbmRlZCBieSBvdGhlciBjbGFzc2VzLiAgVGhpcyBjbGFzcyBhbmQgc29tZXRoaW5nIGxpa2UgYSBMaU5hdkNvbXBvbmVudCBkb24ndCBoYXZlIGFueSBjb250YWluZXJzXHJcbiAgICogc28gY29tcG9uZW50cyBjYW4ndCBiZSBhZGRlZCB0byB0aGVtLiAgSW4gb3RoZXIgY2FzZXMsIHRoZSBVbE5hdkNvbXBvbmVudCBoYXMgYSBzaW5nbGUgY29udGFpbmVyIHNvIGl0IGNhbiBhbHdheXNcclxuICAgKiByZXR1cm4gdGhhdCBjb250YWluZXIgcmVnYXJkbGVzcyBvZiB0aGUgY29udGFpbmVyTmFtZSByZXF1ZXN0ZWQgKHNob3VsZCBiZSBcImRlZmF1bHRcIikuICBBbnkgY29tcG9uZW50IHNob3VsZCBoYXZlXHJcbiAgICogYSBjb250YWluZXIgdGhhdCBpcyB0aGUgXCJkZWZhdWx0XCIuICBGb3IgZXhhbXBsZSwgYSBoZWFkZXIgY29tcG9uZW50IG1pZ2h0IGhhdmUgYSBjb250YWluZXIgZm9yIHRoZSBsZWZ0IGNvbXBvbmVudHNcclxuICAgKiBhbmQgYSBjb250YWluZXIgZm9yIHRoZSByaWdodCBjb21wb25lbnRzLiAgVGhlIGxlZnQgY29udGFpbmVyIGNhbiBqdXN0IGJlIGNhbGxlZCBcImRlZmF1bHRcIiBhbmQgdGhlIHJpZ2h0IGNvbnRhaW5lclxyXG4gICAqIGNvdWxkIGJlIGNhbGxlZCBcInJpZ2h0Q29udGFpbmVyXCIuICBJZiBhIGNoaWxkIGNvbXBvbmVudCBkb2Vzbid0IHNwZWNpZnkgYSBjb250YWluZXIsIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGRlZmF1bHQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udGFpbmVyXHJcbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cclxuICAgKi9cclxuICBnZXRDb250YWluZXIoY29udGFpbmVyPzogc3RyaW5nKTogVmlld0NvbnRhaW5lclJlZiB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50KGlkOiBzdHJpbmcpOiBOYXZDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0Q29tcG9uZW50KGlkKTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudEJ5VHlwZSh0eXBlOiBzdHJpbmcpOiBOYXZDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0Q29tcG9uZW50QnlUeXBlKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFBhcmVudChwYXJlbnQ6IE5hdkNvbXBvbmVudCkge1xyXG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyZW50KCk6IE5hdkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlnKGNvbmZpZykge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJzZXRDb25maWc6IFwiICsgdGhpcy5pbml0aWFsaXplZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBpZiAoY29uZmlnLnJlbmRlcmVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25maWcucmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcclxuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZyh0aGlzLmNvbmZpZyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0ge1xyXG4gICAgICAgIHJlbmRlcmVkOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGZ1bmN0aW9uIHRvIGJlIGV4dGVuZGVkIGJ5IG90aGVyIGNsYXNzZXMuICBUaGUgY2hpbGRyZW4gc2hvdWxkIGNhbGwgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZykuICBUaGlzIHNldHMgdGhlXHJcbiAgICogY29tbW9uIHByb3BlcnRpZXMgb2YgdGhlIE5hdkNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb25maWdcclxuICAgKi9cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoY29uZmlnLnR5cGUpIHtcclxuICAgICAgdGhpcy50eXBlID0gY29uZmlnLnR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgdGhpcy50eXBlTmFtZSA9IHRoaXMudHlwZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBUaGUgY29tcG9uZW50VHlwZSBkZWNvcmF0b3Igd2FzIGNyZWF0ZWQgZm9yIHVnbGlmaWNhdGlvbi4gVXNlIGl0IVxyXG4gICAgICBlbHNlIGlmICh0aGlzLnR5cGVbXCJjb21wb25lbnRUeXBlXCJdKSB7XHJcbiAgICAgICAgdGhpcy50eXBlTmFtZSA9IHRoaXMudHlwZVtcImNvbXBvbmVudFR5cGVcIl07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50eXBlTmFtZSA9ICg8VHlwZTxhbnk+PnRoaXMudHlwZSkubmFtZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuaWQpIHtcclxuICAgICAgdGhpcy5pZCA9IGNvbmZpZy5pZDtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0SWROYXZDb21wb25lbnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SWQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1Jvb3QpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5zZXRSb290Q29tcG9uZW50KHRoaXMuaWQsIHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiTmF2Q29tcG9uZW50LnVwZGF0ZUNvbmZpZzogXCIgKyB0aGlzLmlkICsgXCI6IFwiICsgdGhpcy5pbml0aWFsaXplZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5hdXRoZW50aWNhdGVkS2V5KSB7XHJcbiAgICAgIHRoaXMuYXV0aGVudGljYXRlZEtleSA9IGNvbmZpZy5hdXRoZW50aWNhdGVkS2V5O1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5ub3RBdXRoZW50aWNhdGVkS2V5KSB7XHJcbiAgICAgIHRoaXMubm90QXV0aGVudGljYXRlZEtleSA9IGNvbmZpZy5ub3RBdXRoZW50aWNhdGVkS2V5O1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5yb2xlTmFtZSkge1xyXG4gICAgICB0aGlzLnJvbGVOYW1lID0gY29uZmlnLnJvbGVOYW1lO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy50aXRsZSkge1xyXG4gICAgICB0aGlzLnRpdGxlID0gY29uZmlnLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5yb290Q2xhc3MpIHtcclxuICAgICAgdGhpcy5yb290Q2xhc3MgPSBjb25maWcucm9vdENsYXNzO1xyXG4gICAgICB0aGlzLnNldFJvb3RDbGFzcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5jaGlsZHJlbikge1xyXG4gICAgICB0aGlzLmlucHV0Q2hpbGRyZW4gPSBjb25maWcuY2hpbGRyZW47XHJcbiAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIk5hdkNvbXBvbmVudC51cGRhdGVDb25maWc6IFwiICsgKHRoaXMuY29uc3RydWN0b3IubmFtZSkgKyBcIiwgXCIgKyB0aGlzLmlkICsgXCIsIFwiICsgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRJZCgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldElkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5yZWdpc3RlckNvbXBvbmVudCh0aGlzLmlkLCB0aGlzKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImlkXCIsIHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um9vdENsYXNzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucm9vdENsYXNzKSB7XHJcbiAgICAgIGxldCBjbGFzc2VzOiBzdHJpbmdbXSA9IHRoaXMucm9vdENsYXNzLnNwbGl0KFwiIFwiKTtcclxuICAgICAgZm9yIChsZXQgcm9vdENsYXNzIG9mIGNsYXNzZXMpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCByb290Q2xhc3MpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDaGlsZHJlbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb25maWcuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5jb25maWcuY2hpbGRyZW5baV0uc29ydE9yZGVyID0gaTtcclxuICAgICAgdGhpcy5hZGQodGhpcy5jb25maWcuY2hpbGRyZW5baV0sIGkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICghKDxWaWV3UmVmPnRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYpLmRlc3Ryb3llZCkge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1015,6 +1015,9 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1015
1015
|
if (config.imgSrc) {
|
|
1016
1016
|
this.imgSrc = config.imgSrc;
|
|
1017
1017
|
}
|
|
1018
|
+
if (config.altText) {
|
|
1019
|
+
this.altText = config.altText;
|
|
1020
|
+
}
|
|
1018
1021
|
if (config.iText) {
|
|
1019
1022
|
this.iText = config.iText;
|
|
1020
1023
|
}
|
|
@@ -1042,7 +1045,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1042
1045
|
super.updateConfig(config);
|
|
1043
1046
|
}
|
|
1044
1047
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LiNavComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: NavigationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1045
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LiNavComponent, selector: "hci-li", inputs: { liClass: "liClass", href: "href", target: "target", route: "route", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", aClass: "aClass", spanClass: "spanClass", iClass: "iClass", imgSrc: "imgSrc", iText: "iText", iRight: "iRight", badgeCount: "badgeCount", badgeLoading: "badgeLoading", showValueFlag: "showValueFlag", showValue: "showValue", showValueClass: "showValueClass", liClick: "liClick" }, usesInheritance: true, ngImport: i0, template: `
|
|
1048
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LiNavComponent, selector: "hci-li", inputs: { liClass: "liClass", href: "href", target: "target", route: "route", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", aClass: "aClass", spanClass: "spanClass", iClass: "iClass", imgSrc: "imgSrc", altText: "altText", iText: "iText", iRight: "iRight", badgeCount: "badgeCount", badgeLoading: "badgeLoading", showValueFlag: "showValueFlag", showValue: "showValue", showValueClass: "showValueClass", liClick: "liClick" }, usesInheritance: true, ngImport: i0, template: `
|
|
1046
1049
|
<ng-container>
|
|
1047
1050
|
<li [id]="id + '-li'" class="hci-li {{liClass}}" (click)="handleLiClick($event)">
|
|
1048
1051
|
<a *ngIf="!href && !route" class="hci-li-a {{aClass}}">
|
|
@@ -1052,7 +1055,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1052
1055
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1053
1056
|
</i>
|
|
1054
1057
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
1055
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1058
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1056
1059
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1057
1060
|
</i>
|
|
1058
1061
|
<span riRippleEffect class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -1062,7 +1065,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1062
1065
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1063
1066
|
</i>
|
|
1064
1067
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
1065
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1068
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1066
1069
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1067
1070
|
</i>
|
|
1068
1071
|
</a>
|
|
@@ -1074,7 +1077,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1074
1077
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1075
1078
|
</i>
|
|
1076
1079
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
1077
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1080
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1078
1081
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1079
1082
|
</i>
|
|
1080
1083
|
<span class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -1084,7 +1087,7 @@ let LiNavComponent = class LiNavComponent extends NavComponent {
|
|
|
1084
1087
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1085
1088
|
</i>
|
|
1086
1089
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
1087
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1090
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1088
1091
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1089
1092
|
</i>
|
|
1090
1093
|
</a>
|
|
@@ -1139,7 +1142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1139
1142
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1140
1143
|
</i>
|
|
1141
1144
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
1142
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1145
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1143
1146
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1144
1147
|
</i>
|
|
1145
1148
|
<span riRippleEffect class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -1149,7 +1152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1149
1152
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1150
1153
|
</i>
|
|
1151
1154
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
1152
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1155
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1153
1156
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1154
1157
|
</i>
|
|
1155
1158
|
</a>
|
|
@@ -1161,7 +1164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1161
1164
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1162
1165
|
</i>
|
|
1163
1166
|
<i *ngIf="imgSrc && !iRight" class="hci-li-i-img">
|
|
1164
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1167
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1165
1168
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1166
1169
|
</i>
|
|
1167
1170
|
<span class="hci-li-span {{spanClass}}">{{title}}</span>
|
|
@@ -1171,7 +1174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1171
1174
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1172
1175
|
</i>
|
|
1173
1176
|
<i *ngIf="imgSrc && iRight" class="hci-li-i-img">
|
|
1174
|
-
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true"/>
|
|
1177
|
+
<img src="{{imgSrc}}" [class]="iClass" [class.hci-li-img]="true" [alt]="altText" />
|
|
1175
1178
|
<hci-badge *ngIf="badgeCount" [countSubject]="badgeCount" [countLoading]="badgeLoading"></hci-badge>
|
|
1176
1179
|
</i>
|
|
1177
1180
|
</a>
|
|
@@ -1229,6 +1232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1229
1232
|
type: Input
|
|
1230
1233
|
}], imgSrc: [{
|
|
1231
1234
|
type: Input
|
|
1235
|
+
}], altText: [{
|
|
1236
|
+
type: Input
|
|
1232
1237
|
}], iText: [{
|
|
1233
1238
|
type: Input
|
|
1234
1239
|
}], iRight: [{
|