@bizdoc/core 2.3.44 → 2.4.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/assets/bizdoc-schema.json +4 -2
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/deep-purple-light-blue.min.css +12 -8
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +12 -8
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +7 -2
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +13 -5
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +1 -1
- package/esm2022/lib/compose/attachments/attachments.component.mjs +4 -4
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +10 -8
- package/esm2022/lib/compose/new-menu.component.mjs +4 -8
- package/esm2022/lib/core/authentication.mjs +2 -1
- package/esm2022/lib/core/http.interceptor.mjs +35 -31
- package/esm2022/lib/core/hub.service.mjs +3 -3
- package/esm2022/lib/core/info/attachment-info.service.mjs +2 -2
- package/esm2022/lib/core/inputs/file.input.mjs +8 -6
- package/esm2022/lib/core/mailbox.service.mjs +4 -4
- package/esm2022/lib/core/models.mjs +1 -1
- package/esm2022/lib/cube/cube-view.component.mjs +3 -1
- package/esm2022/lib/home/sign/sign.component.mjs +4 -10
- package/esm2022/lib/system.module.mjs +4 -2
- package/fesm2022/bizdoc-core.mjs +106 -90
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/architecture/designer-element.component.d.ts +2 -1
- package/lib/admin/architecture/elements/cube.component.d.ts +1 -0
- package/lib/compose/attachments/attachments.component.d.ts +1 -1
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -3
- package/lib/core/authentication.d.ts +3 -4
- package/lib/core/http.interceptor.d.ts +1 -1
- package/lib/core/inputs/file.input.d.ts +1 -1
- package/lib/core/mailbox.service.d.ts +1 -1
- package/lib/core/models.d.ts +1 -1
- package/package.json +13 -13
@@ -61,8 +61,8 @@ export class FileInput {
|
|
61
61
|
getVersions(item) {
|
62
62
|
return this._model.attachments.filter(a => a.fileName === item.fileName && a.id !== item.id);
|
63
63
|
}
|
64
|
-
download(item) {
|
65
|
-
location.href = this._mailbox.formatDownloadUrl(this._model
|
64
|
+
async download(item) {
|
65
|
+
location.href = await this._mailbox.formatDownloadUrl(this._model, item);
|
66
66
|
item.viewed = new Date();
|
67
67
|
}
|
68
68
|
previewOrDownload(item) {
|
@@ -271,17 +271,19 @@ export class FileInput {
|
|
271
271
|
* @param attachment
|
272
272
|
*/
|
273
273
|
_createItem(attachment) {
|
274
|
-
const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType)
|
275
|
-
|
274
|
+
const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType);
|
275
|
+
const newModel = {
|
276
276
|
...attachment,
|
277
277
|
hasPreview,
|
278
278
|
isImage,
|
279
279
|
fileExt,
|
280
|
-
url,
|
281
280
|
icon: EXTENTION_ICONS[fileExt],
|
282
281
|
checkedOut: attachment.checkedOut &&
|
283
282
|
attachment.holdingId === this._session.profile.userId
|
284
283
|
};
|
284
|
+
isImage &&
|
285
|
+
this._mailbox.formatDownloadUrl(this._model, attachment).then(url => newModel.url = this._sanitizer.bypassSecurityTrustUrl(url));
|
286
|
+
return newModel;
|
285
287
|
}
|
286
288
|
/**
|
287
289
|
*
|
@@ -416,4 +418,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
416
418
|
type: HostBinding,
|
417
419
|
args: ['attr.aria-describedby']
|
418
420
|
}] } });
|
419
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvZmlsZS5pbnB1dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvZmlsZS5pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5SSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFTLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBbUIsY0FBYyxFQUFrQixjQUFjLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNbEgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFRaEcsTUFBTSxPQUNFLFNBQVM7YUFDQSxXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFJMUIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFD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LElBQUk7c0JBQVosS0FBSztnQkFDYyxNQUFNO3NCQUF6QixTQUFTO3VCQUFDLE9BQU87Z0JBMkhsQixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU16QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVoQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdDdkIsS0FBSztzQkFBakIsS0FBSztnQkFPTyxXQUFXO3NCQUF2QixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBUWdDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAsIGZpcnN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50SW5mbyB9IGZyb20gJy4uL2luZm8vYXR0YWNobWVudC1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RXh0cmEsIERPQ1VNRU5UX01PREVMLCBNYWlsYm94U2VydmljZSwgcmVwb3J0UHJvZ3Jlc3MsIFVwbG9hZEV2ZW50IH0gZnJvbSAnLi4vbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudCwgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5jb25zdCBFWFRFTlRJT05fSUNPTlMgPSB7ICd4bHN4JzogJ2V4Y2VsJywgJ2RvY3gnOiAnd29yZCcsICdwcHR4JzogJ3Bvd2VycG9pbnQnLCAncGRmJzogJ3BkZicgfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZmlsZS5pbnB1dC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZmlsZS5pbnB1dC5zY3NzJ10sXHJcbiAgaG9zdDogeyBjbGFzczogJ2ZpbGUtZHJvcGFibGUnIH0sXHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZmlsZS11cGxvYWQnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEZpbGVJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8bnVtYmVyIHwgbnVtYmVyW10+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1maWxlLXVwbG9hZC0ke0ZpbGVJbnB1dC5uZXh0SWQrK31gO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodmFsdWUpIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgYWNjZXB0ID0gbnVsbDtcclxuICBASW5wdXQoKSBpY29uID0gJ3B1Ymxpc2gnO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgX2lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIGl0ZW1zID0gW10gYXMgQXR0YWNobWVudEV4dHJhW107XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZDogYW55O1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiBhbnk7XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfdmFsdWU6IG51bWJlciB8IG51bWJlcltdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdEcm9wID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9wZW5kaW5nID0gbmV3IFN1YmplY3Q8RmlsZVtdPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZHJvcGFibGVFbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgX2F0dGFjaG1lbnRJbmZvOiBBdHRhY2htZW50SW5mbyxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBJbmplY3QoRE9DVU1FTlRfTU9ERUwpIHByaXZhdGUgX21vZGVsOiBSZWNpcGllbnRNb2RlbDxhbnk+LFxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhhc1ZlcnNpb25zKGl0ZW06IEF0dGFjaG1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5maW5kKGEgPT4gYS5maWxlTmFtZSA9PT0gaXRlbS5maWxlTmFtZSAmJiBhLmlkICE9PSBpdGVtLmlkKSAhPT0gbnVsbDtcclxuICB9XHJcbiAgZ2V0VmVyc2lvbnMoaXRlbTogQXR0YWNobWVudCk6IEF0dGFjaG1lbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYS5maWxlTmFtZSA9PT0gaXRlbS5maWxlTmFtZSAmJiBhLmlkICE9PSBpdGVtLmlkKTtcclxuICB9XHJcbiAgZG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBsb2NhdGlvbi5ocmVmID0gdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbC5kb2N1bWVudElkLCBpdGVtLmlkKTtcclxuICAgIChpdGVtIGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgcHJldmlld09yRG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBpZiAoQXR0YWNobWVudEluZm8uZXhpc3RzKGl0ZW0uY29udGVudFR5cGUpKVxyXG4gICAgICB0aGlzLmFwcmV2aWV3KGl0ZW0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmRvd25sb2FkKGl0ZW0pO1xyXG4gIH1cclxuICBjYW5FZGl0KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLl9tb2RlbC5jb21wbGV0ZWQgJiYgaXRlbS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQgJiYgIWl0ZW0uZGVsZXRlZDtcclxuICB9XHJcbiAgYXByZXZpZXcoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICB0aGlzLl9hdHRhY2htZW50SW5mby5wcmV2aWV3KHRoaXMuX21vZGVsLCBpdGVtLmlkKTtcclxuICB9XHJcbiAgY2FuY2VsKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgdGhpcy5fbW9kZWwuYXR0YWNobWVudHMucmVtb3ZlKGl0ZW0pO1xyXG4gIH1cclxuICBjaGVja0luKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgY29uc3QgYWNjZXB0ID0gaXRlbS5pc0ltYWdlID8gJ2ltYWdlLyonIDpcclxuICAgICAgJy4nICsgQXR0YWNobWVudEluZm8uZmlsZUV4dChpdGVtLmZpbGVOYW1lKSArICcsJyArIGl0ZW0uY29udGVudFR5cGU7XHJcbiAgICB0aGlzLl9wcm9tcHQoeyBtdWx0aXBsZTogZmFsc2UsIGFjY2VwdCB9KS50aGVuKGZpbGVzID0+IHtcclxuICAgICAgdGhpcy5fbWFpbGJveC5jaGVja0luKHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC52ZXJzaW9uLCBpdGVtLmlkLCBmaWxlc1swXSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGEgPT4ge1xyXG4gICAgICAgICAgICBkZWxldGUgaXRlbS5jaGVja2VkT3V0O1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIGEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMudmFsdWUgYXMgbnVtYmVyW10pLmluZGV4T2YoaXRlbS5pZCk7XHJcbiAgICAgICAgICAgICAgLy8gcmVwbGFjZSB2YWx1ZSB3aXRoIG5ldyBpZFxyXG4gICAgICAgICAgICAgICh0aGlzLnZhbHVlIGFzIG51bWJlcltdKS5zcGxpY2UoaW5kZXgsIDEsIGEuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gYS5pZDtcclxuICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QodGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluJywgaXRlbS5maWxlTmFtZSkpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4gdGhpcy5faGFuZGxlRXJyb3IoZSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgY2hlY2tPdXQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNoZWNrT3V0KHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC52ZXJzaW9uLCBpdGVtLmlkKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrZWRPdXQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWQoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBkaXNjYXJkKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgY29uc3QgdGFzayA9ICgpID0+XHJcbiAgICAgIHRoaXMuX21haWxib3gucmVtb3ZlYXR0YWNobWVudCh0aGlzLl9tb2RlbC5pZCwgaXRlbS5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcclxuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IHRoaXMuaXRlbXMubGVuZ3RoID8gdGhpcy5pdGVtcy5tYXAoaSA9PiBpLmlkKSA6IG51bGwgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBhaXRlbSA9IHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIGFpdGVtLmRlbGV0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0sIGVycm9yOiBlID0+XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlKVxyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLl9tb2RlbC5kcmFmdClcclxuICAgICAgdGFzaygpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zYi5hc2soJ0RlbGV0ZUZpbGVBc2snLCAnRGVsZXRlRmlsZScsIHsgY29sb3I6ICd3YXJuJyB9KS5zdWJzY3JpYmUob2sgPT5cclxuICAgICAgICBvayAmJiB0YXNrKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9oYW5kbGVFcnJvcihyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDQwOTogLy8gdmVyc2lvbiBjaGFuZ2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVmVyc2lvbkVycicsIHRoaXMuX21vZGVsLm51bWJlcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgNDA2OiAvLyB2YWxpZGF0aW9uIGV4Y2VwdGlvblxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kcm9wYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX2RyYWdEcm9wLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgIGlmIChvaykgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWcnKTtcclxuICAgICAgZWxzZSBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZycpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyKSB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RyYWdGaWxlJyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmRyb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURvY3VtZW50RHJvcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIC8vIHRvIGFycmF5XHJcbiAgICBjb25zdCB7IGl0ZW1zIH0gPSBldmVudC5kYXRhVHJhbnNmZXI7XHJcbiAgICBjb25zdCBmaWxlcyA9IFtdIGFzIEZpbGVbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xyXG4gICAgICBmaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXBsb2FkKGZpbGVzKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVFbnRlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLl9kcmFnRHJvcC5uZXh0KHRydWUpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKHZhbDogbnVtYmVyIHwgbnVtYmVyW10pOiB2b2lkIHtcclxuICAgIGlmICghdmFsKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpXHJcbiAgICAgIHRoaXMuaXRlbXMgPVxyXG4gICAgICAgIHZhbC5tYXAoaSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhdHRhY2htZW50ID0gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmluZChhID0+IGEuaWQgPT09IGkpO1xyXG4gICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQgPyB0aGlzLl9jcmVhdGVJdGVtKGF0dGFjaG1lbnQpIDogbnVsbDtcclxuICAgICAgICB9KS5maWx0ZXIoYSA9PiBhKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgYXR0YWNobWVudCA9IHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSB2YWwpO1xyXG4gICAgICB0aGlzLml0ZW1zID0gYXR0YWNobWVudCA/IFt0aGlzLl9jcmVhdGVJdGVtKGF0dGFjaG1lbnQpXSA6IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogbnVtYmVyIHwgbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBudW1iZXIgfCBudW1iZXJbXSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkOiBib29sZWFuO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLl92YWx1ZTsgfVxyXG4gIHNob3VsZExhYmVsRmxvYXQ6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXE6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy1maWxlLXVwbG9hZCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuICBvbkNvbnRhaW5lckNsaWNrKCk6IHZvaWQge1xyXG4gIH1cclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5fcHJvbXB0KCkudGhlbihcclxuICAgICAgdGhpcy5fdXBsb2FkLmJpbmQodGhpcykpXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Byb21wdChvcHRpb25zPzogeyBtdWx0aXBsZTogYm9vbGVhbiwgYWNjZXB0Pzogc3RyaW5nIH0pOiBQcm9taXNlPEZpbGVbXT4ge1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuYWNjZXB0KVxyXG4gICAgICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUVsZW1lbnQuYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQ7XHJcbiAgICAgIGlmIChvcHRpb25zLm11bHRpcGxlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdGhpcy5faW5wdXQubmF0aXZlRWxlbWVudC5tdWx0aXBsZSA9IG9wdGlvbnMubXVsdGlwbGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5fcGVuZGluZyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBfY2hhbmdlKGV2dDogSW5wdXRFdmVudCkge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgYXJyID0gW10gYXMgRmlsZVtdO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZmlsZSA9IGZpbGVzLml0ZW0oaSk7XHJcbiAgICAgIGFyci5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGVuZGluZy5uZXh0KGFycik7XHJcbiAgICB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGF0dGFjaG1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIF9jcmVhdGVJdGVtKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpIHtcclxuICAgIGNvbnN0IGZpbGVFeHQgPSBBdHRhY2htZW50SW5mby5maWxlRXh0KGF0dGFjaG1lbnQuZmlsZU5hbWUpLFxyXG4gICAgICBoYXNQcmV2aWV3ID0gQXR0YWNobWVudEluZm8uZXhpc3RzKGF0dGFjaG1lbnQuY29udGVudFR5cGUpLFxyXG4gICAgICBpc0ltYWdlID0gaGFzUHJldmlldyAmJiBBdHRhY2htZW50SW5mby5pc0ltYWdlKGF0dGFjaG1lbnQuY29udGVudFR5cGUpLFxyXG4gICAgICB1cmwgPSBpc0ltYWdlID8gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoXHJcbiAgICAgICAgdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbC5kb2N1bWVudElkLCBhdHRhY2htZW50LmlkKSkgOiBudWxsO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uYXR0YWNobWVudCxcclxuICAgICAgaGFzUHJldmlldyxcclxuICAgICAgaXNJbWFnZSxcclxuICAgICAgZmlsZUV4dCxcclxuICAgICAgdXJsLFxyXG4gICAgICBpY29uOiBFWFRFTlRJT05fSUNPTlNbZmlsZUV4dF0sXHJcbiAgICAgIGNoZWNrZWRPdXQ6XHJcbiAgICAgICAgYXR0YWNobWVudC5jaGVja2VkT3V0ICYmXHJcbiAgICAgICAgYXR0YWNobWVudC5ob2xkaW5nSWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWRcclxuICAgIH0gYXMgQXR0YWNobWVudEV4dHJhO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZmlsZXNcclxuICAgKi9cclxuICBwcml2YXRlIF91cGxvYWQoZmlsZXM6IEZpbGVbXSkge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXSBhcyBPYnNlcnZhYmxlPGFueT5bXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXSxcclxuICAgICAgICBpdGVtID0gdGhpcy5pdGVtcy5maW5kKGkgPT4gZmlsZS5uYW1lID09PSBpLmZpbGVOYW1lKTtcclxuICAgICAgLy8gZXhpc3RzXHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgLy8gaXMgY2hlY2tlZCBvdXRcclxuICAgICAgICBpZiAoaXRlbS5jaGVja2VkT3V0KSB7XHJcbiAgICAgICAgICAvLyBjaGVjayBpblxyXG4gICAgICAgICAgbGV0IG9ic2VydmFibGUgPSB0aGlzLl9tYWlsYm94LmNoZWNrSW4odGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLnZlcnNpb24sIGl0ZW0uaWQsIGZpbGUpLlxyXG4gICAgICAgICAgICBwaXBlKFxyXG4gICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzKGl0ZW0pLCBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH0pLCB0YXAoKGE6IEF0dGFjaG1lbnQgfCBmYWxzZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGEpIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uY2hlY2tlZE91dDtcclxuICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBpZFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyB0aGlzLml0ZW1zLm1hcChpID0+IGkuaWQpIDogYS5pZDtcclxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdGVtLCBhKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY2FuRWRpdChpdGVtKSkge1xyXG4gICAgICAgICAgLy8gZXhpc3RpbmcgaXRlbSwgb3ZlcnJpZGVcclxuICAgICAgICAgIGxldCBvYnNlcnZhYmxlID0gdGhpcy5fbWFpbGJveC51cGxvYWQodGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLmZvcm1JZCwgdGhpcy5fbW9kZWwudmVyc2lvbixcclxuICAgICAgICAgICAgZmlsZSwgeyBpc1ByaXZhdGU6IHRydWUgfSkuXHJcbiAgICAgICAgICAgIHBpcGUocmVwb3J0UHJvZ3Jlc3MoaXRlbSksIGNhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSksIHRhcCgoYTogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyB0aGlzLml0ZW1zLm1hcChpID0+IGkuaWQpIDogYS5pZDtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbSwgYSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAvKiBubyB0b2FzdCAqL1xyXG4gICAgICAgICAgICAgIHN3aXRjaE1hcChfID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVE9ETyBhZGQgcGVuZGluZ1xyXG4gICAgICAgIC8vdGhpcy5pdGVtcy5wdXNoKHRoaXMuX2NyZWF0ZUl0ZW0oYSkpO1xyXG4gICAgICAgIC8vIHVwbG9hZCBuZXdcclxuICAgICAgICBsZXQgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3gudXBsb2FkKHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC5mb3JtSWQsIHRoaXMuX21vZGVsLnZlcnNpb24sXHJcbiAgICAgICAgICBmaWxlLCB7IGlzUHJpdmF0ZTogdHJ1ZSB9KS5cclxuICAgICAgICAgIHBpcGUoLypUT0RPIHJlcG9ydFByb2dyZXNzKGl0ZW0pLCAqL2NhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgfSksIHRhcCgoYTogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLnB1c2goYSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHRoaXMuX2NyZWF0ZUl0ZW0oYSkpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IHRoaXMuaXRlbXMubWFwKGkgPT4gaS5pZCkgOiBhLmlkO1xyXG4gICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIC8qIG5vIHRvYXN0ICovXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChfID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIC8vIGZpbHRlciBub24gZmFsc2VcclxuICAgICAgY29uc3QgYXR0YWNobWVudHMgPSBlLmZpbHRlcihlID0+IGUpIGFzIEF0dGFjaG1lbnRbXTtcclxuICAgICAgLy8gYW55XHJcbiAgICAgIGF0dGFjaG1lbnRzLmxlbmd0aCAmJlxyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgYXR0YWNobWVudHMubGVuZ3RoID4gMSA/XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrZWRJbk4nLCBhdHRhY2htZW50cy5sZW5ndGgpIDpcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluJywgYXR0YWNobWVudHNbMF0uZmlsZU5hbWUpXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RyYWdEcm9wLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9wZW5kaW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvcGVuKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e2ljb259fTwvbWF0LWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtaDNcIj57e3BsYWNlaG9sZGVyfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSB7XG4gIEBmb3IgKGEgb2YgaXRlbXM7IHRyYWNrIGEpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1pdGVtXCJcbiAgICAgIFtjbGFzcy5kZWxldGVkXT1cImEuZGVsZXRlZFwiIFtjbGFzcy5mYWlsZWRdPVwiYS5mYWlsZWRcIlxuICAgICAgW3Byb2dyZXNzSW5kaWNhdG9yXT1cImEucHJvZ3Jlc3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgQGlmIChhLmlzSW1hZ2UpIHtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiYS51cmxcIiAoY2xpY2spPVwiYXByZXZpZXcoYSlcIiBoZWlnaHQ9XCI4MFwiPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYS5oYXNQcmV2aWV3ICYmICFhLmlzSW1hZ2UpIHtcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInUHJldmlldyd8dHJhbnNsYXRlXCIgKGNsaWNrKT1cImFwcmV2aWV3KGEpXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChhLmljb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBAY2FzZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJhLmljb25cIiBbaW5saW5lXT1cImZhbHNlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmZpbmRfaW5fcGFnZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFhLmhhc1ByZXZpZXcgJiYgYS5pY29uKSB7XG4gICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImEuaWNvblwiIFtpbmxpbmVdPVwiZmFsc2VcIj48L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW92ZXJsYXkgcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZW5hbWVcIj57e2EuZmlsZU5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1tZW51ICNtZW51PlxuICAgICAgICBAaWYgKCFhLmZhaWxlZCkge1xuICAgICAgICAgIEBpZiAoY2FuRWRpdChhKSAmJiAhYS5mYWlsZWQpIHtcbiAgICAgICAgICAgIEBpZiAoIWEuY2hlY2tlZE91dCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoZWNrT3V0KGEpXCI+e3tcIkNoZWNrT3V0XCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICBAaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvcGVuKClcIj57e1wiQWRkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGEuY2hlY2tlZE91dCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoZWNrSW4oYSlcIj57e1wiQ2hlY2tJblwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZChhKVwiPnt7XCJEb3dubG9hZFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICBAaWYgKGEuaGFzUHJldmlldykge1xuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhcHJldmlldyhhKVwiPjxtYXQtaWNvbj5sYW5kc2NhcGU8L21hdC1pY29uPiB7e1wiUHJldmlld1wiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChoYXNWZXJzaW9ucyhhKSkge1xuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICBAZm9yICh2IG9mIGdldFZlcnNpb25zKGEpOyB0cmFjayB2KSB7XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicHJldmlld09yRG93bmxvYWQodilcIj57e3YudGltZSB8ICBhbUNhbGVuZGFyfX08L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjYW5FZGl0KGEpKSB7XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGlzY2FyZChhKVwiPnt7XCJEaXNjYXJkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGEuZmFpbGVkKSB7XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjYW5jZWwoYSlcIj57e1wiQ2FuY2VsXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvZGl2PlxuICB9XG59XG48aW5wdXQgdHlwZT1cImZpbGVcIiAjaW5wdXRcbiAgW2FjY2VwdF09YWNjZXB0IFttdWx0aXBsZV09bXVsdGlwbGUgKGNoYW5nZSk9J19jaGFuZ2UoJGV2ZW50KScgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cbiJdfQ==
|
421
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvZmlsZS5pbnB1dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvZmlsZS5pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5SSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFTLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBbUIsY0FBYyxFQUFrQixjQUFjLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNbEgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFRaEcsTUFBTSxPQUNFLFNBQVM7YUFDQSxXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFJMUIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFD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QkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNjLE1BQU07c0JBQXpCLFNBQVM7dUJBQUMsT0FBTztnQkEySGxCLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXpDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZWhDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0N2QixLQUFLO3NCQUFqQixLQUFLO2dCQU9PLFdBQVc7c0JBQXZCLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFRZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCwgZmlyc3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRJbmZvIH0gZnJvbSAnLi4vaW5mby9hdHRhY2htZW50LWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRFeHRyYSwgRE9DVU1FTlRfTU9ERUwsIE1haWxib3hTZXJ2aWNlLCByZXBvcnRQcm9ncmVzcywgVXBsb2FkRXZlbnQgfSBmcm9tICcuLi9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50LCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IEVYVEVOVElPTl9JQ09OUyA9IHsgJ3hsc3gnOiAnZXhjZWwnLCAnZG9jeCc6ICd3b3JkJywgJ3BwdHgnOiAncG93ZXJwb2ludCcsICdwZGYnOiAncGRmJyB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdmaWxlLmlucHV0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydmaWxlLmlucHV0LnNjc3MnXSxcclxuICBob3N0OiB7IGNsYXNzOiAnZmlsZS1kcm9wYWJsZScgfSxcclxuICBzZWxlY3RvcjogJ2JpemRvYy1maWxlLXVwbG9hZCdcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgRmlsZUlucHV0IGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxudW1iZXIgfCBudW1iZXJbXT4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKSByZWFkb25seSBpZCA9IGB0eXBlLWZpbGUtdXBsb2FkLSR7RmlsZUlucHV0Lm5leHRJZCsrfWA7XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBnZXQgbXVsdGlwbGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBASW5wdXQoKSBhY2NlcHQgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGljb24gPSAncHVibGlzaCc7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBfaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgaXRlbXMgPSBbXSBhcyBBdHRhY2htZW50RXh0cmFbXTtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyIHwgbnVtYmVyW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ0Ryb3AgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmcgPSBuZXcgU3ViamVjdDxGaWxlW10+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kcm9wYWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBfYXR0YWNobWVudEluZm86IEF0dGFjaG1lbnRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgQEluamVjdChET0NVTUVOVF9NT0RFTCkgcHJpdmF0ZSBfbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT4sXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcbiAgaGFzVmVyc2lvbnMoaXRlbTogQXR0YWNobWVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmZpbGVOYW1lID09PSBpdGVtLmZpbGVOYW1lICYmIGEuaWQgIT09IGl0ZW0uaWQpICE9PSBudWxsO1xyXG4gIH1cclxuICBnZXRWZXJzaW9ucyhpdGVtOiBBdHRhY2htZW50KTogQXR0YWNobWVudFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5maWx0ZXIoYSA9PiBhLmZpbGVOYW1lID09PSBpdGVtLmZpbGVOYW1lICYmIGEuaWQgIT09IGl0ZW0uaWQpO1xyXG4gIH1cclxuICBhc3luYyBkb3dubG9hZChpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIGxvY2F0aW9uLmhyZWYgPSBhd2FpdCB0aGlzLl9tYWlsYm94LmZvcm1hdERvd25sb2FkVXJsKHRoaXMuX21vZGVsLCBpdGVtKTtcclxuICAgIChpdGVtIGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgcHJldmlld09yRG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBpZiAoQXR0YWNobWVudEluZm8uZXhpc3RzKGl0ZW0uY29udGVudFR5cGUpKVxyXG4gICAgICB0aGlzLmFwcmV2aWV3KGl0ZW0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmRvd25sb2FkKGl0ZW0pO1xyXG4gIH1cclxuICBjYW5FZGl0KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLl9tb2RlbC5jb21wbGV0ZWQgJiYgaXRlbS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQgJiYgIWl0ZW0uZGVsZXRlZDtcclxuICB9XHJcbiAgYXByZXZpZXcoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICB0aGlzLl9hdHRhY2htZW50SW5mby5wcmV2aWV3KHRoaXMuX21vZGVsLCBpdGVtLmlkKTtcclxuICB9XHJcbiAgY2FuY2VsKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgdGhpcy5fbW9kZWwuYXR0YWNobWVudHMucmVtb3ZlKGl0ZW0pO1xyXG4gIH1cclxuICBjaGVja0luKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgY29uc3QgYWNjZXB0ID0gaXRlbS5pc0ltYWdlID8gJ2ltYWdlLyonIDpcclxuICAgICAgJy4nICsgQXR0YWNobWVudEluZm8uZmlsZUV4dChpdGVtLmZpbGVOYW1lKSArICcsJyArIGl0ZW0uY29udGVudFR5cGU7XHJcbiAgICB0aGlzLl9wcm9tcHQoeyBtdWx0aXBsZTogZmFsc2UsIGFjY2VwdCB9KS50aGVuKGZpbGVzID0+IHtcclxuICAgICAgdGhpcy5fbWFpbGJveC5jaGVja0luKHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC52ZXJzaW9uLCBpdGVtLmlkLCBmaWxlc1swXSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGEgPT4ge1xyXG4gICAgICAgICAgICBkZWxldGUgaXRlbS5jaGVja2VkT3V0O1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIGEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMudmFsdWUgYXMgbnVtYmVyW10pLmluZGV4T2YoaXRlbS5pZCk7XHJcbiAgICAgICAgICAgICAgLy8gcmVwbGFjZSB2YWx1ZSB3aXRoIG5ldyBpZFxyXG4gICAgICAgICAgICAgICh0aGlzLnZhbHVlIGFzIG51bWJlcltdKS5zcGxpY2UoaW5kZXgsIDEsIGEuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gYS5pZDtcclxuICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QodGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluJywgaXRlbS5maWxlTmFtZSkpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4gdGhpcy5faGFuZGxlRXJyb3IoZSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgY2hlY2tPdXQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNoZWNrT3V0KHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC52ZXJzaW9uLCBpdGVtLmlkKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrZWRPdXQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWQoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBkaXNjYXJkKGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgY29uc3QgdGFzayA9ICgpID0+XHJcbiAgICAgIHRoaXMuX21haWxib3gucmVtb3ZlYXR0YWNobWVudCh0aGlzLl9tb2RlbC5pZCwgaXRlbS5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcclxuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IHRoaXMuaXRlbXMubGVuZ3RoID8gdGhpcy5pdGVtcy5tYXAoaSA9PiBpLmlkKSA6IG51bGwgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBhaXRlbSA9IHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIGFpdGVtLmRlbGV0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0sIGVycm9yOiBlID0+XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlKVxyXG4gICAgICB9KTtcclxuICAgIGlmICh0aGlzLl9tb2RlbC5kcmFmdClcclxuICAgICAgdGFzaygpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zYi5hc2soJ0RlbGV0ZUZpbGVBc2snLCAnRGVsZXRlRmlsZScsIHsgY29sb3I6ICd3YXJuJyB9KS5zdWJzY3JpYmUob2sgPT5cclxuICAgICAgICBvayAmJiB0YXNrKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9oYW5kbGVFcnJvcihyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDQwOTogLy8gdmVyc2lvbiBjaGFuZ2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVmVyc2lvbkVycicsIHRoaXMuX21vZGVsLm51bWJlcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgNDA2OiAvLyB2YWxpZGF0aW9uIGV4Y2VwdGlvblxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kcm9wYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX2RyYWdEcm9wLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgIGlmIChvaykgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWcnKTtcclxuICAgICAgZWxzZSBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZycpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyKSB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RyYWdGaWxlJyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmRyb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURvY3VtZW50RHJvcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIC8vIHRvIGFycmF5XHJcbiAgICBjb25zdCB7IGl0ZW1zIH0gPSBldmVudC5kYXRhVHJhbnNmZXI7XHJcbiAgICBjb25zdCBmaWxlcyA9IFtdIGFzIEZpbGVbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xyXG4gICAgICBmaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXBsb2FkKGZpbGVzKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVFbnRlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLl9kcmFnRHJvcC5uZXh0KHRydWUpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKHZhbDogbnVtYmVyIHwgbnVtYmVyW10pOiB2b2lkIHtcclxuICAgIGlmICghdmFsKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkpXHJcbiAgICAgIHRoaXMuaXRlbXMgPVxyXG4gICAgICAgIHZhbC5tYXAoaSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBhdHRhY2htZW50ID0gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmluZChhID0+IGEuaWQgPT09IGkpO1xyXG4gICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQgPyB0aGlzLl9jcmVhdGVJdGVtKGF0dGFjaG1lbnQpIDogbnVsbDtcclxuICAgICAgICB9KS5maWx0ZXIoYSA9PiBhKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgYXR0YWNobWVudCA9IHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSB2YWwpO1xyXG4gICAgICB0aGlzLml0ZW1zID0gYXR0YWNobWVudCA/IFt0aGlzLl9jcmVhdGVJdGVtKGF0dGFjaG1lbnQpXSA6IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWw7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogbnVtYmVyIHwgbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBudW1iZXIgfCBudW1iZXJbXSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuICBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBmb2N1c2VkOiBib29sZWFuO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLl92YWx1ZTsgfVxyXG4gIHNob3VsZExhYmVsRmxvYXQ6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXE6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgZXJyb3JTdGF0ZSA9IGZhbHNlO1xyXG4gIGNvbnRyb2xUeXBlPzogc3RyaW5nID0gJ2JpemRvYy1maWxlLXVwbG9hZCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuICBvbkNvbnRhaW5lckNsaWNrKCk6IHZvaWQge1xyXG4gIH1cclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5fcHJvbXB0KCkudGhlbihcclxuICAgICAgdGhpcy5fdXBsb2FkLmJpbmQodGhpcykpXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Byb21wdChvcHRpb25zPzogeyBtdWx0aXBsZTogYm9vbGVhbiwgYWNjZXB0Pzogc3RyaW5nIH0pOiBQcm9taXNlPEZpbGVbXT4ge1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuYWNjZXB0KVxyXG4gICAgICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUVsZW1lbnQuYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQ7XHJcbiAgICAgIGlmIChvcHRpb25zLm11bHRpcGxlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgdGhpcy5faW5wdXQubmF0aXZlRWxlbWVudC5tdWx0aXBsZSA9IG9wdGlvbnMubXVsdGlwbGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5fcGVuZGluZyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBfY2hhbmdlKGV2dDogSW5wdXRFdmVudCkge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgYXJyID0gW10gYXMgRmlsZVtdO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZmlsZSA9IGZpbGVzLml0ZW0oaSk7XHJcbiAgICAgIGFyci5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGVuZGluZy5uZXh0KGFycik7XHJcbiAgICB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGF0dGFjaG1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIF9jcmVhdGVJdGVtKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpIHtcclxuICAgIGNvbnN0IGZpbGVFeHQgPSBBdHRhY2htZW50SW5mby5maWxlRXh0KGF0dGFjaG1lbnQuZmlsZU5hbWUpLFxyXG4gICAgICBoYXNQcmV2aWV3ID0gQXR0YWNobWVudEluZm8uZXhpc3RzKGF0dGFjaG1lbnQuY29udGVudFR5cGUpLFxyXG4gICAgICBpc0ltYWdlID0gaGFzUHJldmlldyAmJiBBdHRhY2htZW50SW5mby5pc0ltYWdlKGF0dGFjaG1lbnQuY29udGVudFR5cGUpO1xyXG4gICAgY29uc3QgbmV3TW9kZWwgPSB7XHJcbiAgICAgIC4uLmF0dGFjaG1lbnQsXHJcbiAgICAgIGhhc1ByZXZpZXcsXHJcbiAgICAgIGlzSW1hZ2UsXHJcbiAgICAgIGZpbGVFeHQsXHJcbiAgICAgIGljb246IEVYVEVOVElPTl9JQ09OU1tmaWxlRXh0XSxcclxuICAgICAgY2hlY2tlZE91dDogYXR0YWNobWVudC5jaGVja2VkT3V0ICYmXHJcbiAgICAgICAgYXR0YWNobWVudC5ob2xkaW5nSWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWRcclxuICAgIH0gYXMgQXR0YWNobWVudEV4dHJhO1xyXG4gICAgaXNJbWFnZSAmJiBcclxuICAgICAgdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbCwgYXR0YWNobWVudCkudGhlbih1cmwgPT5cclxuICAgICAgICBuZXdNb2RlbC51cmwgPSB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcclxuICAgICAgICAgIHVybCkpO1xyXG4gICAgcmV0dXJuIG5ld01vZGVsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZmlsZXNcclxuICAgKi9cclxuICBwcml2YXRlIF91cGxvYWQoZmlsZXM6IEZpbGVbXSkge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXSBhcyBPYnNlcnZhYmxlPGFueT5bXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXSxcclxuICAgICAgICBpdGVtID0gdGhpcy5pdGVtcy5maW5kKGkgPT4gZmlsZS5uYW1lID09PSBpLmZpbGVOYW1lKTtcclxuICAgICAgLy8gZXhpc3RzXHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgLy8gaXMgY2hlY2tlZCBvdXRcclxuICAgICAgICBpZiAoaXRlbS5jaGVja2VkT3V0KSB7XHJcbiAgICAgICAgICAvLyBjaGVjayBpblxyXG4gICAgICAgICAgbGV0IG9ic2VydmFibGUgPSB0aGlzLl9tYWlsYm94LmNoZWNrSW4odGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLnZlcnNpb24sIGl0ZW0uaWQsIGZpbGUpLlxyXG4gICAgICAgICAgICBwaXBlKFxyXG4gICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzKGl0ZW0pLCBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH0pLCB0YXAoKGE6IEF0dGFjaG1lbnQgfCBmYWxzZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGEpIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uY2hlY2tlZE91dDtcclxuICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBpZFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyB0aGlzLml0ZW1zLm1hcChpID0+IGkuaWQpIDogYS5pZDtcclxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihpdGVtLCBhKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY2FuRWRpdChpdGVtKSkge1xyXG4gICAgICAgICAgLy8gZXhpc3RpbmcgaXRlbSwgb3ZlcnJpZGVcclxuICAgICAgICAgIGxldCBvYnNlcnZhYmxlID0gdGhpcy5fbWFpbGJveC51cGxvYWQodGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLmZvcm1JZCwgdGhpcy5fbW9kZWwudmVyc2lvbixcclxuICAgICAgICAgICAgZmlsZSwgeyBpc1ByaXZhdGU6IHRydWUgfSkuXHJcbiAgICAgICAgICAgIHBpcGUocmVwb3J0UHJvZ3Jlc3MoaXRlbSksIGNhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSksIHRhcCgoYTogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyB0aGlzLml0ZW1zLm1hcChpID0+IGkuaWQpIDogYS5pZDtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbSwgYSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAvKiBubyB0b2FzdCAqL1xyXG4gICAgICAgICAgICAgIHN3aXRjaE1hcChfID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVE9ETyBhZGQgcGVuZGluZ1xyXG4gICAgICAgIC8vdGhpcy5pdGVtcy5wdXNoKHRoaXMuX2NyZWF0ZUl0ZW0oYSkpO1xyXG4gICAgICAgIC8vIHVwbG9hZCBuZXdcclxuICAgICAgICBsZXQgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3gudXBsb2FkKHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC5mb3JtSWQsIHRoaXMuX21vZGVsLnZlcnNpb24sXHJcbiAgICAgICAgICBmaWxlLCB7IGlzUHJpdmF0ZTogdHJ1ZSB9KS5cclxuICAgICAgICAgIHBpcGUoLypUT0RPIHJlcG9ydFByb2dyZXNzKGl0ZW0pLCAqL2NhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgfSksIHRhcCgoYTogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLnB1c2goYSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHRoaXMuX2NyZWF0ZUl0ZW0oYSkpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IHRoaXMuaXRlbXMubWFwKGkgPT4gaS5pZCkgOiBhLmlkO1xyXG4gICAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIC8qIG5vIHRvYXN0ICovXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChfID0+IG9mKGZhbHNlKSkpO1xyXG4gICAgICAgIG9ic2VydmFibGVzLnB1c2gob2JzZXJ2YWJsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIC8vIGZpbHRlciBub24gZmFsc2VcclxuICAgICAgY29uc3QgYXR0YWNobWVudHMgPSBlLmZpbHRlcihlID0+IGUpIGFzIEF0dGFjaG1lbnRbXTtcclxuICAgICAgLy8gYW55XHJcbiAgICAgIGF0dGFjaG1lbnRzLmxlbmd0aCAmJlxyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgYXR0YWNobWVudHMubGVuZ3RoID4gMSA/XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrZWRJbk4nLCBhdHRhY2htZW50cy5sZW5ndGgpIDpcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluJywgYXR0YWNobWVudHNbMF0uZmlsZU5hbWUpXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RyYWdEcm9wLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9wZW5kaW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvcGVuKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e2ljb259fTwvbWF0LWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtaDNcIj57e3BsYWNlaG9sZGVyfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxufSBAZWxzZSB7XG4gIEBmb3IgKGEgb2YgaXRlbXM7IHRyYWNrIGEpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1pdGVtXCJcbiAgICAgIFtjbGFzcy5kZWxldGVkXT1cImEuZGVsZXRlZFwiIFtjbGFzcy5mYWlsZWRdPVwiYS5mYWlsZWRcIlxuICAgICAgW3Byb2dyZXNzSW5kaWNhdG9yXT1cImEucHJvZ3Jlc3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgQGlmIChhLmlzSW1hZ2UpIHtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiYS51cmxcIiAoY2xpY2spPVwiYXByZXZpZXcoYSlcIiBoZWlnaHQ9XCI4MFwiPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYS5oYXNQcmV2aWV3ICYmICFhLmlzSW1hZ2UpIHtcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInUHJldmlldyd8dHJhbnNsYXRlXCIgKGNsaWNrKT1cImFwcmV2aWV3KGEpXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChhLmljb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBAY2FzZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJhLmljb25cIiBbaW5saW5lXT1cImZhbHNlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmZpbmRfaW5fcGFnZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFhLmhhc1ByZXZpZXcgJiYgYS5pY29uKSB7XG4gICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImEuaWNvblwiIFtpbmxpbmVdPVwiZmFsc2VcIj48L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW92ZXJsYXkgcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZW5hbWVcIj57e2EuZmlsZU5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1tZW51ICNtZW51PlxuICAgICAgICBAaWYgKCFhLmZhaWxlZCkge1xuICAgICAgICAgIEBpZiAoY2FuRWRpdChhKSAmJiAhYS5mYWlsZWQpIHtcbiAgICAgICAgICAgIEBpZiAoIWEuY2hlY2tlZE91dCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoZWNrT3V0KGEpXCI+e3tcIkNoZWNrT3V0XCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICBAaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvcGVuKClcIj57e1wiQWRkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGEuY2hlY2tlZE91dCkge1xuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoZWNrSW4oYSlcIj57e1wiQ2hlY2tJblwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZChhKVwiPnt7XCJEb3dubG9hZFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICBAaWYgKGEuaGFzUHJldmlldykge1xuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhcHJldmlldyhhKVwiPjxtYXQtaWNvbj5sYW5kc2NhcGU8L21hdC1pY29uPiB7e1wiUHJldmlld1wiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChoYXNWZXJzaW9ucyhhKSkge1xuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgICBAZm9yICh2IG9mIGdldFZlcnNpb25zKGEpOyB0cmFjayB2KSB7XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicHJldmlld09yRG93bmxvYWQodilcIj57e3YudGltZSB8ICBhbUNhbGVuZGFyfX08L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjYW5FZGl0KGEpKSB7XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGlzY2FyZChhKVwiPnt7XCJEaXNjYXJkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGEuZmFpbGVkKSB7XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjYW5jZWwoYSlcIj57e1wiQ2FuY2VsXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvZGl2PlxuICB9XG59XG48aW5wdXQgdHlwZT1cImZpbGVcIiAjaW5wdXRcbiAgW2FjY2VwdF09YWNjZXB0IFttdWx0aXBsZV09bXVsdGlwbGUgKGNoYW5nZSk9J19jaGFuZ2UoJGV2ZW50KScgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cbiJdfQ==
|
@@ -37,9 +37,9 @@ export class MailboxService {
|
|
37
37
|
folder.count++;
|
38
38
|
});
|
39
39
|
}
|
40
|
-
formatDownloadUrl(
|
41
|
-
let url = `/api/attachments/${documentId}/${
|
42
|
-
const token = this._auth.
|
40
|
+
async formatDownloadUrl(document, file) {
|
41
|
+
let url = `/api/attachments/${document.documentId}/${file.id}`;
|
42
|
+
const token = await this._auth.getAuthToken();
|
43
43
|
if (token)
|
44
44
|
url +=
|
45
45
|
`?access_token=${token}`;
|
@@ -436,4 +436,4 @@ export function reportProgress(attachment) {
|
|
436
436
|
}
|
437
437
|
export class PositionError {
|
438
438
|
}
|
439
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLGFBQWEsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFILE9BQU8sRUFBRSxVQUFVLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFxQixPQUFPLENBQUMsQ0FBQztBQVM5RSxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFvQixRQUF3QixFQUNsQyxLQUF5QixFQUNqQyxTQUFxQixFQUNiLEtBQWlCO1FBSFAsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFFekIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVJWLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUM5QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsRCxNQUFNO1FBQ1UsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUF3WHZEOztXQUVHO1FBQ0ssVUFBSyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ2xF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Q0FBZ0M7QUFDaEMsOEJBQThCO0FBQzlCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsUUFBUTtBQUNSLEtBQUs7QUFDTCxHQUFHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxPQUFPLElBQUksQ0FBQztDQUN6QjtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsVUFBMkI7SUFDeEQsT0FBTyxDQUFDLE1BQThCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsZUFBZTtnQkFDZix1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsZ0JBQWdCO2dCQUNoQixzQ0FBc0M7Z0JBQ3RDLG9DQUFvQztnQkFDcEMsT0FBTztnQkFDUCw2Q0FBNkM7Z0JBQzdDLDJDQUEyQztnQkFDM0MsNkJBQTZCO2dCQUM3QiwyQ0FBMkM7Z0JBQzNDLDBCQUEwQjtnQkFDMUIsS0FBSztnQkFDTCxRQUFRO2dCQUNSLDZEQUE2RDtnQkFDN0QsdUJBQXVCO2dCQUN2QixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjtnQkFDekIsa0NBQWtDO2dCQUNsQyxPQUFPO2dCQUNQLFdBQVc7Z0JBQ1gsR0FBRztnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFckIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1lbnQsIFVzZXJJbmZvLCBSZWNpcGllbnRNb2RlbCwgQXR0YWNobWVudCwgU2NoZWR1bGVkRXZlbnQsIEhlYWRlck1vZGVsLCBEb2N1bWVudE1vZGVsLCBWb3RlLCBDb21tZW50VmVyc2lvbiwgQ2hhaW4gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzQXJyYXkgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25JbXBsIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50SWQ6IG51bWJlciwgZmlsZUlkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7ZG9jdW1lbnRJZH0vJHtmaWxlSWR9YDtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5fYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKVxyXG4gICAgICB1cmwgKz1cclxuICAgICAgICBgP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyAgb2JzZXJ2ZS5uZXh0KG5ldyBVcGxvYWRFdmVudChcclxuICAgICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkudG90YWxcclxuICAgICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICAvL3JlcS5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZTogRmlsZSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50W10+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZSB8IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50IHwgQXR0YWNobWVudFtdPiB7XHJcbiAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgZWxzZSBmZC5hcHBlbmQoZmlsZXMubmFtZSwgZmlsZXMpO1xyXG4gICAgLy9jb25zdCBieXRlc1BlckNodW5rID0gMjAgKiAxMDI0ICogMTAyNDtcclxuICAgIC8vIGFxdWlyZSB0aGUgbG9jYXRpb24gcHJpb3IgdG8gc2VuZGluZyB0aGUgcmVxdWVzdFxyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm1JZCkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7cmVjaXBpZW50SWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaXNQcml2YXRlKSB1cmwgKz0gJyZpc3ByaXZhdGU9dHJ1ZSdcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXJsLCBmZCwge1xyXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgICAgLy9jb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoaXNBcnJheShmaWxlcykgPyBtb2RlbCA6IG1vZGVsWzBdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JhcDxUPihmb3JtOiBzdHJpbmcsIHByb2plY3Q6ICh2YWx1ZTogQ29vcmRzLCBpbmRleDogbnVtYmVyKSA9PiBPYnNlcnZhYmxlSW5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocHJvamVjdCksIHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNyZWF0ZTxUID0gYW55Pihmb3JtOiBzdHJpbmcsIG1vZGVsPzogVCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vICByZXR1cm4gdGhpcy5fd3JhcChmb3JtLCBwID0+XHJcbiAgICAvLyAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgLy8gICAgICBwYXJhbXM6IHtcclxuICAgIC8vICAgICAgICBmb3JtLFxyXG4gICAgLy8gICAgICAgIC4uLnBcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgfSkpXHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocCA9PlxyXG4gICAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fc3luYzxUPigpKTtcclxuICB9XHJcbiAgZ2V0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHJlYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9YCkucGlwZShcclxuICAgICAgdGFwKChtOiBSZWNpcGllbnRNb2RlbCkgPT5cclxuICAgICAgICByZWFkID09PSBmYWxzZSAmJiBtLnJlYWQgPT09IHRydWUgJiZcclxuICAgICAgICB0aGlzLl91cGRhdGV1bnJlYWRjb3VudGVyKG0ucmVjZWl2ZWQsIG0uZm9sZGVySWQsIC0xKVxyXG4gICAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRldW5yZWFkY291bnRlcihkYXRlOiBEYXRlLCBmb2xkZXJJZDogc3RyaW5nLCB2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKFxyXG4gICAgICAvLyBkYXRlIGlzIGFib3ZlIHdhdGVybWFya1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3IDwgZGF0ZVxyXG4gICAgKVxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCArPSB2YWw7XHJcbiAgICAvLyBkZWNyZWFzZVxyXG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuXHJcbiAgICAgIGZpbmQoZiA9PiBmLm5hbWUgPT09IGZvbGRlcklkKTtcclxuICAgIGZvbGRlci5jb3VudCA9IE1hdGgubWF4KDAsIGZvbGRlci5jb3VudCArIHZhbCk7XHJcbiAgfVxyXG5cclxuICBzYXZlPFQgPSBhbnk+KGlkOiBudW1iZXIsIGZvcm06IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBtb2RlbDoge30sIGZpbGVzPzogRmlsZVtdIHwgRmlsZUxpc3QpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICAvL2NvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAvL2NvbnN0IG1vZGVsQmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShtb2RlbCldLCB7XHJcbiAgICAvLyAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgLy99KTtcclxuICAgIC8vZmQuYXBwZW5kKCdmb3JtLWRhdGEnLCBtb2RlbEJsb2IpO1xyXG4gICAgLy9pZiAoZmlsZXMpIHtcclxuICAgIC8vICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgLy8gICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgLy8gIGVsc2UgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICAgbGV0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xyXG4gICAgLy8gICAgZmQuYXBwZW5kKGZpbGUubmFtZSwgZmlsZSk7XHJcbiAgICAvLyAgfVxyXG4gICAgLy99XHJcbiAgICAvLyAgcmV0dXJuIHRoaXMuX3dpdGhHZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT4ge1xyXG4gICAgLy8gICAgbGV0IHVybCA9IGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgIC8vICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAvLyAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BVVCcsIHVybCwgZmQsIHtcclxuICAgIC8vICAgIH0pO1xyXG4gICAgLy8gICAgcmV0dXJuIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnBpcGUobWFwKGV2ZW50ID0+IHtcclxuICAgIC8vICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAvLyAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIG1vZGVsO1xyXG4gICAgLy8gICAgICB9XHJcbiAgICAvLyAgICAgIGVsc2VcclxuICAgIC8vICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgLy8gICAgfSkpXHJcbiAgICAvLyAgfSksIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAocGFyYW1zID0+IHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHBvc3Q8VCA9IGFueT4oZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl93cmFwKGZvcm0sIHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZ286IHRydWUsXHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBzdWJtaXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsPzogYW55KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn0mZ289dHJ1ZWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSxcclxuICAgICAgdGFwKCgpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICApLFxyXG4gICAgICB0aGlzLl9zeW5jPFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldCBnZW8gbG9jYXRpb24sIGRlcGVuZGluZyBvbiBmb3JtIHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXAgZmxhZ3MgaW4gc3luYy5cclxuICAgKi9cclxuICBwcml2YXRlIF9zeW5jID0gPFQ+KCkgPT4gKG9ic2VydmU6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+KSA9PiB7XHJcbiAgICByZXR1cm4gb2JzZXJ2ZS5waXBlKHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1FeHRyYSB7XHJcbiAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgbG9hZGVkPzogYm9vbGVhbjtcclxuICB3b3JraW5nPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRFeHRyYSBleHRlbmRzIEF0dGFjaG1lbnQge1xyXG4gIHVybD86IFNhZmVVcmw7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBmaWxlRXh0Pzogc3RyaW5nO1xyXG4gIGlzSW1hZ2U/OiBib29sZWFuO1xyXG4gIHByb2dyZXNzPzogbnVtYmVyO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgZmFpbGVkPzogYm9vbGVhbjtcclxuICBoYXNQcmV2aWV3PzogYm9vbGVhbjtcclxufVxyXG5mdW5jdGlvbiBpc0h0dHBSZXNwb25zZTxUPihldmVudDogSHR0cEV2ZW50PFQ+KTogZXZlbnQgaXMgSHR0cFJlc3BvbnNlPFQ+IHtcclxuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc0h0dHBQcm9ncmVzc0V2ZW50KFxyXG4gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuKTogZXZlbnQgaXMgSHR0cFByb2dyZXNzRXZlbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MgfHxcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3NcclxuICApXHJcbn1cclxuLy9mdW5jdGlvbiBjYWxjdWxhdGVTdGF0ZSh1cGxvYWQ6IFVwbG9hZEV2ZW50LCBldmVudDogSHR0cEV2ZW50PHVua25vd24+KSB7XHJcbi8vICBpZiAoaXNIdHRwUHJvZ3Jlc3NFdmVudChldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXHJcbi8vICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuLy8gICAgICAgIDogdXBsb2FkLnByb2dyZXNzLFxyXG4vLyAgICAgIHN0YXRlOiAncHJvZ3Jlc3MnLFxyXG4vLyAgICB9KTtcclxuLy8gIH1cclxuLy8gIGlmIChpc0h0dHBSZXNwb25zZShldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IDEwMCxcclxuLy8gICAgICBzdGF0ZTogJ2RvbmUnLFxyXG4vLyAgICB9KVxyXG4vLyAgfVxyXG4vL31cclxuZXhwb3J0IGNsYXNzIFVwbG9hZEV2ZW50IHtcclxuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIHByb2dyZXNzOiBudW1iZXI7XHJcbiAgLy8gYnl0ZXNcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHN0YXRlOiAncGVuZGluZycgfCAncHJvZ3Jlc3MnIHwgJ2RvbmUnO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0UHJvZ3Jlc3MoYXR0YWNobWVudDogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8QXR0YWNobWVudD4pID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgc291cmNlLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAgIC8vaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgIC8vICApKTtcclxuICAgICAgICAvL30gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAvLyAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAvLyAgfVxyXG4gICAgICAgIC8vICBlbHNlXHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gIE9iamVjdC5hc3NpZ24oaXRlbSwge1xyXG4gICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgLy8gIHJldHVybjtcclxuICAgICAgICAvL31cclxuICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgfSwgZXJyb3I6IGUgPT4gb2JzZXJ2ZS5lcnJvcihlKVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgQ29vcmRzIHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfSBcclxuIl19
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGJveC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21haWxib3guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLGFBQWEsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFILE9BQU8sRUFBRSxVQUFVLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFxQixPQUFPLENBQUMsQ0FBQztBQVM5RSxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFvQixRQUF3QixFQUNsQyxLQUF5QixFQUNqQyxTQUFxQixFQUNiLEtBQWlCO1FBSFAsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFFekIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVJWLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztRQUM5QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNsRCxNQUFNO1FBQ1UsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUF3WHZEOztXQUVHO1FBQ0ssVUFBSyxHQUFHLEdBQU0sRUFBRSxDQUFDLENBQUMsT0FBc0MsRUFBRSxFQUFFO1lBQ2xF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QiwwQkFBMEI7QUFDMUIsU0FBUztBQUNULEtBQUs7QUFDTCxnQ0FBZ0M7QUFDaEMsOEJBQThCO0FBQzlCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsUUFBUTtBQUNSLEtBQUs7QUFDTCxHQUFHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxPQUFPLElBQUksQ0FBQztDQUN6QjtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsVUFBMkI7SUFDeEQsT0FBTyxDQUFDLE1BQThCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsZUFBZTtnQkFDZix1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsZ0JBQWdCO2dCQUNoQixzQ0FBc0M7Z0JBQ3RDLG9DQUFvQztnQkFDcEMsT0FBTztnQkFDUCw2Q0FBNkM7Z0JBQzdDLDJDQUEyQztnQkFDM0MsNkJBQTZCO2dCQUM3QiwyQ0FBMkM7Z0JBQzNDLDBCQUEwQjtnQkFDMUIsS0FBSztnQkFDTCxRQUFRO2dCQUNSLDZEQUE2RDtnQkFDN0QsdUJBQXVCO2dCQUN2QixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjtnQkFDekIsa0NBQWtDO2dCQUNsQyxPQUFPO2dCQUNQLFdBQVc7Z0JBQ1gsR0FBRztnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFckIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUNELE1BQU0sT0FBTyxhQUFhO0NBTXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUHJvZ3Jlc3NFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1lbnQsIFVzZXJJbmZvLCBSZWNpcGllbnRNb2RlbCwgQXR0YWNobWVudCwgU2NoZWR1bGVkRXZlbnQsIEhlYWRlck1vZGVsLCBEb2N1bWVudE1vZGVsLCBWb3RlLCBDb21tZW50VmVyc2lvbiwgQ2hhaW4gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzQXJyYXkgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25JbXBsIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgRE9DVU1FTlRfTU9ERUwgPSBuZXcgSW5qZWN0aW9uVG9rZW48RG9jdW1lbnRNb2RlbDxhbnk+PignbW9kZWwnKTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAncmVjZW50JyB8ICd1bnJlYWQnIHwgJ2ZsYWdnZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VFdmVudDxUPiB7XHJcbiAgbW9kZWw6IFJlY2lwaWVudE1vZGVsPFQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWFpbGJveFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZSQgPSBuZXcgU3ViamVjdDxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlbGV0ZSQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgLyoqICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZWQgPSB0aGlzLl9jaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVkID0gdGhpcy5fZGVsZXRlJC5hc09ic2VydmFibGUoKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dGg6IEF1dGhlbnRpY2F0aW9uSW1wbCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIG1lc3NhZ2luZy5uZXckLlxyXG4gICAgICBzdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgaWYgKG0udXNlcklkICE9PSBfc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgIF9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCsrO1xyXG4gICAgICAgIGNvbnN0IGZvbGRlciA9IF9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSBtLm1vZGVsLmZvbGRlcklkKTtcclxuICAgICAgICBmb2xkZXIuY291bnQrKztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIGZvcm1hdERvd25sb2FkVXJsKGRvY3VtZW50OiBEb2N1bWVudE1vZGVsLCBmaWxlOiBBdHRhY2htZW50KTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGxldCB1cmwgPSBgL2FwaS9hdHRhY2htZW50cy8ke2RvY3VtZW50LmRvY3VtZW50SWR9LyR7ZmlsZS5pZH1gO1xyXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLl9hdXRoLmdldEF1dGhUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKVxyXG4gICAgICB1cmwgKz1cclxuICAgICAgICBgP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICBkb3dubG9hZChkb2N1bWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgIC8vICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgLy8gIHJldHVybiB7XHJcbiAgICAvLyAgICB1bnN1YnNjcmliZSgpIHsgfVxyXG4gICAgLy8gIH1cclxuICAgIC8vfSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvYXR0YWNobWVudHMvJHtkb2N1bWVudElkfS8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW1vdmVhdHRhY2htZW50KHJlY2lwaWVudElkOiBudW1iZXIsIGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2ZpbGVJZH1gKTtcclxuICB9XHJcbiAgcmVhZChpZDogbnVtYmVyLCByZWFkOiBib29sZWFuLCBmb2xkZXJJZD86IHN0cmluZywgcmVjZWl2ZWQ/OiBEYXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9tYWlsYm94L3JlYWQvJHtpZH1gLCB1bmRlZmluZWQsIHsgcGFyYW1zOiB7IHJlYWQgfSBhcyBhbnkgfSkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgZm9sZGVySWQgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIHJlYWQgPyAxIDogLTEpXHJcbiAgICApKTtcclxuICB9XHJcbiAgY29tbWVudHMoaWQ6IG51bWJlciwgYmVmb3JlOiBEYXRlKTogT2JzZXJ2YWJsZTxDb21tZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDb21tZW50W10+KGAvYXBpL2NvbW1lbnRzLyR7aWR9YCwgeyBwYXJhbXM6IHsgYmVmb3JlOiBuZXcgRGF0ZShiZWZvcmUpLnRvSlNPTigpIH0gfSk7XHJcbiAgfVxyXG4gIHRhZ3MoaWQ6IG51bWJlciwgdGFnczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvdGFnLyR7aWR9YCwgeyB0YWdzIH0pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHsgaWQsIHRhZ3MgfSBhcyBhbnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZG9jdW1lbnRJZFxyXG4gICAqIEBwYXJhbSBzdGF0ZUlkXHJcbiAgICogQHBhcmFtIHVzZXJJZCBzdWJzdGl0dXRlXHJcbiAgICovXHJcbiAgY2hhbmdlU3RhdGUoZG9jdW1lbnRJZDogbnVtYmVyLCBzdGF0ZUlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9jaGFuZ2VzdGF0ZS8ke2RvY3VtZW50SWR9YCwgeyBzdGF0ZUlkLCB1c2VySWQgfSk7XHJcbiAgfVxyXG4gIG1vdmUoaWQ6IG51bWJlciwgZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9tb3ZlLyR7aWR9P2ZvbGRlcklkPSR7Zm9sZGVySWR9YCwge30pLnBpcGUodGFwKCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhbmdlJC5uZXh0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBmb2xkZXJJZFxyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNoZWNrT3V0KHJlY2lwaWVudElkOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgYXR0YWNobWVudElkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxBdHRhY2htZW50PihgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tvdXRgLCBudWxsLCB7IHBhcmFtczogeyB2ZXJzaW9uIH0gfSk7XHJcbiAgfVxyXG4gIGNoZWNrSW4ocmVjaXBpZW50SWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBhdHRhY2htZW50SWQ6IG51bWJlciwgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8QXR0YWNobWVudD4ge1xyXG4gICAgY29uc3QgZmQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZkLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQVVQnLFxyXG4gICAgICBgL2FwaS9hdHRhY2htZW50cy8ke3JlY2lwaWVudElkfS8ke2F0dGFjaG1lbnRJZH0vY2hlY2tpbj92ZXJzaW9uPSR7dmVyc2lvbn1gLCBmZCwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBpbml0aWFsU3RhdGU6IFVwbG9hZEV2ZW50ID0geyBzdGF0ZTogJ1BFTkRJTkcnLCBwcm9ncmVzczogMCB9XHJcbiAgICAvL2NvbnN0IGNhbGN1bGF0ZVN0YXRlID0gKFxyXG4gICAgLy8gIHVwbG9hZDogVXBsb2FkRXZlbnQsXHJcbiAgICAvLyAgZXZlbnQ6IEh0dHBFdmVudDx1bmtub3duPlxyXG4gICAgLy8pOiBVcGxvYWRFdmVudCA9PiB7XHJcbiAgICAvLyAgLy8gaW1wbGVtZW50YXRpb25cclxuICAgIC8vfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogZXZlbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAvLyAgb2JzZXJ2ZS5uZXh0KG5ldyBVcGxvYWRFdmVudChcclxuICAgICAgICAgICAgLy8gICAgZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkudG90YWxcclxuICAgICAgICAgICAgLy8gICkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBldmVudCBhcyBIdHRwUmVzcG9uc2U8YW55PjtcclxuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gcmVzLmJvZHkgYXMgQXR0YWNobWVudDtcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQobW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKHsgc3RhdHVzOiByZXMuc3RhdHVzLCBlcnJvcjogcmVzLmJvZHkgfSk7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICAgICAgICAvL3JlcS5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZTogRmlsZSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PjtcclxuICB1cGxvYWQocmVjaXBpZW50SWQ6IG51bWJlciwgZm9ybUlkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlciwgZmlsZXM6IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50W10+O1xyXG4gIHVwbG9hZChyZWNpcGllbnRJZDogbnVtYmVyLCBmb3JtSWQ6IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBmaWxlczogRmlsZSB8IEZpbGVbXSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50IHwgQXR0YWNobWVudFtdPiB7XHJcbiAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgaWYgKGlzQXJyYXkoZmlsZXMpKSBmaWxlcy5mb3JFYWNoKGYgPT5cclxuICAgICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgZWxzZSBmZC5hcHBlbmQoZmlsZXMubmFtZSwgZmlsZXMpO1xyXG4gICAgLy9jb25zdCBieXRlc1BlckNodW5rID0gMjAgKiAxMDI0ICogMTAyNDtcclxuICAgIC8vIGFxdWlyZSB0aGUgbG9jYXRpb24gcHJpb3IgdG8gc2VuZGluZyB0aGUgcmVxdWVzdFxyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm1JZCkucGlwZShzd2l0Y2hNYXAocGFyYW1zID0+XHJcbiAgICAgIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAvYXBpL2F0dGFjaG1lbnRzLyR7cmVjaXBpZW50SWR9P3ZlcnNpb249JHt2ZXJzaW9ufWA7XHJcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKHAgPT4gdXJsICs9IGAmJHtwfT0ke3BhcmFtc1twXX1gKTtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaXNQcml2YXRlKSB1cmwgKz0gJyZpc3ByaXZhdGU9dHJ1ZSdcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXJsLCBmZCwge1xyXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHByb2dyZXNzIGV2ZW50LiBDb21wdXRlIGFuZCBzaG93IHRoZSAlIGRvbmU6XHJcbiAgICAgICAgICAgICAgLy9jb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coYEZpbGUgaXMgJHtwZXJjZW50RG9uZX0lIHVwbG9hZGVkLmApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByZXMuYm9keSBhcyBBdHRhY2htZW50W107XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoaXNBcnJheShmaWxlcykgPyBtb2RlbCA6IG1vZGVsWzBdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLmVycm9yKGUpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0cmlldmUgc2VuZGVyc1xyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgc2VuZGVycyhuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxVc2VySW5mb1tdPignL2FwaS9tYWlsYm94L3NlbmRlcnMvJywge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmbGFnKGlkOiBudW1iZXIsIGZsYWc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL21haWxib3gvZmxhZy8ke2lkfT9mbGFnPSR7ZmxhZ31gLCBudWxsKS5waXBlKHRhcCgoKSA9PiB0aGlzLl9jaGFuZ2UkLm5leHQoeyBpZCwgZmxhZyB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdmlld2VkY29tbWVudHMoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8eyB0aW1lOiBEYXRlIH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRpbWU6IERhdGUgfT4oYC9hcGkvY29tbWVudHMvdmlld2VkLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKHRhcCgoZTogeyB0aW1lOiBEYXRlIH0pID0+IHRoaXMuX2NoYW5nZSQubmV4dCh7IGlkLCB2aWV3ZWQ6IGUudGltZSB9IGFzIGFueSkpKTtcclxuICB9XHJcbiAgdHlwaW5nKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2NvbW1lbnRzL3R5cGluZy8ke2lkfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSk7XHJcbiAgfVxyXG4gIGVkaXRpbmcoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvbWFpbGJveC9lZGl0aW5nLyR7aWR9YCwge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KTtcclxuICB9XHJcbiAgY29weShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KGAvYXBpL21haWxib3gvY29weS8ke2lkfWAsIHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIGRvY3VtZW50IGlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBjb21tZW50KGlkOiBudW1iZXIsIG9wdGlvbnM6IHtcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBpbWFnZT86IHN0cmluZyxcclxuICAgIHBhcmVudElkPzogbnVtYmVyXHJcbiAgfSk6IE9ic2VydmFibGU8Q29tbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxDb21tZW50PihgL2FwaS9jb21tZW50cy8ke2lkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjb21tZW50dXBkYXRlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCBvcHRpb25zOiB7XHJcbiAgICB0ZXh0Pzogc3RyaW5nLFxyXG4gICAgaW1hZ2U/OiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICB9KTogT2JzZXJ2YWJsZTxDb21tZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8Q29tbWVudD4oYC9hcGkvY29tbWVudHMvZWRpdC8ke2lkfS8ke2NvbW1lbnRJZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgaW5mbzxUID0gYW55Pihkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsYm94L2luZm8vJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB0aW1lbGluZShkb2N1bWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYWluPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q2hhaW4+KGAvYXBpL21haWxib3gvdGltZWxpbmUvJHtkb2N1bWVudElkfWApO1xyXG4gIH1cclxuICB2b3RlKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoYC9hcGkvY29tbWVudHMvdm90ZS8ke2lkfS8ke2NvbW1lbnRJZH1gLCB7fSwgeyBwYXJhbXM6IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9KTtcclxuICB9XHJcbiAgdm90ZXMoaWQ6IG51bWJlciwgY29tbWVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFZvdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFZvdGVbXT4oYC9hcGkvY29tbWVudHMvdm90ZXMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGVkaXRzKGlkOiBudW1iZXIsIGNvbW1lbnRJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21tZW50VmVyc2lvbltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q29tbWVudFZlcnNpb25bXT4oYC9hcGkvY29tbWVudHMvZWRpdHMvJHtpZH0vJHtjb21tZW50SWR9YCk7XHJcbiAgfVxyXG4gIGZpbmRBbGwoZmlsdGVyOiB7IHR5cGU/OiBGaWx0ZXJUeXBlOyBjb250YWlucz86IHN0cmluZzsgc3RhdGU/OiBzdHJpbmc7IGZvcm0/OiBzdHJpbmc7IGZvbGRlcklkPzogc3RyaW5nOyBzZW5kZXJJZD86IHN0cmluZzsgfSxcclxuICAgIG9wdGlvbnM/OiB7IHNraXA/OiBudW1iZXI7IHRha2U/OiBudW1iZXI7IG9yZGVyQnk/OiAndmFsdWUnIHwgJ3ZpZXdlZCcgfCAnZGF0ZScgfSk6IE9ic2VydmFibGU8SGVhZGVyTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7IC4uLmZpbHRlciwgLi4ub3B0aW9ucyB9O1xyXG4gICAgY2xlYW51cChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEhlYWRlck1vZGVsW10+KCcvYXBpL21haWwnLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JhcDxUPihmb3JtOiBzdHJpbmcsIHByb2plY3Q6ICh2YWx1ZTogQ29vcmRzLCBpbmRleDogbnVtYmVyKSA9PiBPYnNlcnZhYmxlSW5wdXQ8UmVjaXBpZW50TW9kZWw8VD4+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocHJvamVjdCksIHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIGNyZWF0ZTxUID0gYW55Pihmb3JtOiBzdHJpbmcsIG1vZGVsPzogVCk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIC8vICByZXR1cm4gdGhpcy5fd3JhcChmb3JtLCBwID0+XHJcbiAgICAvLyAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgLy8gICAgICBwYXJhbXM6IHtcclxuICAgIC8vICAgICAgICBmb3JtLFxyXG4gICAgLy8gICAgICAgIC4uLnBcclxuICAgIC8vICAgICAgfVxyXG4gICAgLy8gICAgfSkpXHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShzd2l0Y2hNYXAocCA9PlxyXG4gICAgICB0aGlzLl9odHRwLnBvc3Q8UmVjaXBpZW50TW9kZWw8VD4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZm9ybSxcclxuICAgICAgICAgIC4uLnBcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgdGhpcy5fc3luYzxUPigpKTtcclxuICB9XHJcbiAgZ2V0PFQgPSBhbnk+KGlkOiBudW1iZXIsIHJlYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9YCkucGlwZShcclxuICAgICAgdGFwKChtOiBSZWNpcGllbnRNb2RlbCkgPT5cclxuICAgICAgICByZWFkID09PSBmYWxzZSAmJiBtLnJlYWQgPT09IHRydWUgJiZcclxuICAgICAgICB0aGlzLl91cGRhdGV1bnJlYWRjb3VudGVyKG0ucmVjZWl2ZWQsIG0uZm9sZGVySWQsIC0xKVxyXG4gICAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRldW5yZWFkY291bnRlcihkYXRlOiBEYXRlLCBmb2xkZXJJZDogc3RyaW5nLCB2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKFxyXG4gICAgICAvLyBkYXRlIGlzIGFib3ZlIHdhdGVybWFya1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5pbmJveFZpZXcgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3IDwgZGF0ZVxyXG4gICAgKVxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudCArPSB2YWw7XHJcbiAgICAvLyBkZWNyZWFzZVxyXG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuXHJcbiAgICAgIGZpbmQoZiA9PiBmLm5hbWUgPT09IGZvbGRlcklkKTtcclxuICAgIGZvbGRlci5jb3VudCA9IE1hdGgubWF4KDAsIGZvbGRlci5jb3VudCArIHZhbCk7XHJcbiAgfVxyXG5cclxuICBzYXZlPFQgPSBhbnk+KGlkOiBudW1iZXIsIGZvcm06IHN0cmluZywgdmVyc2lvbjogbnVtYmVyLCBtb2RlbDoge30sIGZpbGVzPzogRmlsZVtdIHwgRmlsZUxpc3QpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICAvL2NvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAvL2NvbnN0IG1vZGVsQmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShtb2RlbCldLCB7XHJcbiAgICAvLyAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgLy99KTtcclxuICAgIC8vZmQuYXBwZW5kKCdmb3JtLWRhdGEnLCBtb2RlbEJsb2IpO1xyXG4gICAgLy9pZiAoZmlsZXMpIHtcclxuICAgIC8vICBpZiAoaXNBcnJheShmaWxlcykpIGZpbGVzLmZvckVhY2goZiA9PlxyXG4gICAgLy8gICAgZmQuYXBwZW5kKGYubmFtZSwgZikpO1xyXG4gICAgLy8gIGVsc2UgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgLy8gICAgbGV0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xyXG4gICAgLy8gICAgZmQuYXBwZW5kKGZpbGUubmFtZSwgZmlsZSk7XHJcbiAgICAvLyAgfVxyXG4gICAgLy99XHJcbiAgICAvLyAgcmV0dXJuIHRoaXMuX3dpdGhHZW9Mb2NhdGlvbihmb3JtKS5waXBlKHN3aXRjaE1hcChwYXJhbXMgPT4ge1xyXG4gICAgLy8gICAgbGV0IHVybCA9IGAvYXBpL21haWwvJHtpZH0/dmVyc2lvbj0ke3ZlcnNpb259YDtcclxuICAgIC8vICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChwID0+IHVybCArPSBgJiR7cH09JHtwYXJhbXNbcF19YCk7XHJcbiAgICAvLyAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BVVCcsIHVybCwgZmQsIHtcclxuICAgIC8vICAgIH0pO1xyXG4gICAgLy8gICAgcmV0dXJuIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnBpcGUobWFwKGV2ZW50ID0+IHtcclxuICAgIC8vICAgICAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAvLyAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIG1vZGVsO1xyXG4gICAgLy8gICAgICB9XHJcbiAgICAvLyAgICAgIGVsc2VcclxuICAgIC8vICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgLy8gICAgfSkpXHJcbiAgICAvLyAgfSksIHRoaXMuX25vdGlmeTxUPigpKTtcclxuICAgIHJldHVybiB0aGlzLl9nZW9Mb2NhdGlvbihmb3JtKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAocGFyYW1zID0+IHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmRlbGV0ZShgL2FwaS9tYWlsLyR7aWR9YCkucGlwZSh0YXAoKCkgPT5cclxuICAgICAgdGhpcy5fZGVsZXRlJC5uZXh0KGlkKSkpO1xyXG4gIH1cclxuICByZW1vdmVjb21tZW50KGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlKGAvYXBpL2NvbW1lbnRzLyR7aWR9YCk7XHJcbiAgfVxyXG4gIHBvc3Q8VCA9IGFueT4oZm9ybTogc3RyaW5nLCBtb2RlbD86IGFueSk6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl93cmFwKGZvcm0sIHAgPT5cclxuICAgICAgdGhpcy5faHR0cC5wb3N0PFJlY2lwaWVudE1vZGVsPGFueT4+KCcvYXBpL21haWwnLCBtb2RlbCwge1xyXG4gICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgZ286IHRydWUsXHJcbiAgICAgICAgICBmb3JtLFxyXG4gICAgICAgICAgLi4ucFxyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBzdWJtaXQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsPzogYW55KTogT2JzZXJ2YWJsZTxSZWNpcGllbnRNb2RlbDxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlb0xvY2F0aW9uKGZvcm0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT5cclxuICAgICAgICB0aGlzLl9odHRwLnB1dDxSZWNpcGllbnRNb2RlbDxUPj4oYC9hcGkvbWFpbC8ke2lkfT92ZXJzaW9uPSR7dmVyc2lvbn0mZ289dHJ1ZWAsIG1vZGVsLCB7IHBhcmFtcyB9KSksXHJcbiAgICAgIHRoaXMuX3N5bmM8VD4oKSk7XHJcbiAgfVxyXG4gIHNlbmQ8VCA9IGFueT4oaWQ6IG51bWJlciwgdmVyc2lvbjogbnVtYmVyLCBmb3JtOiBzdHJpbmcsIG1vZGVsOiBhbnksIGFjdGlvbjogc3RyaW5nLCBhY3Rpb25BcmdzOiB7fSwgcmVhZD86IGJvb2xlYW4sIGZvbGRlcklkPzogc3RyaW5nLCByZWNlaXZlZD86IERhdGUpOiBPYnNlcnZhYmxlPFJlY2lwaWVudE1vZGVsPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ2VvTG9jYXRpb24oZm9ybSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PlxyXG4gICAgICAgIHRoaXMuX2h0dHAucHV0PFJlY2lwaWVudE1vZGVsPFQ+PihgL2FwaS9tYWlsLyR7aWR9P3ZlcnNpb249JHt2ZXJzaW9ufSZhY3Rpb249JHthY3Rpb259YCwgbW9kZWwsIHsgcGFyYW1zOiB7IC4uLnBhcmFtcywgLi4uYWN0aW9uQXJncyB9IH0pKSxcclxuICAgICAgdGFwKCgpID0+XHJcbiAgICAgICAgcmVhZCA9PT0gZmFsc2UgJiYgdGhpcy5fdXBkYXRldW5yZWFkY291bnRlcihyZWNlaXZlZCwgZm9sZGVySWQsIC0xKVxyXG4gICAgICApLFxyXG4gICAgICB0aGlzLl9zeW5jPFQ+KCkpO1xyXG4gIH1cclxuICBldmVudHMoc3RhcnRpbmc6IERhdGUsIGVuZGluZz86IERhdGUsIGNvbnRhaW5zPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxTY2hlZHVsZWRFdmVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8U2NoZWR1bGVkRXZlbnRbXT4oYC9hcGkvZXZlbnRzYCwge1xyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBzdGFydGluZzogc3RhcnRpbmcudG9KU09OKCksXHJcbiAgICAgICAgZW5kaW5nOiBlbmRpbmcudG9KU09OKCksXHJcbiAgICAgICAgY29udGFpbnM6IGNvbnRhaW5zIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGFuZ2VFdmVudChpZDogbnVtYmVyLCBvcHRpb25zOiB7IHN0YXJ0aW5nOiBEYXRlOyBlbmRpbmc/OiBEYXRlOyBjb21wbGV0ZT86IGJvb2xlYW4gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoYC9hcGkvZXZlbnRzLyR7aWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldCBnZW8gbG9jYXRpb24sIGRlcGVuZGluZyBvbiBmb3JtIHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGZvcm1cclxuICAgKi9cclxuICBwcml2YXRlIF9nZW9Mb2NhdGlvbihmb3JtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBmb3JtKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGNvbmZpZ3VyYXRpb24ucG9zaXRpb24pIHtcclxuICAgICAgICBjYXNlICdSZXF1aXJlJzpcclxuICAgICAgICBjYXNlICdBc2snOlxyXG4gICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihyID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHtcclxuICAgICAgICAgICAgICBsbmc6IHIuY29vcmRzLmxvbmdpdHVkZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGxhdDogci5jb29yZHMubGF0aXR1ZGUudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uLnBvc2l0aW9uID09PSAnQXNrJylcclxuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoe30pO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHt9KTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEtlZXAgZmxhZ3MgaW4gc3luYy5cclxuICAgKi9cclxuICBwcml2YXRlIF9zeW5jID0gPFQ+KCkgPT4gKG9ic2VydmU6IE9ic2VydmFibGU8UmVjaXBpZW50TW9kZWw8VD4+KSA9PiB7XHJcbiAgICByZXR1cm4gb2JzZXJ2ZS5waXBlKHRhcChtID0+IHtcclxuICAgICAgKG0gYXMgSXRlbUV4dHJhKS5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9jaGFuZ2UkLm5leHQobSk7XHJcbiAgICB9KSk7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1FeHRyYSB7XHJcbiAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgbG9hZGVkPzogYm9vbGVhbjtcclxuICB3b3JraW5nPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRFeHRyYSBleHRlbmRzIEF0dGFjaG1lbnQge1xyXG4gIHVybD86IFNhZmVVcmw7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBmaWxlRXh0Pzogc3RyaW5nO1xyXG4gIGlzSW1hZ2U/OiBib29sZWFuO1xyXG4gIHByb2dyZXNzPzogbnVtYmVyO1xyXG4gIHZpZXdlZD86IERhdGU7XHJcbiAgZmFpbGVkPzogYm9vbGVhbjtcclxuICBoYXNQcmV2aWV3PzogYm9vbGVhbjtcclxufVxyXG5mdW5jdGlvbiBpc0h0dHBSZXNwb25zZTxUPihldmVudDogSHR0cEV2ZW50PFQ+KTogZXZlbnQgaXMgSHR0cFJlc3BvbnNlPFQ+IHtcclxuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc0h0dHBQcm9ncmVzc0V2ZW50KFxyXG4gIGV2ZW50OiBIdHRwRXZlbnQ8dW5rbm93bj5cclxuKTogZXZlbnQgaXMgSHR0cFByb2dyZXNzRXZlbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MgfHxcclxuICAgIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3NcclxuICApXHJcbn1cclxuLy9mdW5jdGlvbiBjYWxjdWxhdGVTdGF0ZSh1cGxvYWQ6IFVwbG9hZEV2ZW50LCBldmVudDogSHR0cEV2ZW50PHVua25vd24+KSB7XHJcbi8vICBpZiAoaXNIdHRwUHJvZ3Jlc3NFdmVudChldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXHJcbi8vICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcclxuLy8gICAgICAgIDogdXBsb2FkLnByb2dyZXNzLFxyXG4vLyAgICAgIHN0YXRlOiAncHJvZ3Jlc3MnLFxyXG4vLyAgICB9KTtcclxuLy8gIH1cclxuLy8gIGlmIChpc0h0dHBSZXNwb25zZShldmVudCkpIHtcclxuLy8gICAgcmV0dXJuIG5ldyBVcGxvYWRFdmVudCh7XHJcbi8vICAgICAgcHJvZ3Jlc3M6IDEwMCxcclxuLy8gICAgICBzdGF0ZTogJ2RvbmUnLFxyXG4vLyAgICB9KVxyXG4vLyAgfVxyXG4vL31cclxuZXhwb3J0IGNsYXNzIFVwbG9hZEV2ZW50IHtcclxuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIHByb2dyZXNzOiBudW1iZXI7XHJcbiAgLy8gYnl0ZXNcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHN0YXRlOiAncGVuZGluZycgfCAncHJvZ3Jlc3MnIHwgJ2RvbmUnO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0UHJvZ3Jlc3MoYXR0YWNobWVudDogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8QXR0YWNobWVudD4pID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgc291cmNlLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIC8vVE9ETyBwcm9ncmVzc1xyXG4gICAgICAgIC8vaWYgKGV2ZW50IGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkge1xyXG4gICAgICAgIC8vICBvYnNlcnZlLm5leHQobmV3IFVwbG9hZEV2ZW50KFxyXG4gICAgICAgIC8vICAgIGZpbGUubmFtZSxcclxuICAgICAgICAvLyAgICAoZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudCkubG9hZGVkLFxyXG4gICAgICAgIC8vICAgIChldmVudCBhcyBQcm9ncmVzc0V2ZW50KS50b3RhbFxyXG4gICAgICAgIC8vICApKTtcclxuICAgICAgICAvL30gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuICAgICAgICAvLyAgY29uc3QgcmVzID0gZXZlbnQgYXMgSHR0cFJlc3BvbnNlPGFueT47XHJcbiAgICAgICAgLy8gIGlmIChyZXMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAvLyAgICBjb25zdCBtb2RlbCA9IHJlcy5ib2R5IGFzIEF0dGFjaG1lbnQ7XHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5uZXh0KG1vZGVsKTtcclxuICAgICAgICAvLyAgfVxyXG4gICAgICAgIC8vICBlbHNlXHJcbiAgICAgICAgLy8gICAgb2JzZXJ2ZS5lcnJvcih7IHN0YXR1czogcmVzLnN0YXR1cywgZXJyb3I6IHJlcy5ib2R5IH0pO1xyXG4gICAgICAgIC8vICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgLy9pZiAoYSBpbnN0YW5jZW9mIFVwbG9hZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gIE9iamVjdC5hc3NpZ24oaXRlbSwge1xyXG4gICAgICAgIC8vICAgIHByb2dyZXNzOiBhLmxvYWRlZCAvIGEudG90YWxcclxuICAgICAgICAvLyAgfSk7XHJcbiAgICAgICAgLy8gIHJldHVybjtcclxuICAgICAgICAvL31cclxuICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgfSwgZXJyb3I6IGUgPT4gb2JzZXJ2ZS5lcnJvcihlKVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uRXJyb3Ige1xyXG4gIHJlYWRvbmx5IGNvZGU6IG51bWJlcjtcclxuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgUEVSTUlTU0lPTl9ERU5JRUQ6IG51bWJlcjtcclxuICByZWFkb25seSBQT1NJVElPTl9VTkFWQUlMQUJMRTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IFRJTUVPVVQ6IG51bWJlcjtcclxufVxyXG5pbnRlcmZhY2UgQ29vcmRzIHsgbG5nPzogc3RyaW5nOyBsYXQ/OiBzdHJpbmcgfSBcclxuIl19
|
@@ -21,4 +21,4 @@ export var FieldKind;
|
|
21
21
|
FieldKind["Url"] = "Url";
|
22
22
|
})(FieldKind || (FieldKind = {}));
|
23
23
|
;
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUE4WHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID0gbnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9saWRheSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBmcm9tRGF0ZTogRGF0ZTtcclxuICB0b0RhdGU6IERhdGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlIHtcclxuICBob2xpZGF5czogSG9saWRheVtdO1xyXG4gIHV0aWxpdGllczogVXRpbGl0eVtdO1xyXG4gIGd1aWRlcz86IEd1aWRlW107XHJcbiAgdmlld3M6IFZpZXdbXTtcclxuICBwaG90bz86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIGJ5TmFtZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaW1wZXJzb25hdGluZz86IHN0cmluZztcclxuICBhdmFpbGFibGU/OiBBdmFpbGFiaWxpdHlTdGF0ZTtcclxuICBnZW5kZXI/OiBHZW5kZXI7XHJcbiAgYnlHZW5kZXI/OiBHZW5kZXI7XHJcbiAgc3lzdGVtOiBib29sZWFuO1xyXG4gIGZvcm1zOiBGb3JtW107XHJcbiAgYWN0aW9uczogQWN0aW9uW107XHJcbiAgc3RhdGVzOiBTdGF0ZVtdO1xyXG4gIGZvbGRlcnM6IEZvbGRlcltdO1xyXG4gIHJlcG9ydHM6IFJlcG9ydFtdO1xyXG4gIHR5cGVzOiBUeXBlW107XHJcbiAgY3ViZXM6IEN1YmVbXTtcclxuICBub2RlczogRmxvd05vZGVbXTtcclxuICBjb250cm9sczogQ29udHJvbFtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgc291cmNlczogU291cmNlW107XHJcbiAgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICBpbmJveDogSGVhZGVyTW9kZWxbXTtcclxuICBpbmJveENvdW50PzogbnVtYmVyO1xyXG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdO1xyXG4gIG5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICByZWNlbnRzPzogSGVhZGVyTW9kZWxbXTtcclxuICBjb250YWN0czogQ29udGFjdFtdO1xyXG4gIGNvbnZlcnNhdGlvbnNDb3VudDogbnVtYmVyO1xyXG4gIGxpY2Vuc2U/OiBMaWNlbnNlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRUZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGtleXM6IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY29sdW1ucz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdCB7XHJcbiAgdmlzaXRlZD86IERhdGU7XHJcbiAgd2F0ZXJtYXJrPzogRGF0ZTtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBhY2NlcHRlZDogYm9vbGVhbjtcclxuICBpbWFnZT86IHN0cmluZztcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGZvcmdvdHRlbj86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdCB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjb250YWN0SWQ6IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2wge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRJbmZvIHtcclxuICBjb250cm9sVHlwZTogc3RyaW5nO1xyXG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAga2luZD86IEZpZWxkS2luZDtcclxuICB2YWxpZGF0aW9ucz86IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gIGNvbnRyb2xzPzogRmllbGRJbmZvW107XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBmbGFncz86IHN0cmluZ1tdO1xyXG4gIGhpbnQ/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbiB7XHJcbiAgdHlwZTogVmFsaWRhdGlvblR5cGU7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBleHByZXNzaW9uPzogYW55O1xyXG59XHJcbmV4cG9ydCBlbnVtIFZhbGlkYXRpb25UeXBlIHtcclxuICBSZXF1aXJlZCA9ICdSZXF1aXJlZCcsXHJcbiAgTWluID0gJ01pbicsXHJcbiAgTWF4ID0gJ01heCcsXHJcbiAgTWluTGVuZ3RoID0gJ01pbkxlbmd0aCcsXHJcbiAgTWF4TGVuZ3RoID0gJ01heExlbmd0aCcsXHJcbiAgUGF0dGVybiA9ICdQYXR0ZXJuJyxcclxuICBSYW5nZSA9ICdSYW5nZScsXHJcbiAgRW1haWwgPSAnRW1haWwnXHJcbn1cclxuZXhwb3J0IGVudW0gRmllbGRLaW5kIHtcclxuICBOdW1iZXIgPSAnTnVtYmVyJyxcclxuICBDdXJyZW5jeSA9ICdDdXJyZW5jeScsXHJcbiAgRW1haWxBZGRyZXNzID0gJ0VtYWlsQWRkcmVzcycsXHJcbiAgVGV4dCA9ICdUZXh0JyxcclxuICBQYXNzd29yZCA9ICdQYXNzd29yZCcsXHJcbiAgUGhvbmVOdW1iZXIgPSAnUGhvbmVOdW1iZXInLFxyXG4gIFVybCA9ICdVcmwnLFxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxuICBjb2xzPzogbnVtYmVyO1xyXG4gIHJvd3M/OiBudW1iZXI7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZSB7XHJcbiAgbW9kZTogTGljZW5zZU1vZGU7XHJcbiAgZXhwaXJhdGlvbj86IERhdGU7XHJcbiAgY29tcGFueU5hbWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVGaWx0ZXIge1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgYXhlczogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXIge1xyXG4gIGZpbHRlcnM/OiBDdWJlRmlsdGVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBncm91cD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY291bnQ/OiBudW1iZXI7XHJcbiAgY29sdW1ucz86IEZvbGRlckNvbHVtbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9sZGVyQ29sdW1uIHtcclxuICBuYW1lOiBzdHJpbmcgfCAnbnVtYmVyJyB8ICdzdWJqZWN0JyB8ICd2YWx1ZScgfCAnb3duZXInIHwgJ3NlbmRlcicgfCAncmVjZWl2ZWQnIHwgJ3JlY2VpdmVkQWdvJyB8ICdyZXBsaWVkJyB8ICdzdGF0ZScgfCAnaXNzdWVkJyB8ICdpc3N1ZWRBZ28nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZT86ICdCb29sZWFuJyB8ICdEYXRlJyB8ICdEZWNpbWFsJyB8ICdTdHJpbmcnO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMaWNlbnNlTW9kZSA9XHJcbiAgJ0V2YWx1YXRpb24nIHxcclxuICAnVmFsaWQnIHxcclxuICAnR3JhY2UnIHxcclxuICAnSW52YWxpZCcgfFxyXG4gICdMaW1pdGVkJyB8XHJcbiAgJ0V4cGlyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHZlcmI/OiBzdHJpbmc7XHJcbiAgeW91Pzogc3RyaW5nO1xyXG4gIHlvdU1hbGU/OiBzdHJpbmc7XHJcbiAgeW91RmVtYWxlPzogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgcGFzdE1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdEZlbWFsZT86IHN0cmluZztcclxuICBhZGplY3RpdmU/OiBzdHJpbmc7XHJcbiAgbG9nZ2FibGU/OiBib29sZWFuO1xyXG4gIGFkamVjdGl2ZVBsdXJhbD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBncm91cD86IG51bWJlcjtcclxuICBzaGFwZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIG91dE9mT2ZmaWNlPzogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBub3RpZmljYXRpb25zPzogTm90aWZpY2F0aW9uc1NldHRpbmdzO1xyXG4gIGVtYWlscz86IEVtYWlsU2V0dGluZ3M7XHJcbiAgZ3VpZGVzPzogc3RyaW5nW107XHJcbiAgaW5ib3hWaWV3PzogRGF0ZTtcclxuICBub3RpZmljYXRpb25zVmlldz86IERhdGU7XHJcbiAgdGFncz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXR0aW5ncyB7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHVzZXJzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGltZW50aW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBSZXBvcnQge1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICBpdGVtVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNyZWF0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBQb3NpdGlvblBvbGljeTtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93O1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIFBvc2l0aW9uUG9saWN5ID0gJ1JlcXVpcmUnIHwgJ0FzaycgfCAnTm9uZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBwaWN0dXJlVXJsPzogc3RyaW5nO1xyXG4gIG5pY2s/OiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgbGFzdEFjdGl2ZT86IERhdGU7XHJcbiAgbW9kZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEd1aWRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbW9kZT86ICdNZW51JyB8ICdFYWdlcicgfCAnUHJpdmF0ZSc7XHJcbiAgc3RlcHM6IEd1aWRlU3RlcFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGVTdGVwIHtcclxuICBleGVjdXRlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rvcj86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgbmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiAnQWJvdmUnIHwgJ0VuZCcgfCAnU3RhcnQnIHwgJ0JlbG93JztcclxufVxyXG4vL2VudW0gR3VpZGVTdGVwUG9saWN5IHsgfVxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dOb2RlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdHlsZT86IHN0cmluZztcclxuICBwYWxldHRlPzogc3RyaW5nO1xyXG4gIHNoYXBlOiBTaGFwZU1vZGVsIHwgRmxvd1NoYXBlTW9kZWwgfCBCYXNpY1NoYXBlTW9kZWwgfCBJbWFnZU1vZGVsIHwgUGF0aE1vZGVsIHwgVGV4dE1vZGVsIHwgQnBtblNoYXBlTW9kZWwgfCBOYXRpdmVNb2RlbDtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF2YWlsYWJpbGl0eVN0YXRlID1cclxuICAnT2ZmbGluZScgfFxyXG4gICdPbmxpbmUnIHxcclxuICAnT3V0T2ZPZmZpY2UnIHxcclxuICAnVmFjYXRpb24nIHwgJ1dvcmtpbmdIb21lJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2aWV3czogQ3ViZVZpZXdbXTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGluZGljZXM/OiBDdWJlSW5kZXhbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFlBeGlzIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0eXBlPzogJ0NvdW50JyB8ICdOdW1iZXInIHwgJ0N1cnJlbmN5JztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmRleCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBjb21iaW5hdGlvbj86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBeGlzU2VsZWN0aW9uTW9kZSA9XHJcbiAgJ05vbmUnIHxcclxuICAnU2luZ2xlJyB8XHJcbiAgJ011bHRpcGxlJyB8XHJcbiAgJ1NlYXJjaCcgfFxyXG4gICdQYXR0ZXJuJztcclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBmcm9tOiBEYXRlO1xyXG4gIHRvOiBEYXRlO1xyXG59XHJcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHsgW2N1bHR1cmU6IHN0cmluZ106IHN0cmluZyB9IHwgc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCc7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ2hhcnRUeXBlID1cclxuICAnUGllJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIGxpbmUgc2VyaWVzLiAqL1xyXG4gICdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIENvbHVtbiBzZXJpZXMuICovXHJcbiAgJ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBBcmVhIHNlcmllcy4gKi9cclxuICAnQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBCYXIgc2VyaWVzLiAqL1xyXG4gICdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdDb2x1bW4gc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0NvbHVtbicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0FyZWEgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0FyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdMaW5lIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQmFyIHNlcmllcy4gKi9cclxuICAnU3RhY2tpbmdCYXInIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGVwTGluZScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwYXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3BsaW5lQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTY2F0dGVyIHNlcmllcy4gKi9cclxuICAnU2NhdHRlcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTcGxpbmUgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdDb2x1bW4xMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0JhcjEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdCYXIxMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUxMDAgc2VyaWVzICovXHJcbiAgJ1N0YWNraW5nTGluZTEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdBcmVhMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUmFuZ2VDb2x1bW4gU2VyaWVzICovXHJcbiAgJ1JhbmdlQ29sdW1uJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgV2F0ZXJmYWxsIFNlcmllcyAqL1xyXG4gICdXYXRlcmZhbGwnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUFyZWEgU2VyaWVzICovXHJcbiAgJ1JhbmdlQXJlYScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIEJ1YmJsZSBTZXJpZXMgKi9cclxuICAnQnViYmxlJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQ2FuZGxlIFNlcmllcyAqL1xyXG4gICdQb2xhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIHJhZGFyIHNlcmllcyAqL1xyXG4gICdSYWRhcicgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFBhcmV0byBzZXJpZXMgKi9cclxuICAnUGFyZXRvJyB8ICdEb3VnaG51dCcgfCAnSGFsZkRvdWdobnV0JyB8XHJcbiAgJ0Z1bm5lbCcgfCAnUHlyYW1pZCcgfFxyXG4gICdTdGFja2luZ1N0ZXBBcmVhJztcclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZVNldHRpbmdzIHtcclxuICBmcm9tPzogRGF0ZTtcclxuICB0bz86IERhdGU7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHN1YnN0aXR1ZUlkPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBOb3RpZmljYXRpb25zU2V0dGluZ3Mge1xyXG4gIHNvdW5kPzogYm9vbGVhbjtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIG15U3RhdGVDaGFuZ2VkPzogYm9vbGVhbjtcclxuICBhbnlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueUNvbW1lbnQ/OiBib29sZWFuO1xyXG4gIG15Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbGlrZWQ/OiBib29sZWFuO1xyXG4gIGN1YmVBbm9tYWx5PzogYm9vbGVhbjtcclxuICB1cGNvbWluZ0V2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuaW50ZXJmYWNlIEVtYWlsU2V0dGluZ3Mge1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbWFpbHM/OiBib29sZWFuO1xyXG4gIGNvbnZlcnNhdGlvbnM/OiBib29sZWFuO1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xyXG4gIGV2ZW50cz86IGJvb2xlYW47XHJcbn1cclxuIl19
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUM7QUE4WHhDLE1BQU0sQ0FBTixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtJQUNYLDZCQUFXLENBQUE7SUFDWCx5Q0FBdUIsQ0FBQTtJQUN2Qix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0lBQ2YsaUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVFcsY0FBYyxLQUFkLGNBQWMsUUFTekI7QUFDRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLDBDQUE2QixDQUFBO0lBQzdCLDBCQUFhLENBQUE7SUFDYixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQix3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBb0ZBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwsIENvbm5lY3Rvck1vZGVsLCBTaGFwZU1vZGVsLCBGbG93U2hhcGVNb2RlbCwgQmFzaWNTaGFwZU1vZGVsLCBJbWFnZU1vZGVsLCBQYXRoTW9kZWwsIFRleHRNb2RlbCwgQnBtblNoYXBlTW9kZWwsIE5hdGl2ZU1vZGVsIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRpYWdyYW1zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgSU5CT1ggPSAnaWInLCBEUkFGVCA9ICdkZic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vZGVsPFQgPSBhbnk+IHtcclxuICBwYXJlbnRJZD86IG51bWJlcjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgaXNzdWVkPzogRGF0ZTtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3Vic3RpdHV0ZUlkPzogc3RyaW5nO1xyXG4gIG93bmVySWQ6IHN0cmluZztcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgb3duZXJCeUlkPzogc3RyaW5nO1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHZhbHVlPzogbnVtYmVyO1xyXG4gIHJlY2VpdmVkOiBEYXRlO1xyXG4gIHJlcGxpZWQ/OiBEYXRlO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcmVhZDogYm9vbGVhbjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIHNlbmRlcklkPzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgZmxhZz86IGJvb2xlYW47XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBtb2RlbD86IFQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1vZGVsPFQgPSBhbnk+IHtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZXh0cmE/OiBhbnk7XHJcbiAgbnVtYmVyPzogc3RyaW5nO1xyXG4gIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgc3VtbWFyeT86IHN0cmluZztcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgb3duZXJJZDogc3RyaW5nO1xyXG4gIG93bmVyQnlJZD86IHN0cmluZztcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgdmVyc2lvbjogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICBjb21wbGV0ZWQ/OiBib29sZWFuO1xyXG4gIG1vZGVsPzogVDtcclxuICB2aWV3ZWQ/OiBEYXRlO1xyXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W107XHJcbiAgY29tbWVudHM6IENvbW1lbnRbXTtcclxuICB1bnJlYWRDb21tZW50czogbnVtYmVyO1xyXG4gIGlzc3VlZD86IERhdGU7XHJcbiAgd29ya2Zsb3c/OiBXb3JrZmxvd0luZm87XHJcbiAgcmVjaXBpZW50czogUmVjaXBpZW50W107XHJcbiAgY3ViZXM6IEN1YmVFbnRyeVtdO1xyXG4gIGV2ZW50czogU2NoZWR1bGVkRXZlbnRbXTtcclxuICBsb2NhdGlvbnM6IE1hcFBpbltdO1xyXG4gIGxvZzogTG9nW107XHJcbiAgcnVsZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhaW4ge1xyXG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcclxuICBpZDogbnVtYmVyO1xyXG4gIGZvcm1JZDogc3RyaW5nO1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxuICB2YWx1ZT86IG51bWJlcjtcclxuICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XHJcbiAgcGFyZW50PzogQ2hhaW47XHJcbiAgY2hpbGRyZW4/OiBDaGFpbltdO1xyXG4gIHJlY2lwaWVudHM/OiBSZWNpcGllbnRbXTtcclxuICBldmVudHM/OiBTY2hlZHVsZWRFdmVudFtdO1xyXG4gIGxvZzogTG9nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0luZm8ge1xyXG4gIG5vZGVzOiBOb2RlSW5mb1tdO1xyXG4gIGNvbm5lY3RvcnM6IENvbm5lY3RvckluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudE1vZGVsPFQgPSBhbnk+IGV4dGVuZHMgSGVhZGVyTW9kZWw8VD4sIERvY3VtZW50TW9kZWw8VD4ge1xyXG4gIGV4dHJhPzogYW55O1xyXG4gIGFjdGlvbnM/OiBzdHJpbmdbXTtcclxuICBmeWk6IGJvb2xlYW47XHJcbiAgb3JpZ2luSWQ/OiBudW1iZXI7XHJcbiAgZXNjYWxhdGVkPzogYm9vbGVhbjtcclxuICB0YWdzPzogc3RyaW5nW107XHJcbiAgYnlJZD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RvckluZm8ge1xyXG4gIC8vIHJlY2lwaWVudCBpZFxyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGVzdGltYXRlOiBib29sZWFuO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIHNvdXJjZUlkOiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIG5vZGUgKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgdGltZT86IERhdGU7XHJcbiAgZXN0aW1hdGU6IGJvb2xlYW47XHJcbiAgLyoqIHNlY29uZHMgKi9cclxuICBzdGFuZGFyZFRpbWU/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBMb2cge1xyXG4gIHJlY2lwaWVudElkPzogbnVtYmVyO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgb3JpZ2luSWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG4gIHR5cGU6IExvZ1R5cGU7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG4gIG5vdGU/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiBzdHJpbmc7XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdGFyZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgZHVyYXRpb24/OiBudW1iZXI7XHJcbiAgZXN0aW1hdGU/OiBib29sZWFuO1xyXG4gIGZpbGVJZD86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIExvZ1R5cGUgPSAnU3VibWl0JyB8ICdEb3dubG9hZCcgfCAnU3RhdGVDaGFuZ2UnIHwgJ0FjdGlvblRha2VuJyB8ICdDaGVja0luJyB8ICdDaGVja091dCcgfFxyXG4gICdNb2RlbENoYW5nZScgfCAnTm9kZScgfCAnVmlydHVhbE5vZGUnIHwgJ05vZGVKdW1wJyB8ICdDb25uZWN0b3InIHwgJ1ZpcnR1YWxDb25uZWN0b3InIHwgJ0VzY2FsYXRpb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xyXG4gIG9yaWdpbklkPzogbnVtYmVyO1xyXG4gIHN1YnN0aXR1dGVJZD86IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBwZW5kaW5nOiBib29sZWFuO1xyXG4gIGZvbGRlcklkOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICByZWNlaXZlZDogRGF0ZTtcclxuICByZXBsaWVkPzogRGF0ZTtcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIGZ5aT86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGVzY2FsYXRlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBkb2N1bWVudElkOiBudW1iZXI7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nPzogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBsb2NhdGlvbj86IExhdExuZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcFBpbiB7XHJcbiAgbG9jYXRpb246IExhdExuZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGF0TG5nID0gbnVtYmVyW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVFbnRyeSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIGF4ZXM6IHN0cmluZ1tdO1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgZmlsZU5hbWU6IHN0cmluZztcclxuICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBjaGVja2VkT3V0PzogYm9vbGVhbjtcclxuICBwcml2YXRlPzogYm9vbGVhbjtcclxuICBob2xkaW5nSWQ/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcclxuICBpZDogbnVtYmVyO1xyXG4gIC8qKiBiYXNlNjQgKi9cclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgcGFyZW50SWQ/OiBudW1iZXI7XHJcbiAgdm90ZWQ/OiBudW1iZXI7XHJcbiAgdm90ZXM/OiBudW1iZXI7XHJcbiAgZWRpdGVkPzogRGF0ZTtcclxuICBkZWxldGVkPzogYm9vbGVhbjtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xyXG4gIGJ5SWQ/OiBzdHJpbmc7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICB2b3RlZD86IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnRWZXJzaW9uIHtcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgaW1hZ2U/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICByZXNvdXJjZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG51bWJlcj86IHN0cmluZztcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgZGVsZXRlZD86IGJvb2xlYW47XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVhZD86IGJvb2xlYW47XHJcbiAgc2VudDogRGF0ZTtcclxuICByZWNpcGllbnRJZD86IG51bWJlcjtcclxuICBkb2N1bWVudElkPzogbnVtYmVyO1xyXG4gIGZvcm1JZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBOb3RpZmljYXRpb25UeXBlID1cclxuICAnQ29tbWVudGVkJyB8XHJcbiAgJ0N1YmVBbm9tYWx5JyB8XHJcbiAgJ0VzY2FsYXRlZCcgfFxyXG4gICdMaWtlZCcgfFxyXG4gICdTdGF0ZUNoYW5nZWQnIHxcclxuICAnTnVkZ2UnIHxcclxuICAnSW52aXRlJyB8XHJcbiAgJ1RleHRNZXNzYWdlJyB8XHJcbiAgJ1VwY29taW5nRXZlbnQnIHxcclxuICAnSm9iUHJvZ3Jlc3MnIHxcclxuICAnVGFnZ2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUge1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgZnV0dXJlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBHZW5kZXIgPSAnTWFsZScgfFxyXG4gICdGZW1hbGUnIHwgbnVsbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICBndWlkZT86IHN0cmluZztcclxuICBjdWJlczogc3RyaW5nW107XHJcbiAgZm9ybXM6IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9saWRheSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBmcm9tRGF0ZTogRGF0ZTtcclxuICB0b0RhdGU6IERhdGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlIHtcclxuICBob2xpZGF5czogSG9saWRheVtdO1xyXG4gIHV0aWxpdGllczogVXRpbGl0eVtdO1xyXG4gIGd1aWRlcz86IEd1aWRlW107XHJcbiAgdmlld3M6IFZpZXdbXTtcclxuICBwaG90bz86IHN0cmluZztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBieUlkPzogc3RyaW5nO1xyXG4gIGJ5TmFtZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaW1wZXJzb25hdGluZz86IHN0cmluZztcclxuICBhdmFpbGFibGU/OiBBdmFpbGFiaWxpdHlTdGF0ZTtcclxuICBnZW5kZXI/OiBHZW5kZXI7XHJcbiAgYnlHZW5kZXI/OiBHZW5kZXI7XHJcbiAgc3lzdGVtOiBib29sZWFuO1xyXG4gIGZvcm1zOiBGb3JtW107XHJcbiAgYWN0aW9uczogQWN0aW9uW107XHJcbiAgc3RhdGVzOiBTdGF0ZVtdO1xyXG4gIGZvbGRlcnM6IEZvbGRlcltdO1xyXG4gIHJlcG9ydHM6IFJlcG9ydFtdO1xyXG4gIHR5cGVzOiBUeXBlW107XHJcbiAgY3ViZXM6IEN1YmVbXTtcclxuICBub2RlczogRmxvd05vZGVbXTtcclxuICBjb250cm9sczogQ29udHJvbFtdO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgc291cmNlczogU291cmNlW107XHJcbiAgd2lkZ2V0czogV2lkZ2V0W107XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICBpbmJveDogSGVhZGVyTW9kZWxbXTtcclxuICBpbmJveENvdW50PzogbnVtYmVyO1xyXG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbltdO1xyXG4gIG5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICByZWNlbnRzPzogSGVhZGVyTW9kZWxbXTtcclxuICBjb250YWN0czogQ29udGFjdFtdO1xyXG4gIGNvbnZlcnNhdGlvbnNDb3VudDogbnVtYmVyO1xyXG4gIGxpY2Vuc2U/OiBMaWNlbnNlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGVsZW1lbnRUZW1wbGF0ZTogc3RyaW5nO1xyXG4gIGtleXM6IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY29sdW1ucz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHkge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdCB7XHJcbiAgdmlzaXRlZD86IERhdGU7XHJcbiAgd2F0ZXJtYXJrPzogRGF0ZTtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgdGltZTogRGF0ZTtcclxuICBhY2NlcHRlZDogYm9vbGVhbjtcclxuICBpbWFnZT86IHN0cmluZztcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGZvcmdvdHRlbj86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdCB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjb250YWN0SWQ6IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHRpbWU6IERhdGU7XHJcbiAgLyoqIGJhc2U2NCAqL1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2wge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRJbmZvIHtcclxuICBjb250cm9sVHlwZTogc3RyaW5nO1xyXG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAga2luZD86IEZpZWxkS2luZDtcclxuICB2YWxpZGF0aW9ucz86IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZyB9O1xyXG4gIGNvbnRyb2xzPzogRmllbGRJbmZvW107XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBmbGFncz86IHN0cmluZ1tdO1xyXG4gIGhpbnQ/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbiB7XHJcbiAgdHlwZTogVmFsaWRhdGlvblR5cGU7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIG1pbj86IG51bWJlcjtcclxuICBtYXg/OiBudW1iZXI7XHJcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBleHByZXNzaW9uPzogYW55O1xyXG59XHJcbmV4cG9ydCBlbnVtIFZhbGlkYXRpb25UeXBlIHtcclxuICBSZXF1aXJlZCA9ICdSZXF1aXJlZCcsXHJcbiAgTWluID0gJ01pbicsXHJcbiAgTWF4ID0gJ01heCcsXHJcbiAgTWluTGVuZ3RoID0gJ01pbkxlbmd0aCcsXHJcbiAgTWF4TGVuZ3RoID0gJ01heExlbmd0aCcsXHJcbiAgUGF0dGVybiA9ICdQYXR0ZXJuJyxcclxuICBSYW5nZSA9ICdSYW5nZScsXHJcbiAgRW1haWwgPSAnRW1haWwnXHJcbn1cclxuZXhwb3J0IGVudW0gRmllbGRLaW5kIHtcclxuICBOdW1iZXIgPSAnTnVtYmVyJyxcclxuICBDdXJyZW5jeSA9ICdDdXJyZW5jeScsXHJcbiAgRW1haWxBZGRyZXNzID0gJ0VtYWlsQWRkcmVzcycsXHJcbiAgVGV4dCA9ICdUZXh0JyxcclxuICBQYXNzd29yZCA9ICdQYXNzd29yZCcsXHJcbiAgUGhvbmVOdW1iZXIgPSAnUGhvbmVOdW1iZXInLFxyXG4gIFVybCA9ICdVcmwnLFxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxuICBjb2xzPzogbnVtYmVyO1xyXG4gIHJvd3M/OiBudW1iZXI7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgb3B0aW9uczogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZSB7XHJcbiAgbW9kZTogTGljZW5zZU1vZGU7XHJcbiAgZXhwaXJhdGlvbj86IERhdGU7XHJcbiAgY29tcGFueU5hbWU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVGaWx0ZXIge1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgYXhlczogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb2xkZXIge1xyXG4gIGZpbHRlcnM/OiBDdWJlRmlsdGVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBncm91cD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY291bnQ/OiBudW1iZXI7XHJcbiAgY29sdW1ucz86IEZvbGRlckNvbHVtbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9sZGVyQ29sdW1uIHtcclxuICBuYW1lOiBzdHJpbmcgfCAnbnVtYmVyJyB8ICdzdWJqZWN0JyB8ICd2YWx1ZScgfCAnb3duZXInIHwgJ3NlbmRlcicgfCAncmVjZWl2ZWQnIHwgJ3JlY2VpdmVkQWdvJyB8ICdyZXBsaWVkJyB8ICdzdGF0ZScgfCAnaXNzdWVkJyB8ICdpc3N1ZWRBZ28nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZT86ICdCb29sZWFuJyB8ICdEYXRlJyB8ICdEZWNpbWFsJyB8ICdTdHJpbmcnO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMaWNlbnNlTW9kZSA9XHJcbiAgJ0V2YWx1YXRpb24nIHxcclxuICAnVmFsaWQnIHxcclxuICAnR3JhY2UnIHxcclxuICAnSW52YWxpZCcgfFxyXG4gICdMaW1pdGVkJyB8XHJcbiAgJ0V4cGlyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHZlcmI/OiBzdHJpbmc7XHJcbiAgeW91Pzogc3RyaW5nO1xyXG4gIHlvdU1hbGU/OiBzdHJpbmc7XHJcbiAgeW91RmVtYWxlPzogc3RyaW5nO1xyXG4gIHBhc3Q/OiBzdHJpbmc7XHJcbiAgcGFzdE1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdEZlbWFsZT86IHN0cmluZztcclxuICBhZGplY3RpdmU/OiBzdHJpbmc7XHJcbiAgbG9nZ2FibGU/OiBib29sZWFuO1xyXG4gIGFkamVjdGl2ZVBsdXJhbD86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGFyZ3VtZW50cz86IEZpZWxkSW5mb1tdO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBncm91cD86IG51bWJlcjtcclxuICBzaGFwZT86IHN0cmluZztcclxuICBjb2xvcj86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIG91dE9mT2ZmaWNlPzogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBub3RpZmljYXRpb25zPzogTm90aWZpY2F0aW9uc1NldHRpbmdzO1xyXG4gIGVtYWlscz86IEVtYWlsU2V0dGluZ3M7XHJcbiAgZ3VpZGVzPzogc3RyaW5nW107XHJcbiAgaW5ib3hWaWV3PzogRGF0ZTtcclxuICBub3RpZmljYXRpb25zVmlldz86IERhdGU7XHJcbiAgdGFncz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRTZXR0aW5ncyB7XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIHVzZXJzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGltZW50aW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxuICBoZWlnaHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBSZXBvcnQge1xyXG4gIG9wdGlvbnM/OiBhbnk7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICBpdGVtVGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgYXJndW1lbnRzVGVtcGxhdGU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGNyZWF0YWJsZTogYm9vbGVhbjtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBQb3NpdGlvblBvbGljeTtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmaWVsZHM/OiBGaWVsZEluZm9bXTtcclxuICB3b3JrZmxvdz86IFdvcmtmbG93O1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCB0eXBlIFBvc2l0aW9uUG9saWN5ID0gJ1JlcXVpcmUnIHwgJ0FzaycgfCAnTm9uZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3cge1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBjb25uZWN0b3JzOiBDb25uZWN0b3JNb2RlbFtdO1xyXG4gIG5vZGVzOiBOb2RlTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJJbmZvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGdlbmRlcj86IEdlbmRlcjtcclxuICBwaWN0dXJlVXJsPzogc3RyaW5nO1xyXG4gIG5pY2s/OiBzdHJpbmc7XHJcbiAgcGhvbmVOdW1iZXI/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgbGFzdEFjdGl2ZT86IERhdGU7XHJcbiAgbW9kZT86IEF2YWlsYWJpbGl0eVN0YXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEd1aWRlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgbW9kZT86ICdNZW51JyB8ICdFYWdlcicgfCAnUHJpdmF0ZSc7XHJcbiAgc3RlcHM6IEd1aWRlU3RlcFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3VpZGVTdGVwIHtcclxuICBleGVjdXRlPzogYm9vbGVhbjtcclxuICBzZWxlY3Rvcj86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgbmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiAnQWJvdmUnIHwgJ0VuZCcgfCAnU3RhcnQnIHwgJ0JlbG93JztcclxufVxyXG4vL2VudW0gR3VpZGVTdGVwUG9saWN5IHsgfVxyXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dOb2RlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdHlsZT86IHN0cmluZztcclxuICBwYWxldHRlPzogc3RyaW5nO1xyXG4gIHNoYXBlOiBTaGFwZU1vZGVsIHwgRmxvd1NoYXBlTW9kZWwgfCBCYXNpY1NoYXBlTW9kZWwgfCBJbWFnZU1vZGVsIHwgUGF0aE1vZGVsIHwgVGV4dE1vZGVsIHwgQnBtblNoYXBlTW9kZWwgfCBOYXRpdmVNb2RlbDtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF2YWlsYWJpbGl0eVN0YXRlID1cclxuICAnT2ZmbGluZScgfFxyXG4gICdPbmxpbmUnIHxcclxuICAnT3V0T2ZPZmZpY2UnIHxcclxuICAnVmFjYXRpb24nIHwgJ1dvcmtpbmdIb21lJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB5QXhpcz86IFlBeGlzO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxuICB2aWV3czogQ3ViZVZpZXdbXTtcclxuICBheGVzOiBDdWJlQXhpc1tdO1xyXG4gIGluZGljZXM/OiBDdWJlSW5kZXhbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFlBeGlzIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0eXBlPzogJ0NvdW50JyB8ICdOdW1iZXInIHwgJ0N1cnJlbmN5JztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmRleCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpcyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBjb21iaW5hdGlvbj86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBeGlzU2VsZWN0aW9uTW9kZSA9XHJcbiAgJ05vbmUnIHxcclxuICAnU2luZ2xlJyB8XHJcbiAgJ011bHRpcGxlJyB8XHJcbiAgJ1NlYXJjaCcgfFxyXG4gICdQYXR0ZXJuJztcclxuXHJcbmV4cG9ydCB0eXBlIEF4aXNWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBmcm9tOiBEYXRlO1xyXG4gIHRvOiBEYXRlO1xyXG59XHJcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHsgW2N1bHR1cmU6IHN0cmluZ106IHN0cmluZyB9IHwgc3RyaW5nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBeGVzTWFwIHtcclxuICBbYXhpczogc3RyaW5nXTogQXhpc1ZhbHVlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZVZpZXcge1xyXG4gIHhBeGlzOiBzdHJpbmdbXTtcclxuICBzZXJpZXM/OiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBpbmRpY2VzPzogc3RyaW5nW107XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBndWlkZT86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB0eXBlOiBWaWV3VHlwZTtcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgaW5kaWNlc0NoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFZpZXdUeXBlID0gJ1NwcmVhZHNoZWV0JyB8XHJcbiAgJ0NoYXJ0JyB8ICdQaXZvdCcgfCAnR3JpZCcgfCAnUGl2b3RHcmlkJyB8ICdQaXZvdENoYXJ0JztcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDaGFydFR5cGUgPVxyXG4gICdQaWUnIHxcclxuICAvKiogIERlZmluZSB0aGUgbGluZSBzZXJpZXMuICovXHJcbiAgJ0xpbmUnIHxcclxuICAvKiogIERlZmluZSB0aGUgQ29sdW1uIHNlcmllcy4gKi9cclxuICAnQ29sdW1uJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIEFyZWEgc2VyaWVzLiAqL1xyXG4gICdBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIEJhciBzZXJpZXMuICovXHJcbiAgJ0JhcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0NvbHVtbiBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nQ29sdW1uJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0YWNraW5nQXJlYSBzZXJpZXMuICovXHJcbiAgJ1N0YWNraW5nQXJlYScgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGFja2luZ0xpbmUgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0xpbmUnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RhY2tpbmdCYXIgc2VyaWVzLiAqL1xyXG4gICdTdGFja2luZ0JhcicgfFxyXG4gIC8qKiAgRGVmaW5lIHRoZSBTdGVwbGluZSBzZXJpZXMuICovXHJcbiAgJ1N0ZXBMaW5lJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFN0ZXBhcmVhIHNlcmllcy4gKi9cclxuICAnU3RlcEFyZWEnIHxcclxuICAvKiogIERlZmluZSB0aGUgU3RlcGFyZWEgc2VyaWVzLiAqL1xyXG4gICdTcGxpbmVBcmVhJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFNjYXR0ZXIgc2VyaWVzLiAqL1xyXG4gICdTY2F0dGVyJyB8XHJcbiAgLyoqICBEZWZpbmUgdGhlIFNwbGluZSBzZXJpZXMuICovXHJcbiAgJ1NwbGluZScgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQ29sdW1uMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0NvbHVtbjEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nQmFyMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0JhcjEwMCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFN0YWNraW5nTGluZTEwMCBzZXJpZXMgKi9cclxuICAnU3RhY2tpbmdMaW5lMTAwJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgU3RhY2tpbmdBcmVhMTAwIHNlcmllcyAqL1xyXG4gICdTdGFja2luZ0FyZWExMDAnIHxcclxuICAvKiogRGVmaW5lIHRoZSBSYW5nZUNvbHVtbiBTZXJpZXMgKi9cclxuICAnUmFuZ2VDb2x1bW4nIHxcclxuICAvKiogRGVmaW5lIHRoZSBXYXRlcmZhbGwgU2VyaWVzICovXHJcbiAgJ1dhdGVyZmFsbCcgfFxyXG4gIC8qKiBEZWZpbmUgdGhlIFJhbmdlQXJlYSBTZXJpZXMgKi9cclxuICAnUmFuZ2VBcmVhJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgQnViYmxlIFNlcmllcyAqL1xyXG4gICdCdWJibGUnIHxcclxuICAvKiogRGVmaW5lIHRoZSBDYW5kbGUgU2VyaWVzICovXHJcbiAgJ1BvbGFyJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgcmFkYXIgc2VyaWVzICovXHJcbiAgJ1JhZGFyJyB8XHJcbiAgLyoqIERlZmluZSB0aGUgUGFyZXRvIHNlcmllcyAqL1xyXG4gICdQYXJldG8nIHwgJ0RvdWdobnV0JyB8ICdIYWxmRG91Z2hudXQnIHxcclxuICAnRnVubmVsJyB8ICdQeXJhbWlkJyB8XHJcbiAgJ1N0YWNraW5nU3RlcEFyZWEnO1xyXG5leHBvcnQgaW50ZXJmYWNlIE91dE9mT2ZmaWNlU2V0dGluZ3Mge1xyXG4gIGZyb20/OiBEYXRlO1xyXG4gIHRvPzogRGF0ZTtcclxuICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgc3Vic3RpdHVlSWQ/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIE5vdGlmaWNhdGlvbnNTZXR0aW5ncyB7XHJcbiAgc291bmQ/OiBib29sZWFuO1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgbXlTdGF0ZUNoYW5nZWQ/OiBib29sZWFuO1xyXG4gIGFueVN0YXRlQ2hhbmdlZD86IGJvb2xlYW47XHJcbiAgYW55Q29tbWVudD86IGJvb2xlYW47XHJcbiAgbXlDb21tZW50PzogYm9vbGVhbjtcclxuICBsaWtlZD86IGJvb2xlYW47XHJcbiAgY3ViZUFub21hbHk/OiBib29sZWFuO1xyXG4gIHVwY29taW5nRXZlbnRzPzogYm9vbGVhbjtcclxufVxyXG5pbnRlcmZhY2UgRW1haWxTZXR0aW5ncyB7XHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxuICBtYWlscz86IGJvb2xlYW47XHJcbiAgY29udmVyc2F0aW9ucz86IGJvb2xlYW47XHJcbiAgbm90aWZpY2F0aW9ucz86IGJvb2xlYW47XHJcbiAgZXZlbnRzPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|