@vendure/admin-ui 1.7.2 → 1.7.4
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/bundles/vendure-admin-ui-catalog.umd.js +27 -17
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +2 -2
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-marketing.umd.js +2 -2
- package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-settings.umd.js +2 -0
- package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +2 -2
- package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
- package/core/common/version.d.ts +1 -1
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/esm2015/catalog/components/generate-product-variants/generate-product-variants.component.js +1 -1
- package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +28 -18
- package/esm2015/core/common/generated-types.js +1 -1
- package/esm2015/core/common/introspection-result.js +1 -1
- package/esm2015/core/common/utilities/configurable-operation-utils.js +2 -2
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/data/definitions/order-definitions.js +443 -443
- package/esm2015/core/data/definitions/product-definitions.js +743 -743
- package/esm2015/core/shared/components/custom-field-control/custom-field-control.component.js +1 -1
- package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +1 -1
- package/esm2015/core/shared/pipes/custom-field-label.pipe.js +1 -1
- package/esm2015/core/shared/pipes/locale-currency.pipe.js +1 -1
- package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +1 -1
- package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +3 -3
- package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +3 -1
- package/fesm2015/vendure-admin-ui-catalog.js +27 -17
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +1211 -1211
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.js +2 -2
- package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.js +2 -0
- package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
- package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
- package/package.json +2 -2
package/esm2015/core/shared/components/custom-field-control/custom-field-control.component.js
CHANGED
|
@@ -58,4 +58,4 @@ CustomFieldControlComponent.propDecorators = {
|
|
|
58
58
|
readonly: [{ type: Input }],
|
|
59
59
|
customComponentPlaceholder: [{ type: ViewChild, args: ['customComponentPlaceholder', { read: ViewContainerRef },] }]
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jdXN0b20tZmllbGQtY29udHJvbC9jdXN0b20tZmllbGQtY29udHJvbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsS0FBSyxFQUFVLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFDSCwyQkFBMkIsR0FHOUIsTUFBTSwwRUFBMEUsQ0FBQztBQUVsRjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBY3BDLFlBQ1ksV0FBd0IsRUFDeEIsMkJBQXdEO1FBRHhELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFaM0QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBVXRCLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDckMsT0FBTyxFQUFFO2FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsTUFBTSxNQUFNLHFCQUNMLElBQUksQ0FBQyxXQUFXLENBQ3RCLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsMEJBQTBCLENBQ2xFLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3hCLENBQUM7UUFDRixJQUFJLEVBQUUsRUFBRTtZQUNKLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDakM7UUFDRCxRQUFRLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxzQkFBc0I7Z0JBQ3ZCLHVDQUNPLE1BQU0sS0FDVCxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFDbEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQ2xCLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxJQUN0QjtZQUNOLEtBQUssd0JBQXdCO2dCQUN6Qix1Q0FDTyxNQUFNLEtBQ1QsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFDeEI7WUFDTixLQUFLLDJCQUEyQjtnQkFDNUIsdUNBQ08sTUFBTSxLQUNULEdBQUcsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUN2QixHQUFHLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFDdkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQzNCO1lBQ047Z0JBQ0kseUJBQ08sTUFBTSxFQUNYO1NBQ1Q7SUFDTCxDQUFDOzs7WUFwRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLGdoQ0FBb0Q7O2FBRXZEOzs7WUFmUSxXQUFXO1lBRWhCLDJCQUEyQjs7O3lCQWUxQixLQUFLO3dCQUNMLEtBQUssU0FBQyx1QkFBdUI7MEJBQzdCLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUNMLEtBQUs7eUNBRUwsU0FBUyxTQUFDLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IElucHV0Q29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29uZmlnLCBDdXN0b21GaWVsZHNGcmFnbWVudCwgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEN1c3RvbUZpZWxkQ29tcG9uZW50U2VydmljZSxcclxuICAgIEN1c3RvbUZpZWxkQ29udHJvbCxcclxuICAgIEN1c3RvbUZpZWxkRW50aXR5TmFtZSxcclxufSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY3VzdG9tLWZpZWxkLWNvbXBvbmVudC9jdXN0b20tZmllbGQtY29tcG9uZW50LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY29tcG9uZW50IHJlbmRlcnMgdGhlIGFwcHJvcHJpYXRlIHR5cGUgb2YgZm9ybSBpbnB1dCBjb250cm9sIGJhc2VkXHJcbiAqIG9uIHRoZSBcInR5cGVcIiBwcm9wZXJ0eSBvZiB0aGUgcHJvdmlkZWQgQ3VzdG9tRmllbGRDb25maWcuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWN1c3RvbS1maWVsZC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZmllbGQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b20tZmllbGQtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGVudGl0eU5hbWU6IEN1c3RvbUZpZWxkRW50aXR5TmFtZTtcclxuICAgIEBJbnB1dCgnY3VzdG9tRmllbGRzRm9ybUdyb3VwJykgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBjdXN0b21GaWVsZDogQ3VzdG9tRmllbGRzRnJhZ21lbnQ7XHJcbiAgICBASW5wdXQoKSBjb21wYWN0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICAgIGhhc0N1c3RvbUNvbnRyb2wgPSBmYWxzZTtcclxuICAgIEBWaWV3Q2hpbGQoJ2N1c3RvbUNvbXBvbmVudFBsYWNlaG9sZGVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudFBsYWNlaG9sZGVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICAgIHByaXZhdGUgY3VzdG9tQ29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxDdXN0b21GaWVsZENvbnRyb2w+IHwgdW5kZWZpbmVkO1xyXG4gICAgdWlMYW5ndWFnZSQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlPjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGN1c3RvbUZpZWxkQ29tcG9uZW50U2VydmljZTogQ3VzdG9tRmllbGRDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudWlMYW5ndWFnZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudWlTdGF0ZSgpXHJcbiAgICAgICAgICAgIC5zdHJlYW0kLnBpcGUobWFwKCh7IHVpU3RhdGUgfSkgPT4gdWlTdGF0ZS5sYW5ndWFnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpZWxkRGVmaW5pdGlvbigpOiBDdXN0b21GaWVsZENvbmZpZyAmIHsgdWk/OiBJbnB1dENvbXBvbmVudENvbmZpZyB9IHtcclxuICAgICAgICBjb25zdCBjb25maWc6IEN1c3RvbUZpZWxkc0ZyYWdtZW50ICYgeyB1aT86IElucHV0Q29tcG9uZW50Q29uZmlnIH0gPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuY3VzdG9tRmllbGQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuY3VzdG9tRmllbGRDb21wb25lbnRTZXJ2aWNlLmN1c3RvbUZpZWxkQ29tcG9uZW50RXhpc3RzKFxyXG4gICAgICAgICAgICB0aGlzLmVudGl0eU5hbWUsXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGQubmFtZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgICBjb25maWcudWkgPSB7IGNvbXBvbmVudDogaWQgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoIChjb25maWcuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlICdJbnRDdXN0b21GaWVsZENvbmZpZyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICBtaW46IGNvbmZpZy5pbnRNaW4sXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4OiBjb25maWcuaW50TWF4LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0ZXA6IGNvbmZpZy5pbnRTdGVwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY2FzZSAnRmxvYXRDdXN0b21GaWVsZENvbmZpZyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICBtaW46IGNvbmZpZy5mbG9hdE1pbixcclxuICAgICAgICAgICAgICAgICAgICBtYXg6IGNvbmZpZy5mbG9hdE1heCxcclxuICAgICAgICAgICAgICAgICAgICBzdGVwOiBjb25maWcuZmxvYXRTdGVwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY2FzZSAnRGF0ZVRpbWVDdXN0b21GaWVsZENvbmZpZyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICBtaW46IGNvbmZpZy5kYXRldGltZU1pbixcclxuICAgICAgICAgICAgICAgICAgICBtYXg6IGNvbmZpZy5kYXRldGltZU1heCxcclxuICAgICAgICAgICAgICAgICAgICBzdGVwOiBjb25maWcuZGF0ZXRpbWVTdGVwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js
CHANGED
|
@@ -38,4 +38,4 @@ SelectFormInputComponent.ctorParameters = () => [
|
|
|
38
38
|
SelectFormInputComponent.propDecorators = {
|
|
39
39
|
readonly: [{ type: Input }]
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZvcm0taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvZHluYW1pYy1mb3JtLWlucHV0cy9zZWxlY3QtZm9ybS1pbnB1dC9zZWxlY3QtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRW5FOzs7Ozs7O0dBT0c7QUFPSCxNQUFNLE9BQU8sd0JBQXdCO0lBV2pDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUpoRCxJQUFJLE9BQU87O1FBQ1AsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDBDQUFFLE9BQU8sS0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUMxRCxDQUFDO0lBSUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7O0FBbEJlLDJCQUFFLEdBQTJCLG1CQUFtQixDQUFDOztZQVBwRSxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsZ1lBQWlEO2dCQUVqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWZRLFdBQVc7Ozt1QkFrQmYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERlZmF1bHRGb3JtQ29tcG9uZW50Q29uZmlnLCBEZWZhdWx0Rm9ybUNvbXBvbmVudElkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWdGcmFnbWVudCwgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVXNlcyBhIHNlbGVjdCBpbnB1dCB0byBhbGxvdyB0aGUgc2VsZWN0aW9uIG9mIGEgc3RyaW5nIHZhbHVlLiBTaG91bGQgYmUgdXNlZCB3aXRoXHJcbiAqIGBzdHJpbmdgIHR5cGUgZmllbGRzIHdpdGggb3B0aW9ucy5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20taW5wdXQtY29tcG9uZW50c1xyXG4gKiBAZG9jc1BhZ2UgZGVmYXVsdC1pbnB1dHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItc2VsZWN0LWZvcm0taW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1mb3JtLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC1mb3JtLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdEZvcm1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEZvcm1JbnB1dENvbXBvbmVudCwgT25Jbml0IHtcclxuICAgIHN0YXRpYyByZWFkb25seSBpZDogRGVmYXVsdEZvcm1Db21wb25lbnRJZCA9ICdzZWxlY3QtZm9ybS1pbnB1dCc7XHJcbiAgICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICAgIGNvbmZpZzogRGVmYXVsdEZvcm1Db21wb25lbnRDb25maWc8J3NlbGVjdC1mb3JtLWlucHV0Jz4gJiBDdXN0b21GaWVsZENvbmZpZ0ZyYWdtZW50O1xyXG4gICAgdWlMYW5ndWFnZSQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlPjtcclxuXHJcbiAgICBnZXQgb3B0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudWk/Lm9wdGlvbnMgfHwgdGhpcy5jb25maWcub3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnVpTGFuZ3VhZ2UkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnQudWlTdGF0ZSgpLm1hcFN0cmVhbSgoeyB1aVN0YXRlIH0pID0+IHVpU3RhdGUubGFuZ3VhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -28,4 +28,4 @@ CustomFieldLabelPipe.decorators = [
|
|
|
28
28
|
pure: true,
|
|
29
29
|
},] }
|
|
30
30
|
];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWxhYmVsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9jdXN0b20tZmllbGQtbGFiZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUlwRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFNBQVMsQ0FBQyxLQUE0QyxFQUFFLGNBQW1DO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hFLElBQUksS0FBSyxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssY0FBYyxDQUFDLENBQUM7WUFDakUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDL0M7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBVTtRQUNsQyxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBckJKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsSUFBSTthQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRDb25maWcsIExhbmd1YWdlQ29kZSwgU3RyaW5nRmllbGRPcHRpb24gfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBEaXNwbGF5cyBhIGxvY2FsaXplZCBsYWJlbCBmb3IgYSBDdXN0b21GaWVsZCBvciBTdHJpbmdGaWVsZE9wdGlvbiwgZmFsbGluZyBiYWNrIHRvIHRoZVxyXG4gKiBuYW1lL3ZhbHVlIGlmIG5vbmUgYXJlIGRlZmluZWQuXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnY3VzdG9tRmllbGRMYWJlbCcsXHJcbiAgICBwdXJlOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogQ3VzdG9tRmllbGRDb25maWcgfCBTdHJpbmdGaWVsZE9wdGlvbiwgdWlMYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IGxhYmVsIH0gPSB2YWx1ZTtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5pc0N1c3RvbUZpZWxkQ29uZmlnKHZhbHVlKSA/IHZhbHVlLm5hbWUgOiB2YWx1ZS52YWx1ZTtcclxuICAgICAgICBpZiAobGFiZWwpIHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBsYWJlbC5maW5kKGwgPT4gbC5sYW5ndWFnZUNvZGUgPT09IHVpTGFuZ3VhZ2VDb2RlKTtcclxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2gudmFsdWUgOiBsYWJlbFswXS52YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0N1c3RvbUZpZWxkQ29uZmlnKGlucHV0OiBhbnkpOiBpbnB1dCBpcyBDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgcmV0dXJuIGlucHV0Lmhhc093blByb3BlcnR5KCduYW1lJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -45,4 +45,4 @@ LocaleCurrencyPipe.ctorParameters = () => [
|
|
|
45
45
|
{ type: DataService, decorators: [{ type: Optional }] },
|
|
46
46
|
{ type: ChangeDetectorRef, decorators: [{ type: Optional }] }
|
|
47
47
|
];
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9waXBlcy9sb2NhbGUtY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7R0FXRztBQUtILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBQ2xELFlBQXdCLFdBQXlCLEVBQWMsaUJBQXFDO1FBQ2hHLEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWMsRUFBRSxHQUFHLElBQWU7UUFDeEMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxFQUFFO1lBQy9ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUMvQixJQUFJO2dCQUNBLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRTtvQkFDdkMsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLFFBQVEsRUFBRSxZQUFZO2lCQUN6QixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pCO1lBQUMsT0FBTyxDQUFNLEVBQUU7Z0JBQ2IsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hDO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUF4QkosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxLQUFLO2FBQ2Q7OztZQW5CUSxXQUFXLHVCQXFCSCxRQUFRO1lBdkJoQixpQkFBaUIsdUJBdUI4QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBMb2NhbGVCYXNlUGlwZSB9IGZyb20gJy4vbG9jYWxlLWJhc2UucGlwZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEZvcm1hdHMgYSBWZW5kdXJlIG1vbmV0YXJ5IHZhbHVlIChpbiBjZW50cykgaW50byB0aGUgY29ycmVjdCBmb3JtYXQgZm9yIHRoZSBjb25maWd1cmVkIGN1cnJlbmN5IGFuZCBkaXNwbGF5XHJcbiAqIGxvY2FsZS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgSFRNTFxyXG4gKiB7eyB2YXJpYW50LnByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5IH19XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHBpcGVzXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnbG9jYWxlQ3VycmVuY3knLFxyXG4gICAgcHVyZTogZmFsc2UsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGVDdXJyZW5jeVBpcGUgZXh0ZW5kcyBMb2NhbGVCYXNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgZGF0YVNlcnZpY2U/OiBEYXRhU2VydmljZSwgQE9wdGlvbmFsKCkgY2hhbmdlRGV0ZWN0b3JSZWY/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGRhdGFTZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBzdHJpbmcgfCB1bmtub3duIHtcclxuICAgICAgICBjb25zdCBbY3VycmVuY3lDb2RlLCBsb2NhbGVdID0gYXJncztcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgY3VycmVuY3lDb2RlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVMb2NhbGUgPSB0aGlzLmdldEFjdGl2ZUxvY2FsZShsb2NhbGUpO1xyXG4gICAgICAgICAgICBjb25zdCBtYWpvclVuaXRzID0gdmFsdWUgLyAxMDA7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGFjdGl2ZUxvY2FsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiAnY3VycmVuY3knLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICB9KS5mb3JtYXQobWFqb3JVbml0cyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ham9yVW5pdHMudG9GaXhlZCgyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -195,4 +195,4 @@ CustomerGroupListComponent.ctorParameters = () => [
|
|
|
195
195
|
{ type: ActivatedRoute },
|
|
196
196
|
{ type: Router }
|
|
197
197
|
];
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2N1c3RvbWVyL3NyYy9jb21wb25lbnRzL2N1c3RvbWVyLWdyb3VwLWxpc3QvY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsRUFNZCxZQUFZLEVBQ1osbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBUzVILE1BQU0sT0FBTywwQkFDVCxTQUFRLGlCQUdQO0lBaUJELFlBQ1ksV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzNCLEtBQXFCLEVBQ2xCLE1BQWM7UUFFeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQU5iLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQW5CNUIsZUFBVSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTWpDLHdCQUFtQixHQUFhLEVBQUUsQ0FBQztRQUNuQyx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBaUM7WUFDckUsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsQ0FBQztZQUNQLFVBQVUsRUFBRSxFQUFFO1NBQ2pCLENBQUMsQ0FBQztRQUNLLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO1FBVXRFLEtBQUssQ0FBQyxVQUFVLENBQ1osQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxFQUNwRixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQzNCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNiLE9BQU8sRUFBRTtnQkFDTCxJQUFJO2dCQUNKLElBQUk7Z0JBQ0osTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtpQkFDNUM7YUFDSjtTQUNKLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO2FBQ3ZCLElBQUksQ0FDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUN2RCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUM3QixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksYUFBYSxFQUFFO2dCQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssYUFBYSxDQUFDLENBQUM7YUFDbkQ7UUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEVBQUUsQ0FBQyxDQUFDLENBQzdDLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxhQUFhLENBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLDBCQUEwQixDQUNsQyxDQUFDLElBQUksQ0FDRixTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BELElBQUksV0FBVyxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO3FCQUMzQiw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFO29CQUMzQyxJQUFJO29CQUNKLElBQUk7b0JBQ0osTUFBTSxFQUFFO3dCQUNKLFlBQVksRUFBRTs0QkFDVixRQUFRLEVBQUUsVUFBVTt5QkFDdkI7cUJBQ0o7aUJBQ0osQ0FBQztxQkFDRCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsR0FBRyxDQUFDLGFBQWEsMENBQUUsU0FBUyxDQUFBLEVBQUEsQ0FBQyxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssbUNBQUksRUFBRSxDQUFBLEVBQUEsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFDLE9BQUEsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsVUFBVSxtQ0FBSSxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUN0RixJQUFJLENBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2YsTUFBTTtZQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsaUNBQU0sTUFBTSxLQUFFLFdBQVcsRUFBRSxFQUFFLElBQUc7WUFDL0UsQ0FBQyxDQUFDLEtBQUssQ0FDZCxDQUNKO2FBQ0EsU0FBUyxDQUNOLEdBQUcsRUFBRTtZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLEVBQUU7Z0JBQ2hFLE1BQU0sRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtZQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7Z0JBQzVELE1BQU0sRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlO1FBQ2xCLElBQUksQ0FBQyxZQUFZO2FBQ1osTUFBTSxDQUFDO1lBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyx3Q0FBd0MsQ0FBQztZQUNsRCxPQUFPLEVBQUU7Z0JBQ0wsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQ2hELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7YUFDbkU7U0FDSixDQUFDO2FBQ0QsSUFBSSxDQUNELFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNqQixRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQzVFLEVBRUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2YsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELGVBQWU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7cUJBQzNCLG9CQUFvQixFQUFFO3FCQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDbkU7UUFDTCxDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsQ0FDTixNQUFNLENBQUMsRUFBRTtZQUNMLElBQUksT0FBTyxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDLEVBQUU7b0JBQ2hFLE1BQU0sRUFBRSxlQUFlO2lCQUMxQixDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtZQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUU7Z0JBQzVELE1BQU0sRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUE4QjtRQUNqQyxJQUFJLENBQUMsWUFBWTthQUNaLGFBQWEsQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNmLE1BQU07WUFDRixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLGlCQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFLLE1BQU0sRUFBRztZQUM1RSxDQUFDLENBQUMsS0FBSyxDQUNkLENBQ0o7YUFDQSxTQUFTLENBQ04sR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsRUFBRTtnQkFDaEUsTUFBTSxFQUFFLGVBQWU7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRTtnQkFDNUQsTUFBTSxFQUFFLGVBQWU7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDVixDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sTUFBTSxxQkFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUNqRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBa0Q7UUFDekQsSUFBSSxDQUFDLFlBQVk7YUFDWixhQUFhLENBQUMsaUNBQWlDLEVBQUU7WUFDOUMsTUFBTSxFQUFFO2dCQUNKLEtBQUs7Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCO1lBQ0QsSUFBSSxFQUFFLElBQUk7WUFDVixhQUFhLEVBQUUsS0FBSztTQUN2QixDQUFDO2FBQ0QsSUFBSSxDQUNELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUNwQixXQUFXO1lBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTtpQkFDcEIsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUM7aUJBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLEtBQUssQ0FDZCxDQUNKO2FBQ0EsU0FBUyxDQUFDO1lBQ1AsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLEVBQUU7b0JBQzNFLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDNUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUN4QixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXFCLEVBQUUsV0FBcUI7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDaEYsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw4Q0FBOEMsQ0FBQyxFQUFFO29CQUNoRixhQUFhLEVBQUUsV0FBVyxDQUFDLE1BQU07b0JBQ2pDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDeEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBcFBKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxrM01BQW1EO2dCQUVuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWhDRyxXQUFXO1lBUVgsbUJBQW1CO1lBRG5CLFlBQVk7WUFYUCxjQUFjO1lBQUUsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7XG4gICAgQmFzZUxpc3RDb21wb25lbnQsXG4gICAgRGF0YVNlcnZpY2UsXG4gICAgRGVsZXRpb25SZXN1bHQsXG4gICAgR2V0Q3VzdG9tZXJHcm91cHMsXG4gICAgR2V0Q3VzdG9tZXJHcm91cHNRdWVyeSxcbiAgICBHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycyxcbiAgICBHZXRab25lcyxcbiAgICBMb2dpY2FsT3BlcmF0b3IsXG4gICAgTW9kYWxTZXJ2aWNlLFxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtc2hvcC10eXBlcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBkZWJvdW5jZVRpbWUsXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtYXBUbyxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVVudGlsLFxuICAgIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtY3VzdG9tZXItdG8tZ3JvdXAtZGlhbG9nL2FkZC1jdXN0b21lci10by1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWVyR3JvdXBEZXRhaWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21lci1ncm91cC1kZXRhaWwtZGlhbG9nL2N1c3RvbWVyLWdyb3VwLWRldGFpbC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbWVyR3JvdXBNZW1iZXJGZXRjaFBhcmFtcyB9IGZyb20gJy4uL2N1c3RvbWVyLWdyb3VwLW1lbWJlci1saXN0L2N1c3RvbWVyLWdyb3VwLW1lbWJlci1saXN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLWN1c3RvbWVyLWdyb3VwLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1ncm91cC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b21lci1ncm91cC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyR3JvdXBMaXN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBCYXNlTGlzdENvbXBvbmVudDxcbiAgICAgICAgR2V0Q3VzdG9tZXJHcm91cHNRdWVyeSxcbiAgICAgICAgR2V0Q3VzdG9tZXJHcm91cHNRdWVyeVsnY3VzdG9tZXJHcm91cHMnXVsnaXRlbXMnXVtudW1iZXJdXG4gICAgPlxuICAgIGltcGxlbWVudHMgT25Jbml0XG57XG4gICAgc2VhcmNoVGVybSA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgYWN0aXZlR3JvdXAkOiBPYnNlcnZhYmxlPEdldEN1c3RvbWVyR3JvdXBzLkl0ZW1zIHwgdW5kZWZpbmVkPjtcbiAgICBhY3RpdmVHcm91cElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgbGlzdElzRW1wdHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIG1lbWJlcnMkOiBPYnNlcnZhYmxlPEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLkl0ZW1zW10+O1xuICAgIG1lbWJlcnNUb3RhbCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBzZWxlY3RlZEN1c3RvbWVySWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZldGNoR3JvdXBNZW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3VzdG9tZXJHcm91cE1lbWJlckZldGNoUGFyYW1zPih7XG4gICAgICAgIHNraXA6IDAsXG4gICAgICAgIHRha2U6IDAsXG4gICAgICAgIGZpbHRlclRlcm06ICcnLFxuICAgIH0pO1xuICAgIHByaXZhdGUgcmVmcmVzaEFjdGl2ZUdyb3VwTWVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICAgICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgICAgICBzdXBlcihyb3V0ZXIsIHJvdXRlKTtcbiAgICAgICAgc3VwZXIuc2V0UXVlcnlGbihcbiAgICAgICAgICAgICguLi5hcmdzOiBhbnlbXSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmdldEN1c3RvbWVyR3JvdXBMaXN0KC4uLmFyZ3MpLnJlZmV0Y2hPbkNoYW5uZWxDaGFuZ2UoKSxcbiAgICAgICAgICAgIGRhdGEgPT4gZGF0YS5jdXN0b21lckdyb3VwcyxcbiAgICAgICAgICAgIChza2lwLCB0YWtlKSA9PiAoe1xuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc2tpcCxcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7IGNvbnRhaW5zOiB0aGlzLnNlYXJjaFRlcm0udmFsdWUgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc2VhcmNoVGVybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAyIDwgdmFsdWUubGVuZ3RoIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDI1MCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUdyb3VwSWQkID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxuICAgICAgICAgICAgbWFwKHBtID0+IHBtLmdldCgnY29udGVudHMnKSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJJZHMgPSBbXSkpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxpc3RJc0VtcHR5JCA9IHRoaXMuaXRlbXMkLnBpcGUobWFwKGdyb3VwcyA9PiBncm91cHMubGVuZ3RoID09PSAwKSk7XG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkID0gY29tYmluZUxhdGVzdCh0aGlzLml0ZW1zJCwgYWN0aXZlR3JvdXBJZCQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtncm91cHMsIGFjdGl2ZUdyb3VwSWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUdyb3VwSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3Vwcy5maW5kKGcgPT4gZy5pZCA9PT0gYWN0aXZlR3JvdXBJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAodmFsID0+ICh0aGlzLmFjdGl2ZUdyb3VwSWQgPSB2YWw/LmlkKSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG1lbWJlcnNSZXN1bHQkID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkLFxuICAgICAgICAgICAgdGhpcy5mZXRjaEdyb3VwTWVtYmVycyQsXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hBY3RpdmVHcm91cE1lbWJlcnMkLFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFthY3RpdmVHcm91cCwgeyBza2lwLCB0YWtlLCBmaWx0ZXJUZXJtIH1dKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cFdpdGhDdXN0b21lcnMoYWN0aXZlR3JvdXAuaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsQWRkcmVzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IGZpbHRlclRlcm0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwU3RyZWFtKHJlcyA9PiByZXMuY3VzdG9tZXJHcm91cD8uY3VzdG9tZXJzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1lbWJlcnMkID0gbWVtYmVyc1Jlc3VsdCQucGlwZShtYXAocmVzID0+IHJlcz8uaXRlbXMgPz8gW10pKTtcbiAgICAgICAgdGhpcy5tZW1iZXJzVG90YWwkID0gbWVtYmVyc1Jlc3VsdCQucGlwZShtYXAocmVzID0+IHJlcz8udG90YWxJdGVtcyA/PyAwKSk7XG4gICAgfVxuXG4gICAgY3JlYXRlKCkge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoQ3VzdG9tZXJHcm91cERldGFpbERpYWxvZ0NvbXBvbmVudCwgeyBsb2NhbHM6IHsgZ3JvdXA6IHsgbmFtZTogJycgfSB9IH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmNyZWF0ZUN1c3RvbWVyR3JvdXAoeyAuLi5yZXN1bHQsIGN1c3RvbWVySWRzOiBbXSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1zdWNjZXNzJyksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1lcnJvcicpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlKGdyb3VwSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmRpYWxvZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2N1c3RvbWVyLmNvbmZpcm0tZGVsZXRlLWN1c3RvbWVyLWdyb3VwJyksXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ2RhbmdlcicsIGxhYmVsOiBfKCdjb21tb24uZGVsZXRlJyksIHJldHVyblZhbHVlOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzcG9uc2UgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmRlbGV0ZUN1c3RvbWVyR3JvdXAoZ3JvdXBJZCkgOiBFTVBUWSxcbiAgICAgICAgICAgICAgICApLFxuXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGVsZXRlQ3VzdG9tZXJHcm91cC5yZXN1bHQgPT09IERlbGV0aW9uUmVzdWx0LkRFTEVURUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q3VzdG9tZXJHcm91cExpc3QoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKCkgPT4gKHsgZXJyb3JNZXNzYWdlOiBmYWxzZSB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoeyBlcnJvck1lc3NhZ2U6IHJlc3VsdC5kZWxldGVDdXN0b21lckdyb3VwLm1lc3NhZ2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQuZXJyb3JNZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKHJlc3VsdC5lcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWRlbGV0ZS1zdWNjZXNzJyksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtZXJyb3InKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHVwZGF0ZShncm91cDogR2V0Q3VzdG9tZXJHcm91cHMuSXRlbXMpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEN1c3RvbWVyR3JvdXBEZXRhaWxEaWFsb2dDb21wb25lbnQsIHsgbG9jYWxzOiB7IGdyb3VwIH0gfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIudXBkYXRlQ3VzdG9tZXJHcm91cCh7IGlkOiBncm91cC5pZCwgLi4ucmVzdWx0IH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLWVycm9yJyksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbG9zZU1lbWJlcnMoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4udGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMgfTtcbiAgICAgICAgZGVsZXRlIHBhcmFtcy5jb250ZW50cztcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLycsIHBhcmFtc10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ3ByZXNlcnZlJyB9KTtcbiAgICB9XG5cbiAgICBhZGRUb0dyb3VwKGdyb3VwOiBHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycy5DdXN0b21lckdyb3VwKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21kJyxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoY3VzdG9tZXJJZHMgPT5cbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJJZHNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5jdXN0b21lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZEN1c3RvbWVyc1RvR3JvdXAoZ3JvdXAuaWQsIGN1c3RvbWVySWRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwVG8oY3VzdG9tZXJJZHMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXyhgY3VzdG9tZXIuYWRkLWN1c3RvbWVycy10by1ncm91cC1zdWNjZXNzYCksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbWVyQ291bnQ6IHJlc3VsdC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cE5hbWU6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY3RpdmVHcm91cE1lbWJlcnMkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW107XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUZyb21Hcm91cChncm91cDogR2V0Wm9uZXMuWm9uZXMsIGN1c3RvbWVySWRzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLnJlbW92ZUN1c3RvbWVyc0Zyb21Hcm91cChncm91cC5pZCwgY3VzdG9tZXJJZHMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oYGN1c3RvbWVyLnJlbW92ZS1jdXN0b21lcnMtZnJvbS1ncm91cC1zdWNjZXNzYCksIHtcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXJJZHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICBncm91cE5hbWU6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW107XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2N1c3RvbWVyL3NyYy9jb21wb25lbnRzL2N1c3RvbWVyLWdyb3VwLWxpc3QvY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsRUFNZCxZQUFZLEVBQ1osbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBUzVILE1BQU0sT0FBTywwQkFDVCxTQUFRLGlCQUdQO0lBaUJELFlBQ1ksV0FBd0IsRUFDeEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzNCLEtBQXFCLEVBQ2xCLE1BQWM7UUFFeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxL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QUFFO29CQUNoRixhQUFhLEVBQUUsV0FBVyxDQUFDLE1BQU07b0JBQ2pDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDeEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBcFBKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxrM01BQW1EO2dCQUVuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWhDRyxXQUFXO1lBUVgsbUJBQW1CO1lBRG5CLFlBQVk7WUFYUCxjQUFjO1lBQUUsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VMaXN0Q29tcG9uZW50LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBEZWxldGlvblJlc3VsdCxcclxuICAgIEdldEN1c3RvbWVyR3JvdXBzLFxyXG4gICAgR2V0Q3VzdG9tZXJHcm91cHNRdWVyeSxcclxuICAgIEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLFxyXG4gICAgR2V0Wm9uZXMsXHJcbiAgICBMb2dpY2FsT3BlcmF0b3IsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL2dlbmVyYXRlZC1zaG9wLXR5cGVzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICAgIGRlYm91bmNlVGltZSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gICAgZmlsdGVyLFxyXG4gICAgbWFwLFxyXG4gICAgbWFwVG8sXHJcbiAgICBzd2l0Y2hNYXAsXHJcbiAgICB0YWtlVW50aWwsXHJcbiAgICB0YXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQWRkQ3VzdG9tZXJUb0dyb3VwRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLWN1c3RvbWVyLXRvLWdyb3VwLWRpYWxvZy9hZGQtY3VzdG9tZXItdG8tZ3JvdXAtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbWVyR3JvdXBEZXRhaWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jdXN0b21lci1ncm91cC1kZXRhaWwtZGlhbG9nL2N1c3RvbWVyLWdyb3VwLWRldGFpbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tZXJHcm91cE1lbWJlckZldGNoUGFyYW1zIH0gZnJvbSAnLi4vY3VzdG9tZXItZ3JvdXAtbWVtYmVyLWxpc3QvY3VzdG9tZXItZ3JvdXAtbWVtYmVyLWxpc3QuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItY3VzdG9tZXItZ3JvdXAtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b21lci1ncm91cC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyR3JvdXBMaXN0Q29tcG9uZW50XHJcbiAgICBleHRlbmRzIEJhc2VMaXN0Q29tcG9uZW50PFxyXG4gICAgICAgIEdldEN1c3RvbWVyR3JvdXBzUXVlcnksXHJcbiAgICAgICAgR2V0Q3VzdG9tZXJHcm91cHNRdWVyeVsnY3VzdG9tZXJHcm91cHMnXVsnaXRlbXMnXVtudW1iZXJdXHJcbiAgICA+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgICBzZWFyY2hUZXJtID0gbmV3IEZvcm1Db250cm9sKCcnKTtcclxuICAgIGFjdGl2ZUdyb3VwJDogT2JzZXJ2YWJsZTxHZXRDdXN0b21lckdyb3Vwcy5JdGVtcyB8IHVuZGVmaW5lZD47XHJcbiAgICBhY3RpdmVHcm91cElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBsaXN0SXNFbXB0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBtZW1iZXJzJDogT2JzZXJ2YWJsZTxHZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycy5JdGVtc1tdPjtcclxuICAgIG1lbWJlcnNUb3RhbCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHNlbGVjdGVkQ3VzdG9tZXJJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmZXRjaEdyb3VwTWVtYmVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbWVyR3JvdXBNZW1iZXJGZXRjaFBhcmFtcz4oe1xyXG4gICAgICAgIHNraXA6IDAsXHJcbiAgICAgICAgdGFrZTogMCxcclxuICAgICAgICBmaWx0ZXJUZXJtOiAnJyxcclxuICAgIH0pO1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dm9pZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHJvdXRlciwgcm91dGUpO1xyXG4gICAgICAgIHN1cGVyLnNldFF1ZXJ5Rm4oXHJcbiAgICAgICAgICAgICguLi5hcmdzOiBhbnlbXSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIuZ2V0Q3VzdG9tZXJHcm91cExpc3QoLi4uYXJncykucmVmZXRjaE9uQ2hhbm5lbENoYW5nZSgpLFxyXG4gICAgICAgICAgICBkYXRhID0+IGRhdGEuY3VzdG9tZXJHcm91cHMsXHJcbiAgICAgICAgICAgIChza2lwLCB0YWtlKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeyBjb250YWluczogdGhpcy5zZWFyY2hUZXJtLnZhbHVlIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0udmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKHZhbHVlID0+IDIgPCB2YWx1ZS5sZW5ndGggfHwgdmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoKCkpO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUdyb3VwSWQkID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocG0gPT4gcG0uZ2V0KCdjb250ZW50cycpKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJJZHMgPSBbXSkpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5saXN0SXNFbXB0eSQgPSB0aGlzLml0ZW1zJC5waXBlKG1hcChncm91cHMgPT4gZ3JvdXBzLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkID0gY29tYmluZUxhdGVzdCh0aGlzLml0ZW1zJCwgYWN0aXZlR3JvdXBJZCQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW2dyb3VwcywgYWN0aXZlR3JvdXBJZF0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVHcm91cElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3Vwcy5maW5kKGcgPT4gZy5pZCA9PT0gYWN0aXZlR3JvdXBJZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0YXAodmFsID0+ICh0aGlzLmFjdGl2ZUdyb3VwSWQgPSB2YWw/LmlkKSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBtZW1iZXJzUmVzdWx0JCA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR3JvdXAkLFxyXG4gICAgICAgICAgICB0aGlzLmZldGNoR3JvdXBNZW1iZXJzJCxcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJCxcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2FjdGl2ZUdyb3VwLCB7IHNraXAsIHRha2UsIGZpbHRlclRlcm0gfV0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVHcm91cCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDdXN0b21lckdyb3VwV2l0aEN1c3RvbWVycyhhY3RpdmVHcm91cC5pZCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbEFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IGZpbHRlclRlcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0ocmVzID0+IHJlcy5jdXN0b21lckdyb3VwPy5jdXN0b21lcnMpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5tZW1iZXJzJCA9IG1lbWJlcnNSZXN1bHQkLnBpcGUobWFwKHJlcyA9PiByZXM/Lml0ZW1zID8/IFtdKSk7XHJcbiAgICAgICAgdGhpcy5tZW1iZXJzVG90YWwkID0gbWVtYmVyc1Jlc3VsdCQucGlwZShtYXAocmVzID0+IHJlcz8udG90YWxJdGVtcyA/PyAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlKCkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEN1c3RvbWVyR3JvdXBEZXRhaWxEaWFsb2dDb21wb25lbnQsIHsgbG9jYWxzOiB7IGdyb3VwOiB7IG5hbWU6ICcnIH0gfSB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmNyZWF0ZUN1c3RvbWVyR3JvdXAoeyAuLi5yZXN1bHQsIGN1c3RvbWVySWRzOiBbXSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGUoZ3JvdXBJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmRpYWxvZyh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXygnY3VzdG9tZXIuY29uZmlybS1kZWxldGUtY3VzdG9tZXItZ3JvdXAnKSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnZGFuZ2VyJywgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSwgcmV0dXJuVmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPyB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLmRlbGV0ZUN1c3RvbWVyR3JvdXAoZ3JvdXBJZCkgOiBFTVBUWSxcclxuICAgICAgICAgICAgICAgICksXHJcblxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kZWxldGVDdXN0b21lckdyb3VwLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZyZXNoIGxpc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDdXN0b21lckdyb3VwTGlzdCgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCgpID0+ICh7IGVycm9yTWVzc2FnZTogZmFsc2UgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7IGVycm9yTWVzc2FnZTogcmVzdWx0LmRlbGV0ZUN1c3RvbWVyR3JvdXAubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdC5lcnJvck1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihyZXN1bHQuZXJyb3JNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdDdXN0b21lckdyb3VwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShncm91cDogR2V0Q3VzdG9tZXJHcm91cHMuSXRlbXMpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChDdXN0b21lckdyb3VwRGV0YWlsRGlhbG9nQ29tcG9uZW50LCB7IGxvY2FsczogeyBncm91cCB9IH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXIudXBkYXRlQ3VzdG9tZXJHcm91cCh7IGlkOiBncm91cC5pZCwgLi4ucmVzdWx0IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0N1c3RvbWVyR3JvdXAnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnQ3VzdG9tZXJHcm91cCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlTWVtYmVycygpIHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMucm91dGUuc25hcHNob3QucGFyYW1zIH07XHJcbiAgICAgICAgZGVsZXRlIHBhcmFtcy5jb250ZW50cztcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJywgcGFyYW1zXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncHJlc2VydmUnIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFRvR3JvdXAoZ3JvdXA6IEdldEN1c3RvbWVyR3JvdXBXaXRoQ3VzdG9tZXJzLkN1c3RvbWVyR3JvdXApIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChBZGRDdXN0b21lclRvR3JvdXBEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNpemU6ICdtZCcsXHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoY3VzdG9tZXJJZHMgPT5cclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21lcklkc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UuY3VzdG9tZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZEN1c3RvbWVyc1RvR3JvdXAoZ3JvdXAuaWQsIGN1c3RvbWVySWRzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXBUbyhjdXN0b21lcklkcykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogRU1QVFksXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKGBjdXN0b21lci5hZGQtY3VzdG9tZXJzLXRvLWdyb3VwLXN1Y2Nlc3NgKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21lckNvdW50OiByZXN1bHQubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cE5hbWU6IGdyb3VwLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJC5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVySWRzID0gW107XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGcm9tR3JvdXAoZ3JvdXA6IEdldFpvbmVzLlpvbmVzLCBjdXN0b21lcklkczogc3RyaW5nW10pIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmN1c3RvbWVyLnJlbW92ZUN1c3RvbWVyc0Zyb21Hcm91cChncm91cC5pZCwgY3VzdG9tZXJJZHMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKGBjdXN0b21lci5yZW1vdmUtY3VzdG9tZXJzLWZyb20tZ3JvdXAtc3VjY2Vzc2ApLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tZXJDb3VudDogY3VzdG9tZXJJZHMubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwTmFtZTogZ3JvdXAubmFtZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aXZlR3JvdXBNZW1iZXJzJC5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJJZHMgPSBbXTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -230,9 +230,9 @@ export class PromotionDetailComponent extends BaseDetailComponent {
|
|
|
230
230
|
PromotionDetailComponent.decorators = [
|
|
231
231
|
{ type: Component, args: [{
|
|
232
232
|
selector: 'vdr-promotion-detail',
|
|
233
|
-
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <clr-toggle-wrapper *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" [formControl]=\"detailForm.get(['enabled'])\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdatePromotion'\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\r\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\r\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\r\n <input\r\n id=\"couponCode\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"couponCode\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.per-customer-limit' | translate\" for=\"perCustomerUsageLimit\">\r\n <input\r\n id=\"perCustomerUsageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"999\"\r\n formControlName=\"perCustomerUsageLimit\"\r\n />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Promotion\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"promotion-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col\" formArrayName=\"conditions\">\r\n <label class=\"clr-control-label\">{{ 'marketing.conditions' | translate }}</label>\r\n <ng-container *ngFor=\"let condition of conditions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeCondition($event)\"\r\n [position]=\"i\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operation]=\"condition\"\r\n [operationDefinition]=\"getConditionDefinition(condition)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </ng-container>\r\n\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-condition' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let condition of getAvailableConditions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"addCondition(condition)\"\r\n >\r\n {{ condition.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\" formArrayName=\"actions\">\r\n <label class=\"clr-control-label\">{{ 'marketing.actions' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngFor=\"let action of actions; index as i\"\r\n (remove)=\"removeAction($event)\"\r\n [position]=\"i\"\r\n [operation]=\"action\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operationDefinition]=\"getActionDefinition(action)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-action' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let action of getAvailableActions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"addAction(action)\"\r\n >\r\n {{ action.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n",
|
|
233
|
+
template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <clr-toggle-wrapper *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" [formControl]=\"detailForm.get(['enabled'])\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"promotion-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdatePromotion'\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.starts-at' | translate\" for=\"startsAt\">\r\n <vdr-datetime-picker formControlName=\"startsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.ends-at' | translate\" for=\"endsAt\">\r\n <vdr-datetime-picker formControlName=\"endsAt\"></vdr-datetime-picker>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.coupon-code' | translate\" for=\"couponCode\">\r\n <input\r\n id=\"couponCode\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"text\"\r\n formControlName=\"couponCode\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'marketing.per-customer-limit' | translate\" for=\"perCustomerUsageLimit\">\r\n <input\r\n id=\"perCustomerUsageLimit\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n type=\"number\"\r\n min=\"1\"\r\n max=\"999\"\r\n formControlName=\"perCustomerUsageLimit\"\r\n />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Promotion\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"promotion-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col\" formArrayName=\"conditions\">\r\n <label class=\"clr-control-label\">{{ 'marketing.conditions' | translate }}</label>\r\n <ng-container *ngFor=\"let condition of conditions; index as i\">\r\n <vdr-configurable-input\r\n (remove)=\"removeCondition($event)\"\r\n [position]=\"i\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operation]=\"condition\"\r\n [operationDefinition]=\"getConditionDefinition(condition)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n </ng-container>\r\n\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-condition' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let condition of getAvailableConditions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addCondition(condition)\"\r\n >\r\n {{ condition.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\" formArrayName=\"actions\">\r\n <label class=\"clr-control-label\">{{ 'marketing.actions' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngFor=\"let action of actions; index as i\"\r\n (remove)=\"removeAction($event)\"\r\n [position]=\"i\"\r\n [operation]=\"action\"\r\n [readonly]=\"!('UpdatePromotion' | hasPermission)\"\r\n [operationDefinition]=\"getActionDefinition(action)\"\r\n [formControlName]=\"i\"\r\n ></vdr-configurable-input>\r\n <div>\r\n <vdr-dropdown *vdrIfPermissions=\"'UpdatePromotion'\">\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'marketing.add-action' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let action of getAvailableActions()\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n class=\"item-wrap\"\r\n (click)=\"addAction(action)\"\r\n >\r\n {{ action.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n",
|
|
234
234
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
235
|
-
styles: [""]
|
|
235
|
+
styles: [".item-wrap{white-space:normal}\n"]
|
|
236
236
|
},] }
|
|
237
237
|
];
|
|
238
238
|
PromotionDetailComponent.ctorParameters = () => [
|
|
@@ -244,4 +244,4 @@ PromotionDetailComponent.ctorParameters = () => [
|
|
|
244
244
|
{ type: FormBuilder },
|
|
245
245
|
{ type: NotificationService }
|
|
246
246
|
];
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hcmtldGluZy9zcmMvY29tcG9uZW50cy9wcm9tb3Rpb24tZGV0YWlsL3Byb21vdGlvbi1kZXRhaWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBYSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFNbkIsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBRXhCLG1CQUFtQixFQUVuQixtQkFBbUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUWhELE1BQU0sT0FBTyx3QkFDVCxTQUFRLG1CQUF1QztJQVkvQyxZQUNJLE1BQWMsRUFDZCxLQUFxQixFQUNyQixtQkFBd0MsRUFDaEMsY0FBaUMsRUFDL0IsV0FBd0IsRUFDMUIsV0FBd0IsRUFDeEIsbUJBQXdDO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTC9DLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FB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LFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLHltTkFBZ0Q7Z0JBRWhELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBM0J3QixNQUFNO1lBQXRCLGNBQWM7WUFnQm5CLG1CQUFtQjtZQWxCVyxpQkFBaUI7WUFXL0MsV0FBVztZQVZLLFdBQVc7WUFlM0IsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbiAgICBDcmVhdGVQcm9tb3Rpb25JbnB1dCxcclxuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBlbmNvZGVDb25maWdBcmdWYWx1ZSxcclxuICAgIGdldENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFByb21vdGlvbixcclxuICAgIFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICBVcGRhdGVQcm9tb3Rpb25JbnB1dCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvbW90aW9uLWRldGFpbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvbW90aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9tb3Rpb24tZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21vdGlvbkRldGFpbENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlRGV0YWlsQ29tcG9uZW50PFByb21vdGlvbi5GcmFnbWVudD5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgcHJvbW90aW9uJDogT2JzZXJ2YWJsZTxQcm9tb3Rpb24uRnJhZ21lbnQ+O1xyXG4gICAgZGV0YWlsRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgY29uZGl0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uW10gPSBbXTtcclxuICAgIGFjdGlvbnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbltdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBhbGxDb25kaXRpb25zOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10gPSBbXTtcclxuICAgIHByaXZhdGUgYWxsQWN0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBzZXJ2ZXJDb25maWdTZXJ2aWNlLCBkYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdQcm9tb3Rpb24nKTtcclxuICAgICAgICB0aGlzLmRldGFpbEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgY291cG9uQ29kZTogbnVsbCxcclxuICAgICAgICAgICAgcGVyQ3VzdG9tZXJVc2FnZUxpbWl0OiBudWxsLFxyXG4gICAgICAgICAgICBzdGFydHNBdDogbnVsbCxcclxuICAgICAgICAgICAgZW5kc0F0OiBudWxsLFxyXG4gICAgICAgICAgICBjb25kaXRpb25zOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgYWN0aW9uczogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkczogdGhpcy5mb3JtQnVpbGRlci5ncm91cChcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRzLnJlZHVjZSgoaGFzaCwgZmllbGQpID0+ICh7IC4uLmhhc2gsIFtmaWVsZC5uYW1lXTogJycgfSksIHt9KSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLnByb21vdGlvbiQgPSB0aGlzLmVudGl0eSQ7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9tb3Rpb24uZ2V0UHJvbW90aW9uQWN0aW9uc0FuZENvbmRpdGlvbnMoKS5zaW5nbGUkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGxBY3Rpb25zID0gZGF0YS5wcm9tb3Rpb25BY3Rpb25zO1xyXG4gICAgICAgICAgICB0aGlzLmFsbENvbmRpdGlvbnMgPSBkYXRhLnByb21vdGlvbkNvbmRpdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlQ29uZGl0aW9ucygpOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsbENvbmRpdGlvbnMuZmlsdGVyKG8gPT4gIXRoaXMuY29uZGl0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBvLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25kaXRpb25EZWZpbml0aW9uKGNvbmRpdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsQ29uZGl0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBjb25kaXRpb24uY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlQWN0aW9ucygpOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMuZmlsdGVyKG8gPT4gIXRoaXMuYWN0aW9ucy5maW5kKGEgPT4gYS5jb2RlID09PSBvLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3Rpb25EZWZpbml0aW9uKGFjdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBhY3Rpb24uY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUJ1dHRvbkVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmRpcnR5ICYmXHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS52YWxpZCAmJlxyXG4gICAgICAgICAgICAodGhpcy5jb25kaXRpb25zLmxlbmd0aCAhPT0gMCB8fCB0aGlzLmRldGFpbEZvcm0udmFsdWUuY291cG9uQ29kZSkgJiZcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmxlbmd0aCAhPT0gMFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5hZGRPcGVyYXRpb24oJ2NvbmRpdGlvbnMnLCBjb25kaXRpb24pO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEFjdGlvbihhY3Rpb246IENvbmZpZ3VyYWJsZU9wZXJhdGlvbikge1xyXG4gICAgICAgIHRoaXMuYWRkT3BlcmF0aW9uKCdhY3Rpb25zJywgYWN0aW9uKTtcclxuICAgICAgICB0aGlzLmRldGFpbEZvcm0ubWFya0FzRGlydHkoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVDb25kaXRpb24oY29uZGl0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICB0aGlzLnJlbW92ZU9wZXJhdGlvbignY29uZGl0aW9ucycsIGNvbmRpdGlvbik7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQWN0aW9uKGFjdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVPcGVyYXRpb24oJ2FjdGlvbnMnLCBhY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1BcnJheU9mKGtleTogJ2NvbmRpdGlvbnMnIHwgJ2FjdGlvbnMnKTogRm9ybUFycmF5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhaWxGb3JtLmdldChrZXkpIGFzIEZvcm1BcnJheTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRldGFpbEZvcm0uZGlydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgY29uc3QgaW5wdXQ6IENyZWF0ZVByb21vdGlvbklucHV0ID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBmb3JtVmFsdWUubmFtZSxcclxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgY291cG9uQ29kZTogZm9ybVZhbHVlLmNvdXBvbkNvZGUsXHJcbiAgICAgICAgICAgIHBlckN1c3RvbWVyVXNhZ2VMaW1pdDogZm9ybVZhbHVlLnBlckN1c3RvbWVyVXNhZ2VMaW1pdCxcclxuICAgICAgICAgICAgc3RhcnRzQXQ6IGZvcm1WYWx1ZS5zdGFydHNBdCxcclxuICAgICAgICAgICAgZW5kc0F0OiBmb3JtVmFsdWUuZW5kc0F0LFxyXG4gICAgICAgICAgICBjb25kaXRpb25zOiB0aGlzLm1hcE9wZXJhdGlvbnNUb0lucHV0cyh0aGlzLmNvbmRpdGlvbnMsIGZvcm1WYWx1ZS5jb25kaXRpb25zKSxcclxuICAgICAgICAgICAgYWN0aW9uczogdGhpcy5tYXBPcGVyYXRpb25zVG9JbnB1dHModGhpcy5hY3Rpb25zLCBmb3JtVmFsdWUuYWN0aW9ucyksXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkczogZm9ybVZhbHVlLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvbW90aW9uLmNyZWF0ZVByb21vdGlvbihpbnB1dCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoeyBjcmVhdGVQcm9tb3Rpb24gfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChjcmVhdGVQcm9tb3Rpb24uX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1Byb21vdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvbW90aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLycsIGNyZWF0ZVByb21vdGlvbi5pZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTWlzc2luZ0NvbmRpdGlvbnNFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihjcmVhdGVQcm9tb3Rpb24ubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9tb3Rpb24nLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5kZXRhaWxGb3JtLmRpcnR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5kZXRhaWxGb3JtLnZhbHVlO1xyXG4gICAgICAgIHRoaXMucHJvbW90aW9uJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcChwcm9tb3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0OiBVcGRhdGVQcm9tb3Rpb25JbnB1dCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb21vdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZm9ybVZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZvcm1WYWx1ZS5lbmFibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25Db2RlOiBmb3JtVmFsdWUuY291cG9uQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyQ3VzdG9tZXJVc2FnZUxpbWl0OiBmb3JtVmFsdWUucGVyQ3VzdG9tZXJVc2FnZUxpbWl0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydHNBdDogZm9ybVZhbHVlLnN0YXJ0c0F0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRzQXQ6IGZvcm1WYWx1ZS5lbmRzQXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHRoaXMubWFwT3BlcmF0aW9uc1RvSW5wdXRzKHRoaXMuY29uZGl0aW9ucywgZm9ybVZhbHVlLmNvbmRpdGlvbnMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiB0aGlzLm1hcE9wZXJhdGlvbnNUb0lucHV0cyh0aGlzLmFjdGlvbnMsIGZvcm1WYWx1ZS5hY3Rpb25zKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGRzOiBmb3JtVmFsdWUuY3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucHJvbW90aW9uLnVwZGF0ZVByb21vdGlvbihpbnB1dCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb21vdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb21vdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlIHRoZSBmb3JtIHZhbHVlcyB3aGVuIHRoZSBlbnRpdHkgY2hhbmdlcy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBQcm9tb3Rpb24uRnJhZ21lbnQsIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBuYW1lOiBlbnRpdHkubmFtZSxcclxuICAgICAgICAgICAgZW5hYmxlZDogZW50aXR5LmVuYWJsZWQsXHJcbiAgICAgICAgICAgIGNvdXBvbkNvZGU6IGVudGl0eS5jb3Vwb25Db2RlLFxyXG4gICAgICAgICAgICBwZXJDdXN0b21lclVzYWdlTGltaXQ6IGVudGl0eS5wZXJDdXN0b21lclVzYWdlTGltaXQsXHJcbiAgICAgICAgICAgIHN0YXJ0c0F0OiBlbnRpdHkuc3RhcnRzQXQsXHJcbiAgICAgICAgICAgIGVuZHNBdDogZW50aXR5LmVuZHNBdCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBlbnRpdHkuY29uZGl0aW9ucy5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE9wZXJhdGlvbignY29uZGl0aW9ucycsIG8pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGVudGl0eS5hY3Rpb25zLmZvckVhY2gobyA9PiB0aGlzLmFkZE9wZXJhdGlvbignYWN0aW9ucycsIG8pKTtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21GaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VzdG9tRmllbGRGb3JtVmFsdWVzKHRoaXMuY3VzdG9tRmllbGRzLCB0aGlzLmRldGFpbEZvcm0uZ2V0KCdjdXN0b21GaWVsZHMnKSwgZW50aXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGFuIGFycmF5IG9mIGNvbmRpdGlvbnMgb3IgYWN0aW9ucyB0byB0aGUgaW5wdXQgZm9ybWF0IGV4cGVjdGVkIGJ5IHRoZSBHcmFwaFFMIEFQSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBtYXBPcGVyYXRpb25zVG9JbnB1dHMoXHJcbiAgICAgICAgb3BlcmF0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uW10sXHJcbiAgICAgICAgZm9ybVZhbHVlT3BlcmF0aW9uczogYW55LFxyXG4gICAgKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXRbXSB7XHJcbiAgICAgICAgcmV0dXJuIG9wZXJhdGlvbnMubWFwKChvLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBjb2RlOiBvLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6IE9iamVjdC52YWx1ZXM8YW55Pihmb3JtVmFsdWVPcGVyYXRpb25zW2ldLmFyZ3MpLm1hcCgodmFsdWUsIGopID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogby5hcmdzW2pdLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZUNvbmZpZ0FyZ1ZhbHVlKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBuZXcgY29uZGl0aW9uIG9yIGFjdGlvbiB0byB0aGUgcHJvbW90aW9uLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkZE9wZXJhdGlvbihrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJywgb3BlcmF0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICBjb25zdCBvcGVyYXRpb25zQXJyYXkgPSB0aGlzLmZvcm1BcnJheU9mKGtleSk7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGtleSA9PT0gJ2NvbmRpdGlvbnMnID8gdGhpcy5jb25kaXRpb25zIDogdGhpcy5hY3Rpb25zO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gb3BlcmF0aW9uc0FycmF5LnZhbHVlLmZpbmRJbmRleChvID0+IG8uY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpO1xyXG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgY29uc3QgYXJnc0hhc2ggPSBvcGVyYXRpb24uYXJncy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAob3V0cHV0LCBhcmcpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIFthcmcubmFtZV06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ0FyZ1ZhbHVlKGFyZy52YWx1ZSkgPz8gdGhpcy5nZXREZWZhdWx0QXJnVmFsdWUoa2V5LCBvcGVyYXRpb24sIGFyZy5uYW1lKSxcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIG9wZXJhdGlvbnNBcnJheS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHtcclxuICAgICAgICAgICAgICAgICAgICBjb2RlOiBvcGVyYXRpb24uY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBhcmdzOiBhcmdzSGFzaCxcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgY29kZTogb3BlcmF0aW9uLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBvcGVyYXRpb24uYXJncy5tYXAoYSA9PiAoeyBuYW1lOiBhLm5hbWUsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERlZmF1bHRBcmdWYWx1ZShcclxuICAgICAgICBrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJyxcclxuICAgICAgICBvcGVyYXRpb246IENvbmZpZ3VyYWJsZU9wZXJhdGlvbixcclxuICAgICAgICBhcmdOYW1lOiBzdHJpbmcsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBkZWYgPVxyXG4gICAgICAgICAgICBrZXkgPT09ICdjb25kaXRpb25zJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmFsbENvbmRpdGlvbnMuZmluZChjID0+IGMuY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuYWxsQWN0aW9ucy5maW5kKGEgPT4gYS5jb2RlID09PSBvcGVyYXRpb24uY29kZSk7XHJcbiAgICAgICAgaWYgKGRlZikge1xyXG4gICAgICAgICAgICBjb25zdCBhcmdEZWYgPSBkZWYuYXJncy5maW5kKGEgPT4gYS5uYW1lID09PSBhcmdOYW1lKTtcclxuICAgICAgICAgICAgaWYgKGFyZ0RlZikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldERlZmF1bHRDb25maWdBcmdWYWx1ZShhcmdEZWYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGRldGVybWluZSBkZWZhdWx0IHZhbHVlIGZvciBcImFyZ05hbWVcImApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIGNvbmRpdGlvbiBvciBhY3Rpb24gZnJvbSB0aGUgcHJvbW90aW9uLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlbW92ZU9wZXJhdGlvbihrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJywgb3BlcmF0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICBjb25zdCBvcGVyYXRpb25zQXJyYXkgPSB0aGlzLmZvcm1BcnJheU9mKGtleSk7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGtleSA9PT0gJ2NvbmRpdGlvbnMnID8gdGhpcy5jb25kaXRpb25zIDogdGhpcy5hY3Rpb25zO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gb3BlcmF0aW9uc0FycmF5LnZhbHVlLmZpbmRJbmRleChvID0+IG8uY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgb3BlcmF0aW9uc0FycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21hcmtldGluZy9zcmMvY29tcG9uZW50cy9wcm9tb3Rpb24tZGV0YWlsL3Byb21vdGlvbi1kZXRhaWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBYSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxtQkFBbUIsRUFNbkIsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBRXhCLG1CQUFtQixFQUVuQixtQkFBbUIsR0FFdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUWhELE1BQU0sT0FBTyx3QkFDVCxTQUFRLG1CQUF1QztJQVkvQyxZQUNJLE1BQWMsRUFDZCxLQUFxQixFQUNyQixtQkFBd0MsRUFDaEMsY0FBaUMsRUFDL0IsV0FBd0IsRUFDMUIsV0FBd0IsRUFDeEIsbUJBQXdDO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTC9DLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FB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LFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLCtzTkFBZ0Q7Z0JBRWhELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBM0J3QixNQUFNO1lBQXRCLGNBQWM7WUFnQm5CLG1CQUFtQjtZQWxCVyxpQkFBaUI7WUFXL0MsV0FBVztZQVZLLFdBQVc7WUFlM0IsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG4gICAgQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbiAgICBDcmVhdGVQcm9tb3Rpb25JbnB1dCxcclxuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBlbmNvZGVDb25maWdBcmdWYWx1ZSxcclxuICAgIGdldENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgZ2V0RGVmYXVsdENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFByb21vdGlvbixcclxuICAgIFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICBVcGRhdGVQcm9tb3Rpb25JbnB1dCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvbW90aW9uLWRldGFpbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvbW90aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9tb3Rpb24tZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21vdGlvbkRldGFpbENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlRGV0YWlsQ29tcG9uZW50PFByb21vdGlvbi5GcmFnbWVudD5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgcHJvbW90aW9uJDogT2JzZXJ2YWJsZTxQcm9tb3Rpb24uRnJhZ21lbnQ+O1xyXG4gICAgZGV0YWlsRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgY29uZGl0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uW10gPSBbXTtcclxuICAgIGFjdGlvbnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbltdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBhbGxDb25kaXRpb25zOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10gPSBbXTtcclxuICAgIHByaXZhdGUgYWxsQWN0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBzZXJ2ZXJDb25maWdTZXJ2aWNlLCBkYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdQcm9tb3Rpb24nKTtcclxuICAgICAgICB0aGlzLmRldGFpbEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgY291cG9uQ29kZTogbnVsbCxcclxuICAgICAgICAgICAgcGVyQ3VzdG9tZXJVc2FnZUxpbWl0OiBudWxsLFxyXG4gICAgICAgICAgICBzdGFydHNBdDogbnVsbCxcclxuICAgICAgICAgICAgZW5kc0F0OiBudWxsLFxyXG4gICAgICAgICAgICBjb25kaXRpb25zOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKSxcclxuICAgICAgICAgICAgYWN0aW9uczogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkczogdGhpcy5mb3JtQnVpbGRlci5ncm91cChcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRzLnJlZHVjZSgoaGFzaCwgZmllbGQpID0+ICh7IC4uLmhhc2gsIFtmaWVsZC5uYW1lXTogJycgfSksIHt9KSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLnByb21vdGlvbiQgPSB0aGlzLmVudGl0eSQ7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9tb3Rpb24uZ2V0UHJvbW90aW9uQWN0aW9uc0FuZENvbmRpdGlvbnMoKS5zaW5nbGUkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGxBY3Rpb25zID0gZGF0YS5wcm9tb3Rpb25BY3Rpb25zO1xyXG4gICAgICAgICAgICB0aGlzLmFsbENvbmRpdGlvbnMgPSBkYXRhLnByb21vdGlvbkNvbmRpdGlvbnM7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlQ29uZGl0aW9ucygpOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsbENvbmRpdGlvbnMuZmlsdGVyKG8gPT4gIXRoaXMuY29uZGl0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBvLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25kaXRpb25EZWZpbml0aW9uKGNvbmRpdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsQ29uZGl0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBjb25kaXRpb24uY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlQWN0aW9ucygpOiBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMuZmlsdGVyKG8gPT4gIXRoaXMuYWN0aW9ucy5maW5kKGEgPT4gYS5jb2RlID09PSBvLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3Rpb25EZWZpbml0aW9uKGFjdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucy5maW5kKGMgPT4gYy5jb2RlID09PSBhY3Rpb24uY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUJ1dHRvbkVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmRpcnR5ICYmXHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS52YWxpZCAmJlxyXG4gICAgICAgICAgICAodGhpcy5jb25kaXRpb25zLmxlbmd0aCAhPT0gMCB8fCB0aGlzLmRldGFpbEZvcm0udmFsdWUuY291cG9uQ29kZSkgJiZcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmxlbmd0aCAhPT0gMFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5hZGRPcGVyYXRpb24oJ2NvbmRpdGlvbnMnLCBjb25kaXRpb24pO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEFjdGlvbihhY3Rpb246IENvbmZpZ3VyYWJsZU9wZXJhdGlvbikge1xyXG4gICAgICAgIHRoaXMuYWRkT3BlcmF0aW9uKCdhY3Rpb25zJywgYWN0aW9uKTtcclxuICAgICAgICB0aGlzLmRldGFpbEZvcm0ubWFya0FzRGlydHkoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVDb25kaXRpb24oY29uZGl0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICB0aGlzLnJlbW92ZU9wZXJhdGlvbignY29uZGl0aW9ucycsIGNvbmRpdGlvbik7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQWN0aW9uKGFjdGlvbjogQ29uZmlndXJhYmxlT3BlcmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVPcGVyYXRpb24oJ2FjdGlvbnMnLCBhY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1BcnJheU9mKGtleTogJ2NvbmRpdGlvbnMnIHwgJ2FjdGlvbnMnKTogRm9ybUFycmF5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhaWxGb3JtLmdldChrZXkpIGFzIEZvcm1BcnJheTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRldGFpbEZvcm0uZGlydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgY29uc3QgaW5wdXQ6IENyZWF0ZVByb21vdGlvbklucHV0ID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBmb3JtVmFsdWUubmFtZSxcclxuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgY291cG9uQ29kZTogZm9ybVZhbHVlLmNvdXBvbkNvZGUsXHJcbiAgICAgICAgICAgIHBlckN1c3RvbWVyVXNhZ2VMaW1pdDogZm9ybVZhbHVlLnBlckN1c3RvbWVyVXNhZ2VMaW1pdCxcclxuICAgICAgICAgICAgc3RhcnRzQXQ6IGZvcm1WYWx1ZS5zdGFydHNBdCxcclxuICAgICAgICAgICAgZW5kc0F0OiBmb3JtVmFsdWUuZW5kc0F0LFxyXG4gICAgICAgICAgICBjb25kaXRpb25zOiB0aGlzLm1hcE9wZXJhdGlvbnNUb0lucHV0cyh0aGlzLmNvbmRpdGlvbnMsIGZvcm1WYWx1ZS5jb25kaXRpb25zKSxcclxuICAgICAgICAgICAgYWN0aW9uczogdGhpcy5tYXBPcGVyYXRpb25zVG9JbnB1dHModGhpcy5hY3Rpb25zLCBmb3JtVmFsdWUuYWN0aW9ucyksXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkczogZm9ybVZhbHVlLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvbW90aW9uLmNyZWF0ZVByb21vdGlvbihpbnB1dCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoeyBjcmVhdGVQcm9tb3Rpb24gfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChjcmVhdGVQcm9tb3Rpb24uX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1Byb21vdGlvbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvbW90aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLycsIGNyZWF0ZVByb21vdGlvbi5pZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTWlzc2luZ0NvbmRpdGlvbnNFcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihjcmVhdGVQcm9tb3Rpb24ubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9tb3Rpb24nLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5kZXRhaWxGb3JtLmRpcnR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5kZXRhaWxGb3JtLnZhbHVlO1xyXG4gICAgICAgIHRoaXMucHJvbW90aW9uJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcChwcm9tb3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0OiBVcGRhdGVQcm9tb3Rpb25JbnB1dCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb21vdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZm9ybVZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGZvcm1WYWx1ZS5lbmFibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3Vwb25Db2RlOiBmb3JtVmFsdWUuY291cG9uQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyQ3VzdG9tZXJVc2FnZUxpbWl0OiBmb3JtVmFsdWUucGVyQ3VzdG9tZXJVc2FnZUxpbWl0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydHNBdDogZm9ybVZhbHVlLnN0YXJ0c0F0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRzQXQ6IGZvcm1WYWx1ZS5lbmRzQXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHRoaXMubWFwT3BlcmF0aW9uc1RvSW5wdXRzKHRoaXMuY29uZGl0aW9ucywgZm9ybVZhbHVlLmNvbmRpdGlvbnMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiB0aGlzLm1hcE9wZXJhdGlvbnNUb0lucHV0cyh0aGlzLmFjdGlvbnMsIGZvcm1WYWx1ZS5hY3Rpb25zKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGRzOiBmb3JtVmFsdWUuY3VzdG9tRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucHJvbW90aW9uLnVwZGF0ZVByb21vdGlvbihpbnB1dCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb21vdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb21vdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlIHRoZSBmb3JtIHZhbHVlcyB3aGVuIHRoZSBlbnRpdHkgY2hhbmdlcy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBQcm9tb3Rpb24uRnJhZ21lbnQsIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBuYW1lOiBlbnRpdHkubmFtZSxcclxuICAgICAgICAgICAgZW5hYmxlZDogZW50aXR5LmVuYWJsZWQsXHJcbiAgICAgICAgICAgIGNvdXBvbkNvZGU6IGVudGl0eS5jb3Vwb25Db2RlLFxyXG4gICAgICAgICAgICBwZXJDdXN0b21lclVzYWdlTGltaXQ6IGVudGl0eS5wZXJDdXN0b21lclVzYWdlTGltaXQsXHJcbiAgICAgICAgICAgIHN0YXJ0c0F0OiBlbnRpdHkuc3RhcnRzQXQsXHJcbiAgICAgICAgICAgIGVuZHNBdDogZW50aXR5LmVuZHNBdCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBlbnRpdHkuY29uZGl0aW9ucy5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE9wZXJhdGlvbignY29uZGl0aW9ucycsIG8pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGVudGl0eS5hY3Rpb25zLmZvckVhY2gobyA9PiB0aGlzLmFkZE9wZXJhdGlvbignYWN0aW9ucycsIG8pKTtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21GaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VzdG9tRmllbGRGb3JtVmFsdWVzKHRoaXMuY3VzdG9tRmllbGRzLCB0aGlzLmRldGFpbEZvcm0uZ2V0KCdjdXN0b21GaWVsZHMnKSwgZW50aXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXBzIGFuIGFycmF5IG9mIGNvbmRpdGlvbnMgb3IgYWN0aW9ucyB0byB0aGUgaW5wdXQgZm9ybWF0IGV4cGVjdGVkIGJ5IHRoZSBHcmFwaFFMIEFQSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBtYXBPcGVyYXRpb25zVG9JbnB1dHMoXHJcbiAgICAgICAgb3BlcmF0aW9uczogQ29uZmlndXJhYmxlT3BlcmF0aW9uW10sXHJcbiAgICAgICAgZm9ybVZhbHVlT3BlcmF0aW9uczogYW55LFxyXG4gICAgKTogQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXRbXSB7XHJcbiAgICAgICAgcmV0dXJuIG9wZXJhdGlvbnMubWFwKChvLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBjb2RlOiBvLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6IE9iamVjdC52YWx1ZXM8YW55Pihmb3JtVmFsdWVPcGVyYXRpb25zW2ldLmFyZ3MpLm1hcCgodmFsdWUsIGopID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogby5hcmdzW2pdLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVuY29kZUNvbmZpZ0FyZ1ZhbHVlKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBuZXcgY29uZGl0aW9uIG9yIGFjdGlvbiB0byB0aGUgcHJvbW90aW9uLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkZE9wZXJhdGlvbihrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJywgb3BlcmF0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICBjb25zdCBvcGVyYXRpb25zQXJyYXkgPSB0aGlzLmZvcm1BcnJheU9mKGtleSk7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGtleSA9PT0gJ2NvbmRpdGlvbnMnID8gdGhpcy5jb25kaXRpb25zIDogdGhpcy5hY3Rpb25zO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gb3BlcmF0aW9uc0FycmF5LnZhbHVlLmZpbmRJbmRleChvID0+IG8uY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpO1xyXG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgY29uc3QgYXJnc0hhc2ggPSBvcGVyYXRpb24uYXJncy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAob3V0cHV0LCBhcmcpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0cHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIFthcmcubmFtZV06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZ0FyZ1ZhbHVlKGFyZy52YWx1ZSkgPz8gdGhpcy5nZXREZWZhdWx0QXJnVmFsdWUoa2V5LCBvcGVyYXRpb24sIGFyZy5uYW1lKSxcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIG9wZXJhdGlvbnNBcnJheS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHtcclxuICAgICAgICAgICAgICAgICAgICBjb2RlOiBvcGVyYXRpb24uY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBhcmdzOiBhcmdzSGFzaCxcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgY29kZTogb3BlcmF0aW9uLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBvcGVyYXRpb24uYXJncy5tYXAoYSA9PiAoeyBuYW1lOiBhLm5hbWUsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERlZmF1bHRBcmdWYWx1ZShcclxuICAgICAgICBrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJyxcclxuICAgICAgICBvcGVyYXRpb246IENvbmZpZ3VyYWJsZU9wZXJhdGlvbixcclxuICAgICAgICBhcmdOYW1lOiBzdHJpbmcsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBkZWYgPVxyXG4gICAgICAgICAgICBrZXkgPT09ICdjb25kaXRpb25zJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmFsbENvbmRpdGlvbnMuZmluZChjID0+IGMuY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuYWxsQWN0aW9ucy5maW5kKGEgPT4gYS5jb2RlID09PSBvcGVyYXRpb24uY29kZSk7XHJcbiAgICAgICAgaWYgKGRlZikge1xyXG4gICAgICAgICAgICBjb25zdCBhcmdEZWYgPSBkZWYuYXJncy5maW5kKGEgPT4gYS5uYW1lID09PSBhcmdOYW1lKTtcclxuICAgICAgICAgICAgaWYgKGFyZ0RlZikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldERlZmF1bHRDb25maWdBcmdWYWx1ZShhcmdEZWYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGRldGVybWluZSBkZWZhdWx0IHZhbHVlIGZvciBcImFyZ05hbWVcImApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIGNvbmRpdGlvbiBvciBhY3Rpb24gZnJvbSB0aGUgcHJvbW90aW9uLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHJlbW92ZU9wZXJhdGlvbihrZXk6ICdjb25kaXRpb25zJyB8ICdhY3Rpb25zJywgb3BlcmF0aW9uOiBDb25maWd1cmFibGVPcGVyYXRpb24pIHtcclxuICAgICAgICBjb25zdCBvcGVyYXRpb25zQXJyYXkgPSB0aGlzLmZvcm1BcnJheU9mKGtleSk7XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGtleSA9PT0gJ2NvbmRpdGlvbnMnID8gdGhpcy5jb25kaXRpb25zIDogdGhpcy5hY3Rpb25zO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gb3BlcmF0aW9uc0FycmF5LnZhbHVlLmZpbmRJbmRleChvID0+IG8uY29kZSA9PT0gb3BlcmF0aW9uLmNvZGUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgb3BlcmF0aW9uc0FycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js
CHANGED
|
@@ -144,6 +144,8 @@ export class ShippingMethodDetailComponent extends BaseDetailComponent {
|
|
|
144
144
|
this.detailForm.markAsPristine();
|
|
145
145
|
this.changeDetector.markForCheck();
|
|
146
146
|
}, err => {
|
|
147
|
+
// tslint:disable-next-line:no-console
|
|
148
|
+
console.error(err);
|
|
147
149
|
this.notificationService.error(_('common.notify-update-error'), {
|
|
148
150
|
entity: 'ShippingMethod',
|
|
149
151
|
});
|
|
@@ -232,4 +234,4 @@ ShippingMethodDetailComponent.ctorParameters = () => [
|
|
|
232
234
|
{ type: FormBuilder },
|
|
233
235
|
{ type: NotificationService }
|
|
234
236
|
];
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctbWV0aG9kLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NldHRpbmdzL3NyYy9jb21wb25lbnRzL3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwvc2hpcHBpbmctbWV0aG9kLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUNILG1CQUFtQixFQUNuQixnQ0FBZ0MsRUFJaEMseUJBQXlCLEVBRXpCLFdBQVcsRUFDWCxlQUFlLEVBRWYsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsbUJBQW1CLEVBSW5CLDRCQUE0QixHQUUvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVd0RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSxtQkFBNEM7SUFvQnBELFlBQ0ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLG1CQUF3QyxFQUNoQyxjQUFpQyxFQUMvQixXQUF3QixFQUMxQixXQUF3QixFQUN4Qixt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QyxJQUFJLEVBQUUsTUFBQSxjQUFjLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUNBQU0sQ0FBQyxLQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUcsQ0FBQzthQUNoRyxDQUFDO1NBQ0w7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQUksQ0FBQyx3QkFBd0IsQ0FDekIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUNyQyxjQUFjLEVBQ2Qsa0JBQWtCLENBQ3JCLENBQUM7U0FDTDtJQUNMLENBQUM7OztZQXhTSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsdXJRQUFzRDtnQkFFdEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFwQ3dCLE1BQU07WUFBdEIsY0FBYztZQWlCbkIsbUJBQW1CO1lBbkJXLGlCQUFpQjtZQVkvQyxXQUFXO1lBWE4sV0FBVztZQWdCaEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgY29uZmlndXJhYmxlRGVmaW5pdGlvblRvSW5zdGFuY2UsXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG4gICAgQ3JlYXRlU2hpcHBpbmdNZXRob2RJbnB1dCxcclxuICAgIGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGUsXHJcbiAgICBDdXN0b21GaWVsZENvbmZpZyxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgZmluZFRyYW5zbGF0aW9uLFxyXG4gICAgR2V0QWN0aXZlQ2hhbm5lbCxcclxuICAgIGdldENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFBlcm1pc3Npb24sXHJcbiAgICBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgU2hpcHBpbmdNZXRob2QsXHJcbiAgICBUZXN0U2hpcHBpbmdNZXRob2RJbnB1dCxcclxuICAgIFRlc3RTaGlwcGluZ01ldGhvZFJlc3VsdCxcclxuICAgIHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbiAgICBVcGRhdGVTaGlwcGluZ01ldGhvZElucHV0LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3JtYWxpemVTdHJpbmcgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL25vcm1hbGl6ZS1zdHJpbmcnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgVGVzdEFkZHJlc3MgfSBmcm9tICcuLi90ZXN0LWFkZHJlc3MtZm9ybS90ZXN0LWFkZHJlc3MtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXN0T3JkZXJMaW5lIH0gZnJvbSAnLi4vdGVzdC1vcmRlci1idWlsZGVyL3Rlc3Qtb3JkZXItYnVpbGRlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1zaGlwcGluZy1tZXRob2QtZGV0YWlsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGlwcGluZy1tZXRob2QtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hpcHBpbmdNZXRob2REZXRhaWxDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZURldGFpbENvbXBvbmVudDxTaGlwcGluZ01ldGhvZC5GcmFnbWVudD5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgZGV0YWlsRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY2hlY2tlcnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgY2FsY3VsYXRvcnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyczogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcbiAgICBzZWxlY3RlZENoZWNrZXI/OiBDb25maWd1cmFibGVPcGVyYXRpb24gfCBudWxsO1xyXG4gICAgc2VsZWN0ZWRDaGVja2VyRGVmaW5pdGlvbj86IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb247XHJcbiAgICBzZWxlY3RlZENhbGN1bGF0b3I/OiBDb25maWd1cmFibGVPcGVyYXRpb24gfCBudWxsO1xyXG4gICAgc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbj86IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb247XHJcbiAgICBhY3RpdmVDaGFubmVsJDogT2JzZXJ2YWJsZTxHZXRBY3RpdmVDaGFubmVsLkFjdGl2ZUNoYW5uZWw+O1xyXG4gICAgdGVzdEFkZHJlc3M6IFRlc3RBZGRyZXNzO1xyXG4gICAgdGVzdE9yZGVyTGluZXM6IFRlc3RPcmRlckxpbmVbXTtcclxuICAgIHRlc3REYXRhVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgdGVzdFJlc3VsdCQ6IE9ic2VydmFibGU8VGVzdFNoaXBwaW5nTWV0aG9kUmVzdWx0IHwgdW5kZWZpbmVkPjtcclxuICAgIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXTtcclxuICAgIHJlYWRvbmx5IHVwZGF0ZVBlcm1pc3Npb24gPSBbUGVybWlzc2lvbi5VcGRhdGVTZXR0aW5ncywgUGVybWlzc2lvbi5VcGRhdGVTaGlwcGluZ01ldGhvZF07XHJcbiAgICBwcml2YXRlIGZldGNoVGVzdFJlc3VsdCQgPSBuZXcgU3ViamVjdDxbVGVzdEFkZHJlc3MsIFRlc3RPcmRlckxpbmVbXV0+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBzZXJ2ZXJDb25maWdTZXJ2aWNlLCBkYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdTaGlwcGluZ01ldGhvZCcpO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgY2hlY2tlcjoge30sXHJcbiAgICAgICAgICAgIGNhbGN1bGF0b3I6IHt9LFxyXG4gICAgICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcy5yZWR1Y2UoKGhhc2gsIGZpZWxkKSA9PiAoeyAuLi5oYXNoLCBbZmllbGQubmFtZV06ICcnIH0pLCB7fSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2QuZ2V0U2hpcHBpbmdNZXRob2RPcGVyYXRpb25zKCkuc2luZ2xlJCxcclxuICAgICAgICAgICAgdGhpcy5lbnRpdHkkLnBpcGUodGFrZSgxKSksXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbZGF0YSwgZW50aXR5XSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZXJzID0gZGF0YS5zaGlwcGluZ0VsaWdpYmlsaXR5Q2hlY2tlcnM7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRvcnMgPSBkYXRhLnNoaXBwaW5nQ2FsY3VsYXRvcnM7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVycyA9IGRhdGEuZnVsZmlsbG1lbnRIYW5kbGVycztcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXJEZWZpbml0aW9uID0gZGF0YS5zaGlwcGluZ0VsaWdpYmlsaXR5Q2hlY2tlcnMuZmluZChcclxuICAgICAgICAgICAgICAgIGMgPT4gYy5jb2RlID09PSAoZW50aXR5LmNoZWNrZXIgJiYgZW50aXR5LmNoZWNrZXIuY29kZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbiA9IGRhdGEuc2hpcHBpbmdDYWxjdWxhdG9ycy5maW5kKFxyXG4gICAgICAgICAgICAgICAgYyA9PiBjLmNvZGUgPT09IChlbnRpdHkuY2FsY3VsYXRvciAmJiBlbnRpdHkuY2FsY3VsYXRvci5jb2RlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVDaGFubmVsJCA9IHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3NcclxuICAgICAgICAgICAgLmdldEFjdGl2ZUNoYW5uZWwoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS5hY3RpdmVDaGFubmVsKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZXN0UmVzdWx0JCA9IHRoaXMuZmV0Y2hUZXN0UmVzdWx0JC5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFthZGRyZXNzLCBsaW5lc10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZENoZWNrZXIgfHwgIXRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dDogVGVzdFNoaXBwaW5nTWV0aG9kSW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzOiB7IC4uLmFkZHJlc3MsIHN0cmVldExpbmUxOiAndGVzdCcgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaW5lczogbGluZXMubWFwKGwgPT4gKHsgcHJvZHVjdFZhcmlhbnRJZDogbC5pZCwgcXVhbnRpdHk6IGwucXVhbnRpdHkgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZXI6IHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQodGhpcy5zZWxlY3RlZENoZWNrZXIsIGZvcm1WYWx1ZS5jaGVja2VyKSxcclxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yLCBmb3JtVmFsdWUuY2FsY3VsYXRvciksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2RcclxuICAgICAgICAgICAgICAgICAgICAudGVzdFNoaXBwaW5nTWV0aG9kKGlucHV0KVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUocmVzdWx0ID0+IHJlc3VsdC50ZXN0U2hpcHBpbmdNZXRob2QpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICBtZXJnZShcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmdldChbJ2NoZWNrZXInXSkhLnZhbHVlQ2hhbmdlcyxcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmdldChbJ2NhbGN1bGF0b3InXSkhLnZhbHVlQ2hhbmdlcyxcclxuICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy50ZXN0RGF0YVVwZGF0ZWQgPSB0cnVlKSk7XHJcbiAgICAgICAgLy8gdHNsaW50OmVuYWJsZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2RlKGN1cnJlbnRDb2RlOiBzdHJpbmcsIG5hbWVWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50Q29kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb2RlQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoWydjb2RlJ10pO1xyXG4gICAgICAgICAgICBpZiAoY29kZUNvbnRyb2wgJiYgY29kZUNvbnRyb2wucHJpc3RpbmUpIHtcclxuICAgICAgICAgICAgICAgIGNvZGVDb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZVN0cmluZyhuYW1lVmFsdWUsICctJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdENoZWNrZXIoY2hlY2tlcjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGVja2VyRGVmaW5pdGlvbiA9IGNoZWNrZXI7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXIgPSBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZShjaGVja2VyKTtcclxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoJ2NoZWNrZXInKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkQ2hlY2tlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdENhbGN1bGF0b3IoY2FsY3VsYXRvcjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbiA9IGNhbGN1bGF0b3I7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IgPSBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZShjYWxjdWxhdG9yKTtcclxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoJ2NhbGN1bGF0b3InKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENoZWNrZXIgPSB0aGlzLnNlbGVjdGVkQ2hlY2tlcjtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENhbGN1bGF0b3IgPSB0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvcjtcclxuICAgICAgICBpZiAoIXNlbGVjdGVkQ2hlY2tlciB8fCAhc2VsZWN0ZWRDYWxjdWxhdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5lbnRpdHkkLCB0aGlzLmxhbmd1YWdlQ29kZSRdKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgoW3NoaXBwaW5nTWV0aG9kLCBsYW5ndWFnZUNvZGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5kZXRhaWxGb3JtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5nZXRVcGRhdGVkU2hpcHBpbmdNZXRob2QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBDcmVhdGVTaGlwcGluZ01ldGhvZElucHV0KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChzZWxlY3RlZENoZWNrZXIsIGZvcm1WYWx1ZS5jaGVja2VyKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRvcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChzZWxlY3RlZENhbGN1bGF0b3IsIGZvcm1WYWx1ZS5jYWxjdWxhdG9yKSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnNoaXBwaW5nTWV0aG9kLmNyZWF0ZVNoaXBwaW5nTWV0aG9kKGlucHV0KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnU2hpcHBpbmdNZXRob2QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8nLCBkYXRhLmNyZWF0ZVNoaXBwaW5nTWV0aG9kLmlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnU2hpcHBpbmdNZXRob2QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2hlY2tlciA9IHRoaXMuc2VsZWN0ZWRDaGVja2VyO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2FsY3VsYXRvciA9IHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRDaGVja2VyIHx8ICFzZWxlY3RlZENhbGN1bGF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVudGl0eSQsIHRoaXMubGFuZ3VhZ2VDb2RlJF0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChbc2hpcHBpbmdNZXRob2QsIGxhbmd1YWdlQ29kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih0aGlzLmdldFVwZGF0ZWRTaGlwcGluZ01ldGhvZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nTWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIGFzIFVwZGF0ZVNoaXBwaW5nTWV0aG9kSW5wdXQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VyOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHNlbGVjdGVkQ2hlY2tlciwgZm9ybVZhbHVlLmNoZWNrZXIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHNlbGVjdGVkQ2FsY3VsYXRvciwgZm9ybVZhbHVlLmNhbGN1bGF0b3IpLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2QudXBkYXRlU2hpcHBpbmdNZXRob2QoaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdTaGlwcGluZ01ldGhvZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1NoaXBwaW5nTWV0aG9kJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGVzdE9yZGVyTGluZXMoZXZlbnQ6IFRlc3RPcmRlckxpbmVbXSkge1xyXG4gICAgICAgIHRoaXMudGVzdE9yZGVyTGluZXMgPSBldmVudDtcclxuICAgICAgICB0aGlzLnRlc3REYXRhVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGVzdEFkZHJlc3MoZXZlbnQ6IFRlc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy50ZXN0QWRkcmVzcyA9IGV2ZW50O1xyXG4gICAgICAgIHRoaXMudGVzdERhdGFVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhbGxUZXN0RGF0YVByZXNlbnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICB0aGlzLnRlc3RBZGRyZXNzICYmXHJcbiAgICAgICAgICAgIHRoaXMudGVzdE9yZGVyTGluZXMgJiZcclxuICAgICAgICAgICAgdGhpcy50ZXN0T3JkZXJMaW5lcy5sZW5ndGggJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXIgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3JcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJ1blRlc3QoKSB7XHJcbiAgICAgICAgdGhpcy5mZXRjaFRlc3RSZXN1bHQkLm5leHQoW3RoaXMudGVzdEFkZHJlc3MsIHRoaXMudGVzdE9yZGVyTGluZXNdKTtcclxuICAgICAgICB0aGlzLnRlc3REYXRhVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gYSBTaGlwcGluZ01ldGhvZCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBkZXRhaWxGb3JtLCB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIHVwZGF0ZWQgY29weSB3aGljaFxyXG4gICAgICogY2FuIHRoZW4gYmUgcGVyc2lzdGVkIHRvIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0VXBkYXRlZFNoaXBwaW5nTWV0aG9kKFxyXG4gICAgICAgIHNoaXBwaW5nTWV0aG9kOiBTaGlwcGluZ01ldGhvZC5GcmFnbWVudCxcclxuICAgICAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcclxuICAgICAgICBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSxcclxuICAgICk6IE9taXQ8Q3JlYXRlU2hpcHBpbmdNZXRob2RJbnB1dCB8IFVwZGF0ZVNoaXBwaW5nTWV0aG9kSW5wdXQsICdjaGVja2VyJyB8ICdjYWxjdWxhdG9yJz4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGZvcm1Hcm91cC52YWx1ZTtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGUoe1xyXG4gICAgICAgICAgICB0cmFuc2xhdGFibGU6IHNoaXBwaW5nTWV0aG9kLFxyXG4gICAgICAgICAgICB1cGRhdGVkRmllbGRzOiBmb3JtVmFsdWUsXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkQ29uZmlnOiB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICBkZWZhdWx0VHJhbnNsYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgIG5hbWU6IHNoaXBwaW5nTWV0aG9kLm5hbWUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc2hpcHBpbmdNZXRob2QuZGVzY3JpcHRpb24gfHwgJycsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5wdXQsIGZ1bGZpbGxtZW50SGFuZGxlcjogZm9ybVZhbHVlLmZ1bGZpbGxtZW50SGFuZGxlciB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXRGb3JtVmFsdWVzKHNoaXBwaW5nTWV0aG9kOiBTaGlwcGluZ01ldGhvZC5GcmFnbWVudCwgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VHJhbnNsYXRpb24gPSBmaW5kVHJhbnNsYXRpb24oc2hpcHBpbmdNZXRob2QsIGxhbmd1YWdlQ29kZSk7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBuYW1lOiBjdXJyZW50VHJhbnNsYXRpb24/Lm5hbWUgPz8gJycsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjdXJyZW50VHJhbnNsYXRpb24/LmRlc2NyaXB0aW9uID8/ICcnLFxyXG4gICAgICAgICAgICBjb2RlOiBzaGlwcGluZ01ldGhvZC5jb2RlLFxyXG4gICAgICAgICAgICBmdWxmaWxsbWVudEhhbmRsZXI6IHNoaXBwaW5nTWV0aG9kLmZ1bGZpbGxtZW50SGFuZGxlckNvZGUsXHJcbiAgICAgICAgICAgIGNoZWNrZXI6IHNoaXBwaW5nTWV0aG9kLmNoZWNrZXIgfHwge30sXHJcbiAgICAgICAgICAgIGNhbGN1bGF0b3I6IHNoaXBwaW5nTWV0aG9kLmNhbGN1bGF0b3IgfHwge30sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ2hlY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hlY2tlciA9IHNoaXBwaW5nTWV0aG9kLmNoZWNrZXIgJiYge1xyXG4gICAgICAgICAgICAgICAgY29kZTogc2hpcHBpbmdNZXRob2QuY2hlY2tlci5jb2RlLFxyXG4gICAgICAgICAgICAgICAgYXJnczogc2hpcHBpbmdNZXRob2QuY2hlY2tlci5hcmdzLm1hcChhID0+ICh7IC4uLmEsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IgPSBzaGlwcGluZ01ldGhvZC5jYWxjdWxhdG9yICYmIHtcclxuICAgICAgICAgICAgICAgIGNvZGU6IHNoaXBwaW5nTWV0aG9kLmNhbGN1bGF0b3I/LmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBzaGlwcGluZ01ldGhvZC5jYWxjdWxhdG9yPy5hcmdzLm1hcChhID0+ICh7IC4uLmEsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXN0b21GaWVsZEZvcm1WYWx1ZXMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5nZXQoWydjdXN0b21GaWVsZHMnXSksXHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2xhdGlvbixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctbWV0aG9kLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NldHRpbmdzL3NyYy9jb21wb25lbnRzL3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwvc2hpcHBpbmctbWV0aG9kLWRldGFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUNILG1CQUFtQixFQUNuQixnQ0FBZ0MsRUFJaEMseUJBQXlCLEVBRXpCLFdBQVcsRUFDWCxlQUFlLEVBRWYsaUJBQWlCLEVBRWpCLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsbUJBQW1CLEVBSW5CLDRCQUE0QixHQUUvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVd0RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSxtQkFBNEM7SUFvQnBELFlBQ0ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLG1CQUF3QyxFQUNoQyxjQUFpQyxFQUMvQixXQUF3QixFQUMxQixXQUF3QixFQUN4Qixt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O2dCQUNuRCxJQUFJLEVBQUUsTUFBQSxjQUFjLENBQUMsVUFBVSwwQ0FBRSxJQUFJO2dCQUNyQyxJQUFJLEVBQUUsTUFBQSxjQUFjLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUNBQU0sQ0FBQyxLQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUcsQ0FBQzthQUNoRyxDQUFDO1NBQ0w7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQUksQ0FBQyx3QkFBd0IsQ0FDekIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUNyQyxjQUFjLEVBQ2Qsa0JBQWtCLENBQ3JCLENBQUM7U0FDTDtJQUNMLENBQUM7OztZQTFTSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsdXJRQUFzRDtnQkFFdEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFwQ3dCLE1BQU07WUFBdEIsY0FBYztZQWlCbkIsbUJBQW1CO1lBbkJXLGlCQUFpQjtZQVkvQyxXQUFXO1lBWE4sV0FBVztZQWdCaEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgY29uZmlndXJhYmxlRGVmaW5pdGlvblRvSW5zdGFuY2UsXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb24sXHJcbiAgICBDb25maWd1cmFibGVPcGVyYXRpb25EZWZpbml0aW9uLFxyXG4gICAgQ3JlYXRlU2hpcHBpbmdNZXRob2RJbnB1dCxcclxuICAgIGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGUsXHJcbiAgICBDdXN0b21GaWVsZENvbmZpZyxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgZmluZFRyYW5zbGF0aW9uLFxyXG4gICAgR2V0QWN0aXZlQ2hhbm5lbCxcclxuICAgIGdldENvbmZpZ0FyZ1ZhbHVlLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFBlcm1pc3Npb24sXHJcbiAgICBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgU2hpcHBpbmdNZXRob2QsXHJcbiAgICBUZXN0U2hpcHBpbmdNZXRob2RJbnB1dCxcclxuICAgIFRlc3RTaGlwcGluZ01ldGhvZFJlc3VsdCxcclxuICAgIHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQsXHJcbiAgICBVcGRhdGVTaGlwcGluZ01ldGhvZElucHV0LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3JtYWxpemVTdHJpbmcgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL25vcm1hbGl6ZS1zdHJpbmcnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgVGVzdEFkZHJlc3MgfSBmcm9tICcuLi90ZXN0LWFkZHJlc3MtZm9ybS90ZXN0LWFkZHJlc3MtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXN0T3JkZXJMaW5lIH0gZnJvbSAnLi4vdGVzdC1vcmRlci1idWlsZGVyL3Rlc3Qtb3JkZXItYnVpbGRlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1zaGlwcGluZy1tZXRob2QtZGV0YWlsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGlwcGluZy1tZXRob2QtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hpcHBpbmdNZXRob2REZXRhaWxDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZURldGFpbENvbXBvbmVudDxTaGlwcGluZ01ldGhvZC5GcmFnbWVudD5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgZGV0YWlsRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY2hlY2tlcnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgY2FsY3VsYXRvcnM6IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgZnVsZmlsbG1lbnRIYW5kbGVyczogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcbiAgICBzZWxlY3RlZENoZWNrZXI/OiBDb25maWd1cmFibGVPcGVyYXRpb24gfCBudWxsO1xyXG4gICAgc2VsZWN0ZWRDaGVja2VyRGVmaW5pdGlvbj86IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb247XHJcbiAgICBzZWxlY3RlZENhbGN1bGF0b3I/OiBDb25maWd1cmFibGVPcGVyYXRpb24gfCBudWxsO1xyXG4gICAgc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbj86IENvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZmluaXRpb247XHJcbiAgICBhY3RpdmVDaGFubmVsJDogT2JzZXJ2YWJsZTxHZXRBY3RpdmVDaGFubmVsLkFjdGl2ZUNoYW5uZWw+O1xyXG4gICAgdGVzdEFkZHJlc3M6IFRlc3RBZGRyZXNzO1xyXG4gICAgdGVzdE9yZGVyTGluZXM6IFRlc3RPcmRlckxpbmVbXTtcclxuICAgIHRlc3REYXRhVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgdGVzdFJlc3VsdCQ6IE9ic2VydmFibGU8VGVzdFNoaXBwaW5nTWV0aG9kUmVzdWx0IHwgdW5kZWZpbmVkPjtcclxuICAgIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXTtcclxuICAgIHJlYWRvbmx5IHVwZGF0ZVBlcm1pc3Npb24gPSBbUGVybWlzc2lvbi5VcGRhdGVTZXR0aW5ncywgUGVybWlzc2lvbi5VcGRhdGVTaGlwcGluZ01ldGhvZF07XHJcbiAgICBwcml2YXRlIGZldGNoVGVzdFJlc3VsdCQgPSBuZXcgU3ViamVjdDxbVGVzdEFkZHJlc3MsIFRlc3RPcmRlckxpbmVbXV0+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBzZXJ2ZXJDb25maWdTZXJ2aWNlLCBkYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdTaGlwcGluZ01ldGhvZCcpO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBjb2RlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgICAgIGZ1bGZpbGxtZW50SGFuZGxlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgY2hlY2tlcjoge30sXHJcbiAgICAgICAgICAgIGNhbGN1bGF0b3I6IHt9LFxyXG4gICAgICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcy5yZWR1Y2UoKGhhc2gsIGZpZWxkKSA9PiAoeyAuLi5oYXNoLCBbZmllbGQubmFtZV06ICcnIH0pLCB7fSksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2QuZ2V0U2hpcHBpbmdNZXRob2RPcGVyYXRpb25zKCkuc2luZ2xlJCxcclxuICAgICAgICAgICAgdGhpcy5lbnRpdHkkLnBpcGUodGFrZSgxKSksXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbZGF0YSwgZW50aXR5XSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZXJzID0gZGF0YS5zaGlwcGluZ0VsaWdpYmlsaXR5Q2hlY2tlcnM7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRvcnMgPSBkYXRhLnNoaXBwaW5nQ2FsY3VsYXRvcnM7XHJcbiAgICAgICAgICAgIHRoaXMuZnVsZmlsbG1lbnRIYW5kbGVycyA9IGRhdGEuZnVsZmlsbG1lbnRIYW5kbGVycztcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXJEZWZpbml0aW9uID0gZGF0YS5zaGlwcGluZ0VsaWdpYmlsaXR5Q2hlY2tlcnMuZmluZChcclxuICAgICAgICAgICAgICAgIGMgPT4gYy5jb2RlID09PSAoZW50aXR5LmNoZWNrZXIgJiYgZW50aXR5LmNoZWNrZXIuY29kZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbiA9IGRhdGEuc2hpcHBpbmdDYWxjdWxhdG9ycy5maW5kKFxyXG4gICAgICAgICAgICAgICAgYyA9PiBjLmNvZGUgPT09IChlbnRpdHkuY2FsY3VsYXRvciAmJiBlbnRpdHkuY2FsY3VsYXRvci5jb2RlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVDaGFubmVsJCA9IHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3NcclxuICAgICAgICAgICAgLmdldEFjdGl2ZUNoYW5uZWwoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS5hY3RpdmVDaGFubmVsKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZXN0UmVzdWx0JCA9IHRoaXMuZmV0Y2hUZXN0UmVzdWx0JC5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFthZGRyZXNzLCBsaW5lc10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZENoZWNrZXIgfHwgIXRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbnB1dDogVGVzdFNoaXBwaW5nTWV0aG9kSW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzOiB7IC4uLmFkZHJlc3MsIHN0cmVldExpbmUxOiAndGVzdCcgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaW5lczogbGluZXMubWFwKGwgPT4gKHsgcHJvZHVjdFZhcmlhbnRJZDogbC5pZCwgcXVhbnRpdHk6IGwucXVhbnRpdHkgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZXI6IHRvQ29uZmlndXJhYmxlT3BlcmF0aW9uSW5wdXQodGhpcy5zZWxlY3RlZENoZWNrZXIsIGZvcm1WYWx1ZS5jaGVja2VyKSxcclxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yLCBmb3JtVmFsdWUuY2FsY3VsYXRvciksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2RcclxuICAgICAgICAgICAgICAgICAgICAudGVzdFNoaXBwaW5nTWV0aG9kKGlucHV0KVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUocmVzdWx0ID0+IHJlc3VsdC50ZXN0U2hpcHBpbmdNZXRob2QpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICBtZXJnZShcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmdldChbJ2NoZWNrZXInXSkhLnZhbHVlQ2hhbmdlcyxcclxuICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLmdldChbJ2NhbGN1bGF0b3InXSkhLnZhbHVlQ2hhbmdlcyxcclxuICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy50ZXN0RGF0YVVwZGF0ZWQgPSB0cnVlKSk7XHJcbiAgICAgICAgLy8gdHNsaW50OmVuYWJsZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2RlKGN1cnJlbnRDb2RlOiBzdHJpbmcsIG5hbWVWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCFjdXJyZW50Q29kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb2RlQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoWydjb2RlJ10pO1xyXG4gICAgICAgICAgICBpZiAoY29kZUNvbnRyb2wgJiYgY29kZUNvbnRyb2wucHJpc3RpbmUpIHtcclxuICAgICAgICAgICAgICAgIGNvZGVDb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZVN0cmluZyhuYW1lVmFsdWUsICctJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdENoZWNrZXIoY2hlY2tlcjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGVja2VyRGVmaW5pdGlvbiA9IGNoZWNrZXI7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXIgPSBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZShjaGVja2VyKTtcclxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoJ2NoZWNrZXInKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkQ2hlY2tlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdENhbGN1bGF0b3IoY2FsY3VsYXRvcjogQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yRGVmaW5pdGlvbiA9IGNhbGN1bGF0b3I7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IgPSBjb25maWd1cmFibGVEZWZpbml0aW9uVG9JbnN0YW5jZShjYWxjdWxhdG9yKTtcclxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZGV0YWlsRm9ybS5nZXQoJ2NhbGN1bGF0b3InKTtcclxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENoZWNrZXIgPSB0aGlzLnNlbGVjdGVkQ2hlY2tlcjtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENhbGN1bGF0b3IgPSB0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvcjtcclxuICAgICAgICBpZiAoIXNlbGVjdGVkQ2hlY2tlciB8fCAhc2VsZWN0ZWRDYWxjdWxhdG9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5lbnRpdHkkLCB0aGlzLmxhbmd1YWdlQ29kZSRdKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgoW3NoaXBwaW5nTWV0aG9kLCBsYW5ndWFnZUNvZGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5kZXRhaWxGb3JtLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5nZXRVcGRhdGVkU2hpcHBpbmdNZXRob2QoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBDcmVhdGVTaGlwcGluZ01ldGhvZElucHV0KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChzZWxlY3RlZENoZWNrZXIsIGZvcm1WYWx1ZS5jaGVja2VyKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRvcjogdG9Db25maWd1cmFibGVPcGVyYXRpb25JbnB1dChzZWxlY3RlZENhbGN1bGF0b3IsIGZvcm1WYWx1ZS5jYWxjdWxhdG9yKSxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnNoaXBwaW5nTWV0aG9kLmNyZWF0ZVNoaXBwaW5nTWV0aG9kKGlucHV0KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWNyZWF0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnU2hpcHBpbmdNZXRob2QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8nLCBkYXRhLmNyZWF0ZVNoaXBwaW5nTWV0aG9kLmlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktY3JlYXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnU2hpcHBpbmdNZXRob2QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2hlY2tlciA9IHRoaXMuc2VsZWN0ZWRDaGVja2VyO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2FsY3VsYXRvciA9IHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRDaGVja2VyIHx8ICFzZWxlY3RlZENhbGN1bGF0b3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVudGl0eSQsIHRoaXMubGFuZ3VhZ2VDb2RlJF0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKChbc2hpcHBpbmdNZXRob2QsIGxhbmd1YWdlQ29kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRldGFpbEZvcm0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih0aGlzLmdldFVwZGF0ZWRTaGlwcGluZ01ldGhvZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaXBwaW5nTWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIGFzIFVwZGF0ZVNoaXBwaW5nTWV0aG9kSW5wdXQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VyOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHNlbGVjdGVkQ2hlY2tlciwgZm9ybVZhbHVlLmNoZWNrZXIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yOiB0b0NvbmZpZ3VyYWJsZU9wZXJhdGlvbklucHV0KHNlbGVjdGVkQ2FsY3VsYXRvciwgZm9ybVZhbHVlLmNhbGN1bGF0b3IpLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uuc2hpcHBpbmdNZXRob2QudXBkYXRlU2hpcHBpbmdNZXRob2QoaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NvbW1vbi5ub3RpZnktdXBkYXRlLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdTaGlwcGluZ01ldGhvZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXRhaWxGb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjb21tb24ubm90aWZ5LXVwZGF0ZS1lcnJvcicpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1NoaXBwaW5nTWV0aG9kJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGVzdE9yZGVyTGluZXMoZXZlbnQ6IFRlc3RPcmRlckxpbmVbXSkge1xyXG4gICAgICAgIHRoaXMudGVzdE9yZGVyTGluZXMgPSBldmVudDtcclxuICAgICAgICB0aGlzLnRlc3REYXRhVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGVzdEFkZHJlc3MoZXZlbnQ6IFRlc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy50ZXN0QWRkcmVzcyA9IGV2ZW50O1xyXG4gICAgICAgIHRoaXMudGVzdERhdGFVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhbGxUZXN0RGF0YVByZXNlbnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICB0aGlzLnRlc3RBZGRyZXNzICYmXHJcbiAgICAgICAgICAgIHRoaXMudGVzdE9yZGVyTGluZXMgJiZcclxuICAgICAgICAgICAgdGhpcy50ZXN0T3JkZXJMaW5lcy5sZW5ndGggJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoZWNrZXIgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3JcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJ1blRlc3QoKSB7XHJcbiAgICAgICAgdGhpcy5mZXRjaFRlc3RSZXN1bHQkLm5leHQoW3RoaXMudGVzdEFkZHJlc3MsIHRoaXMudGVzdE9yZGVyTGluZXNdKTtcclxuICAgICAgICB0aGlzLnRlc3REYXRhVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gYSBTaGlwcGluZ01ldGhvZCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBkZXRhaWxGb3JtLCB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIHVwZGF0ZWQgY29weSB3aGljaFxyXG4gICAgICogY2FuIHRoZW4gYmUgcGVyc2lzdGVkIHRvIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0VXBkYXRlZFNoaXBwaW5nTWV0aG9kKFxyXG4gICAgICAgIHNoaXBwaW5nTWV0aG9kOiBTaGlwcGluZ01ldGhvZC5GcmFnbWVudCxcclxuICAgICAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcclxuICAgICAgICBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSxcclxuICAgICk6IE9taXQ8Q3JlYXRlU2hpcHBpbmdNZXRob2RJbnB1dCB8IFVwZGF0ZVNoaXBwaW5nTWV0aG9kSW5wdXQsICdjaGVja2VyJyB8ICdjYWxjdWxhdG9yJz4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGZvcm1Hcm91cC52YWx1ZTtcclxuICAgICAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGUoe1xyXG4gICAgICAgICAgICB0cmFuc2xhdGFibGU6IHNoaXBwaW5nTWV0aG9kLFxyXG4gICAgICAgICAgICB1cGRhdGVkRmllbGRzOiBmb3JtVmFsdWUsXHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkQ29uZmlnOiB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICBkZWZhdWx0VHJhbnNsYXRpb246IHtcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgIG5hbWU6IHNoaXBwaW5nTWV0aG9kLm5hbWUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc2hpcHBpbmdNZXRob2QuZGVzY3JpcHRpb24gfHwgJycsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5wdXQsIGZ1bGZpbGxtZW50SGFuZGxlcjogZm9ybVZhbHVlLmZ1bGZpbGxtZW50SGFuZGxlciB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXRGb3JtVmFsdWVzKHNoaXBwaW5nTWV0aG9kOiBTaGlwcGluZ01ldGhvZC5GcmFnbWVudCwgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50VHJhbnNsYXRpb24gPSBmaW5kVHJhbnNsYXRpb24oc2hpcHBpbmdNZXRob2QsIGxhbmd1YWdlQ29kZSk7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBuYW1lOiBjdXJyZW50VHJhbnNsYXRpb24/Lm5hbWUgPz8gJycsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjdXJyZW50VHJhbnNsYXRpb24/LmRlc2NyaXB0aW9uID8/ICcnLFxyXG4gICAgICAgICAgICBjb2RlOiBzaGlwcGluZ01ldGhvZC5jb2RlLFxyXG4gICAgICAgICAgICBmdWxmaWxsbWVudEhhbmRsZXI6IHNoaXBwaW5nTWV0aG9kLmZ1bGZpbGxtZW50SGFuZGxlckNvZGUsXHJcbiAgICAgICAgICAgIGNoZWNrZXI6IHNoaXBwaW5nTWV0aG9kLmNoZWNrZXIgfHwge30sXHJcbiAgICAgICAgICAgIGNhbGN1bGF0b3I6IHNoaXBwaW5nTWV0aG9kLmNhbGN1bGF0b3IgfHwge30sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ2hlY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2hlY2tlciA9IHNoaXBwaW5nTWV0aG9kLmNoZWNrZXIgJiYge1xyXG4gICAgICAgICAgICAgICAgY29kZTogc2hpcHBpbmdNZXRob2QuY2hlY2tlci5jb2RlLFxyXG4gICAgICAgICAgICAgICAgYXJnczogc2hpcHBpbmdNZXRob2QuY2hlY2tlci5hcmdzLm1hcChhID0+ICh7IC4uLmEsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhbGN1bGF0b3IgPSBzaGlwcGluZ01ldGhvZC5jYWxjdWxhdG9yICYmIHtcclxuICAgICAgICAgICAgICAgIGNvZGU6IHNoaXBwaW5nTWV0aG9kLmNhbGN1bGF0b3I/LmNvZGUsXHJcbiAgICAgICAgICAgICAgICBhcmdzOiBzaGlwcGluZ01ldGhvZC5jYWxjdWxhdG9yPy5hcmdzLm1hcChhID0+ICh7IC4uLmEsIHZhbHVlOiBnZXRDb25maWdBcmdWYWx1ZShhLnZhbHVlKSB9KSksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXN0b21GaWVsZEZvcm1WYWx1ZXMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkcyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5nZXQoWydjdXN0b21GaWVsZHMnXSksXHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ01ldGhvZCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2xhdGlvbixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|