@esfaenza/extensions 16.2.29 → 17.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/modules/extensions.module.mjs +4 -4
- package/esm2022/lib/pipes/loc_date.pipe.mjs +4 -4
- package/esm2022/lib/services/extensions.base.mjs +5 -5
- package/esm2022/lib/services/extensions.clipboard.service.mjs +6 -6
- package/esm2022/lib/services/extensions.dates.service.mjs +6 -6
- package/esm2022/lib/services/extensions.embedding.service.mjs +5 -5
- package/esm2022/lib/services/extensions.exports.service.mjs +5 -5
- package/esm2022/lib/services/extensions.hashing.service.mjs +4 -4
- package/esm2022/lib/services/extensions.intercom.service.mjs +4 -4
- package/esm2022/lib/services/extensions.messages.service.mjs +6 -6
- package/esm2022/lib/services/extensions.utilities.service.mjs +4 -4
- package/fesm2022/esfaenza-extensions.mjs +45 -45
- package/fesm2022/esfaenza-extensions.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -17,11 +17,11 @@ export class ExtensionsModule {
|
|
|
17
17
|
]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
22
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ExtensionsModule, declarations: [LocDatePipe], imports: [LocalizationModule], exports: [LocDatePipe] });
|
|
22
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExtensionsModule, imports: [LocalizationModule] });
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExtensionsModule, decorators: [{
|
|
25
25
|
type: NgModule,
|
|
26
26
|
args: [{
|
|
27
27
|
imports: [LocalizationModule],
|
|
@@ -28,11 +28,11 @@ export class LocDatePipe {
|
|
|
28
28
|
var dt = this.dts.getDateConvertion(detatchedValue);
|
|
29
29
|
return dt.format(format);
|
|
30
30
|
}
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocDatePipe, deps: [{ token: i1.DateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
32
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: LocDatePipe, name: "loc_date" });
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocDatePipe, decorators: [{
|
|
35
35
|
type: Pipe,
|
|
36
36
|
args: [{ name: "loc_date", pure: true }]
|
|
37
|
-
}], ctorParameters:
|
|
37
|
+
}], ctorParameters: () => [{ type: i1.DateService }] });
|
|
38
38
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jX2RhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9waXBlcy9sb2NfZGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3BEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFLQTtJQUhwQjs7T0FFRztJQUNILFlBQW9CLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7SUFBSSxDQUFDO0lBRXpDOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWlCLFlBQVk7UUFDL0MsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFL0MsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt3R0FyQlEsV0FBVztzR0FBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogUGlwZSBjaGUgcGVybWV0dGUgZGkgZm9ybWF0dGFyZSB1bmEgZGF0YSBpbiBiYXNlIGFsIGZvcm1hdG8gc3BlY2lmaWNhdG8uIFV0aWxpenphIGlsICoqRGF0ZVNlcnZpY2UqKiBkaSAqKkBlc2ZhZW56YS9leHRlbnNpb25zKiogcGVyIHJpY29uZHVycmUgbCdpbnB1dCBhIHVuYSBkYXRhIHZhbGlkYVxyXG4gKi9cclxuQFBpcGUoeyBuYW1lOiBcImxvY19kYXRlXCIsIHB1cmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIExvY0RhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZHRzOiBEYXRlU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFzZm9ybWF6aW9uZSBkZWxsYSBkYXRhIGluIGlucHV0IGluIGJhc2UgYWwgZm9ybWF0byByaWNoaWVzdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBkYSByaWNvbmR1cnJlIGFkIHVuYSBkYXRhIGUgZm9ybWF0dGFyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCBGb3JtYXRvIGluIG91dHB1dCBkZWxsYSBkYXRhIGRhIHZpc3VhbGl6emFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBEYXRhIGZvcm1hdHRhdGEgaW4gYmFzZSBhbCBmb3JtYXRvXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmb3JtYXQ6IHN0cmluZyA9IFwiREQvTU0vWVlZWVwiKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCJcIikgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIHZhciBkZXRhdGNoZWRWYWx1ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICB2YXIgZHQgPSB0aGlzLmR0cy5nZXREYXRlQ29udmVydGlvbihkZXRhdGNoZWRWYWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGR0LmZvcm1hdChmb3JtYXQpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -20,11 +20,11 @@ export class BaseExtensionsService {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseExtensionsService, deps: [{ token: i1.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseExtensionsService, providedIn: "root" });
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseExtensionsService, decorators: [{
|
|
27
27
|
type: Injectable,
|
|
28
28
|
args: [{ providedIn: "root" }]
|
|
29
|
-
}], ctorParameters:
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.AppEmbeddingExtensions }] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUtWO0lBSGIsV0FBVyxHQUEyRCxFQUFFLENBQUM7SUFDekUsU0FBUyxHQUEyRCxFQUFFLENBQUM7SUFFOUUsWUFBb0IsR0FBMkI7UUFBM0IsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFDM0MsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3RixDQUFDLENBQUE7UUFDTCxDQUFDO0lBQ0wsQ0FBQzt3R0FkUSxxQkFBcUI7NEdBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCIuL2V4dGVuc2lvbnMuZW1iZWRkaW5nLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSB1biBhY2Nlc3NvIGJhc2UgaW4gbGV0dHVyYS9zY3JpdHR1cmEgc3VsbGEgY2xpcGJvYXJkXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlRXh0ZW5zaW9uc1NlcnZpY2Uge1xyXG5cclxuICAgIHB1YmxpYyBSZWRpcmVjdE1hcDogeyBbaW5kZXg6IHN0cmluZ106IHsgdXJsOiBzdHJpbmcsIHBhcmFtczogc3RyaW5nW10gfSB9ID0ge307XHJcbiAgICBwdWJsaWMgUm91dGVzTWFwOiB7IFtpbmRleDogc3RyaW5nXTogeyByb3V0ZTogKHBhcmFtOiBzdHJpbmcpID0+IGFueSB9IH0gPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykge1xyXG4gICAgICAgIGZvciAobGV0IHByb3AgaW4gdGhpcy5SZWRpcmVjdE1hcCkge1xyXG4gICAgICAgICAgICB0aGlzLlJvdXRlc01hcFtwcm9wXSA9IHsgcm91dGU6IG51bGwgfTtcclxuICAgICAgICAgICAgdGhpcy5Sb3V0ZXNNYXBbcHJvcF0ucm91dGUgPSAocGFyYW06IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICAgICAgb2JqW3RoaXMuUmVkaXJlY3RNYXBbcHJvcF0ucGFyYW1zWzBdXSA9IHBhcmFtO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsodGhpcy5lbWIuRW1iZWRkZWQgPyBcInBhZ2VzX2V4dC9cIiA6IFwicGFnZXMvXCIpICsgdGhpcy5SZWRpcmVjdE1hcFtwcm9wXS51cmwsIG9ial07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -209,13 +209,13 @@ export class ClipboardService {
|
|
|
209
209
|
}
|
|
210
210
|
document.body.removeChild(textArea);
|
|
211
211
|
}
|
|
212
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
213
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
212
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClipboardService, deps: [{ token: i1.MessageService }, { token: i2.BaseLocalization, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
213
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClipboardService, providedIn: "root" });
|
|
214
214
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ClipboardService, decorators: [{
|
|
216
216
|
type: Injectable,
|
|
217
217
|
args: [{ providedIn: "root" }]
|
|
218
|
-
}], ctorParameters:
|
|
218
|
+
}], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.BaseLocalization, decorators: [{
|
|
219
219
|
type: Optional
|
|
220
|
-
}] }]
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmNsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFyRCxXQUFXO0FBQ1gsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFpREU7SUFBZ0Q7SUEvQzNFOztPQUVHO0lBQ0ssR0FBRyxHQUFHO1FBQ1YsaUlBQWlJLEVBQUU7WUFDL0gsT0FBTyxFQUFFLGlJQUFpSTtZQUMxSSxPQUFPLEVBQUUsaUlBQWlJO1NBQzdJO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUseURBQXlEO1NBQ3JFO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QsK0NBQStDLEVBQUM7WUFDNUMsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsc0RBQXNEO1NBQ2xFO1FBQ0Qsc0NBQXNDLEVBQUU7WUFDcEMsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QscUJBQXFCLEVBQUU7WUFDbkIsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsd0JBQXdCO1NBQ3BDO1FBQ0QsZ0tBQWdLLEVBQUU7WUFDOUosT0FBTyxFQUFFLGdLQUFnSztZQUN6SyxPQUFPLEVBQUUsNktBQTZLO1NBQ3pMO1FBQ0Qs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QVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUUxQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUV0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWxCLElBQUk7WUFDQSxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLElBQUcsQ0FBQyxVQUFVO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlHO1FBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQzt3R0ExTlEsZ0JBQWdCOzRHQUFoQixnQkFBZ0IsY0FESixNQUFNOzs0RkFDbEIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBa0Q0QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBFc1xyXG5pbXBvcnQgeyBCYXNlTG9jYWxpemF0aW9uIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpb25zLm1lc3NhZ2VzLnNlcnZpY2UnO1xyXG5cclxuLy8gTGlicmVyaWVcclxuaW1wb3J0IFN3YWwgZnJvbSBcInN3ZWV0YWxlcnQyXCI7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vKipcclxuICogU2VydmljZSBjaGUgZm9ybmlzY2UgdW4gYWNjZXNzbyBiYXNlIGluIGxldHR1cmEvc2NyaXR0dXJhIHN1bGxhIGNsaXBib2FyZFxyXG4gKi9cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwicm9vdFwifSlcclxuZXhwb3J0IGNsYXNzIENsaXBib2FyZFNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2dnZXR0byBzdGF0aWNvIGRpIGxvY2FsaXp6YXppb25lIHBlciBpIG1lc3NhZ2dpIGRpIHF1ZXN0YSBTZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9jID0ge1xyXG4gICAgICAgIFwiVW5mb3J0dW5hdGVseSBGaXJlZm94IGRvZXNuJ3QgeWV0IHN1cHBvcnQgZGlyZWN0IENsaXBib2FyZCBhY2Nlc3MgaWYgbm90IHZpYSBleHRlbnNpb25zLCBQbGVhc2UgdXNlIENocm9tZSB0byBkbyB0aGlzIG9wZXJhdGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiVW5mb3J0dW5hdGVseSBGaXJlZm94IGRvZXNuJ3QgeWV0IHN1cHBvcnQgZGlyZWN0IENsaXBib2FyZCBhY2Nlc3MgaWYgbm90IHZpYSBleHRlbnNpb25zLCBQbGVhc2UgdXNlIENocm9tZSB0byBkbyB0aGlzIG9wZXJhdGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIk1pIGRpc3BpYWNlIG1hIEZpcmVmb3ggbm9uIHN1cHBvcnRhIGwnYWNjZXNzbyBkaXJldHRvIGFsbGEgQ2xpcGJvYXJkLCBzZSBub24gYXR0cmF2ZXJzbyBsZSBlc3RlbnNpb25pLiBTaSBwcmVnYSBkaSB1c2FyZSBDaHJvbWVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJHZW5lcmljIGVycm9yIGR1cmluZyAnY29weScgY29tbWFuZCBleGVjdXRpb25cIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkdlbmVyaWMgZXJyb3IgZHVyaW5nICdjb3B5JyBjb21tYW5kIGV4ZWN1dGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIkVycm9yZSBnZW5lcmljbyBkdXJhbnRlIGwnZXNlY3V6aW9uZSBkZWwgY29tYW5kbyAnY29weSdcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJFcnJvciBkdXJpbmcgQ2xpcGJvYXJkIGNvbnRlbnQgcmVhZCBvcGVyYXRpb25cIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCByZWFkIG9wZXJhdGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIkVycm9yZSBuZWxsYSBsZXR0dXJhIGRlbCBjb250ZW51dG8gZGVsbGEgQ2xpcGJvYXJkXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IGNvcHkgb3BlcmF0aW9uXCI6e1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCBjb3B5IG9wZXJhdGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIkVycm9yZSBuZWxsYSBzY3JpdHR1cmEgZGVsIGNvbnRlbnV0byBuZWxsYSBDbGlwYm9hcmRcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJQbGVhc2UgaW5zZXJ0IHlvdXIgY2xpcGJvYXJkIGNvbnRlbnRcIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIlBsZWFzZSBpbnNlcnQgeW91ciBjbGlwYm9hcmQgY29udGVudFwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIlNpIHByZWdhIGRpIGluY29sbGFyZSBpbCBjb250ZW51dG8gZGVsbGEgQ2xpcGJvYXJkXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiVXNlciBpbnB1dCByZXF1aXJlZFwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiVXNlciBpbnB1dCByZXF1aXJlZFwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIlJpY2hpZXN0byBJbnB1dCB1dGVudGVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgZnJvbSB0aGUgY2xpcGJvYXJkIGRpcmVjdGx5LiBQbGVhc2UgcGFzdGUgeW91ciBjbGlwYm9hcmQncyBjb250ZW50IGluIHRoaXMgSW5wdXQgZmllbGQgYW5kIGNvbmZpcm0gdGhlIG9wZXJhdGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiWW91ciBjdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIGZyb20gdGhlIGNsaXBib2FyZCBkaXJlY3RseS4gUGxlYXNlIHBhc3RlIHlvdXIgY2xpcGJvYXJkJ3MgY29udGVudCBpbiB0aGlzIElucHV0IGZpZWxkIGFuZCBjb25maXJtIHRoZSBvcGVyYXRpb25cIixcclxuICAgICAgICAgICAgJ2l0LUlUJzogXCJJbCBicm93c2VyIGNvcnJlbnRlIG5vbiBzdXBwb3J0YSBsYSBsZXR0dXJhIGRpcmV0dGEgZGVpIGRhdGkgZGVsbGEgQ2xpcGJvYXJkLCBzaSBwcmVnYSBkaSBlZmZldHR1YXJlIHVuJ2luY29sbGEgKENUUkwgKyBWKSBuZWxsYSBjYXNlbGxhIGRpIHRlc3RvIGUgY29uZmVybWFyZSBsJ29wZXJhemlvbmVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJDb25maXJtXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJDb25maXJtXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiQ29uZmVybWFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJDYW5jZWxcIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkNhbmNlbFwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIkFubnVsbGFcIlxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmVcclxuICAgICAqIFxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBtc2dTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBsb2NQcm92aWRlcjogQmFzZUxvY2FsaXphdGlvbikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcmVuZGUgaWwgdmFsb3JlIGRlbGxhIGNsaXBib2FyZC4gXHJcbiAgICAgKiBTaSBwdcOyIHNwZWNpZmljYXJlIHNlIGNpIHNpIGFzcGV0dGEgdW5hIGxpc3RhIG8gdW5hIG1hdHJpY2UgZGkgdmFsb3JpIGluIG1vZG8gZGEgcmljZXZlcmUgZ2nDoCB1biByaXN1bHRhdG8gdXRpbGl6emFiaWxlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7J2FycmF5JyB8ICdtYXRyaXgnfSBzdHlsZSBTdGlsZSBkZWxsJ291dHB1dCBkZXNpZGVyYXRvLCBzZSBhcnJheSBvIG1hdHJpY2VcclxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHZhbHVlRm91bmRDYWxsYmFjayBDYWxsYmFjayBjaGUgcXVlc3RhIGZ1bnppb25lIGNoaWFtZXLDoCB1bmEgdm9sdGEgb3R0ZW51dG8gaSB2YWxvcmkgcmljaGllc3RpIGRhbGxhIGNsaXBib2FyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q2xpcGJvYXJkKHN0eWxlOiAnYXJyYXknIHwgJ21hdHJpeCcsIHZhbHVlRm91bmRDYWxsYmFjayA6ICh2YWx1ZXM6IHN0cmluZ1tdIHwgc3RyaW5nW11bXSkgPT4gdm9pZCkge1xyXG4gICAgICAgIGxldCBMT0NBTEUgPSB0aGlzLmxvY1Byb3ZpZGVyID8gIGF3YWl0IHRoaXMubG9jUHJvdmlkZXIuTG9jYWxlLnBpcGUoZmlyc3QoKSkudG9Qcm9taXNlKCkgOiAnaXQtSVQnO1xyXG5cclxuICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiRmlyZWZveFwiKSAhPSAtMSkge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmxvY1tcIlVzZXIgaW5wdXQgcmVxdWlyZWRcIl1bTE9DQUxFXSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMubG9jW1wiWW91ciBjdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIGZyb20gdGhlIGNsaXBib2FyZCBkaXJlY3RseS4gUGxlYXNlIHBhc3RlIHlvdXIgY2xpcGJvYXJkJ3MgY29udGVudCBpbiB0aGlzIElucHV0IGZpZWxkIGFuZCBjb25maXJtIHRoZSBvcGVyYXRpb25cIl1bTE9DQUxFXSxcclxuICAgICAgICAgICAgICAgIGlucHV0OiAndGV4dGFyZWEnLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogdGhpcy5sb2NbXCJDb25maXJtXCJdW0xPQ0FMRV0sXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiB0aGlzLmxvY1tcIkNhbmNlbFwiXVtMT0NBTEVdLFxyXG4gICAgICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbjogXCJidG4gYnRuLXByaW1hcnlcIixcclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b246IFwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC0xNVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogXCJhcHAtd3JhcFwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJldmVyc2VCdXR0b25zOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaW5wdXRWYWxpZGF0b3I6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY1tcIlBsZWFzZSBpbnNlcnQgeW91ciBjbGlwYm9hcmQgY29udGVudFwiXVtMT0NBTEVdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSkudGhlbih0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBSZXRyaWV2aW5nIGlucHV0IGRhdGEgZnJvbSB1c2VyIGlucHV0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5kb0NsaXBib2FyZERhdGFHZXQodC52YWx1ZSwgc3R5bGUsIHZhbHVlRm91bmRDYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKDxhbnk+d2luZG93KS5jbGlwYm9hcmREYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBGb3VuZCBjbGlwYm9hcmREYXRhXCIpO1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9ICg8YW55PndpbmRvdykuY2xpcGJvYXJkRGF0YS5nZXREYXRhKFwiVGV4dFwiKTtcclxuICAgICAgICAgICAgdGhpcy5kb0NsaXBib2FyZERhdGFHZXQoZGF0YSwgc3R5bGUsIHZhbHVlRm91bmRDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmICgoPGFueT53aW5kb3cpLm5hdmlnYXRvci5jbGlwYm9hcmQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIEZvdW5kIG5hdmlnYXRvciBjbGlwYm9hcmRcIik7XHJcbiAgICAgICAgICAgICg8YW55PndpbmRvdykubmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHsgbmFtZTogJ2NsaXBib2FyZC1yZWFkJyB9KS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShyZXN1bHQuc3RhdGUgPT09ICdncmFudGVkJyB8fCByZXN1bHQuc3RhdGUgPT09ICdwcm9tcHQnKSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBDbGlwYm9hcmQgcGVybWlzc2lvbiBub3QgZ3JhbnRlZFwiKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVGb3VuZENhbGxiYWNrKSB2YWx1ZUZvdW5kQ2FsbGJhY2soW10pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIltAZXNmYWVuemEvZXh0ZW5zaW9uc10gQ2xpcGJvYXJkIHBlcm1pc3Npb24gZ3JhbnRlZCwgcmV0cmlldmluZyB2YWx1ZXNcIik7XHJcbiAgICAgICAgICAgICAgICAoPGFueT53aW5kb3cpLm5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQoKVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCh0OiBzdHJpbmcpID0+IHRoaXMuZG9DbGlwYm9hcmREYXRhR2V0KHQsIHN0eWxlLCB2YWx1ZUZvdW5kQ2FsbGJhY2spKVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyOiBhbnkpID0+IHRoaXMubXNnU2VydmljZS5zaW1wbGVFcnJvcih0aGlzLmxvY1tcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCByZWFkIG9wZXJhdGlvblwiXVtMT0NBTEVdICsgXCI6IFwiICsgZXJyKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHJpdmF0ZSBkb0NsaXBib2FyZERhdGFHZXQoY2xpcGJvYXJkVGV4dDogc3RyaW5nLCBzdHlsZTogXCJtYXRyaXhcIiB8IFwiYXJyYXlcIiwgdmFsdWVGb3VuZENhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBSZXRyaWV2ZWQgY2xpcGJvYXJkIHZhbHVlczogXCIgKyBjbGlwYm9hcmRUZXh0KTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBzdHlsZSA9PSBcImFycmF5XCIgPyB0aGlzLmdldENsaXBib2FyZExpbmVzKGNsaXBib2FyZFRleHQpIDpcclxuICAgICAgICAgICAgc3R5bGUgPT0gXCJtYXRyaXhcIiA/IHRoaXMuZ2V0Q2xpcGJvYXJkTWF0cml4KGNsaXBib2FyZFRleHQpIDogW107XHJcbiAgICAgICAgY29uc29sZS5sb2coYFtAZXNmYWVuemEvZXh0ZW5zaW9uc10gQWRhcHRlZCBmb3IgJHtzdHlsZX06ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xyXG4gICAgICAgIGlmICh2YWx1ZUZvdW5kQ2FsbGJhY2spIHZhbHVlRm91bmRDYWxsYmFjayh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGNvbnRlbnV0byBkZWxsYSBjbGlwYm9hcmQgZGl2aXNvIHBlciByaWdoZSAoc2VwYXJhdGUgZGEgbmV3bGluZSlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgY29udGVudXRvIGxldHRvIGRhbGxhIGNsaXBib2FyZFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IEFycmF5IGNvbnRlbmVudGUgaWwgdGVzdG8gcHJlc28gZGFsbGEgY2xpcGJvYXJkIGRpdmlzbyBwZXIgcmlnYVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENsaXBib2FyZExpbmVzKGRhdGE6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICBsZXQgdHJpbW1lZERhdGEgPSBkYXRhLnRyaW0oKTtcclxuXHJcbiAgICAgICAgaWYgKCF0cmltbWVkRGF0YS5pbmNsdWRlcyhcIlxcclxcblwiKSAmJiB0cmltbWVkRGF0YS5pbmNsdWRlcyhcIlxcblwiKSlcclxuICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWREYXRhLnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJpbW1lZERhdGEuc3BsaXQoXCJcXHJcXG5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGNvbnRlbnV0byBkZWxsYSBjbGlwYm9hcmQgZGl2aXNvIHBlciByaWdoZSAoc2VwYXJhdGUgZGEgbmV3bGluZSkgZSBjb2xvbm5lIChzZXBhcmF0ZSBkYSB0YWIpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIGNvbnRlbnV0byBsZXR0byBkYWxsYSBjbGlwYm9hcmRcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ1tdW119IE1hdHJpY2UgY29udGVuZW50ZSBpbCB0ZXN0byBwcmVzbyBkYWxsYSBjbGlwYm9hcmQgZGl2aXNvIHBlciByaWdhIGUgY29sb25uYVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENsaXBib2FyZE1hdHJpeChkYXRhOiBzdHJpbmcpOiBzdHJpbmdbXVtdIHtcclxuICAgICAgICB2YXIgcmV0OiBzdHJpbmdbXVtdID0gW107XHJcbiAgICAgICAgdmFyIHJvd3MgPSAhZGF0YS5pbmNsdWRlcyhcIlxcclxcblwiKSAmJiBkYXRhLmluY2x1ZGVzKFwiXFxuXCIpID8gZGF0YS5zcGxpdChcIlxcblwiKSA6IGRhdGEuc3BsaXQoXCJcXHJcXG5cIik7XHJcblxyXG4gICAgICAgIC8vIEEgcXVhbnRvIHBhcmUgb2duaSB2YWxvcmUgw6ggc2VwYXJhdG8gZGEgdW4gXFx0Li4uIHNwZXJvIGNoZSBzaWEgdW5vIHN0YW5kYXJkIGRpIHF1YW5kbyBzaSBjb3BpYSBkYSBleGNlbCBhbHRyaW1lbnRpIGNpYW9cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHJldC5wdXNoKHJvd3NbaV0uc3BsaXQoJ1xcdCcpLm1hcCh0ID0+IHQudHJpbSgpKSk7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldG9kbyBjaGUgY29waWEgdW4gdGVzdG8gYWxsJ2ludGVybm8gZGVsbGEgY2xpcGJvYXJkXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIGluc2VyaXJlIG5lbGxhIGNsaXBib2FyZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgY29weVRleHRUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgTE9DQUxFID0gdGhpcy5sb2NQcm92aWRlciA/ICBhd2FpdCB0aGlzLmxvY1Byb3ZpZGVyLkxvY2FsZS5waXBlKGZpcnN0KCkpLnRvUHJvbWlzZSgpIDogJ2l0LUlUJztcclxuXHJcbiAgICAgICAgdmFyIHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpO1xyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vICoqKiBUaGlzIHN0eWxpbmcgaXMgYW4gZXh0cmEgc3RlcCB3aGljaCBpcyBsaWtlbHkgbm90IHJlcXVpcmVkLiAqKipcclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdoeSBpcyBpdCBoZXJlPyBUbyBlbnN1cmU6XHJcbiAgICAgICAgLy8gMS4gdGhlIGVsZW1lbnQgaXMgYWJsZSB0byBoYXZlIGZvY3VzIGFuZCBzZWxlY3Rpb24uXHJcbiAgICAgICAgLy8gMi4gaWYgZWxlbWVudCB3YXMgdG8gZmxhc2ggcmVuZGVyIGl0IGhhcyBtaW5pbWFsIHZpc3VhbCBpbXBhY3QuXHJcbiAgICAgICAgLy8gMy4gbGVzcyBmbGFreW5lc3Mgd2l0aCBzZWxlY3Rpb24gYW5kIGNvcHlpbmcgd2hpY2ggKiptaWdodCoqIG9jY3VyIGlmXHJcbiAgICAgICAgLy8gICAgdGhlIHRleHRhcmVhIGVsZW1lbnQgaXMgbm90IHZpc2libGUuXHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyBUaGUgbGlrZWxpaG9vZCBpcyB0aGUgZWxlbWVudCB3b24ndCBldmVuIHJlbmRlciwgbm90IGV2ZW4gYSBmbGFzaCxcclxuICAgICAgICAvLyBzbyBzb21lIG9mIHRoZXNlIGFyZSBqdXN0IHByZWNhdXRpb25zLiBIb3dldmVyIGluIElFIHRoZSBlbGVtZW50XHJcbiAgICAgICAgLy8gaXMgdmlzaWJsZSB3aGlsc3QgdGhlIHBvcHVwIGJveCBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24gZm9yXHJcbiAgICAgICAgLy8gdGhlIHdlYiBwYWdlIHRvIGNvcHkgdG8gdGhlIGNsaXBib2FyZC5cclxuICAgICAgICAvL1xyXG5cclxuICAgICAgICAvLyBQbGFjZSBpbiB0b3AtbGVmdCBjb3JuZXIgb2Ygc2NyZWVuIHJlZ2FyZGxlc3Mgb2Ygc2Nyb2xsIHBvc2l0aW9uLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLnBvc2l0aW9uID0gXCJmaXhlZFwiO1xyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLnRvcCA9IFwiMFwiO1xyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLmxlZnQgPSBcIjBcIjtcclxuXHJcbiAgICAgICAgLy8gRW5zdXJlIGl0IGhhcyBhIHNtYWxsIHdpZHRoIGFuZCBoZWlnaHQuIFNldHRpbmcgdG8gMXB4IC8gMWVtXHJcbiAgICAgICAgLy8gZG9lc24ndCB3b3JrIGFzIHRoaXMgZ2l2ZXMgYSBuZWdhdGl2ZSB3L2ggb24gc29tZSBicm93c2Vycy5cclxuICAgICAgICB0ZXh0QXJlYS5zdHlsZS53aWR0aCA9IFwiMmVtXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUuaGVpZ2h0ID0gXCIyZW1cIjtcclxuXHJcbiAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBwYWRkaW5nLCByZWR1Y2luZyB0aGUgc2l6ZSBpZiBpdCBkb2VzIGZsYXNoIHJlbmRlci5cclxuICAgICAgICB0ZXh0QXJlYS5zdHlsZS5wYWRkaW5nID0gXCIwXCI7XHJcblxyXG4gICAgICAgIC8vIENsZWFuIHVwIGFueSBib3JkZXJzLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLmJvcmRlciA9IFwibm9uZVwiO1xyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLm91dGxpbmUgPSBcIm5vbmVcIjtcclxuICAgICAgICB0ZXh0QXJlYS5zdHlsZS5ib3hTaGFkb3cgPSBcIm5vbmVcIjtcclxuXHJcbiAgICAgICAgLy8gQXZvaWQgZmxhc2ggb2Ygd2hpdGUgYm94IGlmIHJlbmRlcmVkIGZvciBhbnkgcmVhc29uLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLmJhY2tncm91bmQgPSBcInRyYW5zcGFyZW50XCI7XHJcblxyXG4gICAgICAgIHRleHRBcmVhLnZhbHVlID0gdGV4dDtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICAgICAgdGV4dEFyZWEuZm9jdXMoKTtcclxuICAgICAgICB0ZXh0QXJlYS5zZWxlY3QoKTtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIHN1Y2Nlc3NmdWwgPSBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XHJcbiAgICAgICAgICAgIGlmKCFzdWNjZXNzZnVsKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUVycm9yKHRoaXMubG9jW1wiR2VuZXJpYyBlcnJvciBkdXJpbmcgJ2NvcHknIGNvbW1hbmQgZXhlY3V0aW9uXCJdW0xPQ0FMRV0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IodGhpcy5sb2NbXCJFcnJvciBkdXJpbmcgQ2xpcGJvYXJkIGNvbnRlbnQgY29weSBvcGVyYXRpb25cIl1bTE9DQUxFXSArIFwiOiBcIisgZXJyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgfVxyXG59Il19
|
|
220
|
+
}] }] });
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmNsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFyRCxXQUFXO0FBQ1gsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFpREU7SUFBZ0Q7SUEvQzNFOztPQUVHO0lBQ0ssR0FBRyxHQUFHO1FBQ1YsaUlBQWlJLEVBQUU7WUFDL0gsT0FBTyxFQUFFLGlJQUFpSTtZQUMxSSxPQUFPLEVBQUUsaUlBQWlJO1NBQzdJO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUseURBQXlEO1NBQ3JFO1FBQ0QsK0NBQStDLEVBQUU7WUFDN0MsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QsK0NBQStDLEVBQUM7WUFDNUMsT0FBTyxFQUFFLCtDQUErQztZQUN4RCxPQUFPLEVBQUUsc0RBQXNEO1NBQ2xFO1FBQ0Qsc0NBQXNDLEVBQUU7WUFDcEMsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxPQUFPLEVBQUUsb0RBQW9EO1NBQ2hFO1FBQ0QscUJBQXFCLEVBQUU7WUFDbkIsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixPQUFPLEVBQUUsd0JBQXdCO1NBQ3BDO1FBQ0QsZ0tBQWdLLEVBQUU7WUFDOUosT0FBTyxFQUFFLGdLQUFnSztZQUN6SyxPQUFPLEVBQUUsNktBQTZLO1NBQ3pMO1FBQ0Qs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S0FBSyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFFbEMsdURBQXVEO1FBQ3ZELFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUUxQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUV0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQztZQUNELElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUMsSUFBRyxDQUFDLFVBQVU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO3dHQTFOUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQURKLE1BQU07OzRGQUNsQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFrRDRCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEVzXHJcbmltcG9ydCB7IEJhc2VMb2NhbGl6YXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2V4dGVuc2lvbnMubWVzc2FnZXMuc2VydmljZSc7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgU3dhbCBmcm9tIFwic3dlZXRhbGVydDJcIjtcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSB1biBhY2Nlc3NvIGJhc2UgaW4gbGV0dHVyYS9zY3JpdHR1cmEgc3VsbGEgY2xpcGJvYXJkXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJyb290XCJ9KVxyXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkU2VydmljZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIHN0YXRpY28gZGkgbG9jYWxpenphemlvbmUgcGVyIGkgbWVzc2FnZ2kgZGkgcXVlc3RhIFNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2MgPSB7XHJcbiAgICAgICAgXCJVbmZvcnR1bmF0ZWx5IEZpcmVmb3ggZG9lc24ndCB5ZXQgc3VwcG9ydCBkaXJlY3QgQ2xpcGJvYXJkIGFjY2VzcyBpZiBub3QgdmlhIGV4dGVuc2lvbnMsIFBsZWFzZSB1c2UgQ2hyb21lIHRvIGRvIHRoaXMgb3BlcmF0aW9uXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJVbmZvcnR1bmF0ZWx5IEZpcmVmb3ggZG9lc24ndCB5ZXQgc3VwcG9ydCBkaXJlY3QgQ2xpcGJvYXJkIGFjY2VzcyBpZiBub3QgdmlhIGV4dGVuc2lvbnMsIFBsZWFzZSB1c2UgQ2hyb21lIHRvIGRvIHRoaXMgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiTWkgZGlzcGlhY2UgbWEgRmlyZWZveCBub24gc3VwcG9ydGEgbCdhY2Nlc3NvIGRpcmV0dG8gYWxsYSBDbGlwYm9hcmQsIHNlIG5vbiBhdHRyYXZlcnNvIGxlIGVzdGVuc2lvbmkuIFNpIHByZWdhIGRpIHVzYXJlIENocm9tZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkdlbmVyaWMgZXJyb3IgZHVyaW5nICdjb3B5JyBjb21tYW5kIGV4ZWN1dGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiR2VuZXJpYyBlcnJvciBkdXJpbmcgJ2NvcHknIGNvbW1hbmQgZXhlY3V0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIGdlbmVyaWNvIGR1cmFudGUgbCdlc2VjdXppb25lIGRlbCBjb21hbmRvICdjb3B5J1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCByZWFkIG9wZXJhdGlvblwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IHJlYWQgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIG5lbGxhIGxldHR1cmEgZGVsIGNvbnRlbnV0byBkZWxsYSBDbGlwYm9hcmRcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJFcnJvciBkdXJpbmcgQ2xpcGJvYXJkIGNvbnRlbnQgY29weSBvcGVyYXRpb25cIjp7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IGNvcHkgb3BlcmF0aW9uXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiRXJyb3JlIG5lbGxhIHNjcml0dHVyYSBkZWwgY29udGVudXRvIG5lbGxhIENsaXBib2FyZFwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIlBsZWFzZSBpbnNlcnQgeW91ciBjbGlwYm9hcmQgY29udGVudFwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiUGxlYXNlIGluc2VydCB5b3VyIGNsaXBib2FyZCBjb250ZW50XCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiU2kgcHJlZ2EgZGkgaW5jb2xsYXJlIGlsIGNvbnRlbnV0byBkZWxsYSBDbGlwYm9hcmRcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJVc2VyIGlucHV0IHJlcXVpcmVkXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJVc2VyIGlucHV0IHJlcXVpcmVkXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiUmljaGllc3RvIElucHV0IHV0ZW50ZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIllvdXIgY3VycmVudCBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBmcm9tIHRoZSBjbGlwYm9hcmQgZGlyZWN0bHkuIFBsZWFzZSBwYXN0ZSB5b3VyIGNsaXBib2FyZCdzIGNvbnRlbnQgaW4gdGhpcyBJbnB1dCBmaWVsZCBhbmQgY29uZmlybSB0aGUgb3BlcmF0aW9uXCI6IHtcclxuICAgICAgICAgICAgJ2VuLVVTJzogXCJZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgZnJvbSB0aGUgY2xpcGJvYXJkIGRpcmVjdGx5LiBQbGVhc2UgcGFzdGUgeW91ciBjbGlwYm9hcmQncyBjb250ZW50IGluIHRoaXMgSW5wdXQgZmllbGQgYW5kIGNvbmZpcm0gdGhlIG9wZXJhdGlvblwiLFxyXG4gICAgICAgICAgICAnaXQtSVQnOiBcIklsIGJyb3dzZXIgY29ycmVudGUgbm9uIHN1cHBvcnRhIGxhIGxldHR1cmEgZGlyZXR0YSBkZWkgZGF0aSBkZWxsYSBDbGlwYm9hcmQsIHNpIHByZWdhIGRpIGVmZmV0dHVhcmUgdW4naW5jb2xsYSAoQ1RSTCArIFYpIG5lbGxhIGNhc2VsbGEgZGkgdGVzdG8gZSBjb25mZXJtYXJlIGwnb3BlcmF6aW9uZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkNvbmZpcm1cIjoge1xyXG4gICAgICAgICAgICAnZW4tVVMnOiBcIkNvbmZpcm1cIixcclxuICAgICAgICAgICAgJ2l0LUlUJzogXCJDb25mZXJtYVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcIkNhbmNlbFwiOiB7XHJcbiAgICAgICAgICAgICdlbi1VUyc6IFwiQ2FuY2VsXCIsXHJcbiAgICAgICAgICAgICdpdC1JVCc6IFwiQW5udWxsYVwiXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG1zZ1NlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGxvY1Byb3ZpZGVyOiBCYXNlTG9jYWxpemF0aW9uKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByZW5kZSBpbCB2YWxvcmUgZGVsbGEgY2xpcGJvYXJkLiBcclxuICAgICAqIFNpIHB1w7Igc3BlY2lmaWNhcmUgc2UgY2kgc2kgYXNwZXR0YSB1bmEgbGlzdGEgbyB1bmEgbWF0cmljZSBkaSB2YWxvcmkgaW4gbW9kbyBkYSByaWNldmVyZSBnacOgIHVuIHJpc3VsdGF0byB1dGlsaXp6YWJpbGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsnYXJyYXknIHwgJ21hdHJpeCd9IHN0eWxlIFN0aWxlIGRlbGwnb3V0cHV0IGRlc2lkZXJhdG8sIHNlIGFycmF5IG8gbWF0cmljZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gdmFsdWVGb3VuZENhbGxiYWNrIENhbGxiYWNrIGNoZSBxdWVzdGEgZnVuemlvbmUgY2hpYW1lcsOgIHVuYSB2b2x0YSBvdHRlbnV0byBpIHZhbG9yaSByaWNoaWVzdGkgZGFsbGEgY2xpcGJvYXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBnZXRDbGlwYm9hcmQoc3R5bGU6ICdhcnJheScgfCAnbWF0cml4JywgdmFsdWVGb3VuZENhbGxiYWNrIDogKHZhbHVlczogc3RyaW5nW10gfCBzdHJpbmdbXVtdKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgbGV0IExPQ0FMRSA9IHRoaXMubG9jUHJvdmlkZXIgPyAgYXdhaXQgdGhpcy5sb2NQcm92aWRlci5Mb2NhbGUucGlwZShmaXJzdCgpKS50b1Byb21pc2UoKSA6ICdpdC1JVCc7XHJcblxyXG4gICAgICAgIGlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJGaXJlZm94XCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMubG9jW1wiVXNlciBpbnB1dCByZXF1aXJlZFwiXVtMT0NBTEVdLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5sb2NbXCJZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgZnJvbSB0aGUgY2xpcGJvYXJkIGRpcmVjdGx5LiBQbGVhc2UgcGFzdGUgeW91ciBjbGlwYm9hcmQncyBjb250ZW50IGluIHRoaXMgSW5wdXQgZmllbGQgYW5kIGNvbmZpcm0gdGhlIG9wZXJhdGlvblwiXVtMT0NBTEVdLFxyXG4gICAgICAgICAgICAgICAgaW5wdXQ6ICd0ZXh0YXJlYScsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiB0aGlzLmxvY1tcIkNvbmZpcm1cIl1bTE9DQUxFXSxcclxuICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IHRoaXMubG9jW1wiQ2FuY2VsXCJdW0xPQ0FMRV0sXHJcbiAgICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25maXJtQnV0dG9uOiBcImJ0biBidG4tcHJpbWFyeVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbEJ1dHRvbjogXCJidG4gYnRuLXNlY29uZGFyeSBhcHAtbWFyZ2luLXJpZ2h0LTE1XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyOiBcImFwcC13cmFwXCIsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcmV2ZXJzZUJ1dHRvbnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpbnB1dFZhbGlkYXRvcjogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jW1wiUGxlYXNlIGluc2VydCB5b3VyIGNsaXBib2FyZCBjb250ZW50XCJdW0xPQ0FMRV1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KS50aGVuKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIFJldHJpZXZpbmcgaW5wdXQgZGF0YSBmcm9tIHVzZXIgaW5wdXRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvQ2xpcGJvYXJkRGF0YUdldCh0LnZhbHVlLCBzdHlsZSwgdmFsdWVGb3VuZENhbGxiYWNrKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgoPGFueT53aW5kb3cpLmNsaXBib2FyZERhdGEpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIEZvdW5kIGNsaXBib2FyZERhdGFcIik7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gKDxhbnk+d2luZG93KS5jbGlwYm9hcmREYXRhLmdldERhdGEoXCJUZXh0XCIpO1xyXG4gICAgICAgICAgICB0aGlzLmRvQ2xpcGJvYXJkRGF0YUdldChkYXRhLCBzdHlsZSwgdmFsdWVGb3VuZENhbGxiYWNrKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCg8YW55PndpbmRvdykubmF2aWdhdG9yLmNsaXBib2FyZCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltAZXNmYWVuemEvZXh0ZW5zaW9uc10gRm91bmQgbmF2aWdhdG9yIGNsaXBib2FyZFwiKTtcclxuICAgICAgICAgICAgKDxhbnk+d2luZG93KS5uYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoeyBuYW1lOiAnY2xpcGJvYXJkLXJlYWQnIH0pLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghKHJlc3VsdC5zdGF0ZSA9PT0gJ2dyYW50ZWQnIHx8IHJlc3VsdC5zdGF0ZSA9PT0gJ3Byb21wdCcpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIENsaXBib2FyZCBwZXJtaXNzaW9uIG5vdCBncmFudGVkXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZUZvdW5kQ2FsbGJhY2spIHZhbHVlRm91bmRDYWxsYmFjayhbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW0Blc2ZhZW56YS9leHRlbnNpb25zXSBDbGlwYm9hcmQgcGVybWlzc2lvbiBncmFudGVkLCByZXRyaWV2aW5nIHZhbHVlc1wiKTtcclxuICAgICAgICAgICAgICAgICg8YW55PndpbmRvdykubmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHQ6IHN0cmluZykgPT4gdGhpcy5kb0NsaXBib2FyZERhdGFHZXQodCwgc3R5bGUsIHZhbHVlRm91bmRDYWxsYmFjaykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4gdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUVycm9yKHRoaXMubG9jW1wiRXJyb3IgZHVyaW5nIENsaXBib2FyZCBjb250ZW50IHJlYWQgb3BlcmF0aW9uXCJdW0xPQ0FMRV0gKyBcIjogXCIgKyBlcnIpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIGRvQ2xpcGJvYXJkRGF0YUdldChjbGlwYm9hcmRUZXh0OiBzdHJpbmcsIHN0eWxlOiBcIm1hdHJpeFwiIHwgXCJhcnJheVwiLCB2YWx1ZUZvdW5kQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJbQGVzZmFlbnphL2V4dGVuc2lvbnNdIFJldHJpZXZlZCBjbGlwYm9hcmQgdmFsdWVzOiBcIiArIGNsaXBib2FyZFRleHQpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHN0eWxlID09IFwiYXJyYXlcIiA/IHRoaXMuZ2V0Q2xpcGJvYXJkTGluZXMoY2xpcGJvYXJkVGV4dCkgOlxyXG4gICAgICAgICAgICBzdHlsZSA9PSBcIm1hdHJpeFwiID8gdGhpcy5nZXRDbGlwYm9hcmRNYXRyaXgoY2xpcGJvYXJkVGV4dCkgOiBbXTtcclxuICAgICAgICBjb25zb2xlLmxvZyhgW0Blc2ZhZW56YS9leHRlbnNpb25zXSBBZGFwdGVkIGZvciAke3N0eWxlfTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XHJcbiAgICAgICAgaWYgKHZhbHVlRm91bmRDYWxsYmFjaykgdmFsdWVGb3VuZENhbGxiYWNrKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgY29udGVudXRvIGRlbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2hlIChzZXBhcmF0ZSBkYSBuZXdsaW5lKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YSBjb250ZW51dG8gbGV0dG8gZGFsbGEgY2xpcGJvYXJkXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmdbXX0gQXJyYXkgY29udGVuZW50ZSBpbCB0ZXN0byBwcmVzbyBkYWxsYSBjbGlwYm9hcmQgZGl2aXNvIHBlciByaWdhXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2xpcGJvYXJkTGluZXMoZGF0YTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGxldCB0cmltbWVkRGF0YSA9IGRhdGEudHJpbSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRyaW1tZWREYXRhLmluY2x1ZGVzKFwiXFxyXFxuXCIpICYmIHRyaW1tZWREYXRhLmluY2x1ZGVzKFwiXFxuXCIpKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJpbW1lZERhdGEuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgICAgIHJldHVybiB0cmltbWVkRGF0YS5zcGxpdChcIlxcclxcblwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgY29udGVudXRvIGRlbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2hlIChzZXBhcmF0ZSBkYSBuZXdsaW5lKSBlIGNvbG9ubmUgKHNlcGFyYXRlIGRhIHRhYilcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgY29udGVudXRvIGxldHRvIGRhbGxhIGNsaXBib2FyZFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW11bXX0gTWF0cmljZSBjb250ZW5lbnRlIGlsIHRlc3RvIHByZXNvIGRhbGxhIGNsaXBib2FyZCBkaXZpc28gcGVyIHJpZ2EgZSBjb2xvbm5hXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q2xpcGJvYXJkTWF0cml4KGRhdGE6IHN0cmluZyk6IHN0cmluZ1tdW10ge1xyXG4gICAgICAgIHZhciByZXQ6IHN0cmluZ1tdW10gPSBbXTtcclxuICAgICAgICB2YXIgcm93cyA9ICFkYXRhLmluY2x1ZGVzKFwiXFxyXFxuXCIpICYmIGRhdGEuaW5jbHVkZXMoXCJcXG5cIikgPyBkYXRhLnNwbGl0KFwiXFxuXCIpIDogZGF0YS5zcGxpdChcIlxcclxcblwiKTtcclxuXHJcbiAgICAgICAgLy8gQSBxdWFudG8gcGFyZSBvZ25pIHZhbG9yZSDDqCBzZXBhcmF0byBkYSB1biBcXHQuLi4gc3Blcm8gY2hlIHNpYSB1bm8gc3RhbmRhcmQgZGkgcXVhbmRvIHNpIGNvcGlhIGRhIGV4Y2VsIGFsdHJpbWVudGkgY2lhb1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgcmV0LnB1c2gocm93c1tpXS5zcGxpdCgnXFx0JykubWFwKHQgPT4gdC50cmltKCkpKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBjb3BpYSB1biB0ZXN0byBhbGwnaW50ZXJubyBkZWxsYSBjbGlwYm9hcmRcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgVGVzdG8gZGEgaW5zZXJpcmUgbmVsbGEgY2xpcGJvYXJkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhc3luYyBjb3B5VGV4dFRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBMT0NBTEUgPSB0aGlzLmxvY1Byb3ZpZGVyID8gIGF3YWl0IHRoaXMubG9jUHJvdmlkZXIuTG9jYWxlLnBpcGUoZmlyc3QoKSkudG9Qcm9taXNlKCkgOiAnaXQtSVQnO1xyXG5cclxuICAgICAgICB2YXIgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gKioqIFRoaXMgc3R5bGluZyBpcyBhbiBleHRyYSBzdGVwIHdoaWNoIGlzIGxpa2VseSBub3QgcmVxdWlyZWQuICoqKlxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gV2h5IGlzIGl0IGhlcmU/IFRvIGVuc3VyZTpcclxuICAgICAgICAvLyAxLiB0aGUgZWxlbWVudCBpcyBhYmxlIHRvIGhhdmUgZm9jdXMgYW5kIHNlbGVjdGlvbi5cclxuICAgICAgICAvLyAyLiBpZiBlbGVtZW50IHdhcyB0byBmbGFzaCByZW5kZXIgaXQgaGFzIG1pbmltYWwgdmlzdWFsIGltcGFjdC5cclxuICAgICAgICAvLyAzLiBsZXNzIGZsYWt5bmVzcyB3aXRoIHNlbGVjdGlvbiBhbmQgY29weWluZyB3aGljaCAqKm1pZ2h0Kiogb2NjdXIgaWZcclxuICAgICAgICAvLyAgICB0aGUgdGV4dGFyZWEgZWxlbWVudCBpcyBub3QgdmlzaWJsZS5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFRoZSBsaWtlbGlob29kIGlzIHRoZSBlbGVtZW50IHdvbid0IGV2ZW4gcmVuZGVyLCBub3QgZXZlbiBhIGZsYXNoLFxyXG4gICAgICAgIC8vIHNvIHNvbWUgb2YgdGhlc2UgYXJlIGp1c3QgcHJlY2F1dGlvbnMuIEhvd2V2ZXIgaW4gSUUgdGhlIGVsZW1lbnRcclxuICAgICAgICAvLyBpcyB2aXNpYmxlIHdoaWxzdCB0aGUgcG9wdXAgYm94IGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbiBmb3JcclxuICAgICAgICAvLyB0aGUgd2ViIHBhZ2UgdG8gY29weSB0byB0aGUgY2xpcGJvYXJkLlxyXG4gICAgICAgIC8vXHJcblxyXG4gICAgICAgIC8vIFBsYWNlIGluIHRvcC1sZWZ0IGNvcm5lciBvZiBzY3JlZW4gcmVnYXJkbGVzcyBvZiBzY3JvbGwgcG9zaXRpb24uXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUudG9wID0gXCIwXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUubGVmdCA9IFwiMFwiO1xyXG5cclxuICAgICAgICAvLyBFbnN1cmUgaXQgaGFzIGEgc21hbGwgd2lkdGggYW5kIGhlaWdodC4gU2V0dGluZyB0byAxcHggLyAxZW1cclxuICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYXMgdGhpcyBnaXZlcyBhIG5lZ2F0aXZlIHcvaCBvbiBzb21lIGJyb3dzZXJzLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLndpZHRoID0gXCIyZW1cIjtcclxuICAgICAgICB0ZXh0QXJlYS5zdHlsZS5oZWlnaHQgPSBcIjJlbVwiO1xyXG5cclxuICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHBhZGRpbmcsIHJlZHVjaW5nIHRoZSBzaXplIGlmIGl0IGRvZXMgZmxhc2ggcmVuZGVyLlxyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLnBhZGRpbmcgPSBcIjBcIjtcclxuXHJcbiAgICAgICAgLy8gQ2xlYW4gdXAgYW55IGJvcmRlcnMuXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUuYm9yZGVyID0gXCJub25lXCI7XHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUub3V0bGluZSA9IFwibm9uZVwiO1xyXG4gICAgICAgIHRleHRBcmVhLnN0eWxlLmJveFNoYWRvdyA9IFwibm9uZVwiO1xyXG5cclxuICAgICAgICAvLyBBdm9pZCBmbGFzaCBvZiB3aGl0ZSBib3ggaWYgcmVuZGVyZWQgZm9yIGFueSByZWFzb24uXHJcbiAgICAgICAgdGV4dEFyZWEuc3R5bGUuYmFja2dyb3VuZCA9IFwidHJhbnNwYXJlbnRcIjtcclxuXHJcbiAgICAgICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKTtcclxuICAgICAgICB0ZXh0QXJlYS5mb2N1cygpO1xyXG4gICAgICAgIHRleHRBcmVhLnNlbGVjdCgpO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgc3VjY2Vzc2Z1bCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcclxuICAgICAgICAgICAgaWYoIXN1Y2Nlc3NmdWwpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IodGhpcy5sb2NbXCJHZW5lcmljIGVycm9yIGR1cmluZyAnY29weScgY29tbWFuZCBleGVjdXRpb25cIl1bTE9DQUxFXSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnU2VydmljZS5zaW1wbGVFcnJvcih0aGlzLmxvY1tcIkVycm9yIGR1cmluZyBDbGlwYm9hcmQgY29udGVudCBjb3B5IG9wZXJhdGlvblwiXVtMT0NBTEVdICsgXCI6IFwiKyBlcnIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -227,18 +227,18 @@ export class DateService {
|
|
|
227
227
|
return null;
|
|
228
228
|
return date.format(small ? this.cfg.smallDate : seconds ? this.cfg.fulldateDisplay : this.cfg.fulldateDisplayNoSS);
|
|
229
229
|
}
|
|
230
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
231
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
230
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, deps: [{ token: i1.BaseLocalization, optional: true }, { token: EXT_ALLOW_UTC, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
231
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, providedIn: "root" });
|
|
232
232
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateService, decorators: [{
|
|
234
234
|
type: Injectable,
|
|
235
235
|
args: [{ providedIn: "root" }]
|
|
236
|
-
}], ctorParameters:
|
|
236
|
+
}], ctorParameters: () => [{ type: i1.BaseLocalization, decorators: [{
|
|
237
237
|
type: Optional
|
|
238
238
|
}] }, { type: undefined, decorators: [{
|
|
239
239
|
type: Optional
|
|
240
240
|
}, {
|
|
241
241
|
type: Inject,
|
|
242
242
|
args: [EXT_ALLOW_UTC]
|
|
243
|
-
}] }]
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzdELFVBQVU7QUFDVixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLFdBQVc7QUFDWCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVF0Qzs7RUFFRTtBQUVILE1BQU0sT0FBTyxXQUFXO0lBa0NtQjtJQUEwRTtJQWhDakg7O09BRUc7SUFDSyxHQUFHLEdBQUc7UUFDVixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNyRSxrQkFBa0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDdEYsd0JBQXdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1FBQ3RGLDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQzdFLHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO1FBQzdGLHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTtRQUNyRywwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDOUYsZ0NBQWdD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LENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxZQUFZLENBQUMsSUFBUyxFQUFFLEtBQWMsRUFBRSxPQUFnQjtRQUMzRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7d0dBclBRLFdBQVcsa0VBa0NzRSxhQUFhOzRHQWxDOUYsV0FBVyxjQURFLE1BQU07OzRGQUNuQixXQUFXO2tCQUR0QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBbUNULFFBQVE7OzBCQUEyQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gRXNcclxuaW1wb3J0IHsgQmFzZUxvY2FsaXphdGlvbiB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBFWFRfQUxMT1dfVVRDIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTGlicmVyaWVcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBEaWNoaWFyYXppb25lIGRlbGxhIHZhcmlhYmlsZSBnbG9iYWxlIGRheWpzLiBMJ29uZXJlIGRpIFwiY3JlYXJsYVwiIMOoIGFmZmlkYXRvIGFsbCdhcHBsaWNhemlvbmUgY2hlIHV0aWxpenphIHF1ZXN0YSBsaWJyZXJpYSwgXHJcbiAqIGNoZSBkb3Zyw6AgaW1wb3J0YXJlIGxvIHNjcmlwdCBnbG9iYWxlIGRpIGRheWpzIG5lbGxhIENMSVxyXG4gKi9cclxuIGRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcblxyXG4gLyoqXHJcbiAqIFNlcnZpY2UgY2hlIGZvcm5pc2NlIGRlaSBtZXRvZGkgZGkgZXN0ZW5zaW9uZSBwZXIgbGEgZ2VzdGlvbmUvbWFuaXBvbGF6aW9uZSBkZWxsZSBkYXRlXHJcbiAqL1xyXG4gQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwicm9vdFwifSlcclxuZXhwb3J0IGNsYXNzIERhdGVTZXJ2aWNlIHtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIHN0YXRpY28gZGkgbG9jYWxpenphemlvbmUgcGVyIGkgbWVzc2FnZ2kgZGkgcXVlc3RhIFNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2MgPSB7XHJcbiAgICAgICAgXCJTTUFMTF9EQVRFX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVlcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWSBISDptbTpzc1wiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW06c3NcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0ZPUk1BVF9OT19TU1wiOiB7ICdlbi1VUyc6IFwiTU0vREQvWVlZWSBISDptbVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW1cIiB9LFxyXG4gICAgICAgIFwiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVlcIiB9LFxyXG4gICAgICAgIFwiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX0hPVVJcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEhcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIXCIgfSxcclxuICAgICAgICBcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRfV0lUSF9NSU5VVEVcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEg6bW1cIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIgfSxcclxuICAgICAgICBcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWSBISDptbTpzc1wiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW06c3NcIiB9LFxyXG4gICAgICAgIFwiRlVMTF9EQVRFX0RJU1BMQVlfRk9STUFUX05PX1NTXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbVwiIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPZ2dldHRvIGRpIGNvbmZpZ3VyYXppb25lIHBlciB0ZW5lcmUgZGEgY29udG8gbGUgaW5mb3JtYXppb25pIHN1aSBmb3JtYXRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2ZnID0ge1xyXG4gICAgICAgIGZ1bGxkYXRlOiBcIlwiLFxyXG4gICAgICAgIGZ1bGxkYXRlRGlzcGxheTogXCJcIixcclxuICAgICAgICBzbWFsbERhdGU6IFwiXCIsXHJcbiAgICAgICAgZnVsbGRhdGVOb1NTOiBcIlwiLFxyXG4gICAgICAgIHNtYWxsRGF0ZVdpdGhIOiBcIlwiLFxyXG4gICAgICAgIHNtYWxsRGF0ZVdpdGhNOiBcIlwiLFxyXG4gICAgICAgIGZ1bGxkYXRlRGlzcGxheU5vU1M6IFwiXCJcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgbG9jUHJvdmlkZXI6IEJhc2VMb2NhbGl6YXRpb24sIEBPcHRpb25hbCgpIEBJbmplY3QoRVhUX0FMTE9XX1VUQykgcHJpdmF0ZSBhbGxvd1V0YzogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXQoKXtcclxuICAgICAgICBsZXQgTE9DQUxFID0gdGhpcy5sb2NQcm92aWRlciA/ICBhd2FpdCB0aGlzLmxvY1Byb3ZpZGVyLkxvY2FsZS5waXBlKGZpcnN0KCkpLnRvUHJvbWlzZSgpIDogJ2l0LUlUJztcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGUgPSB0aGlzLmxvY1tcIlNNQUxMX0RBVEVfRk9STUFUXCJdW0xPQ0FMRV07XHJcbiAgICAgICAgdGhpcy5jZmcuZnVsbGRhdGUgPSB0aGlzLmxvY1tcIkZVTExfREFURV9GT1JNQVRcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZU5vU1MgPSB0aGlzLmxvY1tcIkZVTExfREFURV9GT1JNQVRfTk9fU1NcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXkgPSB0aGlzLmxvY1tcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiXVtMT0NBTEVdO1xyXG4gICAgICAgIHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheU5vU1MgID10aGlzLmxvY1tcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVF9OT19TU1wiXVtMT0NBTEVdO1xyXG4gICAgICAgIHRoaXMuY2ZnLnNtYWxsRGF0ZSA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVFwiXVtMT0NBTEVdO1xyXG4gICAgICAgIHRoaXMuY2ZnLnNtYWxsRGF0ZVdpdGhIID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUX1dJVEhfSE9VUlwiXVtMT0NBTEVdO1xyXG4gICAgICAgIHRoaXMuY2ZnLnNtYWxsRGF0ZVdpdGhNID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUX1dJVEhfTUlOVVRFXCJdW0xPQ0FMRV07XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEFnZ2l1c3RhIHVuYSBkYXRhIGluIFwiaXN0YW50ZSBmaW5hbGVcIiBpbiBiYXNlIGEgcXVhbCDDqCBsYSBwYXJ0ZSBkaSBkYXRhIHNpZ25pZmljYXRpdmEuXHJcbiAgICAgKiBcclxuICAgICAqIEVzLiBJc3RhbnRlIGZpbmFsZSBkZWxsZSBvcmU6IDA1LzEwLzE5OTIgLS0+IDA0LzEwLzE5OTIgMjQ6MDAoOjAwKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZGF0ZSBEYXRhIHF1YWxzaWFzaSAoRGF0ZSwgc3RyaW5nYSwgZGF5anMuLi4pLCB2ZXJyw6Agcmljb25kb3R0YSBhZCB1biBvZ2dldHRvIGRheUpzXHJcbiAgICAgKiBAcGFyYW0geydkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZSd9IHRpbWVwYXJ0IFBhcnRlIHNpZ25pZmljYXRpdmEgZGVsbGEgZGF0YVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBwcmludFNlY29uZHMgSW5kaWNhIHNlIGVmZmV0dHVhcmUgbGEgc3RhbXBhIGRlaSBzZWNvbmRpIG8gbm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkanVzdERhdGVUb0ZpbmFsSW5zdGFudChkYXRlOiBhbnksIHRpbWVwYXJ0OiAnZGF5JyB8ICdob3VyJyB8ICdtaW51dGUnLCBwcmludFNlY29uZHM6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgbXlkdCA9IHRoaXMuZ2V0RGF0ZUNvbnZlcnRpb24oZGF0ZSk7XHJcbiAgICAgICAgaWYgKG15ZHQgPT0gbnVsbCkgcmV0dXJuIFwiRkU6IE5vdCBhIERhdGVcIjtcclxuXHJcbiAgICAgICAgbGV0IGlzWmVyb1RpbWUgPSBteWR0LnN0YXJ0T2YodGltZXBhcnQpLnZhbHVlT2YoKSA9PT0gbXlkdC52YWx1ZU9mKCk7XHJcbiAgICAgICAgaWYgKCFpc1plcm9UaW1lKSB7XHJcbiAgICAgICAgICAgIGlmICh0aW1lcGFydCA9PSBcImRheVwiICYmIG15ZHQuc3VidHJhY3QoMSwgXCJob3VyXCIpLmhvdXIoKSA9PSBteWR0LmhvdXIoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gU2UgbCdvcmEgcHJlY2VkZW50ZSDDqCBsbyBzdGVzc28gb3JhcmlvIGRlbGwnb3JhIGF0dHVhbGUgbCdpc3RhbnRlIGZpbmFsZSBkZXYnZXNzZXJlIG1hbmRhdG8gYXZhbnRpIGRpIDFcclxuICAgICAgICAgICAgICAgIG15ZHQgPSBteWR0LmFkZCgxLCBcImhvdXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBwcmludFNlY29uZHMgPyBteWR0LmZvcm1hdCh0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXkpIDogbXlkdC5mb3JtYXQodGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5Tm9TUyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdG1wVmFsdWUgPSBteWR0LnN1YnRyYWN0KDEsIHRpbWVwYXJ0KTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWxsZSBvcmU6IDA1LzEwLzE5OTIgLS0+IDA0LzEwLzE5OTIgMjQ6MDAoOjAwKVxyXG4gICAgICAgIGlmICh0aW1lcGFydCA9PSAnZGF5JylcclxuICAgICAgICAgICAgdmFsdWUgPSB0bXBWYWx1ZS5mb3JtYXQodGhpcy5jZmcuc21hbGxEYXRlKSArIFwiIDI0OjAwXCIgKyAocHJpbnRTZWNvbmRzID8gJzowMCcgOiAnJyk7XHJcblxyXG4gICAgICAgIC8vIElzdGFudGUgZmluYWxlIGRlaSBtaW51dGk6IGdpb3JubyAwNS8xMC8xOTkyIDA0OjAwOjAwIC0tPiAwNS8xMC8xOTkyIDAzOjYwKDowMClcclxuICAgICAgICBlbHNlIGlmICh0aW1lcGFydCA9PSAnaG91cicpXHJcbiAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWUuZm9ybWF0KHRoaXMuY2ZnLnNtYWxsRGF0ZVdpdGhIKSArIFwiOjYwXCIgKyAocHJpbnRTZWNvbmRzID8gJzowMCcgOiAnJyk7XHJcblxyXG4gICAgICAgIC8vIElzdGFudGUgZmluYWxlIGRlaSBzZWNvbmRpOiBnaW9ybm8gMDUvMTAvMTk5MiAwNDoxMDowMCAtLT4gMDUvMTAvMTk5MiAwNDowOTo2MFxyXG4gICAgICAgIGVsc2UgaWYgKHRpbWVwYXJ0ID09ICdtaW51dGUnKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IHRtcFZhbHVlLmZvcm1hdCh0aGlzLmNmZy5zbWFsbERhdGVXaXRoTSkgKyBcIjo2MFwiO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW56aW9uZSBjaGUgZWZmZXR0dWEgbCdvcmRpbmFtZW50byBmcmEgMiBkYXRlIGluIGJhc2UgYWxsYSBkaXJlemlvbmUgc3BlY2lmaWNhdGFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGEgUHJpbWEgZGF0YSBwZXIgaWwgY29uZnJvbnRvXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gYiBTZWNvbmRhIGRhdGEgcGVyIGlsIGNvbmZyb250b1xyXG4gICAgICogQHBhcmFtIHsnYXNjJyB8ICdkZXNjJ30gZGlyZWN0aW9uIERpcmV6aW9uZSByaXNwZXR0byBhIGN1aSBvcmRpbmFyZSBsZSBkdWUgZGF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSAwIHNlIGxlIGRhdGUgc29ubyB1Z3VhbGksIDEgc2UgbGEgZGF0YSBBIGRldmUgdmVuaXJlIGxvZ2ljYW1lbnRlIHByaW1hIGRlbGxhIGRhdGEgQiwgLTEgYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZVNvcnQoYTogYW55LCBiOiBhbnksIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIGRpcmVjdGlvbiA9PSAnYXNjJyA/IDEgOiAtMTtcclxuICAgICAgICBlbHNlIGlmIChhID4gYikgcmV0dXJuIGRpcmVjdGlvbiA9PSAnYXNjJyA/IC0xIDogMTtcclxuXHJcbiAgICAgICAgLy8gY29uIGEgdWd1YWxlIGEgYlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgaWwgdHJpbSBkZWkgc2Vjb25kaSBkYSB1bmEgZGF0YSBlc3ByZXNzYSBjb21lIHN0cmluZ2FcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIERhdGEgZXNwcmVzc2EgY29tZSBzdHJpbmdhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IERhdGEgc2VuemEgaSBzZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmltU2Vjb25kcyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvL0kgbnVtZXJpIG1hbmdpYXRpIGRhIGRheWpzIHNwZXNzbyB2ZW5nb25vIHJpY29uZG90dGkgYSBkYXRlIHZlcmUuIE1pIGFzc2ljdXJvIGNoZSBzZSBjaSBzb25vIHNvbG8gbnVtZXJpIHByb3NlZ3VvXHJcbiAgICAgICAgaWYgKCFpc05hTig8YW55PnZhbHVlKSlcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG5cclxuICAgICAgICAvL1NlIG5vbiBobyBxdWFsY29zYSBkZWwgdGlwbyBYWC9ZWS9aWlpaIGFhOmJiOmNjIGRpIHNpY3VybyBub24gw6ggdW5hIGRhdGEgY2hlIG1pIGludGVyZXNzYVxyXG4gICAgICAgIGlmICghL15cXGRcXGRcXC9cXGRcXGRcXC9cXGRcXGRcXGRcXGQgXFxkXFxkOlxcZFxcZDpcXGRcXGQkL2cudGVzdCh2YWx1ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgLy9JbiBxdWVzdG8gY2FzbyBtaSBhcnJpdmFubyB2YWxvcmkgY2hlIGRldm9ubyBlc3NlcmUgc3RhbXBhdGkgYXMtaXMsIHNvbG8gdGFnbGlhbmRvIGkgc2Vjb25kaVxyXG4gICAgICAgIHJldHVybiBcIidcIiArIHZhbHVlLnN1YnN0cigwLCB2YWx1ZS5sZW5ndGggLSAzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGEgdW5hIGxpc3RhIGRpIGRhdGUgRGEgZSB1bmEgbGlzdGEgZGkgZGF0ZSBBIHJlc3RpdHVpc2NlIHVuIG9nZ2V0dG8gcmFwcHJlc2VudGFudGUgaWwgcmFuZ2UgY2hlIGluY2x1ZGUgdHV0dGUgbGUgZGF0ZSBwYXNzYXRlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55W119IGZyb21EYXRlcyBMaXN0YSBkZWkgRGFcclxuICAgICAqIEBwYXJhbSB7YW55W119IHRvRGF0ZXMgTGlzdGEgZGVpIEFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3sgZnJvbTogYW55LCB0bzogYW55IH19IFJhbmdlIGRpIGRhdGUgRGEgLSBBIGNoZSBpbmNsdWRlIHR1dHRpIGkgdmFsb3JpIGRpICoqZnJvbURhdGVzKiogZSAqKnRvRGF0ZXMqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWluTWF4RGF0ZXNSYW5nZShmcm9tRGF0ZXM6IGFueVtdLCB0b0RhdGVzOiBhbnlbXSk6IHsgZnJvbTogYW55LCB0bzogYW55IH0ge1xyXG4gICAgICAgIGxldCBkYXRlc0Zyb21zOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBkYXRlc1RvOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgZnJvbURhdGVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGQgPSBmcm9tRGF0ZXNbaV07XHJcbiAgICAgICAgICAgIHZhciBjb252ZXJ0aW9uID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkKTtcclxuICAgICAgICAgICAgaWYgKGNvbnZlcnRpb24pXHJcbiAgICAgICAgICAgICAgICBkYXRlc0Zyb21zLnB1c2goY29udmVydGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdG9EYXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBkID0gdG9EYXRlc1tpXTtcclxuICAgICAgICAgICAgdmFyIGNvbnZlcnRpb24gPSB0aGlzLmdldERhdGVDb252ZXJ0aW9uKGQpO1xyXG4gICAgICAgICAgICBpZiAoY29udmVydGlvbilcclxuICAgICAgICAgICAgICAgIGRhdGVzVG8ucHVzaChjb252ZXJ0aW9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7IGZyb206IGRheWpzLm1pbihkYXRlc0Zyb21zKSwgdG86IGRheWpzLm1heChkYXRlc1RvKSB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBsYSBjb252ZXJzaW9uZSBkaSB1bmEgZGF0YSBpbiBxdWFsc2lhc2kgZm9ybWF0byBhbCBmb3JtYXRvIHN0YW5kYXJkIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBkYXRlIE9nZ2V0dG8gcmFwcHJlc2VudGFudGUgdW5hIGRhdGEuIFBvdHJlYmJlIGVzc2VyZSB1bmEgc3RyaW5nYSwgdW4gRGF0ZSBvIGdpw6AgdW4gRGF5SnNcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdXNlVXRjIEluZGljYSBzZSB1c2FyZSBsJ2VzdGVuc2lvbmUgdXRjIGRpIERheWpzIHBlciBwYXJzYXJlIGxhIGRhdGEgbyBub1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBEYXRhIGluIG1vZGFsaXTDoCBEYXlKc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0ZUNvbnZlcnRpb24oZGF0ZTogYW55LCB1c2VVdGM6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XHJcbiAgICAgICAgaWYgKCFkYXRlKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNEYXlKcyhkYXRlKSlcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGU7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuaXNKc0RhdGUoZGF0ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB1c2VVdGMgPyBkYXlqcy51dGMoZGF0ZSk6IGRheWpzKGRhdGUpO1xyXG5cclxuICAgICAgICAvLyBTZSBub24gYyfDqCBsYSBwcm9wcmlldMOgIGxlbmd0aCB2dW9sIGRpcmUgY2hlIG5vbiDDqCB1bmEgc3RyaW5nYSBlIGEgcXVlc3RvIHB1bnRvIG5vbiBobyBpZGVhIGRpIGNoZSBtaW5jaGlhIHNpYVxyXG4gICAgICAgIGxldCBsZW5ndGggPSBkYXRlLmxlbmd0aDtcclxuICAgICAgICBpZiAoIWxlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGlmICh1c2VVdGMgJiYgIXRoaXMuYWxsb3dVdGMpXHJcbiAgICAgICAgICAgIHRocm93IFwiQGVzZmFlbnphL2V4dGVuc2lvbnM6IFJpY2hpZXN0YSBkYXRhIFVUQyBtYSBkYSBjb25maWd1cmF6aW9uZSBsYSBsaWJyZXJpYSBub24gbG8gc3VwcG9ydGFcIjtcclxuXHJcbiAgICAgICAgLy8gUGVyIHJpc3Bhcm1pYXJlIGNoaWFtYXRlIGEgdGVudG9uaSwgaW4gYmFzZSBhbGxhIGx1bmdoZXp6YSBkZWxsYSBzdHJpbmdhIGNoaWFtbyBkaXJldHRhbWVudGUgaWwgbWV0b2RvIGdpdXN0bywgXHJcbiAgICAgICAgLy8gY29udHJvbGxhbmRvIHBvaSBjaGUgbWkgZ2VuZXJpIHVuYSBkYXRhIGNvbWUgbWUgbGEgYXNwZXR0byBpb1xyXG4gICAgICAgIGxldCB0cnlUaGlzID0gbnVsbDtcclxuICAgICAgICBsZXQgdG9DYWxsID0gdXNlVXRjID8gZGF5anMudXRjIDogZGF5anM7XHJcblxyXG4gICAgICAgIC8vIFNlIGxhIGRhdGEgY29udGllbmUgbGEgbGV0dGVyYSBcIlRcIiB2dW9sIGRpcmUgY2hlIMOoIHVuYSBkYXRhIGRlbCB0aXBvIDIwMjAtMTAtMTVUMDA6MDA6MDAsIGRpcmV0dGFtZW50ZSBwYXJzYWJpbGUgZGFsIGRheWpzIGNvbCBsb2NhbGUgY29ycmV0dG8uXHJcbiAgICAgICAgLy8gUGVyIGlsIHJlc3RvIG1pIGJhc28gc3VsbGEgbHVuZ2hlenphIGRlbGxhIHN0cmluZ2FcclxuICAgICAgICBpZiAoKDxzdHJpbmc+ZGF0ZSkuaW5jbHVkZXMoXCJUXCIpKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5mdWxsZGF0ZS5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRyeVRoaXMgPSB0b0NhbGwoZGF0ZSwgdGhpcy5jZmcuZnVsbGRhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5zbWFsbERhdGUubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLnNtYWxsRGF0ZSk7XHJcbiAgICAgICAgZWxzZSBpZiAobGVuZ3RoID09IHRoaXMuY2ZnLmZ1bGxkYXRlTm9TUy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRyeVRoaXMgPSB0b0NhbGwoZGF0ZSwgdGhpcy5jZmcuZnVsbGRhdGVOb1NTKVxyXG5cclxuICAgICAgICBpZiAodHJ5VGhpcyAmJiB0cnlUaGlzLmlzVmFsaWQgJiYgdHJ5VGhpcy5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnlUaGlzO1xyXG5cclxuICAgICAgICAvLyBTZSBuaWVudGUgZnVuemlvbmEsIG51bGwuIFxyXG4gICAgICAgIC8vIFJpY29uZHVycmUgbCdJbnB1dCBhZCB1bmEgZGF0YSBub24gw6ggcG9zc2liaWxlLlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSByZXN0aXR1aXNjZSAqKnRydWUqKiBxdWFsb3JhIGwnb2dnZXR0byBwYXNzYXRvIGZvc3NlIHVuYSBkYXRhIHZlcmEgZSBwcm9wcmlhLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gY2hlY2sgT2dnZXR0byBkYSBjb250cm9sbGFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF0ZSBkaSBKYXZhc2NyaXB0IG8gbm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc0pzRGF0ZShjaGVjazogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGNoZWNrICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjaGVjaykgPT09IFwiW29iamVjdCBEYXRlXVwiICYmICFpc05hTihjaGVjayk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHJlc3RpdHVpc2NlICoqdHJ1ZSoqIHF1YWxvcmEgbCdvZ2dldHRvIHBhc3NhdG8gZm9zc2UgdW4gRGF5SnMgdmVybyBlIHByb3ByaW8sICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBjaGVjayBPZ2dldHRvIGRhIGNvbnRyb2xsYXJlXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhemlvbmUgc2UgbCdvZ2dldHRvIMOoIHVuIHZlcm8gRGF5SnMgbyBub1xyXG4gICAgICovXHJcbiAgICAgcHJpdmF0ZSBpc0RheUpzKGNoZWNrOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBOb24gdXNvIGluc3RhbmNlb2YgcGVyY2jDqSBzYXJlYmJlIGVzdHJlbWFtZW50ZSBwacO5IGxlbnRvXHJcbiAgICAgICAgLy8gTm9uIHVzbyBuZW1tZW5vIGlzRGF5anMoKSBkZWxsYSBsaWJyZXJpYSBEYXlqcyBkYXRvIGNoZSBoYSBsbyBzdGVzc28gcHJvYmxlbWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9pYW1rdW4vZGF5anMvYmxvYi8wNmY4OGY0MjU4MjhiMWNlOTZiNzM3MzMyZDI1MTQ1YTk1YTRlZTlkL3NyYy9pbmRleC5qcyNMOVxyXG4gICAgICAgIHJldHVybiBjaGVjay4kRCAhPT0gdW5kZWZpbmVkICYmIGNoZWNrLiRNICE9PSB1bmRlZmluZWQgJiYgY2hlY2suJHkgIT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgZm9ybWF0dGF6aW9uZSBkaSB1bmEgZGF0YSBpbiBiYXNlIGFsbGEgdmVyc2lvbmUgcmljaGllc3RhIFwic21hbGxcIiBvIFwibG9uZ1wiIGUgYSBzZSBzdGFtcGFyZSBvIG1lbm8gaSBzZWNvbmRpXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBkYXRlIE9nZ2V0dG8gcmFwcHJlc2VudGFudGUgdW5hIGRhdGEuIFBvdHJlYmJlIGVzc2VyZSB1bmEgc3RyaW5nYSwgdW4gRGF0ZSBvIGdpw6AgdW4gRGF5SnNcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc21hbGwgSW5kaWNhIHNlIGZvcm1hdHRhcmxhIGNvbiB1biBmb3JtYXRvIGJyZXZlIChzZSAqKnRydWUqKikgbyB1biBmb3JtYXRvIHBpw7kgbHVuZ28gKHNlICoqZmFsc2UqKilcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gRGF0YSBmb3JtYXR0YXRhIG5lbCBmb3JtYXRvIHJpY2hpZXN0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Rm9ybWF0dGVkKGRhdGU6IGFueSwgc21hbGw6IGJvb2xlYW4sIHNlY29uZHM6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgICAgIHZhciBkYXRlID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkYXRlKTtcclxuICAgICAgICBpZiAoIWRhdGUpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoc21hbGwgPyB0aGlzLmNmZy5zbWFsbERhdGUgOiBzZWNvbmRzID8gdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5IDogdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5Tm9TUyk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
243
|
+
}] }] });
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzdELFVBQVU7QUFDVixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLFdBQVc7QUFDWCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVF0Qzs7RUFFRTtBQUVILE1BQU0sT0FBTyxXQUFXO0lBa0NtQjtJQUEwRTtJQWhDakg7O09BRUc7SUFDSyxHQUFHLEdBQUc7UUFDVixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNyRSxrQkFBa0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDdEYsd0JBQXdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1FBQ3RGLDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQzdFLHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO1FBQzdGLHVDQUF1QyxFQUFFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTtRQUNyRywwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDOUYsZ0NBQWdD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LEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUFDLElBQVMsRUFBRSxLQUFjLEVBQUUsT0FBZ0I7UUFDM0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2SCxDQUFDO3dHQXJQUSxXQUFXLGtFQWtDc0UsYUFBYTs0R0FsQzlGLFdBQVcsY0FERSxNQUFNOzs0RkFDbkIsV0FBVztrQkFEdEIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OzBCQW1DVCxRQUFROzswQkFBMkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEVzXHJcbmltcG9ydCB7IEJhc2VMb2NhbGl6YXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgRVhUX0FMTE9XX1VUQyB9IGZyb20gXCIuLi90b2tlbnNcIjtcclxuXHJcbi8vIExpYnJlcmllXHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vKipcclxuICogRGljaGlhcmF6aW9uZSBkZWxsYSB2YXJpYWJpbGUgZ2xvYmFsZSBkYXlqcy4gTCdvbmVyZSBkaSBcImNyZWFybGFcIiDDqCBhZmZpZGF0byBhbGwnYXBwbGljYXppb25lIGNoZSB1dGlsaXp6YSBxdWVzdGEgbGlicmVyaWEsIFxyXG4gKiBjaGUgZG92csOgIGltcG9ydGFyZSBsbyBzY3JpcHQgZ2xvYmFsZSBkaSBkYXlqcyBuZWxsYSBDTElcclxuICovXHJcbiBkZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5cclxuIC8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSBkZWkgbWV0b2RpIGRpIGVzdGVuc2lvbmUgcGVyIGxhIGdlc3Rpb25lL21hbmlwb2xhemlvbmUgZGVsbGUgZGF0ZVxyXG4gKi9cclxuIEBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcInJvb3RcIn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlU2VydmljZSB7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogT2dnZXR0byBzdGF0aWNvIGRpIGxvY2FsaXp6YXppb25lIHBlciBpIG1lc3NhZ2dpIGRpIHF1ZXN0YSBTZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9jID0ge1xyXG4gICAgICAgIFwiU01BTExfREFURV9GT1JNQVRcIjogeyAnZW4tVVMnOiBcIk1NL0REL1lZWVlcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZXCIgfSxcclxuICAgICAgICBcIkZVTExfREFURV9GT1JNQVRcIjogeyAnZW4tVVMnOiBcIk1NL0REL1lZWVkgSEg6bW06c3NcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIgfSxcclxuICAgICAgICBcIkZVTExfREFURV9GT1JNQVRfTk9fU1NcIjogeyAnZW4tVVMnOiBcIk1NL0REL1lZWVkgSEg6bW1cIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIgfSxcclxuICAgICAgICBcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVlcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZXCIgfSxcclxuICAgICAgICBcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRfV0lUSF9IT1VSXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZIEhIXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISFwiIH0sXHJcbiAgICAgICAgXCJTTUFMTF9EQVRFX0RJU1BMQVlfRk9STUFUX1dJVEhfTUlOVVRFXCI6IHsgJ2VuLVVTJzogXCJERC9NTS9ZWVlZIEhIOm1tXCIsICdpdC1JVCc6IFwiREQvTU0vWVlZWSBISDptbVwiIH0sXHJcbiAgICAgICAgXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRcIjogeyAnZW4tVVMnOiBcIkREL01NL1lZWVkgSEg6bW06c3NcIiwgJ2l0LUlUJzogXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIgfSxcclxuICAgICAgICBcIkZVTExfREFURV9ESVNQTEFZX0ZPUk1BVF9OT19TU1wiOiB7ICdlbi1VUyc6IFwiREQvTU0vWVlZWSBISDptbVwiLCAnaXQtSVQnOiBcIkREL01NL1lZWVkgSEg6bW1cIiB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2dnZXR0byBkaSBjb25maWd1cmF6aW9uZSBwZXIgdGVuZXJlIGRhIGNvbnRvIGxlIGluZm9ybWF6aW9uaSBzdWkgZm9ybWF0aVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNmZyA9IHtcclxuICAgICAgICBmdWxsZGF0ZTogXCJcIixcclxuICAgICAgICBmdWxsZGF0ZURpc3BsYXk6IFwiXCIsXHJcbiAgICAgICAgc21hbGxEYXRlOiBcIlwiLFxyXG4gICAgICAgIGZ1bGxkYXRlTm9TUzogXCJcIixcclxuICAgICAgICBzbWFsbERhdGVXaXRoSDogXCJcIixcclxuICAgICAgICBzbWFsbERhdGVXaXRoTTogXCJcIixcclxuICAgICAgICBmdWxsZGF0ZURpc3BsYXlOb1NTOiBcIlwiXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGxvY1Byb3ZpZGVyOiBCYXNlTG9jYWxpemF0aW9uLCBAT3B0aW9uYWwoKSBASW5qZWN0KEVYVF9BTExPV19VVEMpIHByaXZhdGUgYWxsb3dVdGM6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0KCl7XHJcbiAgICAgICAgbGV0IExPQ0FMRSA9IHRoaXMubG9jUHJvdmlkZXIgPyAgYXdhaXQgdGhpcy5sb2NQcm92aWRlci5Mb2NhbGUucGlwZShmaXJzdCgpKS50b1Byb21pc2UoKSA6ICdpdC1JVCc7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jZmcuc21hbGxEYXRlID0gdGhpcy5sb2NbXCJTTUFMTF9EQVRFX0ZPUk1BVFwiXVtMT0NBTEVdO1xyXG4gICAgICAgIHRoaXMuY2ZnLmZ1bGxkYXRlID0gdGhpcy5sb2NbXCJGVUxMX0RBVEVfRk9STUFUXCJdW0xPQ0FMRV07XHJcbiAgICAgICAgdGhpcy5jZmcuZnVsbGRhdGVOb1NTID0gdGhpcy5sb2NbXCJGVUxMX0RBVEVfRk9STUFUX05PX1NTXCJdW0xPQ0FMRV07XHJcbiAgICAgICAgdGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5ID0gdGhpcy5sb2NbXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5mdWxsZGF0ZURpc3BsYXlOb1NTICA9dGhpcy5sb2NbXCJGVUxMX0RBVEVfRElTUExBWV9GT1JNQVRfTk9fU1NcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGUgPSB0aGlzLmxvY1tcIlNNQUxMX0RBVEVfRElTUExBWV9GT1JNQVRcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGVXaXRoSCA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX0hPVVJcIl1bTE9DQUxFXTtcclxuICAgICAgICB0aGlzLmNmZy5zbWFsbERhdGVXaXRoTSA9IHRoaXMubG9jW1wiU01BTExfREFURV9ESVNQTEFZX0ZPUk1BVF9XSVRIX01JTlVURVwiXVtMT0NBTEVdO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBBZ2dpdXN0YSB1bmEgZGF0YSBpbiBcImlzdGFudGUgZmluYWxlXCIgaW4gYmFzZSBhIHF1YWwgw6ggbGEgcGFydGUgZGkgZGF0YSBzaWduaWZpY2F0aXZhLlxyXG4gICAgICogXHJcbiAgICAgKiBFcy4gSXN0YW50ZSBmaW5hbGUgZGVsbGUgb3JlOiAwNS8xMC8xOTkyIC0tPiAwNC8xMC8xOTkyIDI0OjAwKDowMClcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGRhdGUgRGF0YSBxdWFsc2lhc2kgKERhdGUsIHN0cmluZ2EsIGRheWpzLi4uKSwgdmVycsOgIHJpY29uZG90dGEgYWQgdW4gb2dnZXR0byBkYXlKc1xyXG4gICAgICogQHBhcmFtIHsnZGF5JyB8ICdob3VyJyB8ICdtaW51dGUnfSB0aW1lcGFydCBQYXJ0ZSBzaWduaWZpY2F0aXZhIGRlbGxhIGRhdGFcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJpbnRTZWNvbmRzIEluZGljYSBzZSBlZmZldHR1YXJlIGxhIHN0YW1wYSBkZWkgc2Vjb25kaSBvIG5vXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGp1c3REYXRlVG9GaW5hbEluc3RhbnQoZGF0ZTogYW55LCB0aW1lcGFydDogJ2RheScgfCAnaG91cicgfCAnbWludXRlJywgcHJpbnRTZWNvbmRzOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IG15ZHQgPSB0aGlzLmdldERhdGVDb252ZXJ0aW9uKGRhdGUpO1xyXG4gICAgICAgIGlmIChteWR0ID09IG51bGwpIHJldHVybiBcIkZFOiBOb3QgYSBEYXRlXCI7XHJcblxyXG4gICAgICAgIGxldCBpc1plcm9UaW1lID0gbXlkdC5zdGFydE9mKHRpbWVwYXJ0KS52YWx1ZU9mKCkgPT09IG15ZHQudmFsdWVPZigpO1xyXG4gICAgICAgIGlmICghaXNaZXJvVGltZSkge1xyXG4gICAgICAgICAgICBpZiAodGltZXBhcnQgPT0gXCJkYXlcIiAmJiBteWR0LnN1YnRyYWN0KDEsIFwiaG91clwiKS5ob3VyKCkgPT0gbXlkdC5ob3VyKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFNlIGwnb3JhIHByZWNlZGVudGUgw6ggbG8gc3Rlc3NvIG9yYXJpbyBkZWxsJ29yYSBhdHR1YWxlIGwnaXN0YW50ZSBmaW5hbGUgZGV2J2Vzc2VyZSBtYW5kYXRvIGF2YW50aSBkaSAxXHJcbiAgICAgICAgICAgICAgICBteWR0ID0gbXlkdC5hZGQoMSwgXCJob3VyXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcHJpbnRTZWNvbmRzID8gbXlkdC5mb3JtYXQodGhpcy5jZmcuZnVsbGRhdGVEaXNwbGF5KSA6IG15ZHQuZm9ybWF0KHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheU5vU1MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRtcFZhbHVlID0gbXlkdC5zdWJ0cmFjdCgxLCB0aW1lcGFydCk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuXHJcbiAgICAgICAgLy8gSXN0YW50ZSBmaW5hbGUgZGVsbGUgb3JlOiAwNS8xMC8xOTkyIC0tPiAwNC8xMC8xOTkyIDI0OjAwKDowMClcclxuICAgICAgICBpZiAodGltZXBhcnQgPT0gJ2RheScpXHJcbiAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWUuZm9ybWF0KHRoaXMuY2ZnLnNtYWxsRGF0ZSkgKyBcIiAyNDowMFwiICsgKHByaW50U2Vjb25kcyA/ICc6MDAnIDogJycpO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWkgbWludXRpOiBnaW9ybm8gMDUvMTAvMTk5MiAwNDowMDowMCAtLT4gMDUvMTAvMTk5MiAwMzo2MCg6MDApXHJcbiAgICAgICAgZWxzZSBpZiAodGltZXBhcnQgPT0gJ2hvdXInKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IHRtcFZhbHVlLmZvcm1hdCh0aGlzLmNmZy5zbWFsbERhdGVXaXRoSCkgKyBcIjo2MFwiICsgKHByaW50U2Vjb25kcyA/ICc6MDAnIDogJycpO1xyXG5cclxuICAgICAgICAvLyBJc3RhbnRlIGZpbmFsZSBkZWkgc2Vjb25kaTogZ2lvcm5vIDA1LzEwLzE5OTIgMDQ6MTA6MDAgLS0+IDA1LzEwLzE5OTIgMDQ6MDk6NjBcclxuICAgICAgICBlbHNlIGlmICh0aW1lcGFydCA9PSAnbWludXRlJylcclxuICAgICAgICAgICAgdmFsdWUgPSB0bXBWYWx1ZS5mb3JtYXQodGhpcy5jZmcuc21hbGxEYXRlV2l0aE0pICsgXCI6NjBcIjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgY2hlIGVmZmV0dHVhIGwnb3JkaW5hbWVudG8gZnJhIDIgZGF0ZSBpbiBiYXNlIGFsbGEgZGlyZXppb25lIHNwZWNpZmljYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBhIFByaW1hIGRhdGEgcGVyIGlsIGNvbmZyb250b1xyXG4gICAgICogQHBhcmFtIHthbnl9IGIgU2Vjb25kYSBkYXRhIHBlciBpbCBjb25mcm9udG9cclxuICAgICAqIEBwYXJhbSB7J2FzYycgfCAnZGVzYyd9IGRpcmVjdGlvbiBEaXJlemlvbmUgcmlzcGV0dG8gYSBjdWkgb3JkaW5hcmUgbGUgZHVlIGRhdGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gMCBzZSBsZSBkYXRlIHNvbm8gdWd1YWxpLCAxIHNlIGxhIGRhdGEgQSBkZXZlIHZlbmlyZSBsb2dpY2FtZW50ZSBwcmltYSBkZWxsYSBkYXRhIEIsIC0xIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGVTb3J0KGE6IGFueSwgYjogYW55LCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiBkaXJlY3Rpb24gPT0gJ2FzYycgPyAxIDogLTE7XHJcbiAgICAgICAgZWxzZSBpZiAoYSA+IGIpIHJldHVybiBkaXJlY3Rpb24gPT0gJ2FzYycgPyAtMSA6IDE7XHJcblxyXG4gICAgICAgIC8vIGNvbiBhIHVndWFsZSBhIGJcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsIHRyaW0gZGVpIHNlY29uZGkgZGEgdW5hIGRhdGEgZXNwcmVzc2EgY29tZSBzdHJpbmdhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSBEYXRhIGVzcHJlc3NhIGNvbWUgc3RyaW5nYVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBEYXRhIHNlbnphIGkgc2Vjb25kaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJpbVNlY29uZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgLy9JIG51bWVyaSBtYW5naWF0aSBkYSBkYXlqcyBzcGVzc28gdmVuZ29ubyByaWNvbmRvdHRpIGEgZGF0ZSB2ZXJlLiBNaSBhc3NpY3VybyBjaGUgc2UgY2kgc29ubyBzb2xvIG51bWVyaSBwcm9zZWd1b1xyXG4gICAgICAgIGlmICghaXNOYU4oPGFueT52YWx1ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICAgICAgLy9TZSBub24gaG8gcXVhbGNvc2EgZGVsIHRpcG8gWFgvWVkvWlpaWiBhYTpiYjpjYyBkaSBzaWN1cm8gbm9uIMOoIHVuYSBkYXRhIGNoZSBtaSBpbnRlcmVzc2FcclxuICAgICAgICBpZiAoIS9eXFxkXFxkXFwvXFxkXFxkXFwvXFxkXFxkXFxkXFxkIFxcZFxcZDpcXGRcXGQ6XFxkXFxkJC9nLnRlc3QodmFsdWUpKVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIC8vSW4gcXVlc3RvIGNhc28gbWkgYXJyaXZhbm8gdmFsb3JpIGNoZSBkZXZvbm8gZXNzZXJlIHN0YW1wYXRpIGFzLWlzLCBzb2xvIHRhZ2xpYW5kbyBpIHNlY29uZGlcclxuICAgICAgICByZXR1cm4gXCInXCIgKyB2YWx1ZS5zdWJzdHIoMCwgdmFsdWUubGVuZ3RoIC0gMyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRhIHVuYSBsaXN0YSBkaSBkYXRlIERhIGUgdW5hIGxpc3RhIGRpIGRhdGUgQSByZXN0aXR1aXNjZSB1biBvZ2dldHRvIHJhcHByZXNlbnRhbnRlIGlsIHJhbmdlIGNoZSBpbmNsdWRlIHR1dHRlIGxlIGRhdGUgcGFzc2F0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSBmcm9tRGF0ZXMgTGlzdGEgZGVpIERhXHJcbiAgICAgKiBAcGFyYW0ge2FueVtdfSB0b0RhdGVzIExpc3RhIGRlaSBBXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHt7IGZyb206IGFueSwgdG86IGFueSB9fSBSYW5nZSBkaSBkYXRlIERhIC0gQSBjaGUgaW5jbHVkZSB0dXR0aSBpIHZhbG9yaSBkaSAqKmZyb21EYXRlcyoqIGUgKip0b0RhdGVzKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1pbk1heERhdGVzUmFuZ2UoZnJvbURhdGVzOiBhbnlbXSwgdG9EYXRlczogYW55W10pOiB7IGZyb206IGFueSwgdG86IGFueSB9IHtcclxuICAgICAgICBsZXQgZGF0ZXNGcm9tczogYW55W10gPSBbXTtcclxuICAgICAgICBsZXQgZGF0ZXNUbzogYW55W10gPSBbXTtcclxuXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGZyb21EYXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBkID0gZnJvbURhdGVzW2ldO1xyXG4gICAgICAgICAgICB2YXIgY29udmVydGlvbiA9IHRoaXMuZ2V0RGF0ZUNvbnZlcnRpb24oZCk7XHJcbiAgICAgICAgICAgIGlmIChjb252ZXJ0aW9uKVxyXG4gICAgICAgICAgICAgICAgZGF0ZXNGcm9tcy5wdXNoKGNvbnZlcnRpb24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRvRGF0ZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgZCA9IHRvRGF0ZXNbaV07XHJcbiAgICAgICAgICAgIHZhciBjb252ZXJ0aW9uID0gdGhpcy5nZXREYXRlQ29udmVydGlvbihkKTtcclxuICAgICAgICAgICAgaWYgKGNvbnZlcnRpb24pXHJcbiAgICAgICAgICAgICAgICBkYXRlc1RvLnB1c2goY29udmVydGlvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geyBmcm9tOiBkYXlqcy5taW4oZGF0ZXNGcm9tcyksIHRvOiBkYXlqcy5tYXgoZGF0ZXNUbykgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgY29udmVyc2lvbmUgZGkgdW5hIGRhdGEgaW4gcXVhbHNpYXNpIGZvcm1hdG8gYWwgZm9ybWF0byBzdGFuZGFyZCBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZGF0ZSBPZ2dldHRvIHJhcHByZXNlbnRhbnRlIHVuYSBkYXRhLiBQb3RyZWJiZSBlc3NlcmUgdW5hIHN0cmluZ2EsIHVuIERhdGUgbyBnacOgIHVuIERheUpzXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZVV0YyBJbmRpY2Egc2UgdXNhcmUgbCdlc3RlbnNpb25lIHV0YyBkaSBEYXlqcyBwZXIgcGFyc2FyZSBsYSBkYXRhIG8gbm9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2FueX0gRGF0YSBpbiBtb2RhbGl0w6AgRGF5SnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGVDb252ZXJ0aW9uKGRhdGU6IGFueSwgdXNlVXRjOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgICAgIGlmICghZGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRGF5SnMoZGF0ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiBkYXRlO1xyXG5cclxuICAgICAgICBpZih0aGlzLmlzSnNEYXRlKGRhdGUpKVxyXG4gICAgICAgICAgICByZXR1cm4gdXNlVXRjID8gZGF5anMudXRjKGRhdGUpOiBkYXlqcyhkYXRlKTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGMnw6ggbGEgcHJvcHJpZXTDoCBsZW5ndGggdnVvbCBkaXJlIGNoZSBub24gw6ggdW5hIHN0cmluZ2EgZSBhIHF1ZXN0byBwdW50byBub24gaG8gaWRlYSBkaSBjaGUgbWluY2hpYSBzaWFcclxuICAgICAgICBsZXQgbGVuZ3RoID0gZGF0ZS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKCFsZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBpZiAodXNlVXRjICYmICF0aGlzLmFsbG93VXRjKVxyXG4gICAgICAgICAgICB0aHJvdyBcIkBlc2ZhZW56YS9leHRlbnNpb25zOiBSaWNoaWVzdGEgZGF0YSBVVEMgbWEgZGEgY29uZmlndXJhemlvbmUgbGEgbGlicmVyaWEgbm9uIGxvIHN1cHBvcnRhXCI7XHJcblxyXG4gICAgICAgIC8vIFBlciByaXNwYXJtaWFyZSBjaGlhbWF0ZSBhIHRlbnRvbmksIGluIGJhc2UgYWxsYSBsdW5naGV6emEgZGVsbGEgc3RyaW5nYSBjaGlhbW8gZGlyZXR0YW1lbnRlIGlsIG1ldG9kbyBnaXVzdG8sIFxyXG4gICAgICAgIC8vIGNvbnRyb2xsYW5kbyBwb2kgY2hlIG1pIGdlbmVyaSB1bmEgZGF0YSBjb21lIG1lIGxhIGFzcGV0dG8gaW9cclxuICAgICAgICBsZXQgdHJ5VGhpcyA9IG51bGw7XHJcbiAgICAgICAgbGV0IHRvQ2FsbCA9IHVzZVV0YyA/IGRheWpzLnV0YyA6IGRheWpzO1xyXG5cclxuICAgICAgICAvLyBTZSBsYSBkYXRhIGNvbnRpZW5lIGxhIGxldHRlcmEgXCJUXCIgdnVvbCBkaXJlIGNoZSDDqCB1bmEgZGF0YSBkZWwgdGlwbyAyMDIwLTEwLTE1VDAwOjAwOjAwLCBkaXJldHRhbWVudGUgcGFyc2FiaWxlIGRhbCBkYXlqcyBjb2wgbG9jYWxlIGNvcnJldHRvLlxyXG4gICAgICAgIC8vIFBlciBpbCByZXN0byBtaSBiYXNvIHN1bGxhIGx1bmdoZXp6YSBkZWxsYSBzdHJpbmdhXHJcbiAgICAgICAgaWYgKCg8c3RyaW5nPmRhdGUpLmluY2x1ZGVzKFwiVFwiKSlcclxuICAgICAgICAgICAgdHJ5VGhpcyA9IHRvQ2FsbChkYXRlKTtcclxuICAgICAgICBlbHNlIGlmIChsZW5ndGggPT0gdGhpcy5jZmcuZnVsbGRhdGUubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLmZ1bGxkYXRlKTtcclxuICAgICAgICBlbHNlIGlmIChsZW5ndGggPT0gdGhpcy5jZmcuc21hbGxEYXRlLmxlbmd0aClcclxuICAgICAgICAgICAgdHJ5VGhpcyA9IHRvQ2FsbChkYXRlLCB0aGlzLmNmZy5zbWFsbERhdGUpO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PSB0aGlzLmNmZy5mdWxsZGF0ZU5vU1MubGVuZ3RoKVxyXG4gICAgICAgICAgICB0cnlUaGlzID0gdG9DYWxsKGRhdGUsIHRoaXMuY2ZnLmZ1bGxkYXRlTm9TUylcclxuXHJcbiAgICAgICAgaWYgKHRyeVRoaXMgJiYgdHJ5VGhpcy5pc1ZhbGlkICYmIHRyeVRoaXMuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ5VGhpcztcclxuXHJcbiAgICAgICAgLy8gU2UgbmllbnRlIGZ1bnppb25hLCBudWxsLiBcclxuICAgICAgICAvLyBSaWNvbmR1cnJlIGwnSW5wdXQgYWQgdW5hIGRhdGEgbm9uIMOoIHBvc3NpYmlsZS5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgcmVzdGl0dWlzY2UgKip0cnVlKiogcXVhbG9yYSBsJ29nZ2V0dG8gcGFzc2F0byBmb3NzZSB1bmEgZGF0YSB2ZXJhIGUgcHJvcHJpYSwgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGNoZWNrIE9nZ2V0dG8gZGEgY29udHJvbGxhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IEluZGljYXppb25lIHNlIGwnb2dnZXR0byDDqCB1biB2ZXJvIERhdGUgZGkgSmF2YXNjcmlwdCBvIG5vXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaXNKc0RhdGUoY2hlY2s6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBjaGVjayAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoY2hlY2spID09PSBcIltvYmplY3QgRGF0ZV1cIiAmJiAhaXNOYU4oY2hlY2spO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSByZXN0aXR1aXNjZSAqKnRydWUqKiBxdWFsb3JhIGwnb2dnZXR0byBwYXNzYXRvIGZvc3NlIHVuIERheUpzIHZlcm8gZSBwcm9wcmlvLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gY2hlY2sgT2dnZXR0byBkYSBjb250cm9sbGFyZVxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IEluZGljYXppb25lIHNlIGwnb2dnZXR0byDDqCB1biB2ZXJvIERheUpzIG8gbm9cclxuICAgICAqL1xyXG4gICAgIHByaXZhdGUgaXNEYXlKcyhjaGVjazogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gTm9uIHVzbyBpbnN0YW5jZW9mIHBlcmNow6kgc2FyZWJiZSBlc3RyZW1hbWVudGUgcGnDuSBsZW50b1xyXG4gICAgICAgIC8vIE5vbiB1c28gbmVtbWVubyBpc0RheWpzKCkgZGVsbGEgbGlicmVyaWEgRGF5anMgZGF0byBjaGUgaGEgbG8gc3Rlc3NvIHByb2JsZW1hOiBodHRwczovL2dpdGh1Yi5jb20vaWFta3VuL2RheWpzL2Jsb2IvMDZmODhmNDI1ODI4YjFjZTk2YjczNzMzMmQyNTE0NWE5NWE0ZWU5ZC9zcmMvaW5kZXguanMjTDlcclxuICAgICAgICByZXR1cm4gY2hlY2suJEQgIT09IHVuZGVmaW5lZCAmJiBjaGVjay4kTSAhPT0gdW5kZWZpbmVkICYmIGNoZWNrLiR5ICE9PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGxhIGZvcm1hdHRhemlvbmUgZGkgdW5hIGRhdGEgaW4gYmFzZSBhbGxhIHZlcnNpb25lIHJpY2hpZXN0YSBcInNtYWxsXCIgbyBcImxvbmdcIiBlIGEgc2Ugc3RhbXBhcmUgbyBtZW5vIGkgc2Vjb25kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZGF0ZSBPZ2dldHRvIHJhcHByZXNlbnRhbnRlIHVuYSBkYXRhLiBQb3RyZWJiZSBlc3NlcmUgdW5hIHN0cmluZ2EsIHVuIERhdGUgbyBnacOgIHVuIERheUpzXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNtYWxsIEluZGljYSBzZSBmb3JtYXR0YXJsYSBjb24gdW4gZm9ybWF0byBicmV2ZSAoc2UgKip0cnVlKiopIG8gdW4gZm9ybWF0byBwacO5IGx1bmdvIChzZSAqKmZhbHNlKiopXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IERhdGEgZm9ybWF0dGF0YSBuZWwgZm9ybWF0byByaWNoaWVzdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZvcm1hdHRlZChkYXRlOiBhbnksIHNtYWxsOiBib29sZWFuLCBzZWNvbmRzOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgICAgICB2YXIgZGF0ZSA9IHRoaXMuZ2V0RGF0ZUNvbnZlcnRpb24oZGF0ZSk7XHJcbiAgICAgICAgaWYgKCFkYXRlKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZm9ybWF0KHNtYWxsID8gdGhpcy5jZmcuc21hbGxEYXRlIDogc2Vjb25kcyA/IHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheSA6IHRoaXMuY2ZnLmZ1bGxkYXRlRGlzcGxheU5vU1MpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -203,11 +203,11 @@ export class AppEmbeddingExtensions {
|
|
|
203
203
|
if (left)
|
|
204
204
|
left.style.setProperty("width", leftSpace + "px");
|
|
205
205
|
}
|
|
206
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
207
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
206
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppEmbeddingExtensions, deps: [{ token: i1.MessageService }, { token: i2.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
207
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppEmbeddingExtensions, providedIn: "root" });
|
|
208
208
|
}
|
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppEmbeddingExtensions, decorators: [{
|
|
210
210
|
type: Injectable,
|
|
211
211
|
args: [{ providedIn: "root" }]
|
|
212
|
-
}], ctorParameters:
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5lbWJlZGRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmVtYmVkZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLFlBQVk7QUFDWixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUkvQixxR0FBcUc7QUFFckcsTUFBTSxPQUFPLHNCQUFzQjtJQWNYO0lBQW9DO0lBQXdCO0lBWnpFLFlBQVksR0FBVyxHQUFHLENBQUM7SUFFM0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBQzNCLFVBQVUsQ0FBTTtJQUVoQixlQUFlLEdBQXVDLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRTlGLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFFaEMsY0FBYyxDQUFTO0lBRTlCLFlBQW9CLFVBQTBCLEVBQVUsTUFBYyxFQUFVLFFBQWtCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBMkMsTUFBTSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUVyQiw2REFBNkQ7WUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0UsSUFBRyxDQUFDLElBQUksQ0FBQyxjQUFjO2dCQUNuQixJQUFJLENBQUMscUNBQXFDLEVBQUUsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3JGLENBQUM7SUFFTyxxQ0FBcUM7UUFFekMsaUtBQWlLO1FBQ2pLLElBQUksUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDaEQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtZQUN2QyxnRkFBZ0Y7WUFDaEYsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZO2dCQUMzRCxPQUFPO1lBRVgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRTFFLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssY0FBYyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBRXBHLFFBQVEsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7b0JBQ3hCLEtBQUssU0FBUzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ3ZFLEtBQUssU0FBUzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ3ZFLEtBQUssT0FBTzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ25FLEtBQUssTUFBTTt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07aUJBQ3BFO2FBQ0o7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxlQUFlLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFFMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNoRDtpQkFDSSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLGNBQWMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLFlBQVksS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUUvSixJQUFJLFlBQVksR0FBSSxLQUFLLENBQUMsTUFBaUIsQ0FBQztnQkFDNUMsSUFBSSxZQUFZLEdBQUcsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBRXpFLFFBQVEsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7b0JBQ3hCLEtBQUssU0FBUzt3QkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTs0QkFDaEYsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTt3QkFDcEUsQ0FBQyxFQUFFLEdBQUcsRUFBRTs0QkFDSixZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dCQUNyRSxDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNO29CQUNWLEtBQUssU0FBUzt3QkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTs0QkFDaEYsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTt3QkFDcEUsQ0FBQyxFQUFFLEdBQUcsRUFBRTs0QkFDSixZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dCQUNyRSxDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNO2lCQUNiO2FBRUo7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxVQUFVLEVBQUU7Z0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxNQUFNLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUM7Z0JBQ2pDLElBQUksWUFBWSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFBO2dCQUU1QyxpSkFBaUo7Z0JBQ2pKLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDL0QsT0FBTyxDQUFDLElBQUksQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO29CQUNoRyxPQUFPO2lCQUNWO2dCQUVELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRyxJQUFJLE1BQU0sR0FBRyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRXJFLElBQUksWUFBWTtvQkFDWixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztxQkFDaEQsSUFBSSxNQUFNO29CQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksZUFBZSxFQUFFO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO29CQUM1QixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2xCO2FBQ0o7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxVQUFVLEVBQUU7Z0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFFaEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7YUFDM0M7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUU7Z0JBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFM0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUN6RTtpQkFDSSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRTtnQkFDeEMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7Z0JBQ3ZGLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUV0RixPQUFPLENBQUMsR0FBRyxDQUFDLG1EQUFtRCxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBRTlGLElBQUksU0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFDLGlGQUFpRjtnQkFDN0csSUFBSSxVQUFVLEdBQVcsbUJBQW1CLENBQUMsQ0FBQyx3R0FBd0c7Z0JBQ3RKLElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxZQUFZLEdBQUcsa0JBQWtCLENBQUM7Z0JBRS9ELElBQUksWUFBWSxHQUFHLDJFQUEyRSxDQUFDO2dCQUUvRixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUU3RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDO2dCQUNyQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsV0FBVyxTQUFTLGtDQUFrQyxTQUFTLGNBQWMsU0FBUyxJQUFJLENBQUM7Z0JBQzlILEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUVmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFlBQVksR0FBRyxnQ0FBZ0MsU0FBUyxLQUFLLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUVqQixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDO2dCQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsdUJBQXVCLFNBQVMsYUFBYSxTQUFTLHdCQUF3QixVQUFVLEtBQUssQ0FBQztnQkFDbkksS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBRW5CLGdEQUFnRDtnQkFDaEQsOENBQThDO2dCQUM5Qyx1SUFBdUk7Z0JBQ3ZJLHdCQUF3QjtnQkFFeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztpQkFDSSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRTtnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2dCQUU1QyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztnQkFDckYsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXpDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRS9DLElBQUksR0FBRztvQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxJQUFJO29CQUNKLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLEtBQUs7b0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFnQixFQUFFLEdBQVc7UUFDN0MsMEJBQTBCO1FBQzFCLG9DQUFvQztRQUVwQywyQ0FBMkM7UUFDM0MsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN6RixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRW5ELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxlQUFlLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU0sK0JBQStCO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ3ZGLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNwRixJQUFJLFNBQVMsR0FBVyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7UUFFakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksR0FBRyxFQUFFO1lBQ0wsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbEQsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGVBQWUsU0FBUyxLQUFLLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksSUFBSTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQzt3R0FuT1Esc0JBQXNCOzRHQUF0QixzQkFBc0IsY0FEVCxNQUFNOzs0RkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBTZXJ2aWNlc1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuL2V4dGVuc2lvbnMubWVzc2FnZXMuc2VydmljZVwiO1xyXG5cclxuLy8gTGlicmFyaWVzXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgbXljb25maWc6IHsgQXBwRGF0YTogeyBNb2R1bGVJZDogc3RyaW5nIH07IH07XHJcblxyXG4vKiBDbGFzc2UgY2hlIGNvbnRpZW5lIHR1dHRlIGxlIGluZm9ybWF6aW9uaSBzdWxsJ2VtYmVkZGluZyBpbiB1biB1bmljbyBjb250ZW5pdG9yZSBwZXIgc2VtcGxpY2l0w6AgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB7XHJcblxyXG4gICAgcHVibGljIHNpZGViYXJXaWR0aDogbnVtYmVyID0gMjMwO1xyXG5cclxuICAgIHB1YmxpYyBFbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIEVtYmVkZGluZ0xldmVsOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIE1haW5XaW5kb3c6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgTWVzc2FnZU9ic2VydmVyOiBTdWJqZWN0PHsgZXZlbnQ6IGFueSwgZGF0YTogYW55IH0+ID0gbmV3IFN1YmplY3Q8eyBldmVudDogYW55LCBkYXRhOiBhbnkgfT4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9yZWxvYWRBbGxvd2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwdWJsaWMgRW1iZWRkZWRNb2R1bGU6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1zZ1NlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikge1xyXG4gICAgICAgIHRoaXMuTWFpbldpbmRvdyA9IDx7IHBhcmVudDogYW55LCBwb3N0TWVzc2FnZTogRnVuY3Rpb24gfT53aW5kb3c7XHJcbiAgICAgICAgd2hpbGUgKHRoaXMuTWFpbldpbmRvdy5wYXJlbnQgIT0gdGhpcy5NYWluV2luZG93KSB7XHJcbiAgICAgICAgICAgIHRoaXMuTWFpbldpbmRvdyA9IHRoaXMuTWFpbldpbmRvdy5wYXJlbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuRW1iZWRkaW5nTGV2ZWwrKztcclxuICAgICAgICAgICAgdGhpcy5FbWJlZGRlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBwZXIgZmFybG8gZnVuemlvbmFyZSBmb3J6YXRhbWVudGUgbWVudHJlIGxvIHRlc3RvXHJcbiAgICAgICAgICAgIHRoaXMuRW1iZWRkZWRNb2R1bGUgPSB0aGlzLmxvY2F0aW9uLnBhdGgoKS5tYXRjaCgvbW9kdWxlPShbYS16QS1aX10rKS8pPy5bMV07XHJcblxyXG4gICAgICAgICAgICBpZighdGhpcy5FbWJlZGRlZE1vZHVsZSlcclxuICAgICAgICAgICAgICAgIHRoaXMud2FpdEZvck15Q29uZmlnQW5kRm9yY2VFbWJlZGRlZE1vZHVsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVFbWJlZGRhYmlsaXR5KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLkVtYmVkZGVkKVxyXG4gICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2UuY29uZmlndXJlRW1iZWRkYWJpbGl0eSh0aGlzLk1haW5XaW5kb3csIHRoaXMuTWVzc2FnZU9ic2VydmVyKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgd2FpdEZvck15Q29uZmlnQW5kRm9yY2VFbWJlZGRlZE1vZHVsZSgpIHtcclxuXHJcbiAgICAgICAgLy8gQXNwZXR0byBkaSByaWNldmVyZSBpbCBteWNvbmZpZyBlIHNldHRvIGNvbiBsdWkgbCdlbWJlZGRlZG1vZHVsZS4gUXVlc3RvIHZpZW5lIGVzZWd1aXRvIHNvbG8gc2UgdGhpcy5sb2NhdGlvbi5wYXRoKCkgcGVyIHF1YWxjaGUgbW90aXZvIG5vbiBjb250aWVuZSBpbCBtb2R1bGVcclxuICAgICAgICBsZXQgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChteWNvbmZpZz8uQXBwRGF0YT8uTW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuRW1iZWRkZWRNb2R1bGUgPSBteWNvbmZpZy5BcHBEYXRhLk1vZHVsZUlkO1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAyNTApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBJc1JlbG9hZEFsbG93ZWQoKSB7XHJcbiAgICAgICAgbGV0IHJldCA9IHRoaXMuX3JlbG9hZEFsbG93ZWQ7XHJcbiAgICAgICAgdGhpcy5fcmVsb2FkQWxsb3dlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuXHJcbiAgICBjb25maWd1cmVFbWJlZGRhYmlsaXR5KCkge1xyXG4gICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZ25vcm8gaSBtaWVpIG1lc3NhZ2dpIGRhdG8gY2hlIG1pIGludGVyZXNzYW5vIHNvbG8gcXVlbGxpIGRlZ2xpIGFsdHJpIGlmcmFtZVxyXG4gICAgICAgICAgICBpZiAoZXZlbnQuc291cmNlID09IHdpbmRvdyAmJiBldmVudD8uZGF0YT8udHlwZSAhPSBcIm1vZGFsLW9wZW5cIilcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuTWVzc2FnZU9ic2VydmVyLm5leHQoeyBldmVudDogXCJ3aW5kb3ctbWVzc2FnZVwiLCBkYXRhOiBldmVudD8uZGF0YSB9KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcImFsZXJ0XCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIGFsZXJ0IC0+IExldmVsOiAke2V2ZW50Py5kYXRhPy5sZXZlbH0sIE1lc3NhZ2U6ICR7ZXZlbnQ/LmRhdGE/Lm1zZ31gKTtcclxuXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50Py5kYXRhPy5sZXZlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzdWNjZXNzXCI6IHRoaXMubXNnU2VydmljZS5zaW1wbGVTdWNjZXNzKGV2ZW50Py5kYXRhPy5tc2cpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwid2FybmluZ1wiOiB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlV2FybmluZyhldmVudD8uZGF0YT8ubXNnKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImVycm9yXCI6IHRoaXMubXNnU2VydmljZS5zaW1wbGVFcnJvcihldmVudD8uZGF0YT8ubXNnKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImluZm9cIjogdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUluZm8oZXZlbnQ/LmRhdGE/Lm1zZyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwicmVwbGFjZS1zdGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSByZXBsYWNlLXN0YXRlIC0+IFVybDogJHtldmVudD8uZGF0YT8udXJsfWApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGV2ZW50Py5kYXRhPy51cmwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBjb25maXJtIC0+IExldmVsOiAke2V2ZW50Py5kYXRhPy5sZXZlbH0sIE1lc3NhZ2U6ICR7ZXZlbnQ/LmRhdGE/LnRleHR9LCBUaXRsZTogJHtldmVudD8uZGF0YT8udGl0bGV9LCBJRDogJHtldmVudD8uZGF0YT8uZ3VpZH1gKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgc291cmNlV2luZG93ID0gKGV2ZW50LnNvdXJjZSBhcyBXaW5kb3cpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJhc2VSZXNwb25zZSA9IHsgdHlwZTogXCJjb25maXJtLXJlc3BvbnNlXCIsIGd1aWQ6IGV2ZW50Py5kYXRhPy5ndWlkIH07XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudD8uZGF0YT8ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3VjY2Vzc1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlU3VjY2Vzc1dpdGhDaG9pY2UoZXZlbnQ/LmRhdGE/LnRpdGxlLCBldmVudD8uZGF0YT8udGV4dCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlV2luZG93LnBvc3RNZXNzYWdlKHsgcmVzdWx0OiB0cnVlLCAuLi5iYXNlUmVzcG9uc2UgfSwgXCIqXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVdpbmRvdy5wb3N0TWVzc2FnZSh7IHJlc3VsdDogZmFsc2UsIC4uLmJhc2VSZXNwb25zZSB9LCBcIipcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ3YXJuaW5nXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXNnU2VydmljZS5zaW1wbGVXYXJuaW5nV2l0aENob2ljZShldmVudD8uZGF0YT8udGl0bGUsIGV2ZW50Py5kYXRhPy50ZXh0LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VXaW5kb3cucG9zdE1lc3NhZ2UoeyByZXN1bHQ6IHRydWUsIC4uLmJhc2VSZXNwb25zZSB9LCBcIipcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlV2luZG93LnBvc3RNZXNzYWdlKHsgcmVzdWx0OiBmYWxzZSwgLi4uYmFzZVJlc3BvbnNlIH0sIFwiKlwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwibmF2aWdhdGVcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gbmF2aWdhdGUgLT4gJHtldmVudD8uZGF0YT8udXJsfWApO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5ld1RhYiA9IGV2ZW50Py5kYXRhPy5uZXdUYWI7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZVN0YXRlID0gZXZlbnQ/LmRhdGE/LnJlcGxhY2VTdGF0ZVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIENvbnRyb2xsbyBzZSBpbCByb3V0ZXIgc3RhIHNlZ3VlbmRvIGxhIGNoaWFtYXRhIGF0dHVhbGUuIEVzY2x1ZG8gaSBxdWVyeSBwYXJhbXMgY2hlIHNvbm8gZ2xpIHVuaWNpIGNoZSBwb3Nzb25vIGVzc2VyZSBzZWNjYXRpIGRhaSByZXBsYWNlU3RhdGVcclxuICAgICAgICAgICAgICAgIC8vIGUgY2hlIHBvdHJlYmJlcm8gZmFyZSBkZWwgY2FzaW5vXHJcbiAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKHRoaXMucm91dGVyLnVybC5zcGxpdChcIj9cIilbMF0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiRG9wcGlhIGNoaWFtYXRhIGRpIG5hdmlnYXppb25lLCBpZ25vcm8gaWwgc2Vjb25kbyBldmVudG8gc2Nvb3JkaW5hdG8gZGFsIHJvdXRlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IG5ld1JlbGF0aXZlVXJsID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbZXZlbnQ/LmRhdGE/LnVybF0pO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJhc2VVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHRoaXMucm91dGVyLnVybC5yZXBsYWNlKFwiP2lnbm9yZVN0b3JhZ2U9dHJ1ZVwiICwgJycpLCAnJyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbmV3VXJsID0gYmFzZVVybCArIGRlY29kZVVSSUNvbXBvbmVudChuZXdSZWxhdGl2ZVVybC50b1N0cmluZygpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVwbGFjZVN0YXRlKVxyXG4gICAgICAgICAgICAgICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKHsgX3B1c2hlZDogdHJ1ZSB9LCBcIlwiLCBuZXdVcmwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmV3VGFiKVxyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKG5ld1VybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwibmF2aWdhdGUtYmFja1wiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBuYXZpZ2F0ZS1iYWNrIC0+ICR7ZXZlbnQ/LmRhdGE/LnVybH1gKTtcclxuICAgICAgICAgICAgICAgIGlmIChoaXN0b3J5LnN0YXRlLl9wdXNoZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWxvYWRBbGxvd2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaGlzdG9yeS5iYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJyZWRpcmVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSByZWRpcmVjdCAtPiAke2V2ZW50Py5kYXRhPy51cmx9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBldmVudD8uZGF0YT8udXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwibmF2aWdhdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBOYXZpZ2F0aW9uIC0+ICR7ZXZlbnQ/LmRhdGE/LmludGVybmFsTmF2aWdhdGlvbiA/IFwiW2ludGVybmFsXVwiIDogXCJcIn0gJHtldmVudD8uZGF0YT8udGl0bGV9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5NZXNzYWdlT2JzZXJ2ZXIubmV4dCh7IGV2ZW50OiBcIm5hdmlnYXRpb25cIiwgZGF0YTogZXZlbnQ/LmRhdGEgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJtb2RhbC1vcGVuXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJtYWluLXdyYXBwZXJcIilbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlclBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQod3JhcHBlclN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1sZWZ0XCIpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJQYWRkaW5nUmlnaHQgPSBwYXJzZUludCh3cmFwcGVyU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXJpZ2h0XCIpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBNb2RhbCBPcGVuIC0+IEJhY2tkcm9wIEhlaWdodDogJHtldmVudD8uZGF0YT8uYmFja2Ryb3BIZWlnaHR9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHRvcEhlaWdodDogbnVtYmVyID0gODA7IC8vIHZhbG9yZSBmaXNzbywgZGlzdGFuemEgZnJhIGlsIHRvcCBlIGwnaW5pemlvIGRlbGwnaWZyYW1lLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciByaWdodFNwYWNlOiBudW1iZXIgPSB3cmFwcGVyUGFkZGluZ1JpZ2h0OyAvLyB2YWxvcmUgZmlzc28sIGRpc3RhbnphIGZyYSBsYSBmaW5lIGRlbGwnaWZyYW1lIGUgaWwgbGF0byBzaW5pc3RybyBkZWxsbyBzY2hlcm1vLCBub24gc2Fyw6AgbWFpIGRpdmVyc29cclxuICAgICAgICAgICAgICAgIHZhciBsZWZ0U3BhY2U6IG51bWJlciA9IHRoaXMuc2lkZWJhcldpZHRoICsgd3JhcHBlclBhZGRpbmdMZWZ0O1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjb21tb25TdHlsZXMgPSBcInBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogOTk5OTsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgb3BhY2l0eTogMC41OyBcIjtcclxuXHJcbiAgICAgICAgICAgICAgICB3cmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwib3ZlcmZsb3dcIiwgXCJoaWRkZW5cIiwgXCJpbXBvcnRhbnRcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIHRvcC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLXRvcFwiO1xyXG4gICAgICAgICAgICAgICAgdG9wLnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAke3RvcEhlaWdodH1weDsgdG9wOiAwOyB3aWR0aDogY2FsYygxMDAlIC0gJHtsZWZ0U3BhY2V9cHgpOyBsZWZ0OiAke2xlZnRTcGFjZX1weGA7XHJcbiAgICAgICAgICAgICAgICB0b3AuaWQgPSBcInRvcFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgICAgICAgICAgbGVmdC5jbGFzc05hbWUgPSBcImVtYmVkZGVkLW1vZGFsLWxlZnRcIjtcclxuICAgICAgICAgICAgICAgIGxlZnQuc3R5bGUuY3NzVGV4dCA9IGNvbW1vblN0eWxlcyArIGBoZWlnaHQ6IDEwMCU7IHRvcDogMDsgd2lkdGg6ICR7bGVmdFNwYWNlfXB4O2A7XHJcbiAgICAgICAgICAgICAgICBsZWZ0LmlkID0gXCJsZWZ0XCI7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQuY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC1yaWdodFwiO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQuc3R5bGUuY3NzVGV4dCA9IGNvbW1vblN0eWxlcyArIGBoZWlnaHQ6IGNhbGMoMTAwJSAtICR7dG9wSGVpZ2h0fXB4KTsgdG9wOiAke3RvcEhlaWdodH1weDsgcmlnaHQ6IDA7IHdpZHRoOiAke3JpZ2h0U3BhY2V9cHg7YDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0LmlkID0gXCJyaWdodFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGJvdHRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBib3R0b20uY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC1ib3R0b21cIjtcclxuICAgICAgICAgICAgICAgIC8vIGJvdHRvbS5zdHlsZS5jc3NUZXh0ID0gY29tbW9uU3R5bGVzICsgYGhlaWdodDogJHt0b3BIZWlnaHR9cHg7IGJvdHRvbTogMDsgd2lkdGg6IGNhbGMoMTAwJSAtICR7bGVmdFNwYWNlfXB4KTsgbGVmdDogJHtsZWZ0U3BhY2V9cHhgO1xyXG4gICAgICAgICAgICAgICAgLy8gYm90dG9tLmlkID0gXCJib3R0b21cIjtcclxuXHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRvcCk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxlZnQpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJtb2RhbC1jbG9zZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBNb2RhbCBDbG9zZWApO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm92ZXJmbG93XCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidG9wXCIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibGVmdFwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJyaWdodFwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodG9wKVxyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodG9wKTtcclxuICAgICAgICAgICAgICAgIGlmIChsZWZ0KVxyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGVmdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmlnaHQpXHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5FbWJlZGRlZClcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShcIm92ZXJmbG93LXlcIiwgXCJhdXRvXCIsIFwiaW1wb3J0YW50XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXBsYWNlU3RhdGUoYmFzZVBhdGg6IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgICAgICAvLyBFc2VtcGlvIGJhc2VQYXRoOiBwYWdlc1xyXG4gICAgICAgIC8vIEVzZW1waW8gdXJsOiBwYXJ0aWVzL2xlYWRzX3NlYXJjaFxyXG5cclxuICAgICAgICAvLyBOb3JtYWxpenphemlvbmUgc2VuemEgc2xhc2ggcHJpbWEgbyBkb3BvXHJcbiAgICAgICAgYmFzZVBhdGggPSBiYXNlUGF0aC5lbmRzV2l0aChcIi9cIikgPyBiYXNlUGF0aC5zdWJzdHJpbmcoMCwgYmFzZVBhdGgubGVuZ3RoIC0yKSA6IGJhc2VQYXRoO1xyXG4gICAgICAgIHVybCA9IHVybC5zdGFydHNXaXRoKFwiL1wiKSA/IHVybC5zdWJzdHJpbmcoMSkgOiB1cmw7XHJcblxyXG4gICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAke2Jhc2VQYXRofS8ke3VybH1gKTtcclxuICAgICAgICB0aGlzLk1haW5XaW5kb3cucG9zdE1lc3NhZ2UoeyB0eXBlOiBcInJlcGxhY2Utc3RhdGVcIiwgdXJsOiBgcGFnZXMvZW1iZWQvJHt0aGlzLkVtYmVkZGVkTW9kdWxlfS8ke3VybH1gIH0sIFwiKlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVmcmVzaEJvdW5kYXJpZXNPbk1lbnVDb2xsYXBzZSgpIHtcclxuICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGxldCB3cmFwcGVyU3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUod3JhcHBlcik7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlclBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQod3JhcHBlclN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1sZWZ0XCIpKTtcclxuICAgICAgICB2YXIgbGVmdFNwYWNlOiBudW1iZXIgPSAyMzAgKyB3cmFwcGVyUGFkZGluZ0xlZnQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxlZnRcIik7XHJcbiAgICAgICAgY29uc3QgdG9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ0b3BcIik7XHJcblxyXG4gICAgICAgIGlmICh0b3ApIHtcclxuICAgICAgICAgICAgdG9wLnN0eWxlLnNldFByb3BlcnR5KFwibGVmdFwiLCAobGVmdFNwYWNlKSArIFwicHhcIik7XHJcbiAgICAgICAgICAgIHRvcC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGBjYWxjKDEwMCUgLSAke2xlZnRTcGFjZX1weClgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsZWZ0KVxyXG4gICAgICAgICAgICBsZWZ0LnN0eWxlLnNldFByb3BlcnR5KFwid2lkdGhcIiwgbGVmdFNwYWNlICsgXCJweFwiKTtcclxuICAgIH1cclxufSJdfQ==
|
|
212
|
+
}], ctorParameters: () => [{ type: i1.MessageService }, { type: i2.Router }, { type: i3.Location }] });
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5lbWJlZGRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmVtYmVkZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLFlBQVk7QUFDWixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUkvQixxR0FBcUc7QUFFckcsTUFBTSxPQUFPLHNCQUFzQjtJQWNYO0lBQW9DO0lBQXdCO0lBWnpFLFlBQVksR0FBVyxHQUFHLENBQUM7SUFFM0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBQzNCLFVBQVUsQ0FBTTtJQUVoQixlQUFlLEdBQXVDLElBQUksT0FBTyxFQUE2QixDQUFDO0lBRTlGLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFFaEMsY0FBYyxDQUFTO0lBRTlCLFlBQW9CLFVBQTBCLEVBQVUsTUFBYyxFQUFVLFFBQWtCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBMkMsTUFBTSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBRXJCLDZEQUE2RDtZQUM3RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU3RSxJQUFHLENBQUMsSUFBSSxDQUFDLGNBQWM7Z0JBQ25CLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBRU8scUNBQXFDO1FBRXpDLGlLQUFpSztRQUNqSyxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDaEQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1lBQ3ZDLGdGQUFnRjtZQUNoRixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLFlBQVk7Z0JBQzNELE9BQU87WUFFWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFFMUUsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLGNBQWMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRyxRQUFRLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ3pCLEtBQUssU0FBUzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ3ZFLEtBQUssU0FBUzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ3ZFLEtBQUssT0FBTzt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07b0JBQ25FLEtBQUssTUFBTTt3QkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLE1BQU07Z0JBQ3JFLENBQUM7WUFDTCxDQUFDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFFMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxjQUFjLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxZQUFZLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFL0osSUFBSSxZQUFZLEdBQUksS0FBSyxDQUFDLE1BQWlCLENBQUM7Z0JBQzVDLElBQUksWUFBWSxHQUFHLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUV6RSxRQUFRLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ3pCLEtBQUssU0FBUzt3QkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTs0QkFDaEYsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTt3QkFDcEUsQ0FBQyxFQUFFLEdBQUcsRUFBRTs0QkFDSixZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dCQUNyRSxDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNO29CQUNWLEtBQUssU0FBUzt3QkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTs0QkFDaEYsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTt3QkFDcEUsQ0FBQyxFQUFFLEdBQUcsRUFBRTs0QkFDSixZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dCQUNyRSxDQUFDLENBQUMsQ0FBQzt3QkFDSCxNQUFNO2dCQUNkLENBQUM7WUFFTCxDQUFDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxNQUFNLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUM7Z0JBQ2pDLElBQUksWUFBWSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFBO2dCQUU1QyxpSkFBaUo7Z0JBQ2pKLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoRSxPQUFPLENBQUMsSUFBSSxDQUFDLGlGQUFpRixDQUFDLENBQUM7b0JBQ2hHLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDcEcsSUFBSSxNQUFNLEdBQUcsT0FBTyxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUVyRSxJQUFJLFlBQVk7b0JBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7cUJBQ2hELElBQUksTUFBTTtvQkFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN0QyxDQUFDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckUsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDNUIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0wsQ0FBQztpQkFDSSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBRWhFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQzVDLENBQUM7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUUzSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQ0ksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7Z0JBQ3ZGLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUV0RixPQUFPLENBQUMsR0FBRyxDQUFDLG1EQUFtRCxLQUFLLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBRTlGLElBQUksU0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFDLGlGQUFpRjtnQkFDN0csSUFBSSxVQUFVLEdBQVcsbUJBQW1CLENBQUMsQ0FBQyx3R0FBd0c7Z0JBQ3RKLElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxZQUFZLEdBQUcsa0JBQWtCLENBQUM7Z0JBRS9ELElBQUksWUFBWSxHQUFHLDJFQUEyRSxDQUFDO2dCQUUvRixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUU3RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDO2dCQUNyQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsV0FBVyxTQUFTLGtDQUFrQyxTQUFTLGNBQWMsU0FBUyxJQUFJLENBQUM7Z0JBQzlILEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUVmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFlBQVksR0FBRyxnQ0FBZ0MsU0FBUyxLQUFLLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUVqQixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDO2dCQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxZQUFZLEdBQUcsdUJBQXVCLFNBQVMsYUFBYSxTQUFTLHdCQUF3QixVQUFVLEtBQUssQ0FBQztnQkFDbkksS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBRW5CLGdEQUFnRDtnQkFDaEQsOENBQThDO2dCQUM5Qyx1SUFBdUk7Z0JBQ3ZJLHdCQUF3QjtnQkFFeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUNJLElBQUksS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztnQkFFNUMsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7Z0JBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUV6QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUvQyxJQUFJLEdBQUc7b0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLElBQUksSUFBSTtvQkFDSixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxLQUFLO29CQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFnQixFQUFFLEdBQVc7UUFDN0MsMEJBQTBCO1FBQzFCLG9DQUFvQztRQUVwQywyQ0FBMkM7UUFDM0MsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN6RixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRW5ELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxlQUFlLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU0sK0JBQStCO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ3ZGLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNwRixJQUFJLFNBQVMsR0FBVyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7UUFFakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNsRCxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsZUFBZSxTQUFTLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxJQUFJLElBQUk7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7d0dBbk9RLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gU2VydmljZXNcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi9leHRlbnNpb25zLm1lc3NhZ2VzLnNlcnZpY2VcIjtcclxuXHJcbi8vIExpYnJhcmllc1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiB7IEFwcERhdGE6IHsgTW9kdWxlSWQ6IHN0cmluZyB9OyB9O1xyXG5cclxuLyogQ2xhc3NlIGNoZSBjb250aWVuZSB0dXR0ZSBsZSBpbmZvcm1hemlvbmkgc3VsbCdlbWJlZGRpbmcgaW4gdW4gdW5pY28gY29udGVuaXRvcmUgcGVyIHNlbXBsaWNpdMOgICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcclxuZXhwb3J0IGNsYXNzIEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlciA9IDIzMDtcclxuXHJcbiAgICBwdWJsaWMgRW1iZWRkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBFbWJlZGRpbmdMZXZlbDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBNYWluV2luZG93OiBhbnk7XHJcblxyXG4gICAgcHVibGljIE1lc3NhZ2VPYnNlcnZlcjogU3ViamVjdDx7IGV2ZW50OiBhbnksIGRhdGE6IGFueSB9PiA9IG5ldyBTdWJqZWN0PHsgZXZlbnQ6IGFueSwgZGF0YTogYW55IH0+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVsb2FkQWxsb3dlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHVibGljIEVtYmVkZGVkTW9kdWxlOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtc2dTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24pIHtcclxuICAgICAgICB0aGlzLk1haW5XaW5kb3cgPSA8eyBwYXJlbnQ6IGFueSwgcG9zdE1lc3NhZ2U6IEZ1bmN0aW9uIH0+d2luZG93O1xyXG4gICAgICAgIHdoaWxlICh0aGlzLk1haW5XaW5kb3cucGFyZW50ICE9IHRoaXMuTWFpbldpbmRvdykge1xyXG4gICAgICAgICAgICB0aGlzLk1haW5XaW5kb3cgPSB0aGlzLk1haW5XaW5kb3cucGFyZW50O1xyXG4gICAgICAgICAgICB0aGlzLkVtYmVkZGluZ0xldmVsKys7XHJcbiAgICAgICAgICAgIHRoaXMuRW1iZWRkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgLy8gRmFsbGJhY2sgcGVyIGZhcmxvIGZ1bnppb25hcmUgZm9yemF0YW1lbnRlIG1lbnRyZSBsbyB0ZXN0b1xyXG4gICAgICAgICAgICB0aGlzLkVtYmVkZGVkTW9kdWxlID0gdGhpcy5sb2NhdGlvbi5wYXRoKCkubWF0Y2goL21vZHVsZT0oW2EtekEtWl9dKykvKT8uWzFdO1xyXG5cclxuICAgICAgICAgICAgaWYoIXRoaXMuRW1iZWRkZWRNb2R1bGUpXHJcbiAgICAgICAgICAgICAgICB0aGlzLndhaXRGb3JNeUNvbmZpZ0FuZEZvcmNlRW1iZWRkZWRNb2R1bGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlRW1iZWRkYWJpbGl0eSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5FbWJlZGRlZClcclxuICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLmNvbmZpZ3VyZUVtYmVkZGFiaWxpdHkodGhpcy5NYWluV2luZG93LCB0aGlzLk1lc3NhZ2VPYnNlcnZlcilcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHdhaXRGb3JNeUNvbmZpZ0FuZEZvcmNlRW1iZWRkZWRNb2R1bGUoKSB7XHJcblxyXG4gICAgICAgIC8vIEFzcGV0dG8gZGkgcmljZXZlcmUgaWwgbXljb25maWcgZSBzZXR0byBjb24gbHVpIGwnZW1iZWRkZWRtb2R1bGUuIFF1ZXN0byB2aWVuZSBlc2VndWl0byBzb2xvIHNlIHRoaXMubG9jYXRpb24ucGF0aCgpIHBlciBxdWFsY2hlIG1vdGl2byBub24gY29udGllbmUgaWwgbW9kdWxlXHJcbiAgICAgICAgbGV0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAobXljb25maWc/LkFwcERhdGE/Lk1vZHVsZUlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkVtYmVkZGVkTW9kdWxlID0gbXljb25maWcuQXBwRGF0YS5Nb2R1bGVJZDtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMjUwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgSXNSZWxvYWRBbGxvd2VkKCkge1xyXG4gICAgICAgIGxldCByZXQgPSB0aGlzLl9yZWxvYWRBbGxvd2VkO1xyXG4gICAgICAgIHRoaXMuX3JlbG9hZEFsbG93ZWQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlndXJlRW1iZWRkYWJpbGl0eSgpIHtcclxuICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgLy8gSWdub3JvIGkgbWllaSBtZXNzYWdnaSBkYXRvIGNoZSBtaSBpbnRlcmVzc2FubyBzb2xvIHF1ZWxsaSBkZWdsaSBhbHRyaSBpZnJhbWVcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PSB3aW5kb3cgJiYgZXZlbnQ/LmRhdGE/LnR5cGUgIT0gXCJtb2RhbC1vcGVuXCIpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICB0aGlzLk1lc3NhZ2VPYnNlcnZlci5uZXh0KHsgZXZlbnQ6IFwid2luZG93LW1lc3NhZ2VcIiwgZGF0YTogZXZlbnQ/LmRhdGEgfSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXZlbnQ/LmRhdGE/LnR5cGUgPT0gXCJhbGVydFwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgV2luZG93IG1lc3NhZ2UgLSBhbGVydCAtPiBMZXZlbDogJHtldmVudD8uZGF0YT8ubGV2ZWx9LCBNZXNzYWdlOiAke2V2ZW50Py5kYXRhPy5tc2d9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudD8uZGF0YT8ubGV2ZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3VjY2Vzc1wiOiB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlU3VjY2VzcyhldmVudD8uZGF0YT8ubXNnKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndhcm5pbmdcIjogdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZVdhcm5pbmcoZXZlbnQ/LmRhdGE/Lm1zZyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJlcnJvclwiOiB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlRXJyb3IoZXZlbnQ/LmRhdGE/Lm1zZyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJpbmZvXCI6IHRoaXMubXNnU2VydmljZS5zaW1wbGVJbmZvKGV2ZW50Py5kYXRhPy5tc2cpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcInJlcGxhY2Utc3RhdGVcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gcmVwbGFjZS1zdGF0ZSAtPiBVcmw6ICR7ZXZlbnQ/LmRhdGE/LnVybH1gKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShldmVudD8uZGF0YT8udXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcImNvbmZpcm1cIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gY29uZmlybSAtPiBMZXZlbDogJHtldmVudD8uZGF0YT8ubGV2ZWx9LCBNZXNzYWdlOiAke2V2ZW50Py5kYXRhPy50ZXh0fSwgVGl0bGU6ICR7ZXZlbnQ/LmRhdGE/LnRpdGxlfSwgSUQ6ICR7ZXZlbnQ/LmRhdGE/Lmd1aWR9YCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHNvdXJjZVdpbmRvdyA9IChldmVudC5zb3VyY2UgYXMgV2luZG93KTtcclxuICAgICAgICAgICAgICAgIHZhciBiYXNlUmVzcG9uc2UgPSB7IHR5cGU6IFwiY29uZmlybS1yZXNwb25zZVwiLCBndWlkOiBldmVudD8uZGF0YT8uZ3VpZCB9O1xyXG5cclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQ/LmRhdGE/LmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcInN1Y2Nlc3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZVN1Y2Nlc3NXaXRoQ2hvaWNlKGV2ZW50Py5kYXRhPy50aXRsZSwgZXZlbnQ/LmRhdGE/LnRleHQsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVdpbmRvdy5wb3N0TWVzc2FnZSh7IHJlc3VsdDogdHJ1ZSwgLi4uYmFzZVJlc3BvbnNlIH0sIFwiKlwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VXaW5kb3cucG9zdE1lc3NhZ2UoeyByZXN1bHQ6IGZhbHNlLCAuLi5iYXNlUmVzcG9uc2UgfSwgXCIqXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIFwid2FybmluZ1wiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zZ1NlcnZpY2Uuc2ltcGxlV2FybmluZ1dpdGhDaG9pY2UoZXZlbnQ/LmRhdGE/LnRpdGxlLCBldmVudD8uZGF0YT8udGV4dCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlV2luZG93LnBvc3RNZXNzYWdlKHsgcmVzdWx0OiB0cnVlLCAuLi5iYXNlUmVzcG9uc2UgfSwgXCIqXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVdpbmRvdy5wb3N0TWVzc2FnZSh7IHJlc3VsdDogZmFsc2UsIC4uLmJhc2VSZXNwb25zZSB9LCBcIipcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcIm5hdmlnYXRlXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXaW5kb3cgbWVzc2FnZSAtIG5hdmlnYXRlIC0+ICR7ZXZlbnQ/LmRhdGE/LnVybH1gKTtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdUYWIgPSBldmVudD8uZGF0YT8ubmV3VGFiO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VTdGF0ZSA9IGV2ZW50Py5kYXRhPy5yZXBsYWNlU3RhdGVcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBDb250cm9sbG8gc2UgaWwgcm91dGVyIHN0YSBzZWd1ZW5kbyBsYSBjaGlhbWF0YSBhdHR1YWxlLiBFc2NsdWRvIGkgcXVlcnkgcGFyYW1zIGNoZSBzb25vIGdsaSB1bmljaSBjaGUgcG9zc29ubyBlc3NlcmUgc2VjY2F0aSBkYWkgcmVwbGFjZVN0YXRlXHJcbiAgICAgICAgICAgICAgICAvLyBlIGNoZSBwb3RyZWJiZXJvIGZhcmUgZGVsIGNhc2lub1xyXG4gICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcyh0aGlzLnJvdXRlci51cmwuc3BsaXQoXCI/XCIpWzBdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkRvcHBpYSBjaGlhbWF0YSBkaSBuYXZpZ2F6aW9uZSwgaWdub3JvIGlsIHNlY29uZG8gZXZlbnRvIHNjb29yZGluYXRvIGRhbCByb3V0ZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBuZXdSZWxhdGl2ZVVybCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW2V2ZW50Py5kYXRhPy51cmxdKTtcclxuICAgICAgICAgICAgICAgIGxldCBiYXNlVXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSh0aGlzLnJvdXRlci51cmwucmVwbGFjZShcIj9pZ25vcmVTdG9yYWdlPXRydWVcIiAsICcnKSwgJycpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5ld1VybCA9IGJhc2VVcmwgKyBkZWNvZGVVUklDb21wb25lbnQobmV3UmVsYXRpdmVVcmwudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VTdGF0ZSlcclxuICAgICAgICAgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7IF9wdXNoZWQ6IHRydWUgfSwgXCJcIiwgbmV3VXJsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5ld1RhYilcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihuZXdVcmwsICdfYmxhbmsnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcIm5hdmlnYXRlLWJhY2tcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gbmF2aWdhdGUtYmFjayAtPiAke2V2ZW50Py5kYXRhPy51cmx9YCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGlzdG9yeS5zdGF0ZS5fcHVzaGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVsb2FkQWxsb3dlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGhpc3RvcnkuYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwicmVkaXJlY3RcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gcmVkaXJlY3QgLT4gJHtldmVudD8uZGF0YT8udXJsfWApO1xyXG5cclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZXZlbnQ/LmRhdGE/LnVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChldmVudD8uZGF0YT8udHlwZSA9PSBcIm5hdmlnYXRpb25cIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gTmF2aWdhdGlvbiAtPiAke2V2ZW50Py5kYXRhPy5pbnRlcm5hbE5hdmlnYXRpb24gPyBcIltpbnRlcm5hbF1cIiA6IFwiXCJ9ICR7ZXZlbnQ/LmRhdGE/LnRpdGxlfWApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuTWVzc2FnZU9ic2VydmVyLm5leHQoeyBldmVudDogXCJuYXZpZ2F0aW9uXCIsIGRhdGE6IGV2ZW50Py5kYXRhIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwibW9kYWwtb3BlblwiKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWFpbi13cmFwcGVyXCIpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdyYXBwZXJTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh3cmFwcGVyKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJQYWRkaW5nTGVmdCA9IHBhcnNlSW50KHdyYXBwZXJTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmctbGVmdFwiKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB3cmFwcGVyUGFkZGluZ1JpZ2h0ID0gcGFyc2VJbnQod3JhcHBlclN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1yaWdodFwiKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gTW9kYWwgT3BlbiAtPiBCYWNrZHJvcCBIZWlnaHQ6ICR7ZXZlbnQ/LmRhdGE/LmJhY2tkcm9wSGVpZ2h0fWApO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciB0b3BIZWlnaHQ6IG51bWJlciA9IDgwOyAvLyB2YWxvcmUgZmlzc28sIGRpc3RhbnphIGZyYSBpbCB0b3AgZSBsJ2luaXppbyBkZWxsJ2lmcmFtZSwgbm9uIHNhcsOgIG1haSBkaXZlcnNvXHJcbiAgICAgICAgICAgICAgICB2YXIgcmlnaHRTcGFjZTogbnVtYmVyID0gd3JhcHBlclBhZGRpbmdSaWdodDsgLy8gdmFsb3JlIGZpc3NvLCBkaXN0YW56YSBmcmEgbGEgZmluZSBkZWxsJ2lmcmFtZSBlIGlsIGxhdG8gc2luaXN0cm8gZGVsbG8gc2NoZXJtbywgbm9uIHNhcsOgIG1haSBkaXZlcnNvXHJcbiAgICAgICAgICAgICAgICB2YXIgbGVmdFNwYWNlOiBudW1iZXIgPSB0aGlzLnNpZGViYXJXaWR0aCArIHdyYXBwZXJQYWRkaW5nTGVmdDtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgY29tbW9uU3R5bGVzID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDk5OTk7IGJhY2tncm91bmQtY29sb3I6ICMwMDA7IG9wYWNpdHk6IDAuNTsgXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcIm92ZXJmbG93XCIsIFwiaGlkZGVuXCIsIFwiaW1wb3J0YW50XCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgICAgICAgICB0b3AuY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC10b3BcIjtcclxuICAgICAgICAgICAgICAgIHRvcC5zdHlsZS5jc3NUZXh0ID0gY29tbW9uU3R5bGVzICsgYGhlaWdodDogJHt0b3BIZWlnaHR9cHg7IHRvcDogMDsgd2lkdGg6IGNhbGMoMTAwJSAtICR7bGVmdFNwYWNlfXB4KTsgbGVmdDogJHtsZWZ0U3BhY2V9cHhgO1xyXG4gICAgICAgICAgICAgICAgdG9wLmlkID0gXCJ0b3BcIjtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIGxlZnQuY2xhc3NOYW1lID0gXCJlbWJlZGRlZC1tb2RhbC1sZWZ0XCI7XHJcbiAgICAgICAgICAgICAgICBsZWZ0LnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiAxMDAlOyB0b3A6IDA7IHdpZHRoOiAke2xlZnRTcGFjZX1weDtgO1xyXG4gICAgICAgICAgICAgICAgbGVmdC5pZCA9IFwibGVmdFwiO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIHJpZ2h0LmNsYXNzTmFtZSA9IFwiZW1iZWRkZWQtbW9kYWwtcmlnaHRcIjtcclxuICAgICAgICAgICAgICAgIHJpZ2h0LnN0eWxlLmNzc1RleHQgPSBjb21tb25TdHlsZXMgKyBgaGVpZ2h0OiBjYWxjKDEwMCUgLSAke3RvcEhlaWdodH1weCk7IHRvcDogJHt0b3BIZWlnaHR9cHg7IHJpZ2h0OiAwOyB3aWR0aDogJHtyaWdodFNwYWNlfXB4O2A7XHJcbiAgICAgICAgICAgICAgICByaWdodC5pZCA9IFwicmlnaHRcIjtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBib3R0b20gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gYm90dG9tLmNsYXNzTmFtZSA9IFwiZW1iZWRkZWQtbW9kYWwtYm90dG9tXCI7XHJcbiAgICAgICAgICAgICAgICAvLyBib3R0b20uc3R5bGUuY3NzVGV4dCA9IGNvbW1vblN0eWxlcyArIGBoZWlnaHQ6ICR7dG9wSGVpZ2h0fXB4OyBib3R0b206IDA7IHdpZHRoOiBjYWxjKDEwMCUgLSAke2xlZnRTcGFjZX1weCk7IGxlZnQ6ICR7bGVmdFNwYWNlfXB4YDtcclxuICAgICAgICAgICAgICAgIC8vIGJvdHRvbS5pZCA9IFwiYm90dG9tXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0b3ApO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsZWZ0KTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09IFwibW9kYWwtY2xvc2VcIikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYFdpbmRvdyBtZXNzYWdlIC0gTW9kYWwgQ2xvc2VgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgd3JhcHBlciA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcIm1haW4td3JhcHBlclwiKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCJvdmVyZmxvd1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRvcFwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxlZnRcIik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmlnaHRcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRvcClcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRvcCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobGVmdClcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxlZnQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJpZ2h0KVxyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocmlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuRW1iZWRkZWQpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXCJvdmVyZmxvdy15XCIsIFwiYXV0b1wiLCBcImltcG9ydGFudFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVwbGFjZVN0YXRlKGJhc2VQYXRoOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICAgICAgLy8gRXNlbXBpbyBiYXNlUGF0aDogcGFnZXNcclxuICAgICAgICAvLyBFc2VtcGlvIHVybDogcGFydGllcy9sZWFkc19zZWFyY2hcclxuXHJcbiAgICAgICAgLy8gTm9ybWFsaXp6YXppb25lIHNlbnphIHNsYXNoIHByaW1hIG8gZG9wb1xyXG4gICAgICAgIGJhc2VQYXRoID0gYmFzZVBhdGguZW5kc1dpdGgoXCIvXCIpID8gYmFzZVBhdGguc3Vic3RyaW5nKDAsIGJhc2VQYXRoLmxlbmd0aCAtMikgOiBiYXNlUGF0aDtcclxuICAgICAgICB1cmwgPSB1cmwuc3RhcnRzV2l0aChcIi9cIikgPyB1cmwuc3Vic3RyaW5nKDEpIDogdXJsO1xyXG5cclxuICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShgJHtiYXNlUGF0aH0vJHt1cmx9YCk7XHJcbiAgICAgICAgdGhpcy5NYWluV2luZG93LnBvc3RNZXNzYWdlKHsgdHlwZTogXCJyZXBsYWNlLXN0YXRlXCIsIHVybDogYHBhZ2VzL2VtYmVkLyR7dGhpcy5FbWJlZGRlZE1vZHVsZX0vJHt1cmx9YCB9LCBcIipcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZnJlc2hCb3VuZGFyaWVzT25NZW51Q29sbGFwc2UoKSB7XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcIm1haW4td3JhcHBlclwiKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBsZXQgd3JhcHBlclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHdyYXBwZXIpO1xyXG4gICAgICAgIGNvbnN0IHdyYXBwZXJQYWRkaW5nTGVmdCA9IHBhcnNlSW50KHdyYXBwZXJTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmctbGVmdFwiKSk7XHJcbiAgICAgICAgdmFyIGxlZnRTcGFjZTogbnVtYmVyID0gMjMwICsgd3JhcHBlclBhZGRpbmdMZWZ0O1xyXG5cclxuICAgICAgICBjb25zdCBsZWZ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsZWZ0XCIpO1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidG9wXCIpO1xyXG5cclxuICAgICAgICBpZiAodG9wKSB7XHJcbiAgICAgICAgICAgIHRvcC5zdHlsZS5zZXRQcm9wZXJ0eShcImxlZnRcIiwgKGxlZnRTcGFjZSkgKyBcInB4XCIpO1xyXG4gICAgICAgICAgICB0b3Auc3R5bGUuc2V0UHJvcGVydHkoXCJ3aWR0aFwiLCBgY2FsYygxMDAlIC0gJHtsZWZ0U3BhY2V9cHgpYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGVmdClcclxuICAgICAgICAgICAgbGVmdC5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGxlZnRTcGFjZSArIFwicHhcIik7XHJcbiAgICB9XHJcbn0iXX0=
|