@gloww/gloww 0.9.0-beta.10 → 0.9.0-beta.11
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.
|
@@ -496,4 +496,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
|
|
|
496
496
|
}], fileFields: [{
|
|
497
497
|
type: Input
|
|
498
498
|
}] } });
|
|
499
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9kaXNwbGF5LW9iamVjdHMvZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9kaXNwbGF5LW9iamVjdHMvZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBc0ssS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25RLE9BQU8sRUFBRSxXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQWdCLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFtRCxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQWdDLGFBQWEsRUFBRSxVQUFVLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFHN0csT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFB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QUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sU0FBUztzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNILElBQUk7c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJNUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpc3BsYXlPYmplY3RzQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vLi4vZGlzcGxheS1vYmplY3RzLWNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBTZWFyY2hGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWZvcm0vc2VhcmNoLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIE9uSW5pdCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBEaXJlY3RpdmUsIENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyQ29udGVudEluaXQsIFF1ZXJ5TGlzdCwgQ29udGVudENoaWxkcmVuLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBPYmplY3RVbnN1YnNjcmliZWRFcnJvciwgb2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXN1bHRUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3Jlc3VsdC10YWJsZS9yZXN1bHQtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFBhcmFtcywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBEYXRhLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEdsb3d3U2VydmljZSB9IGZyb20gJy4uLy4uL1NlcnZpY2VzL2dsb3d3LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9nbG93dy1zZWN1cml0eS9TZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yLCBtZXJnZU1hcCwgdGFwLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcclxuXHRpY29uOiBhbnk7XHJcblx0bmFtZT86IHN0cmluZztcclxuXHRyb3V0ZXJMaW5rRmN0PzogKG9iaikgPT4gc3RyaW5nW107XHJcblx0ZGlzcGxheT86IChvYmopID0+IGJvb2xlYW47XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2dsdy1kaXNwbGF5LW9iamVjdHMnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LW9iamVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2Rpc3BsYXktb2JqZWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXNwbGF5T2JqZWN0c0NvbXBvbmVudDxUT2JqPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcblx0QENvbnRlbnRDaGlsZChIZWFkZXJDb21wb25lbnQpIGhlYWRlcjogSGVhZGVyQ29tcG9uZW50O1xyXG5cdEBDb250ZW50Q2hpbGQoU2VhcmNoRm9ybUNvbXBvbmVudCkgZm9ybUxheW91dDogU2VhcmNoRm9ybUNvbXBvbmVudDtcclxuXHRAQ29udGVudENoaWxkKFJlc3VsdFRhYmxlQ29tcG9uZW50KSByZXN1bHRMYXlvdXQ6IFJlc3VsdFRhYmxlQ29tcG9uZW50O1xyXG5cdEBWaWV3Q2hpbGQoTWF0VGFibGUsIHsgc3RhdGljOiBmYWxzZSB9KSB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuXHRAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG5cdEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IGZhbHNlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG5cdC8vIGFmdGVyIHRoZSA8bmctY29udGVudD4gaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgYXJlIGF2YWlsYWJsZS5cclxuXHQvLyBBbGwgdGhhdCdzIGxlZnQgaXMgdG8gYWRkIHRoZW0gdG8gdGhlIHRhYmxlIG91cnNlbHZlczpcclxuXHRASW5wdXQoKSBjb25maWd1cmF0aW9uOiBEaXNwbGF5T2JqZWN0c0NvbmZpZ3VyYXRpb248VE9iaj47XHJcblx0QElucHV0KCkgZGlzcGxheU9iakxpbms6IChvYmo6IFRPYmosIGFjdGlvbj86IHN0cmluZykgPT4gKHN0cmluZyB8IHN0cmluZ1tdKTtcclxuXHRASW5wdXQoKSBjYW5EaXNwbGF5T2JqOiAoKHVzZXI6IGFueSwgb2JqOiBUT2JqLCBhY3Rpb24/OiBzdHJpbmcpID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIGNhbkVkaXQ6ICgodXNlcjogYW55LCBvYmo6IFRPYmopID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IHRydWU7XHJcblx0QElucHV0KCkgY2FuRGVsZXRlOiAoKHVzZXI6IGFueSwgb2JqOiBUT2JqKSA9PiBib29sZWFuKSB8IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBJbnB1dCgpIGNhbkFkZDogKCh1c2VyOiBhbnkpID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IHRydWU7XHJcblx0QElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cdEBJbnB1dCgpIEVkaXRvcjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRASW5wdXQoKSBzZWFyY2hSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqW10+O1xyXG5cdEBJbnB1dCgpIHBvc3RSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqPjtcclxuXHRASW5wdXQoKSBkZWxldGVSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqW10+O1xyXG5cdEBJbnB1dCgpIHB1dFJlcXVlc3Q6IChvYmo/OiBUT2JqIHwgYW55KSA9PiBPYnNlcnZhYmxlPFRPYmpbXT47XHJcblx0QElucHV0KCkgY29sdW1uczogKCkgPT4gc3RyaW5nW107XHJcblx0QElucHV0KCkgZ2xvd3dTZXJ2aWNlOiBHbG93d1NlcnZpY2U7XHJcblx0QElucHV0KCkgb2JqZWN0TmFtZTogc3RyaW5nO1xyXG5cdEBJbnB1dCgpIHByaW1hcnlLZXk6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG5cdEBJbnB1dCgpIG1heHJvd3M6IHN0cmluZ1tdO1xyXG5cdEBJbnB1dCgpIG1hbmRhdG9yeVBhcmFtczogb2JqZWN0ID0ge307XHJcblx0QElucHV0KCkgYWN0aW9ucyA9IFtdO1xyXG5cdEBJbnB1dCgpIGRpYWxvZ0NvbmZpZzogb2JqZWN0ID0ge307XHJcblx0QElucHV0KCkgZmlsZUZpZWxkczogc3RyaW5nW107XHJcblxyXG5cdGNvbHVtbnNUb0Rpc3BsYXkgPSBbXTtcclxuXHRkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VE9iaj47XHJcblx0ZGlzcGxheWZvcm0gPSB0cnVlO1xyXG5cdGRpc3BsYXlyZXN1bHQgPSBmYWxzZTtcclxuXHRxdWVyeVBhcmFtczogYW55ID0ge307XHJcblx0cmVzdWx0RXhjZXB0aW9uOiBzdHJpbmc7XHJcblx0Y3VycmVudFVzZXI6IGFueTtcclxuXHRmb3JtMjogRm9ybUdyb3VwO1xyXG5cdGRhdGE6IG9iamVjdDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLCBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuXHRcdGNvbnN0IGNvbXBvbmVudCA9IHRoaXM7XHJcblx0XHR0aGlzLmN1cnJlbnRVc2VyID0gKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUgYXMgYW55KS5Vc2VySW5mbztcclxuXHRcdHRoaXMuZm9ybTIgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0X01heFJvd186IFtudWxsXVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VhcmNoUmVxdWVzdCkge1xyXG5cdFx0XHR0aGlzLnNlYXJjaFJlcXVlc3QgPSB0aGlzLmdsb3d3U2VydmljZVtgc2VhcmNoJHt0aGlzLm9iamVjdE5hbWV9YF07XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMucG9zdFJlcXVlc3QpIHtcclxuXHRcdFx0dGhpcy5wb3N0UmVxdWVzdCA9IHRoaXMuZ2xvd3dTZXJ2aWNlW2Bwb3N0JHt0aGlzLm9iamVjdE5hbWV9YF07XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMuZGVsZXRlUmVxdWVzdCkge1xyXG5cdFx0XHR0aGlzLmRlbGV0ZVJlcXVlc3QgPSB0aGlzLmdsb3d3U2VydmljZVtgZGVsZXRlJHt0aGlzLm9iamVjdE5hbWV9YF07XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMucHV0UmVxdWVzdCkge1xyXG5cdFx0XHR0aGlzLnB1dFJlcXVlc3QgPSB0aGlzLmdsb3d3U2VydmljZVtgcHV0JHt0aGlzLm9iamVjdE5hbWV9YF07XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5tYXhyb3dzPy5sZW5ndGggPiAwKSB7IHRoaXMuZm9ybS5hZGRDb250cm9sKFwiX01heFJvd19cIiwgbmV3IEZvcm1Db250cm9sKG51bGwpKTsgfVxyXG5cdH1cclxuXHRuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcblx0XHRjb25zb2xlLmxvZyhgSU5JVCA6IGZyb21MYXlvdXQ6JHt0aGlzLmZvcm1MYXlvdXR9LWRpc3BsYXlmb3JtOiR7dGhpcy5kaXNwbGF5Zm9ybX1gKVxyXG5cdFx0aWYgKCF0aGlzLmZvcm1MYXlvdXQgJiYgdGhpcy5yZXN1bHRMYXlvdXQpIHtcclxuXHRcdFx0dGhpcy5kaXNwbGF5Zm9ybSA9IGZhbHNlOyB0aGlzLmRpc3BsYXlyZXN1bHQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5nbG93d1NlcnZpY2UuYmFzZVBhdGhDaGFuZ2Uuc3Vic2NyaWJlKG5ld1VybCA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGBiYXNlUGF0aENoYW5nZSA6IGZyb21MYXlvdXQ6JHt0aGlzLmZvcm1MYXlvdXR9LWRpc3BsYXlmb3JtOiR7dGhpcy5kaXNwbGF5Zm9ybX1gKVxyXG5cdFx0XHRpZiAoIXRoaXMuZm9ybUxheW91dCAmJiB0aGlzLnJlc3VsdExheW91dCkge1xyXG5cdFx0XHRcdHRoaXMuZGlzcGxheWZvcm0gPSBmYWxzZTsgdGhpcy5kaXNwbGF5cmVzdWx0ID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIXRoaXMuZGlzcGxheWZvcm0pIHsgdGhpcy5TZWFyY2goKTsgfVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHR9XHJcblxyXG5cdEluaXQoZGF0YT86IERhdGEpIHtcclxuXHRcdGlmICgoZGF0YSAmJiBPYmplY3Qua2V5cyhkYXRhKS5sZW5ndGggPiAwKSB8fCB0aGlzLmRpc3BsYXlyZXN1bHQpIHtcclxuXHRcdFx0dGhpcy5TZWFyY2goZGF0YSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRTZWFyY2goZGF0YT86IERhdGEpIHtcclxuXHRcdHRoaXMuZGF0YSA9IGRhdGE7XHJcblx0XHR0aGlzLmRpc3BsYXlyZXN1bHQgPSB0cnVlO1xyXG5cdFx0dGhpcy5kaXNwbGF5Zm9ybSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZXN1bHRFeGNlcHRpb24gPSBudWxsO1xyXG5cclxuXHRcdGlmIChkYXRhKSB7XHJcblx0XHRcdE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2gobmFtZSA9PiB7XHJcblx0XHRcdFx0dGhpcy5xdWVyeVBhcmFtc1tuYW1lXSA9IGRhdGFbbmFtZV07XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdE9iamVjdC5rZXlzKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zKS5mb3JFYWNoKG5hbWUgPT4ge1xyXG5cdFx0XHR0aGlzLnF1ZXJ5UGFyYW1zW25hbWVdID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbbmFtZV07XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAodGhpcy5tYW5kYXRvcnlQYXJhbXMpIHtcclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5tYW5kYXRvcnlQYXJhbXMpLmZvckVhY2gobmFtZSA9PiB7XHJcblx0XHRcdFx0dGhpcy5xdWVyeVBhcmFtc1tuYW1lXSA9IHRoaXMucXVlcnlQYXJhbXNbbmFtZV07XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2VhcmNoUmVxdWVzdC5jYWxsKHRoaXMuZ2xvd3dTZXJ2aWNlLCB0aGlzLnF1ZXJ5UGFyYW1zKS5zdWJzY3JpYmUociA9PiB7XHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VE9iaj4ocik7XHJcblx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR0aGlzLlVwZGF0ZVRhYmxlKCk7XHJcblx0XHR9LFxyXG5cdFx0XHRlcnJvciA9PiB7XHJcblx0XHRcdFx0dGhpcy5kaXNwbGF5cmVzdWx0ID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5kaXNwbGF5Zm9ybSA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5yZXN1bHRFeGNlcHRpb24gPSBlcnJvcjtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjbGVhbihvYmopIHtcclxuXHRcdGZvciAoY29uc3QgcHJvcE5hbWUgaW4gb2JqKSB7XHJcblx0XHRcdGlmIChvYmpbcHJvcE5hbWVdID09PSBudWxsIHx8IG9ialtwcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdGRlbGV0ZSBvYmpbcHJvcE5hbWVdO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvblNlYXJjaCgpIHtcclxuXHRcdHRoaXMucXVlcnlQYXJhbXMgPSB7fTtcclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuZm9ybS52YWx1ZSkuZm9yRWFjaChuYW1lID0+IHtcclxuXHRcdFx0Y29uc3QgdmFsID0gdGhpcy5mb3JtLnZhbHVlW25hbWVdO1xyXG5cdFx0XHRpZiAodmFsKSB7XHJcblx0XHRcdFx0aWYgKHZhbC5jb25zdHJ1Y3Rvci5uYW1lID09PSAnTW9tZW50Jykge1xyXG5cdFx0XHRcdFx0dGhpcy5xdWVyeVBhcmFtc1tuYW1lXSA9ICh2YWwgYXMgTW9tZW50KS50b0lTT1N0cmluZygpXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMucXVlcnlQYXJhbXNbbmFtZV0gPSB2YWw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGlmICh0aGlzLmZvcm0yLnZhbHVlLl9NYXhSb3dfKSB7IHRoaXMucXVlcnlQYXJhbXMuX01heFJvd18gPSB0aGlzLmZvcm0yLnZhbHVlLl9NYXhSb3dfOyB9XHJcblx0XHR0aGlzLmNsZWFuKHRoaXMucXVlcnlQYXJhbXMpO1xyXG5cdFx0Y29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiB0aGlzLnF1ZXJ5UGFyYW1zIH0pO1xyXG5cdFx0Y29uc3QgY3VycmVudHN0YXRlID0gdGhpcy5sb2NhdGlvbi5nZXRTdGF0ZSgpO1xyXG5cdFx0dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5yb3V0ZXIudXJsLCBwYXJhbXMudG9TdHJpbmcoKSk7XHJcblx0XHR0aGlzLlNlYXJjaCgpO1xyXG5cclxuXHR9XHJcblxyXG5cdFVwZGF0ZURhdGFTb3VyY2UocjogVE9ialtdKSB7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRPYmo+KHIpO1xyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cdFx0dGhpcy5VcGRhdGVUYWJsZSgpO1xyXG5cclxuXHR9XHJcblxyXG5cdFVwZGF0ZVRhYmxlKCkge1xyXG5cdFx0aWYgKHRoaXMuZGF0YVNvdXJjZSkge1xyXG5cdFx0XHRpZiAoIXRoaXMudGFibGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnIXRoaXMudGFibGUnKTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5yZXN1bHRMYXlvdXQuY29sdW1uRGVmcy5mb3JFYWNoKGNvbHVtbkRlZiA9PiB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZihjb2x1bW5EZWYpKTtcclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuXHRcdFx0dGhpcy5jb2x1bW5zVG9EaXNwbGF5ID0gdGhpcy5jb2x1bW5zKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYW5EaXNwbGF5T2JqVGhpcyhvYmosIGFjdGlvbj8pIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGlmICghdGhpcy5kaXNwbGF5T2JqTGluaykgeyByZXR1cm4gZmFsc2U7IH1cclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLmNhbkRpc3BsYXlPYmogPT09ICdib29sZWFuJykgeyByZXR1cm4gdGhpcy5jYW5EaXNwbGF5T2JqOyB9XHJcblx0XHRcdHJldHVybiB0aGlzLmNhbkRpc3BsYXlPYmoodGhpcy5jdXJyZW50VXNlciwgb2JqLCBhY3Rpb24pO1xyXG5cdFx0fSBjYXRjaCAoZXgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coZXgpO1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0Y2FuQWRkVGhpcygpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGlmICghdGhpcy5jYW5BZGQpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5jYW5BZGQgPT09ICdib29sZWFuJykgeyByZXR1cm4gdGhpcy5jYW5BZGQ7IH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuY2FuQWRkKHRoaXMuY3VycmVudFVzZXIpO1xyXG5cdFx0fSBjYXRjaCAoZXgpIHtcclxuXHRcdFx0Y29uc29sZS5sb2coZXgpO1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbkVkaXRUaGlzKG9iaikge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKCF0aGlzLmNhbkVkaXQpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5jYW5FZGl0ID09PSAnYm9vbGVhbicpIHsgcmV0dXJuIHRoaXMuY2FuRWRpdDsgfVxyXG5cdFx0XHRyZXR1cm4gdGhpcy5jYW5FZGl0KHRoaXMuY3VycmVudFVzZXIsIG9iaik7XHJcblx0XHR9IGNhdGNoIChleCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhleCk7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FuRGVsZXRlVGhpcyhvYmopIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGlmICghdGhpcy5jYW5EZWxldGUpIHsgcmV0dXJuIGZhbHNlOyB9XHJcblx0XHRcdGlmICh0eXBlb2YgdGhpcy5jYW5EZWxldGUgPT09ICdib29sZWFuJykgeyByZXR1cm4gdGhpcy5jYW5EZWxldGU7IH1cclxuXHRcdFx0cmV0dXJuIHRoaXMuY2FuRGVsZXRlKHRoaXMuY3VycmVudFVzZXIsIG9iaik7XHJcblx0XHR9IGNhdGNoIChleCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhleCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGRpc3BsYXlPYmpMaW5rVGhpcyhvYmosIGFjdGlvbj8pIHtcclxuXHRcdGlmICghdGhpcy5kaXNwbGF5T2JqTGluaykgeyByZXR1cm4gbnVsbDsgfVxyXG5cdFx0cmV0dXJuIHRoaXMuZGlzcGxheU9iakxpbmsob2JqLCBhY3Rpb24pO1xyXG5cdH1cclxuXHJcblxyXG5cdGlzU3RyaW5nKHZhbHVlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZztcclxuXHR9XHJcblx0Z2V0UHJpbWFyeUtleShvYmo6IG9iamVjdCB8IFRPYmopOiBvYmplY3RbXSB7XHJcblx0XHRsZXQgcmVzID0gW107XHJcblx0XHRpZiAodGhpcy5pc1N0cmluZyh0aGlzLnByaW1hcnlLZXkpKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKFwic3RyaW5nXCIpO1xyXG5cdFx0XHRyZXMucHVzaChvYmpbdGhpcy5wcmltYXJ5S2V5IGFzIHN0cmluZ10pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc29sZS5sb2coXCJzdHJpbmdbXVwiKTtcclxuXHRcdFx0KHRoaXMucHJpbWFyeUtleSBhcyBzdHJpbmdbXSkuZm9yRWFjaChrZXkgPT4gcmVzLnB1c2gob2JqW2tleV0pKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXM7XHJcblx0fVxyXG5cclxuXHRfc2F2ZU9iaihvYmo6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHR2YXIgc3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHRcdHRoaXMucG9zdFJlcXVlc3QuY2FsbCh0aGlzLmdsb3d3U2VydmljZSwgb2JqKS5zdWJzY3JpYmUoXHJcblx0XHRcdGRhdGEgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHRtcCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhO1xyXG5cdFx0XHRcdHRtcC5wdXNoKGRhdGEpO1xyXG5cdFx0XHRcdHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdG1wO1xyXG5cdFx0XHRcdHN1YmplY3QubmV4dChkYXRhKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3IgPT4ge1xyXG5cdFx0XHRcdGFsZXJ0KGBVbmFibGUgdG8gYWRkIE9iamVjdCAke2Vycm9yLnN0YXR1c30gJHtlcnJvci5zdGF0dXNUZXh0fVxcbiR7ZXJyb3IuTWVzc2FnZX1cXG4ke2Vycm9yLmVycm9yfWApO1xyXG5cdFx0XHRcdHN1YmplY3QuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdFx0cmV0dXJuIHN1YmplY3Q7XHJcblx0fVxyXG5cdF9zYXZlRmlsZShmaWxlRmllbGQ6IHN0cmluZywgb2JqOiBhbnksIGZpbGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZS5kYXRhKTtcclxuXHRcdHJldHVybiB0aGlzLmdsb3d3U2VydmljZVtgcG9zdCR7dGhpcy5vYmplY3ROYW1lfSR7ZmlsZUZpZWxkfWBdLmNhbGwodGhpcy5nbG93d1NlcnZpY2UsIHRoaXMuZ2V0UHJpbWFyeUtleShvYmopLCBmb3JtRGF0YSkucGlwZShcclxuXHRcdFx0dGFwKChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcclxuXHRcdFx0XHRzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuXHRcdFx0XHRcdGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuXHRcdFx0XHRcdFx0ZmlsZS5wcm9ncmVzcyA9IE1hdGgucm91bmQoZXZlbnQubG9hZGVkICogMTAwIC8gKGV2ZW50LnRvdGFsID8/IDEpKTtcclxuXHRcdFx0XHRcdFx0ZmlsZS5pblByb2dyZXNzID0gZmlsZS5wcm9ncmVzcyAhPT0gMTAwO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcclxuXHRcdFx0XHRcdFx0ZmlsZS5wcm9ncmVzcyA9IDEwMDtcclxuXHRcdFx0XHRcdFx0ZmlsZS5zdGF0dXMgPSBcIkRvbmVcIjtcclxuXHRcdFx0XHRcdFx0ZmlsZS5pblByb2dyZXNzID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbHRlcigoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coYGZpbHRlciAke2V2ZW50LnR5cGV9YCk7XHJcblx0XHRcdFx0cmV0dXJuIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2VcclxuXHRcdFx0fSksXHJcblx0XHRcdG1hcCgoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coYG1hcCAke2V2ZW50LnR5cGV9YCk7XHJcblx0XHRcdFx0cmV0dXJuIGV2ZW50LmJvZHk7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuXHRcdFx0XHRmaWxlLmluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuXHRcdFx0XHRmaWxlLnN0YXR1cyA9IFwiRXJyb3JcIjtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhgJHtmaWxlLmRhdGEubmFtZX0gdXBsb2FkIGZhaWxlZC5gKTtcclxuXHRcdFx0XHQvL3N1YmplY3QuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdHJldHVybiBvZihgJHtmaWxlLmRhdGEubmFtZX0gdXBsb2FkIGZhaWxlZC5gKTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRBZGRPYmooKSB7XHJcblx0XHRjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcblx0XHRkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuXHRcdGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSB0cnVlO1xyXG5cdFx0ZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XHJcblx0XHRpZiAodGhpcy5kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5kaWFsb2dDb25maWcpLmZvckVhY2goXHJcblx0XHRcdFx0bmFtZSA9PiB7XHJcblx0XHRcdFx0XHRkaWFsb2dDb25maWdbbmFtZV0gPSB0aGlzLmRpYWxvZ0NvbmZpZ1tuYW1lXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRsZXQgYXJncyA9IHt9O1xyXG5cdFx0T2JqZWN0LmtleXModGhpcy5yb3V0ZS5zbmFwc2hvdD8ucGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XHJcblx0XHRcdGFyZ3Nba2V5XSA9IHRoaXMucm91dGUuc25hcHNob3Q/LnBhcmFtc1trZXldO1xyXG5cdFx0XHRkaWFsb2dDb25maWcuZGF0YSA9IGFyZ3M7XHJcblx0XHR9KTtcclxuXHJcblxyXG5cdFx0Y29uc3QgZGxnID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLkVkaXRvciwgZGlhbG9nQ29uZmlnKTtcclxuXHRcdGRsZy5jb21wb25lbnRJbnN0YW5jZS5jYWxsYmFjayA9IChcclxuXHRcdFx0ZGF0YSA9PiB7XHJcblx0XHRcdFx0bGV0IGRhdGFjb3B5ID0geyAuLi5kYXRhIH07XHJcblx0XHRcdFx0Y29uc3QgZmlsZUZpZWxkcyA9ICh0aGlzLkVkaXRvciBhcyBhbnkpLmZpbGVGaWVsZHM7XHJcblx0XHRcdFx0aWYgKGZpbGVGaWVsZHM/Lmxlbmd0aCA9PSAxKSB7XHJcblx0XHRcdFx0XHQvLyBVbiBzZXVsIGNoYW1wLCBpbCBwZXV0IMOqdHJlIG11bHRpcGxlXHJcblx0XHRcdFx0XHRjb25zdCBmaWxlRmllbGQgPSBmaWxlRmllbGRzWzBdO1xyXG5cdFx0XHRcdFx0Y29uc3QgZmlsZXMgPSBkYXRhY29weVtmaWxlRmllbGRdO1xyXG5cdFx0XHRcdFx0ZGVsZXRlIGRhdGFjb3B5W2ZpbGVGaWVsZF07XHJcblx0XHRcdFx0XHRjb25zdCBhbGxvYnM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxhbnk+OyB9ID0ge31cclxuXHRcdFx0XHRcdGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChmaWxlLnN0YXR1dCAhPT0gJ0RvbmUnICYmIGZpbGUuc3RhdHV0ICE9PSAnRXJyb3InKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb2JzID0gdGhpcy5fc2F2ZU9iaihkYXRhY29weSkucGlwZShcclxuXHRcdFx0XHRcdFx0XHRcdHN3aXRjaE1hcChuZXdkYXRhID0+IHRoaXMuX3NhdmVGaWxlKGZpbGVGaWVsZCwgbmV3ZGF0YSwgZmlsZSlcclxuXHRcdFx0XHRcdFx0XHRcdCkpO1xyXG5cdFx0XHRcdFx0XHRcdGFsbG9ic1tmaWxlLm5hbWVdID0gb2JzO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHJldHVybiBjb21iaW5lTGF0ZXN0KGFsbG9icykucGlwZSh0YWtlKDEpKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmIChmaWxlRmllbGRzPy5sZW5ndGggPiAxKSB7XHJcblx0XHRcdFx0XHQvLyBQbHVzaWV1cnMgY2hhbXBzIGZpbGUsIGlsIG5lIHBldXQgeSBhdm9pciBxdSd1bmUgc2V1bCBmaWNoaWVyIHBhciBjaGFtcC5cclxuXHRcdFx0XHRcdGNvbnN0IGZpZWxkcyA9IHt9O1xyXG5cdFx0XHRcdFx0ZmlsZUZpZWxkcy5mb3JFYWNoKGZmID0+IHtcclxuXHRcdFx0XHRcdFx0ZmllbGRzW2ZmXSA9IGRhdGFjb3B5W2ZmXTtcclxuXHRcdFx0XHRcdFx0ZGVsZXRlIGRhdGFjb3B5W2ZmXTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuX3NhdmVPYmooZGF0YWNvcHkpLnBpcGUoXHJcblx0XHRcdFx0XHRcdFx0bWVyZ2VNYXAobmV3ZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHR2YXIgYWxsb2JzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMoZmllbGRzKS5mb3JFYWNoKChbZmlsZUZpZWxkLCBmaWxlc106IFtzdHJpbmcsIGFueVtdXSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFsbG9icy5wdXNoKHRoaXMuX3NhdmVGaWxlKGZpbGVGaWVsZCwgbmV3ZGF0YSwgZmlsZXNbMF0pKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBmb3JrSm9pbihhbGxvYnMpOyAvLyBUT0RPIDogUEFTIFRFUk1JTkUuLi4gSkFNQUlTIFVUSUxJU0UuLi5cclxuXHRcdFx0XHRcdFx0XHR9KSk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBGb3JtIHNhbnMgZmljaGllclxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX3NhdmVPYmooZGF0YSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0RGVsZXRlT2JqKG9iaikge1xyXG5cdFx0aWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBvYmpldCA/ICcpKSB7XHJcblx0XHRcdHRoaXMuZGVsZXRlUmVxdWVzdC5hcHBseSh0aGlzLmdsb3d3U2VydmljZSwgdGhpcy5nZXRQcmltYXJ5S2V5KG9iaikpLnN1YnNjcmliZShcclxuXHRcdFx0XHRwID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGkgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG9iaik7XHJcblx0XHRcdFx0XHRjb25zdCB0bXAgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuXHRcdFx0XHRcdHRtcC5zcGxpY2UoaSwgMSk7XHJcblx0XHRcdFx0XHR0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRtcDtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVycm9yID0+IHtcclxuXHRcdFx0XHRcdGFsZXJ0KGBVbmFibGUgdG8gZGVsZXRlIE9iamVjdCAke2Vycm9yLnN0YXR1c30gJHtlcnJvci5zdGF0dXNUZXh0fVxcbiR7ZXJyb3IuTWVzc2FnZX1cXG4ke2Vycm9yLmVycm9yfWApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdF91cGRhdGVPYmooY3VycmVudDogYW55LCBuZXdEYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0bGV0IGFyZ3M6IG9iamVjdFtdID0gdGhpcy5nZXRQcmltYXJ5S2V5KGN1cnJlbnQpOyBhcmdzLnB1c2gobmV3RGF0YSlcclxuXHRcdHZhciBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cdFx0dGhpcy5wdXRSZXF1ZXN0LmFwcGx5KHRoaXMuZ2xvd3dTZXJ2aWNlLCBhcmdzKS5zdWJzY3JpYmUoXHJcblx0XHRcdGRhdGEgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGkgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKGN1cnJlbnQpO1xyXG5cdFx0XHRcdGNvbnN0IHRtcCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhO1xyXG5cdFx0XHRcdHRtcFtpXSA9IGRhdGE7XHJcblx0XHRcdFx0dGhpcy5kYXRhU291cmNlLmRhdGEgPSB0bXA7XHJcblx0XHRcdFx0c3ViamVjdC5uZXh0KGRhdGEpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvciA9PiB7XHJcblx0XHRcdFx0YWxlcnQoYFVuYWJsZSB0byB1cGRhdGUgT2JqZWN0ICR7ZXJyb3Iuc3RhdHVzfSAke2Vycm9yLnN0YXR1c1RleHR9XFxuJHtlcnJvci5NZXNzYWdlfVxcbiR7ZXJyb3IuZXJyb3J9YCk7XHJcblx0XHRcdFx0c3ViamVjdC5lcnJvcihlcnJvcik7XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0XHRyZXR1cm4gc3ViamVjdDtcclxuXHR9XHJcblxyXG5cclxuXHRFZGl0T2JqKG9iajogVE9iaikge1xyXG5cdFx0Y29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG5cdFx0ZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblx0XHRkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcclxuXHRcdGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IGZhbHNlO1xyXG5cdFx0aWYgKHRoaXMuZGlhbG9nQ29uZmlnKSB7XHJcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZGlhbG9nQ29uZmlnKS5mb3JFYWNoKFxyXG5cdFx0XHRcdG5hbWUgPT4ge1xyXG5cdFx0XHRcdFx0ZGlhbG9nQ29uZmlnW25hbWVdID0gdGhpcy5kaWFsb2dDb25maWdbbmFtZV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0ZGlhbG9nQ29uZmlnLmRhdGEgPSBvYmo7XHJcblx0XHRjb25zdCBkbGcgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuRWRpdG9yLCBkaWFsb2dDb25maWcpO1xyXG5cdFx0ZGxnLmNvbXBvbmVudEluc3RhbmNlLmNhbGxiYWNrID0gKFxyXG5cdFx0XHRkYXRhID0+IHtcclxuXHRcdFx0XHRsZXQgZGF0YWNvcHkgPSB7IC4uLmRhdGEgfTtcclxuXHRcdFx0XHRjb25zdCBmaWxlRmllbGRzID0gKHRoaXMuRWRpdG9yIGFzIGFueSkuZmlsZUZpZWxkcztcclxuXHRcdFx0XHRpZiAoZmlsZUZpZWxkcz8ubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHRcdC8vIFVuIHNldWwgY2hhbXAsIGlsIHBldXQgw6p0cmUgbXVsdGlwbGVcclxuXHRcdFx0XHRcdGNvbnN0IGZpbGVGaWVsZCA9IGZpbGVGaWVsZHNbMF07XHJcblx0XHRcdFx0XHRjb25zdCBmaWxlcyA9IGRhdGFjb3B5W2ZpbGVGaWVsZF07XHJcblx0XHRcdFx0XHRkZWxldGUgZGF0YWNvcHlbZmlsZUZpZWxkXTtcclxuXHRcdFx0XHRcdGNvbnN0IGFsbG9iczogeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPGFueT47IH0gPSB7fVxyXG5cdFx0XHRcdFx0ZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGZpbGUuc3RhdHV0ICE9PSAnRG9uZScgJiYgZmlsZS5zdGF0dXQgIT09ICdFcnJvcicpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBvYnMgPSB0aGlzLl91cGRhdGVPYmoob2JqLCBkYXRhY29weSkucGlwZShcclxuXHRcdFx0XHRcdFx0XHRcdHN3aXRjaE1hcChuZXdkYXRhID0+IHRoaXMuX3NhdmVGaWxlKGZpbGVGaWVsZCwgbmV3ZGF0YSwgZmlsZSlcclxuXHRcdFx0XHRcdFx0XHRcdCkpO1xyXG5cdFx0XHRcdFx0XHRcdGFsbG9ic1tmaWxlLm5hbWVdID0gb2JzO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHJldHVybiBjb21iaW5lTGF0ZXN0KGFsbG9icykucGlwZSh0YWtlKDEpKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmIChmaWxlRmllbGRzPy5sZW5ndGggPiAxKSB7XHJcblx0XHRcdFx0XHQvLyBQbHVzaWV1cnMgY2hhbXBzIGZpbGUsIGlsIG5lIHBldXQgeSBhdm9pciBxdSd1bmUgc2V1bCBmaWNoaWVyIHBhciBjaGFtcC5cclxuXHRcdFx0XHRcdGNvbnN0IGZpZWxkcyA9IHt9O1xyXG5cdFx0XHRcdFx0ZmlsZUZpZWxkcy5mb3JFYWNoKGZmID0+IHtcclxuXHRcdFx0XHRcdFx0ZmllbGRzW2ZmXSA9IGRhdGFjb3B5W2ZmXTtcclxuXHRcdFx0XHRcdFx0ZGVsZXRlIGRhdGFjb3B5W2ZmXTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuX3VwZGF0ZU9iaihvYmosIGRhdGFjb3B5KS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdG1lcmdlTWFwKG5ld2RhdGEgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dmFyIGFsbG9iczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuXHRcdFx0XHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW2ZpbGVGaWVsZCwgZmlsZXNdOiBbc3RyaW5nLCBhbnlbXV0pID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRhbGxvYnMucHVzaCh0aGlzLl9zYXZlRmlsZShmaWxlRmllbGQsIG5ld2RhdGEsIGZpbGVzWzBdKSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZm9ya0pvaW4oYWxsb2JzKTsgLy8gVE9ETyA6IFBBUyBURVJNSU5FLi4uIEpBTUFJUyBVVElMSVNFLi4uXHJcblx0XHRcdFx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gRm9ybSBzYW5zIGZpY2hpZXJcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLl91cGRhdGVPYmoob2JqLCBkYXRhKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZ2x3LWhlYWRlclwiPjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiZGlzcGxheWZvcm1cIj5cclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInJlc3VsdEV4Y2VwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgVW5hYmxlIHRvIHF1ZXJ5IDoge3tyZXN1bHRFeGNlcHRpb259fVxyXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZ2x3LXNlYXJjaC1mb3JtXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWF4cm93c1wiIFtmb3JtR3JvdXBdPVwiZm9ybTJcIj5cclxuICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiTWF4Um93XCIgZm9ybUNvbnRyb2xOYW1lPVwiX01heFJvd19cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1heHJvdyBvZiBtYXhyb3dzXCIgW3ZhbHVlXT1cIm1heHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtYXhyb3dcIj57e21heHJvd319IG9iamVjdHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFtYXhyb3dcIj4gRGVmYXVsdDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucz5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25TZWFyY2goKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgIFNlYXJjaFxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJkaXNwbGF5cmVzdWx0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiICpuZ0lmPVwiZGF0YVNvdXJjZTsgZWxzZSBTcGlubmVyXCI+XHJcbiAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgbWF0U29ydD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtcGx1c1wiIChjbGljayk9XCJBZGRPYmooKVwiICpuZ0lmPVwiY2FuQWRkVGhpcygpXCI+XHJcbiAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG9ialwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWV5ZVwiIFtyb3V0ZXJMaW5rXT1cImRpc3BsYXlPYmpMaW5rVGhpcyhvYmopXCIgKm5nSWY9XCJjYW5EaXNwbGF5T2JqVGhpcyhvYmopXCI+XHJcbiAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiYWN0aW9uLmljb25cIiBbcm91dGVyTGlua109XCJhY3Rpb24ucm91dGVyTGlua0ZjdChvYmopXCIgKm5nSWY9XCJhY3Rpb24uaWNvbi5pY29uICYmICghYWN0aW9uLmRpc3BsYXkgfHwgYWN0aW9uLmRpc3BsYXkob2JqLCBhY3Rpb24ubmFtZSkpXCI+XHJcbiAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiYWN0aW9uLmljb25cIiBbcm91dGVyTGlua109XCJhY3Rpb24ucm91dGVyTGlua0ZjdChvYmopXCIgKm5nSWY9XCIhYWN0aW9uLmljb24uaWNvbiAmJiAoIWFjdGlvbi5kaXNwbGF5IHx8IGFjdGlvbi5kaXNwbGF5KG9iaiwgYWN0aW9uLm5hbWUpKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS10cmFzaC1hbHRcIiAoY2xpY2spPVwiRGVsZXRlT2JqKG9iailcIiAqbmdJZj1cImNhbkRlbGV0ZVRoaXMob2JqKVwiPlxyXG4gICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXBlbmNpbFwiIChjbGljayk9XCJFZGl0T2JqKG9iailcIiAqbmdJZj1cImNhbkVkaXRUaGlzKG9iailcIj5cclxuICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJnbHctcmVzdWx0LXRhYmxlXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbnNUb0Rpc3BsYXlcIj48L3RyPlxyXG4gICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IG15Um93RGF0YTsgY29sdW1uczogY29sdW1uc1RvRGlzcGxheVwiPjwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8bWF0LXBhZ2luYXRvciBwYWdlU2l6ZT1cIjEwXCI+PC9tYXQtcGFnaW5hdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI1NwaW5uZXI+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9kaXNwbGF5LW9iamVjdHMvZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dsb3d3L3NyYy9saWIvQ29tcG9uZW50cy9kaXNwbGF5LW9iamVjdHMvZGlzcGxheS1vYmplY3RzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBc0ssS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25RLE9BQU8sRUFBRSxXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQWdCLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFtRCxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQWdDLGFBQWEsRUFBRSxVQUFVLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFHN0csT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFB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O3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sU0FBUztzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNILElBQUk7c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJNUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpc3BsYXlPYmplY3RzQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vLi4vZGlzcGxheS1vYmplY3RzLWNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBTZWFyY2hGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWZvcm0vc2VhcmNoLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIE9uSW5pdCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBEaXJlY3RpdmUsIENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyQ29udGVudEluaXQsIFF1ZXJ5TGlzdCwgQ29udGVudENoaWxkcmVuLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBPYmplY3RVbnN1YnNjcmliZWRFcnJvciwgb2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXN1bHRUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3Jlc3VsdC10YWJsZS9yZXN1bHQtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFBhcmFtcywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBEYXRhLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEdsb3d3U2VydmljZSB9IGZyb20gJy4uLy4uL1NlcnZpY2VzL2dsb3d3LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9nbG93dy1zZWN1cml0eS9TZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yLCBtZXJnZU1hcCwgdGFwLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcclxuICBpY29uOiBhbnk7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICByb3V0ZXJMaW5rRmN0PzogKG9iaikgPT4gc3RyaW5nW107XHJcbiAgZGlzcGxheT86IChvYmopID0+IGJvb2xlYW47XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dsdy1kaXNwbGF5LW9iamVjdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LW9iamVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Rpc3BsYXktb2JqZWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXNwbGF5T2JqZWN0c0NvbXBvbmVudDxUT2JqPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChIZWFkZXJDb21wb25lbnQpIGhlYWRlcjogSGVhZGVyQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoU2VhcmNoRm9ybUNvbXBvbmVudCkgZm9ybUxheW91dDogU2VhcmNoRm9ybUNvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkKFJlc3VsdFRhYmxlQ29tcG9uZW50KSByZXN1bHRMYXlvdXQ6IFJlc3VsdFRhYmxlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHsgc3RhdGljOiBmYWxzZSB9KSB0YWJsZTogTWF0VGFibGU8YW55PjtcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IGZhbHNlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIC8vIGFmdGVyIHRoZSA8bmctY29udGVudD4gaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgYXJlIGF2YWlsYWJsZS5cclxuICAvLyBBbGwgdGhhdCdzIGxlZnQgaXMgdG8gYWRkIHRoZW0gdG8gdGhlIHRhYmxlIG91cnNlbHZlczpcclxuICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBEaXNwbGF5T2JqZWN0c0NvbmZpZ3VyYXRpb248VE9iaj47XHJcbiAgQElucHV0KCkgZGlzcGxheU9iakxpbms6IChvYmo6IFRPYmosIGFjdGlvbj86IHN0cmluZykgPT4gKHN0cmluZyB8IHN0cmluZ1tdKTtcclxuICBASW5wdXQoKSBjYW5EaXNwbGF5T2JqOiAoKHVzZXI6IGFueSwgb2JqOiBUT2JqLCBhY3Rpb24/OiBzdHJpbmcpID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNhbkVkaXQ6ICgodXNlcjogYW55LCBvYmo6IFRPYmopID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2FuRGVsZXRlOiAoKHVzZXI6IGFueSwgb2JqOiBUT2JqKSA9PiBib29sZWFuKSB8IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhbkFkZDogKCh1c2VyOiBhbnkpID0+IGJvb2xlYW4pIHwgYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIEVkaXRvcjogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBzZWFyY2hSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqW10+O1xyXG4gIEBJbnB1dCgpIHBvc3RSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqPjtcclxuICBASW5wdXQoKSBkZWxldGVSZXF1ZXN0OiAob2JqPzogVE9iaiB8IGFueSkgPT4gT2JzZXJ2YWJsZTxUT2JqW10+O1xyXG4gIEBJbnB1dCgpIHB1dFJlcXVlc3Q6IChvYmo/OiBUT2JqIHwgYW55KSA9PiBPYnNlcnZhYmxlPFRPYmpbXT47XHJcbiAgQElucHV0KCkgY29sdW1uczogKCkgPT4gc3RyaW5nW107XHJcbiAgQElucHV0KCkgZ2xvd3dTZXJ2aWNlOiBHbG93d1NlcnZpY2U7XHJcbiAgQElucHV0KCkgb2JqZWN0TmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByaW1hcnlLZXk6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIG1heHJvd3M6IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIG1hbmRhdG9yeVBhcmFtczogb2JqZWN0ID0ge307XHJcbiAgQElucHV0KCkgYWN0aW9ucyA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpYWxvZ0NvbmZpZzogb2JqZWN0ID0ge307XHJcbiAgQElucHV0KCkgZmlsZUZpZWxkczogc3RyaW5nW107XHJcblxyXG4gIGNvbHVtbnNUb0Rpc3BsYXkgPSBbXTtcclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VE9iaj47XHJcbiAgZGlzcGxheWZvcm0gPSB0cnVlO1xyXG4gIGRpc3BsYXlyZXN1bHQgPSBmYWxzZTtcclxuICBxdWVyeVBhcmFtczogYW55ID0ge307XHJcbiAgcmVzdWx0RXhjZXB0aW9uOiBzdHJpbmc7XHJcbiAgY3VycmVudFVzZXI6IGFueTtcclxuICBzZWFyY2hGb3JtOiBGb3JtR3JvdXA7XHJcbiAgZm9ybTI6IEZvcm1Hcm91cDtcclxuICBkYXRhOiBvYmplY3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzO1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9ICh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlIGFzIGFueSkuVXNlckluZm87XHJcbiAgICB0aGlzLmZvcm0yID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIF9NYXhSb3dfOiBbbnVsbF1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlYXJjaFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5zZWFyY2hSZXF1ZXN0ID0gdGhpcy5nbG93d1NlcnZpY2VbYHNlYXJjaCR7dGhpcy5vYmplY3ROYW1lfWBdO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnBvc3RSZXF1ZXN0KSB7XHJcbiAgICAgIHRoaXMucG9zdFJlcXVlc3QgPSB0aGlzLmdsb3d3U2VydmljZVtgcG9zdCR7dGhpcy5vYmplY3ROYW1lfWBdO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRlbGV0ZVJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5kZWxldGVSZXF1ZXN0ID0gdGhpcy5nbG93d1NlcnZpY2VbYGRlbGV0ZSR7dGhpcy5vYmplY3ROYW1lfWBdO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnB1dFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5wdXRSZXF1ZXN0ID0gdGhpcy5nbG93d1NlcnZpY2VbYHB1dCR7dGhpcy5vYmplY3ROYW1lfWBdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWF4cm93cz8ubGVuZ3RoID4gMCkgeyB0aGlzLmZvcm0uYWRkQ29udHJvbChcIl9NYXhSb3dfXCIsIG5ldyBGb3JtQ29udHJvbChudWxsKSk7IH1cclxuICB9XHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coYElOSVQgOiBmcm9tTGF5b3V0OiR7dGhpcy5mb3JtTGF5b3V0fS1kaXNwbGF5Zm9ybToke3RoaXMuZGlzcGxheWZvcm19YClcclxuICAgIGlmICghdGhpcy5mb3JtTGF5b3V0ICYmIHRoaXMucmVzdWx0TGF5b3V0KSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWZvcm0gPSBmYWxzZTsgdGhpcy5kaXNwbGF5cmVzdWx0ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2xvd3dTZXJ2aWNlLmJhc2VQYXRoQ2hhbmdlLnN1YnNjcmliZShuZXdVcmwgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhgYmFzZVBhdGhDaGFuZ2UgOiBmcm9tTGF5b3V0OiR7dGhpcy5mb3JtTGF5b3V0fS1kaXNwbGF5Zm9ybToke3RoaXMuZGlzcGxheWZvcm19YClcclxuICAgICAgaWYgKCF0aGlzLmZvcm1MYXlvdXQgJiYgdGhpcy5yZXN1bHRMYXlvdXQpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlmb3JtID0gZmFsc2U7IHRoaXMuZGlzcGxheXJlc3VsdCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmRpc3BsYXlmb3JtKSB7IHRoaXMuU2VhcmNoKCk7IH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBJbml0KGRhdGE/OiBEYXRhKSB7XHJcbiAgICBpZiAoKGRhdGEgJiYgT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoID4gMCkgfHwgdGhpcy5kaXNwbGF5cmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuU2VhcmNoKGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgU2VhcmNoKGRhdGE/OiBEYXRhKSB7XHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gICAgdGhpcy5kaXNwbGF5cmVzdWx0ID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlzcGxheWZvcm0gPSBmYWxzZTtcclxuICAgIHRoaXMucmVzdWx0RXhjZXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXNbbmFtZV0gPSBkYXRhW25hbWVdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcykuZm9yRWFjaChuYW1lID0+IHtcclxuICAgICAgdGhpcy5xdWVyeVBhcmFtc1tuYW1lXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW25hbWVdO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMubWFuZGF0b3J5UGFyYW1zKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMubWFuZGF0b3J5UGFyYW1zKS5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXNbbmFtZV0gPSB0aGlzLnF1ZXJ5UGFyYW1zW25hbWVdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaFJlcXVlc3QuY2FsbCh0aGlzLmdsb3d3U2VydmljZSwgdGhpcy5xdWVyeVBhcmFtcykuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPFRPYmo+KHIpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5VcGRhdGVUYWJsZSgpO1xyXG4gICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheXJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWZvcm0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVzdWx0RXhjZXB0aW9uID0gZXJyb3I7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYW4ob2JqKSB7XHJcbiAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIG9iaikge1xyXG4gICAgICBpZiAob2JqW3Byb3BOYW1lXSA9PT0gbnVsbCB8fCBvYmpbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBkZWxldGUgb2JqW3Byb3BOYW1lXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zID0ge307XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0udmFsdWUpLmZvckVhY2gobmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZm9ybS52YWx1ZVtuYW1lXTtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwuY29uc3RydWN0b3IubmFtZSA9PT0gJ01vbWVudCcpIHtcclxuICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNbbmFtZV0gPSAodmFsIGFzIE1vbWVudCkudG9JU09TdHJpbmcoKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zW25hbWVdID0gdmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5mb3JtMi52YWx1ZS5fTWF4Um93XykgeyB0aGlzLnF1ZXJ5UGFyYW1zLl9NYXhSb3dfID0gdGhpcy5mb3JtMi52YWx1ZS5fTWF4Um93XzsgfVxyXG4gICAgdGhpcy5jbGVhbih0aGlzLnF1ZXJ5UGFyYW1zKTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZnJvbU9iamVjdDogdGhpcy5xdWVyeVBhcmFtcyB9KTtcclxuICAgIGNvbnN0IGN1cnJlbnRzdGF0ZSA9IHRoaXMubG9jYXRpb24uZ2V0U3RhdGUoKTtcclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMucm91dGVyLnVybCwgcGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5TZWFyY2goKTtcclxuXHJcbiAgfVxyXG5cclxuICBVcGRhdGVEYXRhU291cmNlKHI6IFRPYmpbXSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxUT2JqPihyKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHRoaXMuVXBkYXRlVGFibGUoKTtcclxuXHJcbiAgfVxyXG5cclxuICBVcGRhdGVUYWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJyF0aGlzLnRhYmxlJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVzdWx0TGF5b3V0LmNvbHVtbkRlZnMuZm9yRWFjaChjb2x1bW5EZWYgPT4gdGhpcy50YWJsZS5hZGRDb2x1bW5EZWYoY29sdW1uRGVmKSk7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgIHRoaXMuY29sdW1uc1RvRGlzcGxheSA9IHRoaXMuY29sdW1ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuRGlzcGxheU9ialRoaXMob2JqLCBhY3Rpb24/KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIXRoaXMuZGlzcGxheU9iakxpbmspIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jYW5EaXNwbGF5T2JqID09PSAnYm9vbGVhbicpIHsgcmV0dXJuIHRoaXMuY2FuRGlzcGxheU9iajsgfVxyXG4gICAgICByZXR1cm4gdGhpcy5jYW5EaXNwbGF5T2JqKHRoaXMuY3VycmVudFVzZXIsIG9iaiwgYWN0aW9uKTtcclxuICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNhbkFkZFRoaXMoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIXRoaXMuY2FuQWRkKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2FuQWRkID09PSAnYm9vbGVhbicpIHsgcmV0dXJuIHRoaXMuY2FuQWRkOyB9XHJcbiAgICAgIHJldHVybiB0aGlzLmNhbkFkZCh0aGlzLmN1cnJlbnRVc2VyKTtcclxuICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5FZGl0VGhpcyhvYmopIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghdGhpcy5jYW5FZGl0KSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2FuRWRpdCA9PT0gJ2Jvb2xlYW4nKSB7IHJldHVybiB0aGlzLmNhbkVkaXQ7IH1cclxuICAgICAgcmV0dXJuIHRoaXMuY2FuRWRpdCh0aGlzLmN1cnJlbnRVc2VyLCBvYmopO1xyXG4gICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgY29uc29sZS5sb2coZXgpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbkRlbGV0ZVRoaXMob2JqKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIXRoaXMuY2FuRGVsZXRlKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuY2FuRGVsZXRlID09PSAnYm9vbGVhbicpIHsgcmV0dXJuIHRoaXMuY2FuRGVsZXRlOyB9XHJcbiAgICAgIHJldHVybiB0aGlzLmNhbkRlbGV0ZSh0aGlzLmN1cnJlbnRVc2VyLCBvYmopO1xyXG4gICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgY29uc29sZS5sb2coZXgpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5T2JqTGlua1RoaXMob2JqLCBhY3Rpb24/KSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzcGxheU9iakxpbmspIHsgcmV0dXJuIG51bGw7IH1cclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlPYmpMaW5rKG9iaiwgYWN0aW9uKTtcclxuICB9XHJcblxyXG5cclxuICBpc1N0cmluZyh2YWx1ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG4gIGdldFByaW1hcnlLZXkob2JqOiBvYmplY3QgfCBUT2JqKTogb2JqZWN0W10ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcodGhpcy5wcmltYXJ5S2V5KSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcInN0cmluZ1wiKTtcclxuICAgICAgcmVzLnB1c2gob2JqW3RoaXMucHJpbWFyeUtleSBhcyBzdHJpbmddKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwic3RyaW5nW11cIik7XHJcbiAgICAgICh0aGlzLnByaW1hcnlLZXkgYXMgc3RyaW5nW10pLmZvckVhY2goa2V5ID0+IHJlcy5wdXNoKG9ialtrZXldKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH1cclxuXHJcbiAgX3NhdmVPYmoob2JqOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdmFyIHN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICB0aGlzLnBvc3RSZXF1ZXN0LmNhbGwodGhpcy5nbG93d1NlcnZpY2UsIG9iaikuc3Vic2NyaWJlKFxyXG4gICAgICBkYXRhID0+IHtcclxuICAgICAgICBjb25zdCB0bXAgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICB0bXAucHVzaChkYXRhKTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRtcDtcclxuICAgICAgICBzdWJqZWN0Lm5leHQoZGF0YSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yID0+IHtcclxuICAgICAgICBhbGVydChgVW5hYmxlIHRvIGFkZCBPYmplY3QgJHtlcnJvci5zdGF0dXN9ICR7ZXJyb3Iuc3RhdHVzVGV4dH1cXG4ke2Vycm9yLk1lc3NhZ2V9XFxuJHtlcnJvci5lcnJvcn1gKTtcclxuICAgICAgICBzdWJqZWN0LmVycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuICBfc2F2ZUZpbGUoZmlsZUZpZWxkOiBzdHJpbmcsIG9iajogYW55LCBmaWxlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUuZGF0YSk7XHJcbiAgICByZXR1cm4gdGhpcy5nbG93d1NlcnZpY2VbYHBvc3Qke3RoaXMub2JqZWN0TmFtZX0ke2ZpbGVGaWVsZH1gXS5jYWxsKHRoaXMuZ2xvd3dTZXJ2aWNlLCB0aGlzLmdldFByaW1hcnlLZXkob2JqKSwgZm9ybURhdGEpLnBpcGUoXHJcbiAgICAgIHRhcCgoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKGV2ZW50LmxvYWRlZCAqIDEwMCAvIChldmVudC50b3RhbCA/PyAxKSk7XHJcbiAgICAgICAgICAgIGZpbGUuaW5Qcm9ncmVzcyA9IGZpbGUucHJvZ3Jlc3MgIT09IDEwMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAxMDA7XHJcbiAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gXCJEb25lXCI7XHJcbiAgICAgICAgICAgIGZpbGUuaW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaWx0ZXIoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBmaWx0ZXIgJHtldmVudC50eXBlfWApO1xyXG4gICAgICAgIHJldHVybiBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlXHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKGV2ZW50OiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBtYXAgJHtldmVudC50eXBlfWApO1xyXG4gICAgICAgIHJldHVybiBldmVudC5ib2R5O1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgZmlsZS5pblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgZmlsZS5zdGF0dXMgPSBcIkVycm9yXCI7XHJcbiAgICAgICAgY29uc29sZS5sb2coYCR7ZmlsZS5kYXRhLm5hbWV9IHVwbG9hZCBmYWlsZWQuYCk7XHJcbiAgICAgICAgLy9zdWJqZWN0LmVycm9yKGVycm9yKTtcclxuICAgICAgICByZXR1cm4gb2YoYCR7ZmlsZS5kYXRhLm5hbWV9IHVwbG9hZCBmYWlsZWQuYCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQWRkT2JqKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGlhbG9nQ29uZmlnKS5mb3JFYWNoKFxyXG4gICAgICAgIG5hbWUgPT4ge1xyXG4gICAgICAgICAgZGlhbG9nQ29uZmlnW25hbWVdID0gdGhpcy5kaWFsb2dDb25maWdbbmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgbGV0IGFyZ3MgPSB7fTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMucm91dGUuc25hcHNob3Q/LnBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBhcmdzW2tleV0gPSB0aGlzLnJvdXRlLnNuYXBzaG90Py5wYXJhbXNba2V5XTtcclxuICAgICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBhcmdzO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGRsZyA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5FZGl0b3IsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgICBkbGcuY29tcG9uZW50SW5zdGFuY2UuY2FsbGJhY2sgPSAoXHJcbiAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhY29weSA9IHsgLi4uZGF0YSB9O1xyXG4gICAgICAgIGNvbnN0IGZpbGVGaWVsZHMgPSAodGhpcy5FZGl0b3IgYXMgYW55KS5maWxlRmllbGRzO1xyXG4gICAgICAgIGlmIChmaWxlRmllbGRzPy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgLy8gVW4gc2V1bCBjaGFtcCwgaWwgcGV1dCDDqnRyZSBtdWx0aXBsZVxyXG4gICAgICAgICAgY29uc3QgZmlsZUZpZWxkID0gZmlsZUZpZWxkc1swXTtcclxuICAgICAgICAgIGNvbnN0IGZpbGVzID0gZGF0YWNvcHlbZmlsZUZpZWxkXTtcclxuICAgICAgICAgIGRlbGV0ZSBkYXRhY29weVtmaWxlRmllbGRdO1xyXG4gICAgICAgICAgY29uc3QgYWxsb2JzOiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8YW55PjsgfSA9IHt9XHJcbiAgICAgICAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmlsZS5zdGF0dXQgIT09ICdEb25lJyAmJiBmaWxlLnN0YXR1dCAhPT0gJ0Vycm9yJykge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9icyA9IHRoaXMuX3NhdmVPYmooZGF0YWNvcHkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAobmV3ZGF0YSA9PiB0aGlzLl9zYXZlRmlsZShmaWxlRmllbGQsIG5ld2RhdGEsIGZpbGUpXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICBhbGxvYnNbZmlsZS5uYW1lXSA9IG9icztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChhbGxvYnMpLnBpcGUodGFrZSgxKSk7XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZUZpZWxkcz8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgLy8gUGx1c2lldXJzIGNoYW1wcyBmaWxlLCBpbCBuZSBwZXV0IHkgYXZvaXIgcXUndW5lIHNldWwgZmljaGllciBwYXIgY2hhbXAuXHJcbiAgICAgICAgICBjb25zdCBmaWVsZHMgPSB7fTtcclxuICAgICAgICAgIGZpbGVGaWVsZHMuZm9yRWFjaChmZiA9PiB7XHJcbiAgICAgICAgICAgIGZpZWxkc1tmZl0gPSBkYXRhY29weVtmZl07XHJcbiAgICAgICAgICAgIGRlbGV0ZSBkYXRhY29weVtmZl07XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zYXZlT2JqKGRhdGFjb3B5KS5waXBlKFxyXG4gICAgICAgICAgICAgIG1lcmdlTWFwKG5ld2RhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFsbG9iczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW2ZpbGVGaWVsZCwgZmlsZXNdOiBbc3RyaW5nLCBhbnlbXV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGxvYnMucHVzaCh0aGlzLl9zYXZlRmlsZShmaWxlRmllbGQsIG5ld2RhdGEsIGZpbGVzWzBdKSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4oYWxsb2JzKTsgLy8gVE9ETyA6IFBBUyBURVJNSU5FLi4uIEpBTUFJUyBVVElMSVNFLi4uXHJcbiAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gRm9ybSBzYW5zIGZpY2hpZXJcclxuICAgICAgICAgIHJldHVybiB0aGlzLl9zYXZlT2JqKGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIERlbGV0ZU9iaihvYmopIHtcclxuICAgIGlmIChjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgb2JqZXQgPyAnKSkge1xyXG4gICAgICB0aGlzLmRlbGV0ZVJlcXVlc3QuYXBwbHkodGhpcy5nbG93d1NlcnZpY2UsIHRoaXMuZ2V0UHJpbWFyeUtleShvYmopKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpID0gdGhpcy5kYXRhU291cmNlLmRhdGEuaW5kZXhPZihvYmopO1xyXG4gICAgICAgICAgY29uc3QgdG1wID0gdGhpcy5kYXRhU291cmNlLmRhdGE7XHJcbiAgICAgICAgICB0bXAuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0bXA7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICBhbGVydChgVW5hYmxlIHRvIGRlbGV0ZSBPYmplY3QgJHtlcnJvci5zdGF0dXN9ICR7ZXJyb3Iuc3RhdHVzVGV4dH1cXG4ke2Vycm9yLk1lc3NhZ2V9XFxuJHtlcnJvci5lcnJvcn1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfdXBkYXRlT2JqKGN1cnJlbnQ6IGFueSwgbmV3RGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBhcmdzOiBvYmplY3RbXSA9IHRoaXMuZ2V0UHJpbWFyeUtleShjdXJyZW50KTsgYXJncy5wdXNoKG5ld0RhdGEpXHJcbiAgICB2YXIgc3ViamVjdCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHRoaXMucHV0UmVxdWVzdC5hcHBseSh0aGlzLmdsb3d3U2VydmljZSwgYXJncykuc3Vic2NyaWJlKFxyXG4gICAgICBkYXRhID0+IHtcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5kYXRhU291cmNlLmRhdGEuaW5kZXhPZihjdXJyZW50KTtcclxuICAgICAgICBjb25zdCB0bXAgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICB0bXBbaV0gPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdG1wO1xyXG4gICAgICAgIHN1YmplY3QubmV4dChkYXRhKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgIGFsZXJ0KGBVbmFibGUgdG8gdXBkYXRlIE9iamVjdCAke2Vycm9yLnN0YXR1c30gJHtlcnJvci5zdGF0dXNUZXh0fVxcbiR7ZXJyb3IuTWVzc2FnZX1cXG4ke2Vycm9yLmVycm9yfWApO1xyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHN1YmplY3Q7XHJcbiAgfVxyXG5cclxuXHJcbiAgRWRpdE9iaihvYmo6IFRPYmopIHtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZykge1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmRpYWxvZ0NvbmZpZykuZm9yRWFjaChcclxuICAgICAgICBuYW1lID0+IHtcclxuICAgICAgICAgIGRpYWxvZ0NvbmZpZ1tuYW1lXSA9IHRoaXMuZGlhbG9nQ29uZmlnW25hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0gb2JqO1xyXG4gICAgY29uc3QgZGxnID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLkVkaXRvciwgZGlhbG9nQ29uZmlnKTtcclxuICAgIGRsZy5jb21wb25lbnRJbnN0YW5jZS5jYWxsYmFjayA9IChcclxuICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGFjb3B5ID0geyAuLi5kYXRhIH07XHJcbiAgICAgICAgY29uc3QgZmlsZUZpZWxkcyA9ICh0aGlzLkVkaXRvciBhcyBhbnkpLmZpbGVGaWVsZHM7XHJcbiAgICAgICAgaWYgKGZpbGVGaWVsZHM/Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAvLyBVbiBzZXVsIGNoYW1wLCBpbCBwZXV0IMOqdHJlIG11bHRpcGxlXHJcbiAgICAgICAgICBjb25zdCBmaWxlRmllbGQgPSBmaWxlRmllbGRzWzBdO1xyXG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBkYXRhY29weVtmaWxlRmllbGRdO1xyXG4gICAgICAgICAgZGVsZXRlIGRhdGFjb3B5W2ZpbGVGaWVsZF07XHJcbiAgICAgICAgICBjb25zdCBhbGxvYnM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxhbnk+OyB9ID0ge31cclxuICAgICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChmaWxlLnN0YXR1dCAhPT0gJ0RvbmUnICYmIGZpbGUuc3RhdHV0ICE9PSAnRXJyb3InKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5fdXBkYXRlT2JqKG9iaiwgZGF0YWNvcHkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAobmV3ZGF0YSA9PiB0aGlzLl9zYXZlRmlsZShmaWxlRmllbGQsIG5ld2RhdGEsIGZpbGUpXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICBhbGxvYnNbZmlsZS5uYW1lXSA9IG9icztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChhbGxvYnMpLnBpcGUodGFrZSgxKSk7XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZUZpZWxkcz8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgLy8gUGx1c2lldXJzIGNoYW1wcyBmaWxlLCBpbCBuZSBwZXV0IHkgYXZvaXIgcXUndW5lIHNldWwgZmljaGllciBwYXIgY2hhbXAuXHJcbiAgICAgICAgICBjb25zdCBmaWVsZHMgPSB7fTtcclxuICAgICAgICAgIGZpbGVGaWVsZHMuZm9yRWFjaChmZiA9PiB7XHJcbiAgICAgICAgICAgIGZpZWxkc1tmZl0gPSBkYXRhY29weVtmZl07XHJcbiAgICAgICAgICAgIGRlbGV0ZSBkYXRhY29weVtmZl07XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91cGRhdGVPYmoob2JqLCBkYXRhY29weSkucGlwZShcclxuICAgICAgICAgICAgICBtZXJnZU1hcChuZXdkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBhbGxvYnM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZHMpLmZvckVhY2goKFtmaWxlRmllbGQsIGZpbGVzXTogW3N0cmluZywgYW55W11dKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb2JzLnB1c2godGhpcy5fc2F2ZUZpbGUoZmlsZUZpZWxkLCBuZXdkYXRhLCBmaWxlc1swXSkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKGFsbG9icyk7IC8vIFRPRE8gOiBQQVMgVEVSTUlORS4uLiBKQU1BSVMgVVRJTElTRS4uLlxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIEZvcm0gc2FucyBmaWNoaWVyXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlT2JqKG9iaiwgZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImdsdy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImRpc3BsYXlmb3JtXCI+XHJcbiAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJyZXN1bHRFeGNlcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIFVuYWJsZSB0byBxdWVyeSA6IHt7cmVzdWx0RXhjZXB0aW9ufX1cclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImdsdy1zZWFyY2gtZm9ybVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heHJvd3NcIiBbZm9ybUdyb3VwXT1cImZvcm0yXCI+XHJcbiAgICAgICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIk1heFJvd1wiIGZvcm1Db250cm9sTmFtZT1cIl9NYXhSb3dfXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBtYXhyb3cgb2YgbWF4cm93c1wiIFt2YWx1ZV09XCJtYXhyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWF4cm93XCI+e3ttYXhyb3d9fSBvYmplY3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbWF4cm93XCI+IERlZmF1bHQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9uU2VhcmNoKClcIj5cclxuICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgICBTZWFyY2hcclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgPC9tYXQtY2FyZD5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiZGlzcGxheXJlc3VsdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIiAqbmdJZj1cImRhdGFTb3VyY2U7IGVsc2UgU3Bpbm5lclwiPlxyXG4gICAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXBsdXNcIiAoY2xpY2spPVwiQWRkT2JqKClcIiAqbmdJZj1cImNhbkFkZFRoaXMoKVwiPlxyXG4gICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBvYmpcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1leWVcIiBbcm91dGVyTGlua109XCJkaXNwbGF5T2JqTGlua1RoaXMob2JqKVwiICpuZ0lmPVwiY2FuRGlzcGxheU9ialRoaXMob2JqKVwiPlxyXG4gICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cImFjdGlvbi5pY29uXCIgW3JvdXRlckxpbmtdPVwiYWN0aW9uLnJvdXRlckxpbmtGY3Qob2JqKVwiICpuZ0lmPVwiYWN0aW9uLmljb24uaWNvbiAmJiAoIWFjdGlvbi5kaXNwbGF5IHx8IGFjdGlvbi5kaXNwbGF5KG9iaiwgYWN0aW9uLm5hbWUpKVwiPlxyXG4gICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cImFjdGlvbi5pY29uXCIgW3JvdXRlckxpbmtdPVwiYWN0aW9uLnJvdXRlckxpbmtGY3Qob2JqKVwiICpuZ0lmPVwiIWFjdGlvbi5pY29uLmljb24gJiYgKCFhY3Rpb24uZGlzcGxheSB8fCBhY3Rpb24uZGlzcGxheShvYmosIGFjdGlvbi5uYW1lKSlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtdHJhc2gtYWx0XCIgKGNsaWNrKT1cIkRlbGV0ZU9iaihvYmopXCIgKm5nSWY9XCJjYW5EZWxldGVUaGlzKG9iailcIj5cclxuICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1wZW5jaWxcIiAoY2xpY2spPVwiRWRpdE9iaihvYmopXCIgKm5nSWY9XCJjYW5FZGl0VGhpcyhvYmopXCI+XHJcbiAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZ2x3LXJlc3VsdC10YWJsZVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5zVG9EaXNwbGF5XCI+PC90cj5cclxuICAgICAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCBteVJvd0RhdGE7IGNvbHVtbnM6IGNvbHVtbnNUb0Rpc3BsYXlcIj48L3RyPlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3IgcGFnZVNpemU9XCIxMFwiPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNTcGlubmVyPlxyXG4gICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|