@mediusinc/mng-commons 5.1.0 → 5.2.0-rc.1
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/core/components/notification/notification-wrapper.component.d.ts +3 -1
- package/core/error/error-helpers.d.ts +5 -0
- package/core/error/error.model.d.ts +6 -0
- package/core/helpers/route.d.ts +1 -1
- package/core/models/menu.model.d.ts +2 -1
- package/core/router/route-builder.d.ts +0 -1
- package/core/security/permission.service.d.ts +13 -5
- package/core/security/permissions.model.d.ts +27 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +6 -5
- package/esm2022/core/error/error-helpers.mjs +8 -1
- package/esm2022/core/error/error.model.mjs +2 -1
- package/esm2022/core/models/menu.model.mjs +1 -1
- package/esm2022/core/router/route-builder.mjs +1 -24
- package/esm2022/core/rxjs/map-data-list-result-operator.mjs +4 -1
- package/esm2022/core/security/permission.guard.mjs +2 -2
- package/esm2022/core/security/permission.service.mjs +65 -15
- package/esm2022/core/security/permissions.model.mjs +1 -1
- package/esm2022/form/components/date-range/date-range.component.mjs +9 -3
- package/esm2022/form/components/number-range/number-range.component.mjs +106 -0
- package/esm2022/form/index.mjs +2 -1
- package/esm2022/model/helpers/i18n.mjs +2 -2
- package/esm2022/table/api/descriptors/table.descriptor.mjs +11 -1
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +72 -10
- package/esm2022/table/components/table/table.component.mjs +15 -12
- package/esm2022/table/helpers/notification.mjs +2 -2
- package/esm2022/table/services/data-list.service.mjs +9 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +6 -7
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +7 -3
- package/esm2022/tableview/action/components/table/action-table.component.mjs +8 -3
- package/esm2022/tableview/action/helpers/i18n.mjs +4 -4
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +9 -1
- package/esm2022/tableview/action/services/action-executor.service.mjs +74 -14
- package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +2 -2
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +2 -1
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +2 -3
- package/esm2022/tableview/api/editor/models/form-editor.event.mjs +2 -1
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-options.model.mjs +1 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +16 -10
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +2 -6
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +2 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +2 -6
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +2 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +21 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +17 -6
- package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +18 -3
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +12 -4
- package/esm2022/tableview/editor/services/form-editor.service.mjs +3 -3
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +2 -2
- package/fesm2022/mediusinc-mng-commons-core.mjs +82 -42
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +109 -3
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +10 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +94 -23
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +4 -3
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +172 -62
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/form/components/date-range/date-range.component.d.ts +4 -2
- package/form/components/number-range/number-range.component.d.ts +30 -0
- package/form/index.d.ts +1 -0
- package/i18n/en.json +1 -1
- package/i18n/sl.json +1 -1
- package/package.json +7 -7
- package/table/api/descriptors/table.descriptor.d.ts +3 -0
- package/table/components/column-filter-full/column-filter-full.component.d.ts +3 -2
- package/table/components/table/table.component.d.ts +7 -2
- package/table/services/data-list.service.d.ts +5 -2
- package/tableview/action/components/action/action.component.d.ts +1 -2
- package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
- package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +7 -5
- package/tableview/action/components/localization/data-language-dropdown.component.d.ts +1 -1
- package/tableview/action/components/table/action-table.component.d.ts +8 -4
- package/tableview/action/models/execution/action-context.model.d.ts +7 -0
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/action/services/view-container.service.d.ts +1 -1
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +2 -2
- package/tableview/api/action/descriptors/action.descriptor.d.ts +38 -38
- package/tableview/api/action/models/action-descriptor.types.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +1 -1
- package/tableview/api/editor/models/form-editor.event.d.ts +4 -0
- package/tableview/api/editor/models/form-editor.interface.d.ts +4 -1
- package/tableview/api/editor/models/formly-options.model.d.ts +4 -4
- package/tableview/editor/components/editor/form-editor.component.d.ts +6 -2
- package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +0 -1
- package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +0 -1
- package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +0 -1
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +0 -1
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +0 -1
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +3 -1
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +3 -1
- package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +5 -1
- package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +1 -0
- package/tableview/editor/services/form-editor.service.d.ts +2 -2
- package/tableview/tableview/components/tableview/tableview.component.d.ts +4 -4
- package/version-info.json +6 -6
|
@@ -53,7 +53,7 @@ export function action(typeOrActionName, actionNameOrCfg, cfg) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
export function actionWithProvider(typeOrServiceProvider, serviceProviderOrActionName, actionNameOrCfg, cfg) {
|
|
56
|
-
const actionName = serviceProviderOrActionName === 'string' ? serviceProviderOrActionName : typeof actionNameOrCfg === 'string' ? actionNameOrCfg : 'default';
|
|
56
|
+
const actionName = typeof serviceProviderOrActionName === 'string' ? serviceProviderOrActionName : typeof actionNameOrCfg === 'string' ? actionNameOrCfg : 'default';
|
|
57
57
|
if (typeOrServiceProvider instanceof TypeDescriptor) {
|
|
58
58
|
return new ActionDescriptorInst(actionName, {
|
|
59
59
|
...(typeof serviceProviderOrActionName === 'string' ? {} : actionGetProviderCfgObj(serviceProviderOrActionName)),
|
|
@@ -116,4 +116,4 @@ export function actionDelete(model, serviceProvider) {
|
|
|
116
116
|
...(serviceProvider ? actionGetProviderCfgObj(serviceProvider) : {})
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFnRixvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZW5LLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQWlCLHFCQUEwRCxFQUFFLEVBQUU7SUFDbEgsTUFBTSxHQUFHLEdBQTJELEVBQUUsQ0FBQztJQUN2RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBdUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxRCxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBc0QsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBeUI7SUFDM0Q7UUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQVEsVUFBa0IsRUFBRSxHQUEwQztRQUN0RixPQUFPLE1BQU0sQ0FBUSxVQUFVLEVBQUU7WUFDN0IsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDNUIsZUFBbUQsRUFDbkQsVUFBa0IsRUFDbEIsR0FBMEM7UUFFMUMsT0FBTyxrQkFBa0IsQ0FBaUIsZUFBZSxF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QUFLLEVBQUUsSUFBSSxlQUFlLENBQVEsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFvQixFQUFFLEdBQUcsRUFBRSxhQUF1QixFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUM7WUFDbEgsR0FBRyx1QkFBdUIsQ0FBQywyQkFBMkIsQ0FBQztZQUN2RCxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBUSxLQUE2QjtRQUNyRCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUM1QixLQUE2QixFQUM3QixlQUFtRDtRQUVuRCxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNKO0FBSUQsTUFBTSxVQUFVLFlBQVksQ0FBaUIsS0FBNkIsRUFBRSxlQUFvRDtJQUM1SCxPQUFPLElBQUksMEJBQTBCLENBQWlCLEtBQUssRUFBRTtRQUN6RCxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3ZFLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZSwgSURhdGFQcm92aWRlciwgU2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yLCBUeXBlRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7QWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3QsIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGUsIEFjdGlvbkRlc2NyaXB0b3JJbnN0fSBmcm9tICcuL2FjdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNNb2RlbDxNb2RlbD4gJiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c0kxOG5UeXBlICYgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c0kxOG5UeXBlID0ge1xuICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c01vZGVsPE1vZGVsPiA9IHtcbiAgICBpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG4gICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4gfCBJRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqID0gPE1vZGVsLCBTZXJ2aWNlPihzZXJ2aWNlT3JEYXRhUHJvdmlkZXI/OiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSA9PiB7XG4gICAgY29uc3QgY2ZnOiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSB7fTtcbiAgICBpZiAoc2VydmljZU9yRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgIGlmICgoc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIElEYXRhUHJvdmlkZXIpLmlzRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICAvLyB0eXBlIGNhc3RpbmcgbmVlZGVkLCBjYXVzZSB0aGVyZSB3YXMgbm8gb3RoZXIgd2F5IGZvdW5kIHRvIGRpZmZlcmVudGlhdGUgdGhlIHR5cGVzXG4gICAgICAgICAgICBjZmcuZGF0YVByb3ZpZGVyID0gc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2ZnLnNlcnZpY2VUeXBlID0gc2VydmljZU9yRGF0YVByb3ZpZGVyIGFzIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNmZztcbn07XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EZXNjcmlwdG9yIGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignaW50ZXJuYWwnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxNb2RlbD4oYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb248TW9kZWw+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICAgICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbiAgICApOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihzZXJ2aWNlUHJvdmlkZXIsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWw8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkZyb21Nb2RlbDxNb2RlbD4obW9kZWwsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWxXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWwsIFNlcnZpY2U+KG1vZGVsLCBzZXJ2aWNlUHJvdmlkZXIsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3M8TW9kZWw+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+KTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRnJvbUNsYXNzPE1vZGVsPih0eXBlLCBhY3Rpb25OYW1lLCBjZmcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25Gcm9tQ2xhc3M8TW9kZWwsIFNlcnZpY2U+KHR5cGUsIHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb248TW9kZWw+KGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uPE1vZGVsPih0eXBlOiBUeXBlRGVzY3JpcHRvcjxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uPE1vZGVsPihcbiAgICB0eXBlT3JBY3Rpb25OYW1lOiBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBzdHJpbmcsXG4gICAgYWN0aW9uTmFtZU9yQ2ZnPzogc3RyaW5nIHwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgIGlmICh0eXBlb2YgdHlwZU9yQWN0aW9uTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihcbiAgICAgICAgICAgIHR5cGVPckFjdGlvbk5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgYWN0aW9uTmFtZU9yQ2ZnID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uYWN0aW9uTmFtZU9yQ2ZnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPih0eXBlb2YgYWN0aW9uTmFtZU9yQ2ZnID09PSAnc3RyaW5nJyA/IGFjdGlvbk5hbWVPckNmZyA6ICdkZWZhdWx0Jywge1xuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbldpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25XaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgIHR5cGU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPixcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbldpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZU9yU2VydmljZVByb3ZpZGVyOiBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgIHNlcnZpY2VQcm92aWRlck9yQWN0aW9uTmFtZTogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiB8IHN0cmluZyxcbiAgICBhY3Rpb25OYW1lT3JDZmc/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBzZXJ2aWNlUHJvdmlkZXJPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lIDogdHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyBhY3Rpb25OYW1lT3JDZmcgOiAnZGVmYXVsdCc7XG4gICAgaWYgKHR5cGVPclNlcnZpY2VQcm92aWRlciBpbnN0YW5jZW9mIFR5cGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLih0eXBlb2Ygc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lID09PSAnc3RyaW5nJyA/IHt9IDogYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lKSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyB7fSA6IGFjdGlvbk5hbWVPckNmZyksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmoodHlwZU9yU2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21Nb2RlbDxNb2RlbCwgU2VydmljZT4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWwsIFNlcnZpY2U+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlcjogc3RyaW5nIHwgQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBjZmdPckFjdGlvbk5hbWU/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pIHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgLi4uKHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdvYmplY3QnID8gY2ZnT3JBY3Rpb25OYW1lIDoge30pLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gY2ZnT3JBY3Rpb25OYW1lIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXI6IHN0cmluZyB8IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgY2ZnT3JBY3Rpb25OYW1lPzogc3RyaW5nIHwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+LFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgY29uc3QgZmluYWxDZmcgPSB0eXBlb2YgY2ZnT3JBY3Rpb25OYW1lID09PSAnb2JqZWN0JyA/IGNmZ09yQWN0aW9uTmFtZSA6IGNmZztcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZU9yU2VydmljZVByb3ZpZGVyLCB7XG4gICAgICAgICAgICBtb2RlbDogbmV3IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4odHlwZSwgZmluYWxDZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBmaW5hbENmZz8udGl0bGVQcm9wZXJ0eSBhcyBzdHJpbmcsIGZpbmFsQ2ZnPy5pMThuQmFzZUtleSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ29iamVjdCcgPyBjZmdPckFjdGlvbk5hbWUgOiB7fSksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ3N0cmluZycgPyBjZmdPckFjdGlvbk5hbWUgOiAnZGVmYXVsdCcsIHtcbiAgICAgICAgICAgIG1vZGVsOiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPih0eXBlLCBjZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LnRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LmkxOG5CYXNlS2V5KSxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVsZXRlRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+KTogQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT5cbiAgICApOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsLCBzZXJ2aWNlUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkRlbGV0ZTxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25EZWxldGU8TW9kZWwsIFNlcnZpY2U+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRGVsZXRlPE1vZGVsLCBTZXJ2aWNlPihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiwgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPik6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4obW9kZWwsIHtcbiAgICAgICAgLi4uKHNlcnZpY2VQcm92aWRlciA/IGFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlcikgOiB7fSlcbiAgICB9KTtcbn1cbiJdfQ==
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2FjdGlvbi9kZXNjcmlwdG9ycy9hY3Rpb24tZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFnRixvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZW5LLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQWlCLHFCQUEwRCxFQUFFLEVBQUU7SUFDbEgsTUFBTSxHQUFHLEdBQTJELEVBQUUsQ0FBQztJQUN2RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBdUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxRCxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBc0QsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBeUI7SUFDM0Q7UUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQVEsVUFBa0IsRUFBRSxHQUEwQztRQUN0RixPQUFPLE1BQU0sQ0FBUSxVQUFVLEVBQUU7WUFDN0IsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FDNUIsZUFBbUQsRUFDbkQsVUFBa0IsRUFDbEIsR0FBMEM7UUFFMUMsT0FBTyxrQkFBa0IsQ0FBaUIsZUFBZSxF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Qy9HLEtBQUssRUFBRSxJQUFJLGVBQWUsQ0FBUSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQW9CLEVBQUUsR0FBRyxFQUFFLGFBQXVCLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQztZQUNsSCxHQUFHLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDO1lBQ3ZELEdBQUcsR0FBRztTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixNQUFNLENBQUMsTUFBTSxDQUFRLEtBQTZCO1FBQ3JELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzVCLEtBQTZCLEVBQzdCLGVBQW1EO1FBRW5ELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0o7QUFJRCxNQUFNLFVBQVUsWUFBWSxDQUFpQixLQUE2QixFQUFFLGVBQW9EO0lBQzVILE9BQU8sSUFBSSwwQkFBMEIsQ0FBaUIsS0FBSyxFQUFFO1FBQ3pELEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDdkUsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlLCBJRGF0YVByb3ZpZGVyLCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIFR5cGVEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdCwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZSwgQWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJy4vYWN0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c01vZGVsPE1vZGVsPiAmIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgJiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGU7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgPSB7XG4gICAgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzTW9kZWw8TW9kZWw+ID0ge1xuICAgIGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiB8IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG5leHBvcnQgY29uc3QgYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmogPSA8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VPckRhdGFQcm92aWRlcj86IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pID0+IHtcbiAgICBjb25zdCBjZmc6IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHt9O1xuICAgIGlmIChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcikuaXNEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIHR5cGUgY2FzdGluZyBuZWVkZWQsIGNhdXNlIHRoZXJlIHdhcyBubyBvdGhlciB3YXkgZm91bmQgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXNcbiAgICAgICAgICAgIGNmZy5kYXRhUHJvdmlkZXIgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZmcuc2VydmljZVR5cGUgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2ZnO1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlc2NyaXB0b3IgZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdpbnRlcm5hbCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbjxNb2RlbD4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25XaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbDxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRnJvbU1vZGVsPE1vZGVsPihtb2RlbCwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbFdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4gICAgKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkZyb21Nb2RlbDxNb2RlbCwgU2VydmljZT4obW9kZWwsIHNlcnZpY2VQcm92aWRlciwgYWN0aW9uTmFtZSwgY2ZnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25Gcm9tQ2xhc3M8TW9kZWw+KHR5cGUsIGFjdGlvbk5hbWUsIGNmZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+XG4gICAgKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4odHlwZSwgc2VydmljZVByb3ZpZGVyLCBhY3Rpb25OYW1lLCBjZmcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbjxNb2RlbD4oYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb248TW9kZWw+KHR5cGU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb248TW9kZWw+KFxuICAgIHR5cGVPckFjdGlvbk5hbWU6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IHN0cmluZyxcbiAgICBhY3Rpb25OYW1lT3JDZmc/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKHR5cGVvZiB0eXBlT3JBY3Rpb25OYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KFxuICAgICAgICAgICAgdHlwZU9yQWN0aW9uTmFtZSxcbiAgICAgICAgICAgIHR5cGVvZiBhY3Rpb25OYW1lT3JDZmcgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5hY3Rpb25OYW1lT3JDZmdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KHR5cGVvZiBhY3Rpb25OYW1lT3JDZmcgPT09ICdzdHJpbmcnID8gYWN0aW9uTmFtZU9yQ2ZnIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbldpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LFxuICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICB0eXBlT3JTZXJ2aWNlUHJvdmlkZXI6IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+IHwgc3RyaW5nLFxuICAgIGFjdGlvbk5hbWVPckNmZz86IHN0cmluZyB8IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgY29uc3QgYWN0aW9uTmFtZSA9IHR5cGVvZiBzZXJ2aWNlUHJvdmlkZXJPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lIDogdHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyBhY3Rpb25OYW1lT3JDZmcgOiAnZGVmYXVsdCc7XG4gICAgaWYgKHR5cGVPclNlcnZpY2VQcm92aWRlciBpbnN0YW5jZW9mIFR5cGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLih0eXBlb2Ygc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lID09PSAnc3RyaW5nJyA/IHt9IDogYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyT3JBY3Rpb25OYW1lKSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGFjdGlvbk5hbWVPckNmZyA9PT0gJ3N0cmluZycgPyB7fSA6IGFjdGlvbk5hbWVPckNmZyksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmoodHlwZU9yU2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21Nb2RlbDxNb2RlbCwgU2VydmljZT4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgIGFjdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Gcm9tTW9kZWw8TW9kZWwsIFNlcnZpY2U+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlcjogc3RyaW5nIHwgQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICBjZmdPckFjdGlvbk5hbWU/OiBzdHJpbmcgfCBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsXG4gICAgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlXG4pIHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXIsIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgLi4uKHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdvYmplY3QnID8gY2ZnT3JBY3Rpb25OYW1lIDoge30pLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KHR5cGVvZiBjZmdPckFjdGlvbk5hbWUgPT09ICdzdHJpbmcnID8gY2ZnT3JBY3Rpb25OYW1lIDogJ2RlZmF1bHQnLCB7XG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPik6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkZyb21DbGFzczxNb2RlbCwgU2VydmljZT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBhY3Rpb25OYW1lT3JTZXJ2aWNlUHJvdmlkZXI6IHN0cmluZyB8IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sXG4gICAgY2ZnT3JBY3Rpb25OYW1lPzogc3RyaW5nIHwgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+LFxuICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuKTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBpZiAodHlwZW9mIGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gbm8gcHJvdmlkZXJcbiAgICAgICAgY29uc3QgZmluYWxDZmcgPSB0eXBlb2YgY2ZnT3JBY3Rpb25OYW1lID09PSAnb2JqZWN0JyA/IGNmZ09yQWN0aW9uTmFtZSA6IGNmZztcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZU9yU2VydmljZVByb3ZpZGVyLCB7XG4gICAgICAgICAgICBtb2RlbDogbmV3IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4odHlwZSwgZmluYWxDZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBmaW5hbENmZz8udGl0bGVQcm9wZXJ0eSBhcyBzdHJpbmcsIGZpbmFsQ2ZnPy5pMThuQmFzZUtleSksXG4gICAgICAgICAgICAuLi4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ29iamVjdCcgPyBjZmdPckFjdGlvbk5hbWUgOiB7fSksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4odHlwZW9mIGNmZ09yQWN0aW9uTmFtZSA9PT0gJ3N0cmluZycgPyBjZmdPckFjdGlvbk5hbWUgOiAnZGVmYXVsdCcsIHtcbiAgICAgICAgICAgIG1vZGVsOiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsPih0eXBlLCBjZmc/LmlkUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LnRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBjZmc/LmkxOG5CYXNlS2V5KSxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKGFjdGlvbk5hbWVPclNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVsZXRlRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+KTogQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT5cbiAgICApOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uRGVsZXRlKG1vZGVsLCBzZXJ2aWNlUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkRlbGV0ZTxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25EZWxldGU8TW9kZWwsIFNlcnZpY2U+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pOiBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRGVsZXRlPE1vZGVsLCBTZXJ2aWNlPihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiwgc2VydmljZVByb3ZpZGVyPzogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPik6IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4obW9kZWwsIHtcbiAgICAgICAgLi4uKHNlcnZpY2VQcm92aWRlciA/IGFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlcikgOiB7fSlcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -4,6 +4,7 @@ import { EditorDataProviderInst } from '../../editor/data-providers/editor.data-
|
|
|
4
4
|
import { ActionEditorSubmitTypeEnum, ActionPositionEnum, ActionTypeEnum } from '../models/action.type';
|
|
5
5
|
import { TableviewActionDefaultCategories } from '../models/tableview-action-default-categories.model';
|
|
6
6
|
import { ActionDescriptorInst } from './action.descriptor';
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7
8
|
export class ActionEditorDescriptorInst extends ActionDescriptorInst {
|
|
8
9
|
constructor(editorDescriptor, actionName, cfg) {
|
|
9
10
|
super(actionName, {
|
|
@@ -209,4 +210,4 @@ export class ActionEditorEditDescriptorInst extends ActionEditorDescriptorInst {
|
|
|
209
210
|
this.withUnsavedChangesConfirmation();
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU3RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBWS9GLE1BQU0sT0FBTywwQkFBZ0QsU0FBUSxvQkFBbUM7SUF3QnBHLFlBQW1CLGdCQUFpRCxFQUFFLFVBQWtCLEVBQUUsR0FBOEQ7UUFDcEosS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNkLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLEdBQUcsR0FBRztTQUNULENBQUMsQ0FBQztRQTFCcUIsa0JBQWEsR0FBb0MsU0FBUyxDQUFDO1FBRTdFLG1CQUFjLEdBQWlDLEVBQUUsQ0FBQztRQUNsRCxpQkFBWSxHQUFtQixTQUFTLENBQUM7UUFDekMsdUJBQWtCLEdBQVMsU0FBUyxDQUFDO1FBRXJDLGlDQUE0QixHQUFHLEtBQUssQ0FBQztRQUlyQyxnQkFBVyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFTbkMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLGdDQUEyQixHQUFHLEtBQUssQ0FB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Z3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIFNlcnZpY2VDbGFzc1R5cGUsIFN0eWxlU2l6ZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0FjdGlvbkJ1dHRvbkRlc2NyaXB0b3IsIEJ1dHRvblN0eWxlQnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7RWRpdG9yRGF0YVByb3ZpZGVySW5zdCwgSUVkaXRvckRhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZWRpdG9yL2RhdGEtcHJvdmlkZXJzL2VkaXRvci5kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7RWRpdG9yRGVzY3JpcHRvckluc3R9IGZyb20gJy4uLy4uL2VkaXRvci9kZXNjcmlwdG9ycy9lZGl0b3IuZGVzY3JpcHRvcic7XG5pbXBvcnQge0FjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLCBBY3Rpb25Qb3NpdGlvbkVudW0sIEFjdGlvblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5pbXBvcnQge1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUsIEFjdGlvbkRlc2NyaXB0b3JJbnN0fSBmcm9tICcuL2FjdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2U+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlICZcbiAgICBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gJiB7XG4gICAgICAgIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSB7XG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgIGRhdGFQcm92aWRlcj86IElFZGl0b3JEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZT4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIGFueT47XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9kYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgICBwcm90ZWN0ZWQgX2VkaXRvckFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX2VkaXRvclRpdGxlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2VkaXRvclRpdGxlUGFyYW1zPzogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgcHJvdGVjdGVkIF9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfZGlhbG9nU2l6ZSA9IFN0eWxlU2l6ZUVudW0uTm9ybWFsO1xuICAgIHByb3RlY3RlZCBfZGlhbG9nQ2xhc3NOYW1lPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9mZXRjaEZ1bmN0aW9uPzogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT47XG4gICAgcHJvdGVjdGVkIF9zdWJtaXRGdW5jdGlvbj86IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+O1xuXG4gICAgcHJvdGVjdGVkIF9lZGl0b3JDb21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgX3Jlc3VibWl0RW5hYmxlZD86IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9yZXN1Ym1pdFJlZmV0Y2ggPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBhbnk+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPEl0ZW0sIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIG1vZGVsOiBlZGl0b3JEZXNjcmlwdG9yLm1vZGVsLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjZmc/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxJdGVtLCBTZXJ2aWNlPih0aGlzLl9tb2RlbD8udHlwZSwgY2ZnLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgfSBlbHNlIGlmIChjZmc/LmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gY2ZnLmRhdGFQcm92aWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3R5cGUgPSBBY3Rpb25UeXBlRW51bS5FZGl0b3I7XG4gICAgICAgIHRoaXMuX2VkaXRvckRlc2NyaXB0b3IgPSBlZGl0b3JEZXNjcmlwdG9yO1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zLnB1c2goYWN0aW9uRWRpdG9yU3VibWl0KHRoaXMpLCBhY3Rpb25FZGl0b3JDYW5jZWwodGhpcykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvclRpdGxlUGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yVGl0bGVQYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpYWxvZ1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dTaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlhbG9nQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgaGFzUnVuRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUnVuIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGluIGVkaXRvciBhY3Rpb24gZm9yICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9LiBVc2Ugc3VibWl0IGZ1bmN0aW9uIGluc3RlYWRgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHJ1bkZ1bmN0aW9uKCk6IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIHVua25vd24+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+IHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRmV0Y2hGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTdWJtaXRGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3VibWl0RnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JBY3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yQ29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRFbmFibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRFbmFibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRSZWZldGNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRSZWZldGNoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvclRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsLCBwYXJhbXM/OiBhbnkpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGVQYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nU2l6ZShzaXplID0gU3R5bGVTaXplRW51bS5Ob3JtYWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2l6ZSA9IHNpemU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhSdW5GdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2l0aFN1Ym1pdEZ1bmN0aW9uKGZuIGFzIChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZldGNoRnVuY3Rpb24oZm46IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ZldGNoRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJtaXRGdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc3VibWl0RnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGZXRjaE5vdGlmaWNhdGlvbkVycm9yKHRpdGxlPzogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBoYXNOb3RpZmljYXRpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcyA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQWN0aW9uKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMgPSBhY3Rpb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckNvbXBvbmVudChlZGl0b3JDb21wb25lbnQ6IFR5cGU8YW55Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JDb21wb25lbnQgPSBlZGl0b3JDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgcmVzdWJtaXQgcmVzdWJtaXQgLSB0aGlzIG1lYW5zIHRoZSBmb3JtIHdpbGwgbm90IGV4aXQgYWZ0ZXIgc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uLCBidXQgd2lsbCBpbnN0ZWFkIHJlbWFpbiBvcGVuLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZW5hYmxlZD10cnVlXSAtIFNwZWNpZmllcyB3aGV0aGVyIHJlc3VibWl0IGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuIERlZmF1bHRzIHRvIHRydWUgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JlZmV0Y2g9dHJ1ZV0gLSBTcGVjaWZpZXMgd2hldGhlciB0aGUgZGF0YSBzaG91bGQgYmUgcmVmZXRjaGVkIGFmdGVyIHJlc3VibWl0LiBJZiBub3QsIHRoZSBkYXRhIGluIHRoZSBmb3JtIHN0YXlzIGFzIGlzLiBEZWZhdWx0cyB0byB0cnVlIGlmIG5vdCBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugd2l0aCB0aGUgcmVzdWJtaXQgY29uZmlndXJhdGlvbiB1cGRhdGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUmVzdWJtaXQoZW5hYmxlZD86IGJvb2xlYW4sIHJlZmV0Y2ggPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Jlc3VibWl0RW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgICAgIHRoaXMuX3Jlc3VibWl0UmVmZXRjaCA9IHJlZmV0Y2g7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24odW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3VibWl0VHlwZTogQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQpIHtcbiAgICAgICAgc3VwZXIoc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gYCR7ZWRpdG9yQWN0aW9uLmFjdGlvbk5hbWV9LnN1Ym1pdGAgOiBgJHtlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZX0uY2FuY2VsYCwge21vZGVsOiBlZGl0b3JBY3Rpb24ubW9kZWx9KTtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9uID0gZWRpdG9yQWN0aW9uO1xuICAgICAgICB0aGlzLl9zdWJtaXRUeXBlID0gc3VibWl0VHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyUmlnaHQ7XG5cbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoZWRpdG9yQWN0aW9uLmxldmVsKS53aXRoVGV4dEJ1dHRvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3VibWl0VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFR5cGU7XG4gICAgfVxufVxuXG4vKipcbiAqIGNyZWF0ZXMgcHJpbWFyeSBhY3Rpb24gd2l0aCBwcmltYXJ5IGJ1dHRvbiBzdHlsZVxuICogQHBhcmFtIGVkaXRvckFjdGlvblxuICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvclN1Ym1pdDxNb2RlbD4oXG4gICAgZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sXG4gICAgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdFxuKTogQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+IHtcbiAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0KGVkaXRvckFjdGlvbiwgc3VibWl0VHlwZSkud2l0aEJ1dHRvbkRlc2NyaXB0b3IobmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkpKTtcbn1cblxuLyoqXG4gKiBjcmVhdGVzIHNlY29uZGFyeSBidXR0b24gd2l0aCB0ZXh0IGJ1dHRvbiBzdHlsZVxuICogQHBhcmFtIGVkaXRvckFjdGlvblxuICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbkVkaXRvckNhbmNlbDxNb2RlbD4oXG4gICAgZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sXG4gICAgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbFxuKTogQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+IHtcbiAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0KGVkaXRvckFjdGlvbiwgc3VibWl0VHlwZSkud2l0aEJ1dHRvbkRlc2NyaXB0b3IoXG4gICAgICAgIG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpLndpdGhUZXh0QnV0dG9uKCkpXG4gICAgKTtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZGV0YWlscyc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55PiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgY2ZnKTtcbiAgICAgICAgdGhpcy53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKTtcbiAgICAgICAgdGhpcy53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkJyk7XG4gICAgICAgIHRoaXMud2l0aEVkaXRvckFjdGlvbnMoW2FjdGlvbkVkaXRvckNhbmNlbCh0aGlzKV0pO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnYWRkJztcblxuICAgIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3QuQUNUSU9OX05BTUUsIGNmZyk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdCk7XG4gICAgICAgIHRoaXMud2l0aFJvdXRlVHJpZ2dlcignYWRkJyk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhJY29uKCdwaSBwaS1wbHVzJyk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERCk7XG4gICAgICAgIHRoaXMud2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBleHRlbmRzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ1RJT05fTkFNRSA9ICdlZGl0JztcblxuICAgIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBhbnk+LCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCBjZmcpO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKTtcbiAgICAgICAgdGhpcy53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkL2VkaXQnKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVCk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhMYWJlbChudWxsKS53aXRoSWNvbigncGkgcGktcGVuY2lsJyk7XG4gICAgICAgIHRoaXMud2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKCk7XG4gICAgfVxufVxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU3RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBWS9GLDZEQUE2RDtBQUM3RCxNQUFNLE9BQU8sMEJBQWdHLFNBQVEsb0JBQW1DO0lBd0JwSixZQUFtQixnQkFBaUQsRUFBRSxVQUFrQixFQUFFLEdBQThEO1FBQ3BKLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDZCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7UUExQnFCLGtCQUFhLEdBQW9DLFNBQVMsQ0FBQztRQUU3RSxtQkFBYyxHQUFpQyxFQUFFLENBQUM7UUFDbEQsaUJBQVksR0FBbUIsU0FBUyxDQUFDO1FBQ3pDLHVCQUFrQixHQUFTLFNBQVMsQ0FBQztRQUVyQyxpQ0FBNEIsR0FBRyxLQUFLLENBQUM7UUFJckMsZ0JBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBU25DLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFRMUMsSUFBSSxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixDQUFnQixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkcsQ0FBQzthQUFNLElBQUksR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVywyQkFBMkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsNkJBQTZCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLCtCQUErQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBb0IsWUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQW9CLGNBQWM7UUFDOUIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLG9EQUFvRCxJQUFJLENBQUMsZUFBZSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzVJLENBQUM7SUFFRCxJQUFvQixXQUFXO1FBQzNCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxvREFBb0QsSUFBSSxDQUFDLGVBQWUsK0JBQStCLENBQUMsQ0FBQztJQUM1SSxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUM7SUFDckQsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBb0IsRUFBRSxNQUFZO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU07UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFNBQWlCO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVlLGVBQWUsQ0FBQyxFQUE0RDtRQUN4RixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUE4RCxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQTREO1FBQ2pGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxFQUE0RDtRQUNsRixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sMEJBQTBCLENBQUMsS0FBYyxFQUFFLE9BQWdCLEVBQUUsZUFBZSxHQUFHLElBQUk7UUFDdEYsSUFBSSxDQUFDLDRCQUE0QixHQUFHLGVBQWUsQ0FBQztRQUNwRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxPQUFPLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE1BQWtDO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxPQUFxQztRQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsZUFBMEI7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFlBQVksQ0FBQyxPQUFpQixFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sOEJBQThCLENBQUMsMEJBQTBCLEdBQUcsSUFBSTtRQUNuRSxJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGdDQUF3QyxTQUFRLG9CQUEyQjtJQUlwRixZQUFtQixZQUErQyxFQUFFLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxNQUFNO1FBQzlHLEtBQUssQ0FBQyxVQUFVLEtBQUssMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDakssSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7UUFFaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0NBQ0o7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUM5QixZQUErQyxFQUMvQyxVQUFVLEdBQUcsMEJBQTBCLENBQUMsTUFBTTtJQUU5QyxPQUFPLElBQUksZ0NBQWdDLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0SyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsWUFBK0MsRUFDL0MsVUFBVSxHQUFHLDBCQUEwQixDQUFDLE1BQU07SUFFOUMsT0FBTyxJQUFJLGdDQUFnQyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxvQkFBb0IsQ0FDdEYsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FDekYsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLE9BQU8saUNBQXdELFNBQVEsMEJBQTBDO2FBQzVGLGdCQUFXLEdBQUcsU0FBUyxDQUFDO0lBRS9DLFlBQVksZ0JBQWtELEVBQUUsR0FBa0U7UUFDOUgsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGlDQUFpQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7O0FBR0wsTUFBTSxPQUFPLDZCQUFvRCxTQUFRLDBCQUEwQzthQUN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUUzQyxZQUFZLGdCQUFrRCxFQUFFLEdBQWtFO1FBQzlILEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBQzFDLENBQUM7O0FBR0wsTUFBTSxPQUFPLDhCQUFxRCxTQUFRLDBCQUEwQzthQUN6RixnQkFBVyxHQUFHLE1BQU0sQ0FBQztJQUU1QyxZQUFZLGdCQUFrRCxFQUFFLEdBQWtFO1FBQzlILEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBTZXJ2aWNlQ2xhc3NUeXBlLCBTdHlsZVNpemVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25CdXR0b25EZXNjcmlwdG9yLCBCdXR0b25TdHlsZUJ1aWxkZXJ9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge0VkaXRvckRhdGFQcm92aWRlckluc3QsIElFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2VkaXRvci9kYXRhLXByb3ZpZGVycy9lZGl0b3IuZGF0YS1wcm92aWRlcic7XG5pbXBvcnQge0VkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICcuLi8uLi9lZGl0b3IvZGVzY3JpcHRvcnMvZWRpdG9yLmRlc2NyaXB0b3InO1xuaW1wb3J0IHtBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtLCBBY3Rpb25UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi50eXBlJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vbW9kZWxzL3RhYmxldmlldy1hY3Rpb24tZGVmYXVsdC1jYXRlZ29yaWVzLm1vZGVsJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLCBBY3Rpb25EZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi9hY3Rpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ICYge1xuICAgICAgICBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge1xuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlID0gYW55LCBGZXRjaElucHV0SXRlbSA9IEl0ZW0sIFN1Ym1pdFJldHVybkl0ZW0gPSBJdGVtPiBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2U+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtLCBhbnk+O1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfZGF0YVByb3ZpZGVyPzogSUVkaXRvckRhdGFQcm92aWRlcjxJdGVtLCBhbnk+ID0gdW5kZWZpbmVkO1xuXG4gICAgcHJvdGVjdGVkIF9lZGl0b3JBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdID0gW107XG4gICAgcHJvdGVjdGVkIF9lZGl0b3JUaXRsZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9lZGl0b3JUaXRsZVBhcmFtcz86IGFueSA9IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCBfaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2RpYWxvZ1NpemUgPSBTdHlsZVNpemVFbnVtLk5vcm1hbDtcbiAgICBwcm90ZWN0ZWQgX2RpYWxvZ0NsYXNzTmFtZT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfZmV0Y2hGdW5jdGlvbj86IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+O1xuICAgIHByb3RlY3RlZCBfc3VibWl0RnVuY3Rpb24/OiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPjtcblxuICAgIHByb3RlY3RlZCBfZWRpdG9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuXG4gICAgcHJvdGVjdGVkIF9yZXN1Ym1pdEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcmVzdWJtaXRSZWZldGNoID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgYW55PiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxJdGVtLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihhY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBtb2RlbDogZWRpdG9yRGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY2ZnPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8SXRlbSwgU2VydmljZT4odGhpcy5fbW9kZWw/LnR5cGUsIGNmZy5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2ZnPy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGNmZy5kYXRhUHJvdmlkZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90eXBlID0gQWN0aW9uVHlwZUVudW0uRWRpdG9yO1xuICAgICAgICB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yID0gZWRpdG9yRGVzY3JpcHRvcjtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucy5wdXNoKGFjdGlvbkVkaXRvclN1Ym1pdCh0aGlzKSwgYWN0aW9uRWRpdG9yQ2FuY2VsKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvclRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JUaXRsZVBhcmFtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvclRpdGxlUGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yRGVzY3JpcHRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvckRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWFsb2dTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nU2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpYWxvZ0NsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpYWxvZ0NsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGRhdGFQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhhc1J1bkZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFJ1biBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBpbiBlZGl0b3IgYWN0aW9uIGZvciAke3RoaXMuX2FjdGlvbk5hbWVMb25nfS4gVXNlIHN1Ym1pdCBmdW5jdGlvbiBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBydW5GdW5jdGlvbigpOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCB1bmtub3duPikgPT4gT2JzZXJ2YWJsZTxJdGVtPiB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUnVuIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGluIGVkaXRvciBhY3Rpb24gZm9yICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9LiBVc2Ugc3VibWl0IGZ1bmN0aW9uIGluc3RlYWRgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0ZldGNoRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5fZmV0Y2hGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZldGNoRnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzU3VibWl0RnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5fZmV0Y2hGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1Ym1pdEZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0RnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQWN0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckNvbXBvbmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvckNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VibWl0RW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VibWl0RW5hYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VibWl0UmVmZXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VibWl0UmVmZXRjaDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JUaXRsZSh0aXRsZTogc3RyaW5nIHwgbnVsbCwgcGFyYW1zPzogYW55KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvclRpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX2VkaXRvclRpdGxlUGFyYW1zID0gcGFyYW1zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERpYWxvZ1NpemUoc2l6ZSA9IFN0eWxlU2l6ZUVudW0uTm9ybWFsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NpemUgPSBzaXplO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERpYWxvZ0NsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaWFsb2dDbGFzc05hbWUgPSBjbGFzc05hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3aXRoUnVuRnVuY3Rpb24oZm46IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpdGhTdWJtaXRGdW5jdGlvbihmbiBhcyAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGZXRjaEZ1bmN0aW9uKGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9mZXRjaEZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU3VibWl0RnVuY3Rpb24oZm46IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1Ym1pdEZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRmV0Y2hOb3RpZmljYXRpb25FcnJvcih0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MgPSBoYXNOb3RpZmljYXRpb247XG4gICAgICAgIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckFjdGlvbihhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckFjdGlvbnMoYWN0aW9uczogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT5bXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zID0gYWN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JDb21wb25lbnQoZWRpdG9yQ29tcG9uZW50OiBUeXBlPGFueT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQ29tcG9uZW50ID0gZWRpdG9yQ29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHJlc3VibWl0IHJlc3VibWl0IC0gdGhpcyBtZWFucyB0aGUgZm9ybSB3aWxsIG5vdCBleGl0IGFmdGVyIHN1Y2Nlc3NmdWwgc3VibWlzc2lvbiwgYnV0IHdpbGwgaW5zdGVhZCByZW1haW4gb3Blbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2VuYWJsZWQ9dHJ1ZV0gLSBTcGVjaWZpZXMgd2hldGhlciByZXN1Ym1pdCBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiBEZWZhdWx0cyB0byB0cnVlIGlmIG5vdCBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZWZldGNoPXRydWVdIC0gU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRhdGEgc2hvdWxkIGJlIHJlZmV0Y2hlZCBhZnRlciByZXN1Ym1pdC4gSWYgbm90LCB0aGUgZGF0YSBpbiB0aGUgZm9ybSBzdGF5cyBhcyBpcy4gRGVmYXVsdHMgdG8gdHJ1ZSBpZiBub3QgcHJvdmlkZWQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHdpdGggdGhlIHJlc3VibWl0IGNvbmZpZ3VyYXRpb24gdXBkYXRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFJlc3VibWl0KGVuYWJsZWQ/OiBib29sZWFuLCByZWZldGNoID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZXN1Ym1pdEVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICB0aGlzLl9yZXN1Ym1pdFJlZmV0Y2ggPSByZWZldGNoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKHVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IHVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdDxNb2RlbD4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1Ym1pdFR5cGU6IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzdWJtaXRUeXBlID0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0KSB7XG4gICAgICAgIHN1cGVyKHN1Ym1pdFR5cGUgPT09IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCA/IGAke2VkaXRvckFjdGlvbi5hY3Rpb25OYW1lfS5zdWJtaXRgIDogYCR7ZWRpdG9yQWN0aW9uLmFjdGlvbk5hbWV9LmNhbmNlbGAsIHttb2RlbDogZWRpdG9yQWN0aW9uLm1vZGVsfSk7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbiA9IGVkaXRvckFjdGlvbjtcbiAgICAgICAgdGhpcy5fc3VibWl0VHlwZSA9IHN1Ym1pdFR5cGU7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlclJpZ2h0O1xuXG4gICAgICAgIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKGVkaXRvckFjdGlvbi5sZXZlbCkud2l0aFRleHRCdXR0b24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1Ym1pdFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXRUeXBlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBjcmVhdGVzIHByaW1hcnkgYWN0aW9uIHdpdGggcHJpbWFyeSBidXR0b24gc3R5bGVcbiAqIEBwYXJhbSBlZGl0b3JBY3Rpb25cbiAqIEBwYXJhbSBzdWJtaXRUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JTdWJtaXQ8TW9kZWw+KFxuICAgIGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LFxuICAgIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXRcbik6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdChlZGl0b3JBY3Rpb24sIHN1Ym1pdFR5cGUpLndpdGhCdXR0b25EZXNjcmlwdG9yKG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpKSk7XG59XG5cbi8qKlxuICogY3JlYXRlcyBzZWNvbmRhcnkgYnV0dG9uIHdpdGggdGV4dCBidXR0b24gc3R5bGVcbiAqIEBwYXJhbSBlZGl0b3JBY3Rpb25cbiAqIEBwYXJhbSBzdWJtaXRUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25FZGl0b3JDYW5jZWw8TW9kZWw+KFxuICAgIGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LFxuICAgIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5DYW5jZWxcbik6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdChlZGl0b3JBY3Rpb24sIHN1Ym1pdFR5cGUpLndpdGhCdXR0b25EZXNjcmlwdG9yKFxuICAgICAgICBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoKS53aXRoVGV4dEJ1dHRvbigpKVxuICAgICk7XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2RldGFpbHMnO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIGFueT4sIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihlZGl0b3JEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3QuQUNUSU9OX05BTUUsIGNmZyk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dDbGljayk7XG4gICAgICAgIHRoaXMud2l0aFJvdXRlVHJpZ2dlcignOml0ZW1JZCcpO1xuICAgICAgICB0aGlzLndpdGhFZGl0b3JBY3Rpb25zKFthY3Rpb25FZGl0b3JDYW5jZWwodGhpcyldKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMUyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2FkZCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55PiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCBjZmcpO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQpO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJ2FkZCcpO1xuICAgICAgICB0aGlzLmJ1dHRvbi53aXRoSWNvbigncGkgcGktcGx1cycpO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5BREQpO1xuICAgICAgICB0aGlzLndpdGhVbnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZWRpdCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgYW55PiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgY2ZnKTtcbiAgICAgICAgdGhpcy53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0lubGluZSk7XG4gICAgICAgIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3Mud2l0aFNpemUoU3R5bGVTaXplRW51bS5TbWFsbCk7XG4gICAgICAgIHRoaXMud2l0aFJvdXRlVHJpZ2dlcignOml0ZW1JZC9lZGl0Jyk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkVESVQpO1xuICAgICAgICB0aGlzLmJ1dHRvbi53aXRoTGFiZWwobnVsbCkud2l0aEljb24oJ3BpIHBpLXBlbmNpbCcpO1xuICAgICAgICB0aGlzLndpdGhVbnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbigpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -316,4 +316,4 @@ export class ActionDeleteDescriptorInst extends ActionDescriptorInst {
|
|
|
316
316
|
this.button.withLabel(null).withIcon('pi pi-trash');
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUszRixPQUFPLEVBQUMsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFpQjlFLE1BQU0sT0FBTyxvQkFBb0I7SUF1RDdCLFlBQW1CLFVBQWtCLEVBQUUsR0FBeUQ7UUEzQ3RGLFVBQUssR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM5Qyx1QkFBa0IsR0FBZ0MsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1FBQ3RGLGNBQVMsR0FBdUIsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ2hFLFdBQU0sR0FBbUIsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUloRCxjQUFTLEdBQWtCLElBQUksQ0FBQztRQVFoQywrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFJbEMsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBVTFDLFFBQVE7UUFDRSxZQUFPLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBRWpELHlCQUF5QjtRQUNmLHVCQUFrQixHQUFHLEtB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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFQZXJtaXNzaW9ucyxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVySW5zdCxcbiAgICBJQWN0aW9uRGVzY3JpcHRvcixcbiAgICBJRGF0YVByb3ZpZGVyLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgU2VydmljZUNsYXNzVHlwZSxcbiAgICBTdHlsZUxldmVsRW51bSxcbiAgICBTdHlsZVNpemVFbnVtLFxuICAgIGZpbmRSZWZsZWN0VHlwZU5hbWVcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtJQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWNvbXBvbmVudC5tb2RlbCc7XG5pbXBvcnQge0FjdGlvblJ1bkZuVHlwZSwgQWN0aW9uVmFsaWRhdGlvbkZuVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi1kZXNjcmlwdG9yLnR5cGVzJztcbmltcG9ydCB7QWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLCBBY3Rpb25Qb3NpdGlvbkVudW0sIEFjdGlvblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5pbXBvcnQge1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yfSBmcm9tICcuL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHtcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgPSB7XG4gICAgcGFyZW50VHlwZT86IENsYXNzVHlwZTx1bmtub3duPjtcbiAgICBwYXJlbnRQcm9wZXJ0eT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmXG4gICAgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ICYge1xuICAgICAgICBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgfTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBpbXBsZW1lbnRzIElBY3Rpb25EZXNjcmlwdG9yPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lTG9uZzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50VHlwZT86IENsYXNzVHlwZTx1bmtub3duPjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhcmVudFR5cGVOYW1lPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50UHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIF9pMThuTW9kZWxBY3Rpb25CYXNlS2V5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF90eXBlOiBBY3Rpb25UeXBlRW51bSA9IEFjdGlvblR5cGVFbnVtLkRpcmVjdDtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRpb25UcmlnZ2VyOiBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0gPSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25DbGljaztcbiAgICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0gPSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0O1xuICAgIHByb3RlY3RlZCBfbGV2ZWw6IFN0eWxlTGV2ZWxFbnVtID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdDtcbiAgICBwcml2YXRlIF9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgICBwcm90ZWN0ZWQgX3RhYmxldmlld0NhdGVnb3J5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9yb3V0ZVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgX3J1bkZ1bmN0aW9uPzogQWN0aW9uUnVuRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX2lzVmlzaWJsZUZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZWRGdW5jdGlvbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIF9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yPzogQWN0aW9uQ29uZmlybWF0aW9uRGVzY3JpcHRvcjxNb2RlbD47XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2FmdGVyUnVuQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxNb2RlbCwgYW55PikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pik7XG4gICAgcHJvdGVjdGVkIF9vblJ1bkVycm9yQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PE1vZGVsLCBhbnk+KSA9PiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4pO1xuXG4gICAgLy8gc2VjdXJpdHlcbiAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuXG4gICAgLy9idXR0b25cbiAgICBwcm90ZWN0ZWQgX2J1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCk7XG5cbiAgICAvLyBtdWx0aXBsZSByb3cgc2VsZWN0aW9uXG4gICAgcHJvdGVjdGVkIF9oYXNJdGVtc1NlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY3VzdG9tIGFjdGlvbiBjb21wb25lbnRcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudD86IFR5cGU8SUFjdGlvbkNvbXBvbmVudDxNb2RlbD4+O1xuICAgIHByb3RlY3RlZCBfY29tcG9uZW50RnJvbURpPzogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+PjtcblxuICAgIC8vIHN1YmFjdGlvbnNcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnNBc01lbnUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IGNmZz8ubW9kZWw7XG4gICAgICAgIHRoaXMuX2FjdGlvbk5hbWUgPSBhY3Rpb25OYW1lO1xuXG4gICAgICAgIGlmICgoY2ZnPy5wYXJlbnRUeXBlICYmICFjZmc/LnBhcmVudFByb3BlcnR5KSB8fCAoIWNmZz8ucGFyZW50UHJvcGVydHkgJiYgY2ZnPy5wYXJlbnRQcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUHJvdmlkZSBib3RoIHRoZSBwYXJlbnQgdHlwZSBhbmQgcGFyZW50IHByb3BlcnR5IG9yIG5vbmU6ICR7dGhpcy5fYWN0aW9uTmFtZX0sICR7Y2ZnPy5wYXJlbnRUeXBlfSwgJHtjZmc/LnBhcmVudFByb3BlcnR5fS5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wYXJlbnRUeXBlID0gY2ZnPy5wYXJlbnRUeXBlO1xuICAgICAgICB0aGlzLl9wYXJlbnRUeXBlTmFtZSA9IGNmZz8ucGFyZW50VHlwZSA/IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2ZnPy5wYXJlbnRUeXBlKSA/PyB1bmRlZmluZWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BhcmVudFByb3BlcnR5ID0gY2ZnPy5wYXJlbnRQcm9wZXJ0eTtcblxuICAgICAgICB0aGlzLnNldEkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoKTtcblxuICAgICAgICBpZiAoY2ZnPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gbmV3IERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2U+KHRoaXMuX21vZGVsPy50eXBlLCBjZmcuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlOYW1lID0gYWN0aW9uTmFtZTtcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsKSBkaXNwbGF5TmFtZSA9IGAke3RoaXMuX21vZGVsLnR5cGVOYW1lID8/IHRoaXMuX21vZGVsLmkxOG5CYXNlS2V5ID8/ICdOb01vZGVsTmFtZSd9LiR7ZGlzcGxheU5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudFR5cGVOYW1lKSB7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGAke3RoaXMuX3BhcmVudFR5cGVOYW1lfS4ke3RoaXMuX3BhcmVudFByb3BlcnR5fV8ke2Rpc3BsYXlOYW1lfWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYWN0aW9uTmFtZUxvbmcgPSBkaXNwbGF5TmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJlbnRUeXBlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFR5cGVOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFyZW50UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmF0aW9uVHJpZ2dlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRpb25UcmlnZ2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxldmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGV2ZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3V0ZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlVXJsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5fcnVuRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5GdW5jdGlvbigpOiBBY3Rpb25SdW5GblR5cGU8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydW5GdW5jdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gaXMgbm90IGRlZmluZWQgZm9yIGFjdGlvbiAke3RoaXMuX2FjdGlvbk5hbWVMb25nfSBhbmQgY2Fubm90IGJlIGludm9rZWRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcnVuRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Zpc2libGVGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNFbmFibGVkRnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbk5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uTmFtZUxvbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lTG9uZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3MuY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1J1bkNvbmZpcm1hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgIT09IG51bGwgJiYgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uRXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWZ0ZXJSdW5BY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZnRlclJ1bkFjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9uUnVuRXJyb3JBY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vblJ1bkVycm9yQWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVybWlzc2lvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxldmlld0NhdGVnb3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNJdGVtc1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50RnJvbURpKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50RnJvbURpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3ViYWN0aW9uc0FzTWVudSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJhY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViYWN0aW9ucztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUeXBlTmFtZSB8fCB0aGlzLl9tb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleSA9IHRoaXMuX3BhcmVudFR5cGVOYW1lXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLl9wYXJlbnRUeXBlTmFtZX0uYWN0aW9ucy4ke3RoaXMuX3BhcmVudFByb3BlcnR5fV8ke3RoaXMuX2FjdGlvbk5hbWV9YFxuICAgICAgICAgICAgICAgIDogYCR7YmFzZSA/PyB0aGlzLl9tb2RlbCEuaTE4bkJhc2VLZXl9LmFjdGlvbnMuJHt0aGlzLl9hY3Rpb25OYW1lfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bkZ1bmN0aW9uKGZuOiBBY3Rpb25SdW5GblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXNWaXNpYmxlRnVuY3Rpb24oZm4/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElzRW5hYmxlZEZ1bmN0aW9uKGZuPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3V0ZVRyaWdnZXIocm91dGVVcmw6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlciA9IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PblJvdXRlO1xuICAgICAgICB0aGlzLl9yb3V0ZVVybCA9IHJvdXRlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBjb25maXJtYXRpb24gYWN0aW9uIHdpdGggZGVmYXVsdCBzdHlsZSBiYXNlZCBvbiBhY3Rpb24gZGVzY3JpcHRvclxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uKCk6IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+IHtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciA9IG5ldyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPigpO1xuICAgICAgICB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yLmFjY2VwdEJ1dHRvbi5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbCh0aGlzLl9sZXZlbCk7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IucmVqZWN0QnV0dG9uPy5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbCh0aGlzLl9sZXZlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgY29uZmlndXJhdGlvbiBkaWFsb2d1ZSB0byBhY3Rpb24gdXNpbmcgQWN0aW9uQ29uZmlndXJhdGlvbkRlc2NyaXB0b3JcbiAgICAgKiBAcGFyYW0gcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciBkZXNjcmlwdG9yIHdpdGggY3VzdG9taXphYmxlIGluZm9ybWF0aW9uIGZvciBkaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFJ1bkNvbmZpcm1hdGlvbkRlc2NyaXB0b3IocnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcj86IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModGl0bGU/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGhhc05vdGlmaWNhdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcyA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSdW5Ob3RpZmljYXRpb25FcnJvcih0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvciA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFmdGVyUnVuQWN0aW9uPFJldHVybiwgU2VydmljZSA9IGFueT4oYWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8UmV0dXJuPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxNb2RlbCwgU2VydmljZT4pID0+IEFjdGlvbkRlc2NyaXB0b3JJbnN0PFJldHVybj4pKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2FmdGVyUnVuQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE9uUnVuRXJyb3JBY3Rpb248UyA9IGFueT4oYWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PE1vZGVsLCBTPikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+KSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9vblJ1bkVycm9yQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHRoaXMuX3RhYmxldmlld0NhdGVnb3J5KSB7XG4gICAgICAgICAgICBMb2dnZXJTZXJ2aWNlLmdldCgpLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBXQVJOSU5HOiBQZXJtaXNzaW9ucyBzZXQgb24gYWN0aW9uICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9IHdpdGggcm91dGUgdHlwZSAnJHt0aGlzLl90YWJsZXZpZXdDYXRlZ29yeX0nIHdpbGwgYmUgb21pdHRlZCBpbiByb3V0ZSBndWFyZCB2YWxpZGF0aW9uLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZXZpZXdDYXRlZ29yeShwZXJtaXNzaW9uc1JvdXRlVHlwZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxldmlld0NhdGVnb3J5ID0gcGVybWlzc2lvbnNSb3V0ZVR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uRGVzY3JpcHRvcihidXR0b246IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0gYnV0dG9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJ1dHRvbihsYWJlbD86IHN0cmluZyB8IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBzdHlsZUxldmVsID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdCwgc3R5bGVUZXh0ID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0gbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoTGFiZWwobGFiZWwpLndpdGhJY29uKGljb24pLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoc3R5bGVMZXZlbCkud2l0aFRleHRCdXR0b24oc3R5bGVUZXh0KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXRlbXNTZWxlY3Rpb24oaGFzU2VsZWN0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNJdGVtc1NlbGVjdGlvbiA9IGhhc1NlbGVjdGlvbjtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbiA/PyAoY3R4ID0+IG9mKChjdHgucGFyYW1ldGVycy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggPz8gMCkgPiAwKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxJQWN0aW9uQ29tcG9uZW50PE1vZGVsPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudEZyb21EaShpbmplY3Rpb25Ub2tlbjogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRGcm9tRGkgPSBpbmplY3Rpb25Ub2tlbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMocG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSTE4bkJhc2UoYmFzZTogQ2xhc3NUeXBlPHVua25vd24+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBhY3Rpb24gJHt0aGlzLmFjdGlvbk5hbWVMb25nfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZSA9IHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJhY3Rpb25zQXNNZW51KHN1YmFjdGlvbnNBc01lbnUgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnNBc01lbnUgPSBzdWJhY3Rpb25zQXNNZW51O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1YmFjdGlvbnMoLi4uc3ViYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJhY3Rpb25zLnB1c2goLi4uc3ViYWN0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG8oZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgZGVzY3JpcHRvci5faTE4bk1vZGVsQWN0aW9uQmFzZUtleSA9IHRoaXMuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3R5cGUgPSB0aGlzLl90eXBlO1xuICAgICAgICBkZXNjcmlwdG9yLl9hY3RpdmF0aW9uVHJpZ2dlciA9IHRoaXMuX2FjdGl2YXRpb25UcmlnZ2VyO1xuICAgICAgICBkZXNjcmlwdG9yLl9wb3NpdGlvbiA9IHRoaXMuX3Bvc2l0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9sZXZlbCA9IHRoaXMuX2xldmVsO1xuICAgICAgICBkZXNjcmlwdG9yLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGV2aWV3Q2F0ZWdvcnkgPSB0aGlzLl90YWJsZXZpZXdDYXRlZ29yeTtcbiAgICAgICAgZGVzY3JpcHRvci5fcm91dGVVcmwgPSB0aGlzLl9yb3V0ZVVybDtcblxuICAgICAgICBkZXNjcmlwdG9yLl9ydW5GdW5jdGlvbiA9IHRoaXMuX3J1bkZ1bmN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc1Zpc2libGVGdW5jdGlvbiA9IHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc0VuYWJsZWRGdW5jdGlvbiA9IHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzO1xuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUgPSB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG5cbiAgICAgICAgZGVzY3JpcHRvci5faGFzUnVuTm90aWZpY2F0aW9uRXJyb3IgPSB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvcjtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZTtcblxuICAgICAgICBkZXNjcmlwdG9yLl9hZnRlclJ1bkFjdGlvbiA9IHRoaXMuX2FmdGVyUnVuQWN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9vblJ1bkVycm9yQWN0aW9uID0gdGhpcy5fb25SdW5FcnJvckFjdGlvbjtcblxuICAgICAgICBkZXNjcmlwdG9yLl9wZXJtaXNzaW9ucyA9IHRoaXMuX3Blcm1pc3Npb25zO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2J1dHRvbiA9IHRoaXMuX2J1dHRvbi5jb3B5KCk7XG5cbiAgICAgICAgZGVzY3JpcHRvci5faGFzSXRlbXNTZWxlY3Rpb24gPSB0aGlzLl9oYXNJdGVtc1NlbGVjdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fY29tcG9uZW50ID0gdGhpcy5fY29tcG9uZW50O1xuICAgICAgICBkZXNjcmlwdG9yLl9zdWJhY3Rpb25zQXNNZW51ID0gdGhpcy5fc3ViYWN0aW9uc0FzTWVudTtcbiAgICAgICAgZGVzY3JpcHRvci5fc3ViYWN0aW9ucyA9IHRoaXMuX3N1YmFjdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2RlbGV0ZSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiwgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCB7bW9kZWwsIC4uLmNmZ30pO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uRGFuZ2VyKTtcbiAgICAgICAgdGhpcy53aXRoUnVuQ29uZmlybWF0aW9uKCk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURSk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhMYWJlbChudWxsKS53aXRoSWNvbigncGkgcGktdHJhc2gnKTtcbiAgICB9XG59XG4iXX0=
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUszRixPQUFPLEVBQUMsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFpQjlFLE1BQU0sT0FBTyxvQkFBb0I7SUF1RDdCLFlBQW1CLFVBQWtCLEVBQUUsR0FBd0Q7UUEzQ3JGLFVBQUssR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM5Qyx1QkFBa0IsR0FBZ0MsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1FBQ3RGLGNBQVMsR0FBdUIsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ2hFLFdBQU0sR0FBbUIsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUloRCxjQUFTLEdBQWtCLElBQUksQ0FBQztRQVFoQywrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFJbEMsNkJBQXdCLEdBQUcsSUFBSSxDQUFDO1FBVTFDLFFBQVE7UUFDRSxZQUFPLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBRWpELHlCQUF5QjtRQUNmLHVCQUFrQixHQUFHLEtB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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFQZXJtaXNzaW9ucyxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVySW5zdCxcbiAgICBJQWN0aW9uRGVzY3JpcHRvcixcbiAgICBJRGF0YVByb3ZpZGVyLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgU2VydmljZUNsYXNzVHlwZSxcbiAgICBTdHlsZUxldmVsRW51bSxcbiAgICBTdHlsZVNpemVFbnVtLFxuICAgIGZpbmRSZWZsZWN0VHlwZU5hbWVcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtJQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWNvbXBvbmVudC5tb2RlbCc7XG5pbXBvcnQge0FjdGlvblJ1bkZuVHlwZSwgQWN0aW9uVmFsaWRhdGlvbkZuVHlwZX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi1kZXNjcmlwdG9yLnR5cGVzJztcbmltcG9ydCB7QWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLCBBY3Rpb25Qb3NpdGlvbkVudW0sIEFjdGlvblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5pbXBvcnQge1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzfSBmcm9tICcuLi9tb2RlbHMvdGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yfSBmcm9tICcuL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPEl0ZW0sIFNlcnZpY2U+ID0ge1xuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+O1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlID0ge1xuICAgIHBhcmVudFR5cGU/OiBDbGFzc1R5cGU8dW5rbm93bj47XG4gICAgcGFyZW50UHJvcGVydHk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxJdGVtLCBTZXJ2aWNlPiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmXG4gICAgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8SXRlbSwgU2VydmljZT4gJiB7XG4gICAgICAgIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPEl0ZW0+O1xuICAgIH07XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlID0gYW55LCBSZXR1cm5JdGVtID0gSXRlbT4gaW1wbGVtZW50cyBJQWN0aW9uRGVzY3JpcHRvcjxJdGVtLCBTZXJ2aWNlPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxJdGVtPjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGlvbk5hbWU6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGlvbk5hbWVMb25nOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wYXJlbnRUeXBlPzogQ2xhc3NUeXBlPHVua25vd24+O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50VHlwZU5hbWU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wYXJlbnRQcm9wZXJ0eT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPjtcblxuICAgIHByb3RlY3RlZCBfaTE4bk1vZGVsQWN0aW9uQmFzZUtleT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfdHlwZTogQWN0aW9uVHlwZUVudW0gPSBBY3Rpb25UeXBlRW51bS5EaXJlY3Q7XG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0aW9uVHJpZ2dlcjogQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtID0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uQ2xpY2s7XG4gICAgcHJvdGVjdGVkIF9wb3NpdGlvbjogQWN0aW9uUG9zaXRpb25FbnVtID0gQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJSaWdodDtcbiAgICBwcm90ZWN0ZWQgX2xldmVsOiBTdHlsZUxldmVsRW51bSA9IFN0eWxlTGV2ZWxFbnVtLkRlZmF1bHQ7XG4gICAgcHJpdmF0ZSBfcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzPzogc3RyaW5nW107XG4gICAgcHJvdGVjdGVkIF90YWJsZXZpZXdDYXRlZ29yeT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfcm91dGVVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIF9ydW5GdW5jdGlvbj86IEFjdGlvblJ1bkZuVHlwZTxJdGVtLCBTZXJ2aWNlLCBSZXR1cm5JdGVtPjtcbiAgICBwcm90ZWN0ZWQgX2lzVmlzaWJsZUZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxJdGVtLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX2lzRW5hYmxlZEZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxJdGVtLCBTZXJ2aWNlPjtcblxuICAgIHByb3RlY3RlZCBfcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcj86IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8SXRlbT47XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2FmdGVyUnVuQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBhbnk+KSA9PiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnk+KTtcbiAgICBwcm90ZWN0ZWQgX29uUnVuRXJyb3JBY3Rpb24/OiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBhbnk+KSA9PiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPik7XG5cbiAgICAvLyBzZWN1cml0eVxuICAgIHByb3RlY3RlZCBfcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnM7XG5cbiAgICAvL2J1dHRvblxuICAgIHByb3RlY3RlZCBfYnV0dG9uID0gbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKTtcblxuICAgIC8vIG11bHRpcGxlIHJvdyBzZWxlY3Rpb25cbiAgICBwcm90ZWN0ZWQgX2hhc0l0ZW1zU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvLyBjdXN0b20gYWN0aW9uIGNvbXBvbmVudFxuICAgIHByb3RlY3RlZCBfY29tcG9uZW50PzogVHlwZTxJQWN0aW9uQ29tcG9uZW50PEl0ZW0+PjtcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudEZyb21EaT86IEluamVjdGlvblRva2VuPFR5cGU8YW55Pj47XG5cbiAgICAvLyBzdWJhY3Rpb25zXG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zQXNNZW51ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPEl0ZW0sIFNlcnZpY2U+KSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gY2ZnPy5tb2RlbDtcbiAgICAgICAgdGhpcy5fYWN0aW9uTmFtZSA9IGFjdGlvbk5hbWU7XG5cbiAgICAgICAgaWYgKChjZmc/LnBhcmVudFR5cGUgJiYgIWNmZz8ucGFyZW50UHJvcGVydHkpIHx8ICghY2ZnPy5wYXJlbnRQcm9wZXJ0eSAmJiBjZmc/LnBhcmVudFByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBQcm92aWRlIGJvdGggdGhlIHBhcmVudCB0eXBlIGFuZCBwYXJlbnQgcHJvcGVydHkgb3Igbm9uZTogJHt0aGlzLl9hY3Rpb25OYW1lfSwgJHtjZmc/LnBhcmVudFR5cGV9LCAke2NmZz8ucGFyZW50UHJvcGVydHl9LmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BhcmVudFR5cGUgPSBjZmc/LnBhcmVudFR5cGU7XG4gICAgICAgIHRoaXMuX3BhcmVudFR5cGVOYW1lID0gY2ZnPy5wYXJlbnRUeXBlID8gZmluZFJlZmxlY3RUeXBlTmFtZShjZmc/LnBhcmVudFR5cGUpID8/IHVuZGVmaW5lZCA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fcGFyZW50UHJvcGVydHkgPSBjZmc/LnBhcmVudFByb3BlcnR5O1xuXG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleSgpO1xuXG4gICAgICAgIGlmIChjZmc/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBuZXcgRGF0YVByb3ZpZGVySW5zdDxJdGVtLCBTZXJ2aWNlPih0aGlzLl9tb2RlbD8udHlwZSwgY2ZnLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgfSBlbHNlIGlmIChjZmc/LmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gY2ZnLmRhdGFQcm92aWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBkaXNwbGF5TmFtZSA9IGFjdGlvbk5hbWU7XG4gICAgICAgIGlmICh0aGlzLl9tb2RlbCkgZGlzcGxheU5hbWUgPSBgJHt0aGlzLl9tb2RlbC50eXBlTmFtZSA/PyB0aGlzLl9tb2RlbC5pMThuQmFzZUtleSA/PyAnTm9Nb2RlbE5hbWUnfS4ke2Rpc3BsYXlOYW1lfWA7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUeXBlTmFtZSkge1xuICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBgJHt0aGlzLl9wYXJlbnRUeXBlTmFtZX0uJHt0aGlzLl9wYXJlbnRQcm9wZXJ0eX1fJHtkaXNwbGF5TmFtZX1gO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGlvbk5hbWVMb25nID0gZGlzcGxheU5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFyZW50VHlwZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRUeXBlTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhcmVudFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50UHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpMThuTW9kZWxBY3Rpb25CYXNlS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZhdGlvblRyaWdnZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xldmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91dGVVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZVVybDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1J1bkZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX3J1bkZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuRnVuY3Rpb24oKTogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIFJldHVybkl0ZW0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydW5GdW5jdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gaXMgbm90IGRlZmluZWQgZm9yIGFjdGlvbiAke3RoaXMuX2FjdGlvbk5hbWVMb25nfSBhbmQgY2Fubm90IGJlIGludm9rZWRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcnVuRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Zpc2libGVGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNFbmFibGVkRnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbk5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uTmFtZUxvbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lTG9uZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3MuY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1J1bkNvbmZpcm1hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgIT09IG51bGwgJiYgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uRXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWZ0ZXJSdW5BY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZnRlclJ1bkFjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9uUnVuRXJyb3JBY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vblJ1bkVycm9yQWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVybWlzc2lvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxldmlld0NhdGVnb3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNJdGVtc1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50RnJvbURpKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50RnJvbURpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3ViYWN0aW9uc0FzTWVudSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJhY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViYWN0aW9ucztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUeXBlTmFtZSB8fCB0aGlzLl9tb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleSA9IHRoaXMuX3BhcmVudFR5cGVOYW1lXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLl9wYXJlbnRUeXBlTmFtZX0uYWN0aW9ucy4ke3RoaXMuX3BhcmVudFByb3BlcnR5fV8ke3RoaXMuX2FjdGlvbk5hbWV9YFxuICAgICAgICAgICAgICAgIDogYCR7YmFzZSA/PyB0aGlzLl9tb2RlbCEuaTE4bkJhc2VLZXl9LmFjdGlvbnMuJHt0aGlzLl9hY3Rpb25OYW1lfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bkZ1bmN0aW9uKGZuOiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgUmV0dXJuSXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJc1Zpc2libGVGdW5jdGlvbihmbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8SXRlbSwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJc0VuYWJsZWRGdW5jdGlvbihmbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8SXRlbSwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3V0ZVRyaWdnZXIocm91dGVVcmw6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlciA9IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PblJvdXRlO1xuICAgICAgICB0aGlzLl9yb3V0ZVVybCA9IHJvdXRlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBjb25maXJtYXRpb24gYWN0aW9uIHdpdGggZGVmYXVsdCBzdHlsZSBiYXNlZCBvbiBhY3Rpb24gZGVzY3JpcHRvclxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uKCk6IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8SXRlbT4ge1xuICAgICAgICB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yID0gbmV3IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8SXRlbT4oKTtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvci5hY2NlcHRCdXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwodGhpcy5fbGV2ZWwpO1xuICAgICAgICB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yLnJlamVjdEJ1dHRvbj8uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwodGhpcy5fbGV2ZWwpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBhIGNvbmZpZ3VyYXRpb24gZGlhbG9ndWUgdG8gYWN0aW9uIHVzaW5nIEFjdGlvbkNvbmZpZ3VyYXRpb25EZXNjcmlwdG9yXG4gICAgICogQHBhcmFtIHJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgZGVzY3JpcHRvciB3aXRoIGN1c3RvbWl6YWJsZSBpbmZvcm1hdGlvbiBmb3IgZGlhbG9nXG4gICAgICovXG4gICAgcHVibGljIHdpdGhSdW5Db25maXJtYXRpb25EZXNjcmlwdG9yKHJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3I/OiBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModGl0bGU/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGhhc05vdGlmaWNhdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcyA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSdW5Ob3RpZmljYXRpb25FcnJvcih0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvciA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFmdGVyUnVuQWN0aW9uPFJldHVybiwgU2VydmljZSA9IGFueT4oYWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8UmV0dXJuPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8UmV0dXJuPikpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJSdW5BY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoT25SdW5FcnJvckFjdGlvbjxTID0gYW55PihhY3Rpb24/OiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTPikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT4pKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX29uUnVuRXJyb3JBY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnMocGVybWlzc2lvbnM6IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAodGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuZ2V0KCkuZGVidWcoXG4gICAgICAgICAgICAgICAgYFdBUk5JTkc6IFBlcm1pc3Npb25zIHNldCBvbiBhY3Rpb24gJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30gd2l0aCByb3V0ZSB0eXBlICcke3RoaXMuX3RhYmxldmlld0NhdGVnb3J5fScgd2lsbCBiZSBvbWl0dGVkIGluIHJvdXRlIGd1YXJkIHZhbGlkYXRpb24uYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRhYmxldmlld0NhdGVnb3J5KHBlcm1pc3Npb25zUm91dGVUeXBlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnkgPSBwZXJtaXNzaW9uc1JvdXRlVHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhCdXR0b25EZXNjcmlwdG9yKGJ1dHRvbjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9idXR0b24gPSBidXR0b247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uKGxhYmVsPzogc3RyaW5nIHwgbnVsbCwgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGwsIHN0eWxlTGV2ZWwgPSBTdHlsZUxldmVsRW51bS5EZWZhdWx0LCBzdHlsZVRleHQgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9idXR0b24gPSBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhMYWJlbChsYWJlbCkud2l0aEljb24oaWNvbikud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihzdHlsZUxldmVsKS53aXRoVGV4dEJ1dHRvbihzdHlsZVRleHQpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJdGVtc1NlbGVjdGlvbihoYXNTZWxlY3Rpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uID0gaGFzU2VsZWN0aW9uO1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbiA9IHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uID8/IChjdHggPT4gb2YoKGN0eC5wYXJhbWV0ZXJzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA/PyAwKSA+IDApKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPElBY3Rpb25Db21wb25lbnQ8SXRlbT4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb21wb25lbnRGcm9tRGkoaW5qZWN0aW9uVG9rZW46IEluamVjdGlvblRva2VuPFR5cGU8YW55Pj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50RnJvbURpID0gaW5qZWN0aW9uVG9rZW47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKHBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllczogc3RyaW5nW10pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzID0gcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEkxOG5CYXNlKGJhc2U6IENsYXNzVHlwZTx1bmtub3duPiB8IHN0cmluZyk6IHRoaXMge1xuICAgICAgICBpZiAodHlwZW9mIGJhc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoYmFzZSk7XG4gICAgICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBDb3VsZCBub3QgZmluZCBkZWZpbmUgaTE4bkJhc2VLZXkgZm9yICR7YmFzZX0gb24gYWN0aW9uICR7dGhpcy5hY3Rpb25OYW1lTG9uZ31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJhc2UgPSB0eXBlTmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoYmFzZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU3ViYWN0aW9uc0FzTWVudShzdWJhY3Rpb25zQXNNZW51ID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJhY3Rpb25zQXNNZW51ID0gc3ViYWN0aW9uc0FzTWVudTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJhY3Rpb25zKC4uLnN1YmFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJhY3Rpb25zLnB1c2goLi4uc3ViYWN0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG8oZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSwgUmV0dXJuSXRlbT4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBSZXR1cm5JdGVtPiB7XG4gICAgICAgIGRlc2NyaXB0b3IuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXkgPSB0aGlzLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5O1xuICAgICAgICBkZXNjcmlwdG9yLl90eXBlID0gdGhpcy5fdHlwZTtcbiAgICAgICAgZGVzY3JpcHRvci5fYWN0aXZhdGlvblRyaWdnZXIgPSB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlcjtcbiAgICAgICAgZGVzY3JpcHRvci5fcG9zaXRpb24gPSB0aGlzLl9wb3NpdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fbGV2ZWwgPSB0aGlzLl9sZXZlbDtcbiAgICAgICAgZGVzY3JpcHRvci5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzID0gdGhpcy5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxldmlld0NhdGVnb3J5ID0gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3JvdXRlVXJsID0gdGhpcy5fcm91dGVVcmw7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fcnVuRnVuY3Rpb24gPSB0aGlzLl9ydW5GdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNWaXNpYmxlRnVuY3Rpb24gPSB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNFbmFibGVkRnVuY3Rpb24gPSB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcblxuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yID0gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcjtcblxuICAgICAgICBkZXNjcmlwdG9yLl9oYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzID0gdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcztcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yID0gdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uRXJyb3I7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGUgPSB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlO1xuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UgPSB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2U7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fYWZ0ZXJSdW5BY3Rpb24gPSB0aGlzLl9hZnRlclJ1bkFjdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fb25SdW5FcnJvckFjdGlvbiA9IHRoaXMuX29uUnVuRXJyb3JBY3Rpb247XG5cbiAgICAgICAgZGVzY3JpcHRvci5fcGVybWlzc2lvbnMgPSB0aGlzLl9wZXJtaXNzaW9ucztcblxuICAgICAgICBkZXNjcmlwdG9yLl9idXR0b24gPSB0aGlzLl9idXR0b24uY29weSgpO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2hhc0l0ZW1zU2VsZWN0aW9uID0gdGhpcy5faGFzSXRlbXNTZWxlY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbXBvbmVudCA9IHRoaXMuX2NvbXBvbmVudDtcbiAgICAgICAgZGVzY3JpcHRvci5fc3ViYWN0aW9uc0FzTWVudSA9IHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3N1YmFjdGlvbnMgPSB0aGlzLl9zdWJhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZGVsZXRlJztcblxuICAgIGNvbnN0cnVjdG9yKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8SXRlbT4sIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPEl0ZW0sIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCB7bW9kZWwsIC4uLmNmZ30pO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoU3R5bGVMZXZlbEVudW0uRGFuZ2VyKTtcbiAgICAgICAgdGhpcy53aXRoUnVuQ29uZmlybWF0aW9uKCk7XG4gICAgICAgIHRoaXMud2l0aFRhYmxldmlld0NhdGVnb3J5KFRhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURSk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhMYWJlbChudWxsKS53aXRoSWNvbigncGkgcGktdHJhc2gnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRlc2NyaXB0b3IudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vbW9kZWxzL2FjdGlvbi1kZXNjcmlwdG9yLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0l0ZW1Pck9ic2VydmFibGUsIE51bGxhYmxlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0FjdGlvbkNvbnRleHRWYWxpZGF0aW9ufSBmcm9tICcuL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC12YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4vZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UgPSB1bmRlZmluZWQsIFJldHVybkl0ZW0gPSBJdGVtLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPE51bGxhYmxlPFJldHVybkl0ZW0+Pj4gPSAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gUmV0dXJuO1xuZXhwb3J0IHR5cGUgQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxJdGVtLCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IChjdHg6IEFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPEl0ZW0sIFNlcnZpY2U+KSA9PiBSZXR1cm47XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Subject } from 'rxjs';
|
|
2
|
-
import { CommonsInternalError
|
|
2
|
+
import { CommonsInternalError } from '@mediusinc/mng-commons/core';
|
|
3
3
|
import { FieldSizeEnum } from '../models/field.model';
|
|
4
4
|
import { FieldValidationDescriptor } from './field-validation.descriptor';
|
|
5
5
|
export class AGenericFieldDescriptor {
|
|
@@ -47,7 +47,6 @@ export class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
47
47
|
/** @ignore */ this._isLocalized = false;
|
|
48
48
|
/** @ignore */ this._eventsSubject = new Subject();
|
|
49
49
|
this._property = property;
|
|
50
|
-
this._label = getI18nTypePropertyKey(this._editor.model.i18nBaseKey, property);
|
|
51
50
|
}
|
|
52
51
|
get property() {
|
|
53
52
|
return this._property;
|
|
@@ -293,4 +292,4 @@ export class AFieldDescriptor extends AGenericFieldDescriptor {
|
|
|
293
292
|
obj._asyncValidations = this._asyncValidations.map(value => value.copy());
|
|
294
293
|
}
|
|
295
294
|
}
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLWJhc2UuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxvQkFBb0IsRUFBK0Isc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUd0SCxPQUFPLEVBQWMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHakUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFeEUsTUFBTSxPQUFnQix1QkFBdUI7SUFJekMsWUFBc0IsTUFBc0M7UUFGbEQsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsTUFBbUI7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU07UUFDWixNQUFNLE9BQU8sR0FBRztZQUNaLEdBQUcsSUFBSTtZQUNQLE9BQU8sRUFBRSxTQUFTO1NBQ3JCLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBZ0IsZ0JBQWtHLFNBQVEsdUJBQW9DO0lB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bCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7RmllbGRUeXBlLCBGb3JtbHlGaWVsZENvbmZpZ30gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBHZXR0ZXJGbiwgSUVkaXRvckRlc2NyaXB0b3IsIGdldEkxOG5UeXBlUHJvcGVydHlLZXl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7RmllbGRBc3luY0Jhc2VWYWxpZGF0b3IsIEZpZWxkQXN5bmNWYWxpZGF0b3IsIEZpZWxkQmFzZVZhbGlkYXRvciwgRmllbGRWYWxpZGF0aW9uTWVzc2FnZSwgRmllbGRWYWxpZGF0b3J9IGZyb20gJy4uL21vZGVscy9maWVsZC12YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7RmllbGRDb25maWcsIEZpZWxkU2l6ZUVudW19IGZyb20gJy4uL21vZGVscy9maWVsZC5tb2RlbCc7XG5pbXBvcnQge0Zvcm1GaWVsZEV2ZW50LCBGb3JtRmllbGRFdmVudERhdGEsIEZvcm1GaWVsZEV2ZW50VHlwZUVudW19IGZyb20gJy4uL21vZGVscy9mb3JtLWVkaXRvci5ldmVudCc7XG5pbXBvcnQge0NvbW1vbnNGb3JtbHlGaWVsZENvbmZpZywgQ29tbW9uc0Zvcm1seUhvb2tGbn0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1seS1maWVsZC5tb2RlbCc7XG5pbXBvcnQge0ZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4vZmllbGQtdmFsaWRhdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFHZW5lcmljRmllbGREZXNjcmlwdG9yPEVkaXRvck1vZGVsPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lZGl0b3I6IElFZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsPjtcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZzogRmllbGRDb25maWcgPSB7fTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihlZGl0b3I6IElFZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsPikge1xuICAgICAgICB0aGlzLl9lZGl0b3IgPSBlZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb25maWcoY29uZmlnOiBGaWVsZENvbmZpZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHRvSlNPTiBpbXBsZW1lbnRhdGlvbiB0byBwcmV2ZW50IG92ZXJmbG93IHdpdGggY2lyY3VsYXIgZGVwZW5kZW5jeS5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRvSlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uT2JqID0ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIF9lZGl0b3I6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uT2JqU3RyID0gSlNPTi5zdHJpbmdpZnkoanNvbk9iaik7XG4gICAgICAgIHJldHVybiBqc29uT2JqU3RyO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFGaWVsZERlc2NyaXB0b3I8RmllbGRNb2RlbCwgRWRpdG9yTW9kZWwsIEZpZWxkVmFsdWUgPSBGaWVsZE1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4gZXh0ZW5kcyBBR2VuZXJpY0ZpZWxkRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4ge1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2xhYmVsPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oZWxwVGV4dD86IHN0cmluZztcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3JlcXVpcmVkSGlkZUxhYmVsTWFya2VyID0gZmFsc2U7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZGVmYXVsdFZhbHVlPzogRmllbGRWYWx1ZTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2dldHRlcj86IEdldHRlckZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPjtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3NldHRlcj86IChpdGVtOiBFZGl0b3JNb2RlbCwgdmFsdWU6IEZpZWxkVmFsdWUpID0+IHZvaWQ7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF92YWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+ID0gW107XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9hc3luY1ZhbGlkYXRpb25zOiBBcnJheTxGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yPGFueSwgYW55Pj4gPSBbXTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3JlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZyB8ICgoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbikgfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZGlzYWJsZWRFeHByZXNzaW9uPzogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oaWRkZW5FeHByZXNzaW9uPzogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oaWRkZW5SZXNldE9uSGlkZT86IGJvb2xlYW47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF91cGRhdGVPbjogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JyA9ICdjaGFuZ2UnO1xuXG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9vbkluaXQ/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPjtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX29uQ2hhbmdlcz86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfYWZ0ZXJDb250ZW50SW5pdD86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfYWZ0ZXJWaWV3SW5pdD86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfb25EZXN0cm95PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD47XG5cbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX29uVmFsdWVDaGFuZ2U/OiAoZmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4sIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG5cbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2NsYXNzTmFtZSA9ICcnO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZmllbGRDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9sYWJlbENsYXNzTmFtZSA9ICcnO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfaW5wdXRDbGFzc05hbWUgPSAnJztcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3NpemU6IEZpZWxkU2l6ZUVudW0gPSBGaWVsZFNpemVFbnVtLk5vcm1hbDtcblxuICAgIC8vIGxvY2FsaXphdGlvblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfaXNMb2NhbGl6ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCByZWFkb25seSBfZXZlbnRzU3ViamVjdCA9IG5ldyBTdWJqZWN0PEZvcm1GaWVsZEV2ZW50PEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZWRpdG9yOiBJRWRpdG9yRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4sIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yKTtcbiAgICAgICAgdGhpcy5fcHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSBnZXRJMThuVHlwZVByb3BlcnR5S2V5KHRoaXMuX2VkaXRvci5tb2RlbC5pMThuQmFzZUtleSwgcHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGVscFRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWxwVGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXF1aXJlZEhpZGVMYWJlbE1hcmtlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSGlkZUxhYmVsTWFya2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbGlkYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhc3luY1ZhbGlkYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXN5bmNWYWxpZGF0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkRXhwcmVzc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkRXhwcmVzc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZGRlbkV4cHJlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW5FeHByZXNzaW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGlkZGVuUmVzZXRPbkhpZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW5SZXNldE9uSGlkZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVwZGF0ZU9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlT247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvbkluaXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkluaXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvbkNoYW5nZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkNoYW5nZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJDb250ZW50SW5pdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZnRlclZpZXdJbml0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25EZXN0cm95KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25EZXN0cm95O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uVmFsdWVDaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWVsZENsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGFiZWxDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbENsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2l6ZVNtYWxsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZSA9PT0gRmllbGRTaXplRW51bS5TbWFsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzU2l6ZUxhcmdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZSA9PT0gRmllbGRTaXplRW51bS5MYXJnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTG9jYWxpemVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2NhbGl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGNvcHkoKTogQUZpZWxkRGVzY3JpcHRvcjxGaWVsZE1vZGVsLCBFZGl0b3JNb2RlbCwgRmllbGRWYWx1ZT47XG5cbiAgICBwdWJsaWMgd2l0aExhYmVsKGxhYmVsOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2xhYmVsID0gbGFiZWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEhlbHBUZXh0KGhlbHBUZXh0OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGVscFRleHQgPSBoZWxwVGV4dDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZXF1aXJlZChyZXF1aXJlZCA9IHRydWUsIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZyB8ICgoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbikgfCBPYnNlcnZhYmxlPGJvb2xlYW4+LCBoaWRlTGFiZWxNYXJrZXIgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgICAgICBpZiAocmVxdWlyZWRFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZEV4cHJlc3Npb24gPSByZXF1aXJlZEV4cHJlc3Npb247XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVxdWlyZWRIaWRlTGFiZWxNYXJrZXIgPSBoaWRlTGFiZWxNYXJrZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlzYWJsZWQoZGlzYWJsZWQgPSB0cnVlLCBkaXNhYmxlZEV4cHJlc3Npb24/OiBzdHJpbmcgfCAoKGZpZWxkPzogRm9ybWx5RmllbGRDb25maWcpID0+IGJvb2xlYW4pIHwgT2JzZXJ2YWJsZTxib29sZWFuPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICBpZiAoZGlzYWJsZWRFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZEV4cHJlc3Npb24gPSBkaXNhYmxlZEV4cHJlc3Npb247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhIaWRkZW4oaGlkZGVuRXhwcmVzc2lvbjogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj4sIHJlc2V0T25IaWRlPzogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICB0aGlzLl9oaWRkZW5FeHByZXNzaW9uID0gaGlkZGVuRXhwcmVzc2lvbjtcbiAgICAgICAgdGhpcy5faGlkZGVuUmVzZXRPbkhpZGUgPSByZXNldE9uSGlkZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhVcGRhdGVPbih1cGRhdGVPbjogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0Jyk6IHRoaXMge1xuICAgICAgICB0aGlzLl91cGRhdGVPbiA9IHVwZGF0ZU9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE9uSW5pdChvbkluaXQ/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9vbkluaXQgPSBvbkluaXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoT25DaGFuZ2VzKG9uQ2hhbmdlcz86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlcyA9IG9uQ2hhbmdlcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZnRlckNvbnRlbnRJbml0KGFmdGVyQ29udGVudEluaXQ/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hZnRlckNvbnRlbnRJbml0ID0gYWZ0ZXJDb250ZW50SW5pdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZnRlclZpZXdJbml0KGFmdGVyVmlld0luaXQ/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hZnRlclZpZXdJbml0ID0gYWZ0ZXJWaWV3SW5pdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhPbkRlc3Ryb3kob25EZXN0cm95PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95ID0gb25EZXN0cm95O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE9uVmFsdWVDaGFuZ2Uob25WYWx1ZUNoYW5nZT86IChmaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPiwgdmFsdWU6IEZpZWxkVmFsdWUpID0+IHZvaWQpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fb25WYWx1ZUNoYW5nZSA9IG9uVmFsdWVDaGFuZ2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZTogRmllbGRWYWx1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoR2V0dGVyKGZuPzogR2V0dGVyRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2dldHRlciA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFNldHRlcihmbj86IChpdGVtOiBFZGl0b3JNb2RlbCwgdmFsdWU6IEZpZWxkVmFsdWUpID0+IHZvaWQpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2V0dGVyID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVmFsaWRhdGlvbjxWYWx1ZSA9IEZpZWxkVmFsdWUsIEVkaXRvclZhbHVlID0gRWRpdG9yTW9kZWw+KFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHZhbGlkYXRvcj86IEZpZWxkVmFsaWRhdG9yPFZhbHVlLCBFZGl0b3JWYWx1ZSwgUGFyZW50RWRpdG9yTW9kZWw+LFxuICAgICAgICBtZXNzYWdlPzogRmllbGRWYWxpZGF0aW9uTWVzc2FnZTxWYWx1ZSwgRWRpdG9yVmFsdWUsIFBhcmVudEVkaXRvck1vZGVsPlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLl92YWxpZGF0aW9ucy5wdXNoKG5ldyBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yKG5hbWUsIHZhbGlkYXRvciBhcyBGaWVsZEJhc2VWYWxpZGF0b3I8VmFsdWUsIEVkaXRvclZhbHVlLCBQYXJlbnRFZGl0b3JNb2RlbD4sIG1lc3NhZ2UpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVZhbGlkYXRpb24obmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdGhpcy5fdmFsaWRhdGlvbnMuZmlsdGVyKHYgPT4gdi5uYW1lICE9PSBuYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBc3luY1ZhbGlkYXRpb248VmFsdWUgPSBGaWVsZFZhbHVlLCBFZGl0b3JWYWx1ZSA9IEVkaXRvck1vZGVsPihcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcj86IEZpZWxkQXN5bmNWYWxpZGF0b3I8VmFsdWUsIEVkaXRvclZhbHVlPixcbiAgICAgICAgbWVzc2FnZT86IEZpZWxkVmFsaWRhdGlvbk1lc3NhZ2U8VmFsdWUsIEVkaXRvclZhbHVlPlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hc3luY1ZhbGlkYXRpb25zLnB1c2gobmV3IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3IobmFtZSwgYXN5bmNWYWxpZGF0b3IgYXMgRmllbGRBc3luY0Jhc2VWYWxpZGF0b3I8VmFsdWUsIEVkaXRvclZhbHVlPiwgbWVzc2FnZSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQXN5bmNWYWxpZGF0aW9uKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hc3luY1ZhbGlkYXRpb25zID0gdGhpcy5fYXN5bmNWYWxpZGF0aW9ucy5maWx0ZXIodiA9PiB2Lm5hbWUgIT09IG5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZywgbGFiZWxDbGFzc05hbWUgPSAnJywgaW5wdXRDbGFzc05hbWUgPSAnJywgZmllbGRDbGFzc05hbWU/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICB0aGlzLl9sYWJlbENsYXNzTmFtZSA9IGxhYmVsQ2xhc3NOYW1lO1xuICAgICAgICB0aGlzLl9pbnB1dENsYXNzTmFtZSA9IGlucHV0Q2xhc3NOYW1lO1xuICAgICAgICB0aGlzLl9maWVsZENsYXNzTmFtZSA9IGZpZWxkQ2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFNpemUoc2l6ZTogRmllbGRTaXplRW51bSA9IEZpZWxkU2l6ZUVudW0uTm9ybWFsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBhZGRzIGFuIGljb24gd2l0aCB0ZXh0IFNob3cgYWxsIHRyYW5zbGF0aW9ucyBhYm92ZSB0aGUgZmllbGQgYW5kIGFmdGVyIGNsaWNraW5nIG9uIGl0LCBpdCBkaXNwbGF5cyBhIG5ldyBkaWFsb2cgd2l0aCB0YWJsZXZpZXcuXG4gICAgICogVGhpcyBuZXcgdGFibGUgdmlldyBzaG93cyBhbGwgYXZhaWxhYmxlIHRyYW5zbGF0aW9ucyBmb3Igc3BlY2lmaWMgcHJvcGVydHkgYW5kIGFsbG93cyBlZGl0aW5nIGl0LlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2NhbGl6ZWQoKTogdGhpcyB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0b3IuaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgTG9jYWxpemF0aW9uIGNhbm5vdCBiZSBzZXQgZm9yIGZpZWxkICR7dGhpcy5wcm9wZXJ0eX0sIGxvY2FsaXphdGlvbiBtdXN0IGJlIGVuYWJsZWQgb24gZWRpdG9yIGZpcnN0LmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzTG9jYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRFdmVudChcbiAgICAgICAgdHlwZTogRm9ybUZpZWxkRXZlbnRUeXBlRW51bSxcbiAgICAgICAgY29tcG9uZW50OiBGaWVsZFR5cGU8Q29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsLCBhbnk+PixcbiAgICAgICAgZGF0YT86IEZvcm1GaWVsZEV2ZW50RGF0YTxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD5cbiAgICApIHtcbiAgICAgICAgdGhpcy5fZXZlbnRzU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBmaWVsZENvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgICAgICAgZm9ybUNvbXBvbmVudDogY29tcG9uZW50LnByb3BzLmZvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgICAgICAgICBmb3JtOiBjb21wb25lbnQ/LmZvcm0gYXMgRm9ybUdyb3VwLFxuICAgICAgICAgICAgZmllbGRGb3JtQ29udHJvbDogY29tcG9uZW50LmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sLFxuICAgICAgICAgICAgZmllbGRGb3JtbHlDb25maWc6IGNvbXBvbmVudC5maWVsZCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBldmVudHMkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29weUZpZWxkc1RvKG9iajogQUZpZWxkRGVzY3JpcHRvcjxGaWVsZE1vZGVsLCBFZGl0b3JNb2RlbCwgRmllbGRWYWx1ZT4pIHtcbiAgICAgICAgb2JqLl9sYWJlbCA9IHRoaXMuX2xhYmVsO1xuICAgICAgICBvYmouX3BsYWNlaG9sZGVyID0gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgICAgIG9iai5faGVscFRleHQgPSB0aGlzLl9oZWxwVGV4dDtcbiAgICAgICAgb2JqLl9yZXF1aXJlZCA9IHRoaXMuX3JlcXVpcmVkO1xuICAgICAgICBvYmouX2Rpc2FibGVkID0gdGhpcy5fZGlzYWJsZWQ7XG4gICAgICAgIG9iai5fZGVmYXVsdFZhbHVlID0gdGhpcy5fZGVmYXVsdFZhbHVlO1xuICAgICAgICBvYmouX3JlcXVpcmVkRXhwcmVzc2lvbiA9IHRoaXMuX3JlcXVpcmVkRXhwcmVzc2lvbjtcbiAgICAgICAgb2JqLl9oaWRkZW5FeHByZXNzaW9uID0gdGhpcy5faGlkZGVuRXhwcmVzc2lvbjtcbiAgICAgICAgb2JqLl9oaWRkZW5SZXNldE9uSGlkZSA9IHRoaXMuX2hpZGRlblJlc2V0T25IaWRlO1xuICAgICAgICBvYmouX3VwZGF0ZU9uID0gdGhpcy5fdXBkYXRlT247XG4gICAgICAgIG9iai5fb25Jbml0ID0gdGhpcy5fb25Jbml0O1xuICAgICAgICBvYmouX29uQ2hhbmdlcyA9IHRoaXMuX29uQ2hhbmdlcztcbiAgICAgICAgb2JqLl9vbkRlc3Ryb3kgPSB0aGlzLl9vbkRlc3Ryb3k7XG4gICAgICAgIG9iai5fYWZ0ZXJDb250ZW50SW5pdCA9IHRoaXMuX2FmdGVyQ29udGVudEluaXQ7XG4gICAgICAgIG9iai5fYWZ0ZXJWaWV3SW5pdCA9IHRoaXMuX2FmdGVyVmlld0luaXQ7XG4gICAgICAgIG9iai5fb25WYWx1ZUNoYW5nZSA9IHRoaXMuX29uVmFsdWVDaGFuZ2U7XG4gICAgICAgIG9iai5fZGlzYWJsZWRFeHByZXNzaW9uID0gdGhpcy5fZGlzYWJsZWRFeHByZXNzaW9uO1xuICAgICAgICBvYmouX2NsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZTtcbiAgICAgICAgb2JqLl9zaXplID0gdGhpcy5zaXplO1xuICAgICAgICBvYmouX2dldHRlciA9IHRoaXMuX2dldHRlcjtcbiAgICAgICAgb2JqLl9zZXR0ZXIgPSB0aGlzLl9zZXR0ZXI7XG4gICAgICAgIG9iai5faXNMb2NhbGl6ZWQgPSB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICAgICAgb2JqLl92YWxpZGF0aW9ucyA9IHRoaXMuX3ZhbGlkYXRpb25zLm1hcCh2YWx1ZSA9PiB2YWx1ZS5jb3B5KCkpO1xuICAgICAgICBvYmouX2FzeW5jVmFsaWRhdGlvbnMgPSB0aGlzLl9hc3luY1ZhbGlkYXRpb25zLm1hcCh2YWx1ZSA9PiB2YWx1ZS5jb3B5KCkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvZWRpdG9yL2Rlc2NyaXB0b3JzL2ZpZWxkLWJhc2UuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxvQkFBb0IsRUFBOEIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RixPQUFPLEVBQWMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHakUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFeEUsTUFBTSxPQUFnQix1QkFBdUI7SUFJekMsWUFBc0IsTUFBc0M7UUFGbEQsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsTUFBbUI7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU07UUFDWixNQUFNLE9BQU8sR0FBRztZQUNaLEdBQUcsSUFBSTtZQUNQLE9BQU8sRUFBRSxTQUFTO1NBQ3JCLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBZ0IsZ0JBQWtHLFNBQVEsdUJBQW9DO0lBd0NoSyxZQUFzQixN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LE9BQU8sQ0FBQztRQUMzQixHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDL0MsR0FBRyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3pDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN6QyxHQUFHLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ25ELEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzNCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzQixHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckMsR0FBRyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7RmllbGRUeXBlLCBGb3JtbHlGaWVsZENvbmZpZ30gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBHZXR0ZXJGbiwgSUVkaXRvckRlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7RmllbGRBc3luY0Jhc2VWYWxpZGF0b3IsIEZpZWxkQXN5bmNWYWxpZGF0b3IsIEZpZWxkQmFzZVZhbGlkYXRvciwgRmllbGRWYWxpZGF0aW9uTWVzc2FnZSwgRmllbGRWYWxpZGF0b3J9IGZyb20gJy4uL21vZGVscy9maWVsZC12YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7RmllbGRDb25maWcsIEZpZWxkU2l6ZUVudW19IGZyb20gJy4uL21vZGVscy9maWVsZC5tb2RlbCc7XG5pbXBvcnQge0Zvcm1GaWVsZEV2ZW50LCBGb3JtRmllbGRFdmVudERhdGEsIEZvcm1GaWVsZEV2ZW50VHlwZUVudW19IGZyb20gJy4uL21vZGVscy9mb3JtLWVkaXRvci5ldmVudCc7XG5pbXBvcnQge0NvbW1vbnNGb3JtbHlGaWVsZENvbmZpZywgQ29tbW9uc0Zvcm1seUhvb2tGbn0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1seS1maWVsZC5tb2RlbCc7XG5pbXBvcnQge0ZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4vZmllbGQtdmFsaWRhdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFHZW5lcmljRmllbGREZXNjcmlwdG9yPEVkaXRvck1vZGVsPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lZGl0b3I6IElFZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsPjtcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZzogRmllbGRDb25maWcgPSB7fTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihlZGl0b3I6IElFZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsPikge1xuICAgICAgICB0aGlzLl9lZGl0b3IgPSBlZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb25maWcoY29uZmlnOiBGaWVsZENvbmZpZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHRvSlNPTiBpbXBsZW1lbnRhdGlvbiB0byBwcmV2ZW50IG92ZXJmbG93IHdpdGggY2lyY3VsYXIgZGVwZW5kZW5jeS5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRvSlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uT2JqID0ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIF9lZGl0b3I6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uT2JqU3RyID0gSlNPTi5zdHJpbmdpZnkoanNvbk9iaik7XG4gICAgICAgIHJldHVybiBqc29uT2JqU3RyO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFGaWVsZERlc2NyaXB0b3I8RmllbGRNb2RlbCwgRWRpdG9yTW9kZWwsIEZpZWxkVmFsdWUgPSBGaWVsZE1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4gZXh0ZW5kcyBBR2VuZXJpY0ZpZWxkRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4ge1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2xhYmVsPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oZWxwVGV4dD86IHN0cmluZztcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3JlcXVpcmVkSGlkZUxhYmVsTWFya2VyID0gZmFsc2U7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZGVmYXVsdFZhbHVlPzogRmllbGRWYWx1ZTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2dldHRlcj86IEdldHRlckZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPjtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3NldHRlcj86IChpdGVtOiBFZGl0b3JNb2RlbCwgdmFsdWU6IEZpZWxkVmFsdWUpID0+IHZvaWQ7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF92YWxpZGF0aW9uczogQXJyYXk8RmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4+ID0gW107XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9hc3luY1ZhbGlkYXRpb25zOiBBcnJheTxGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yPGFueSwgYW55Pj4gPSBbXTtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3JlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZyB8ICgoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbikgfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZGlzYWJsZWRFeHByZXNzaW9uPzogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oaWRkZW5FeHByZXNzaW9uPzogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9oaWRkZW5SZXNldE9uSGlkZT86IGJvb2xlYW47XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF91cGRhdGVPbjogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JyA9ICdjaGFuZ2UnO1xuXG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9vbkluaXQ/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPjtcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX29uQ2hhbmdlcz86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfYWZ0ZXJDb250ZW50SW5pdD86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfYWZ0ZXJWaWV3SW5pdD86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+O1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfb25EZXN0cm95PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD47XG5cbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX29uVmFsdWVDaGFuZ2U/OiAoZmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4sIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG5cbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX2NsYXNzTmFtZSA9ICcnO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfZmllbGRDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgLyoqIEBpZ25vcmUgKi8gcHJvdGVjdGVkIF9sYWJlbENsYXNzTmFtZSA9ICcnO1xuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfaW5wdXRDbGFzc05hbWUgPSAnJztcbiAgICAvKiogQGlnbm9yZSAqLyBwcm90ZWN0ZWQgX3NpemU6IEZpZWxkU2l6ZUVudW0gPSBGaWVsZFNpemVFbnVtLk5vcm1hbDtcblxuICAgIC8vIGxvY2FsaXphdGlvblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCBfaXNMb2NhbGl6ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaWdub3JlICovIHByb3RlY3RlZCByZWFkb25seSBfZXZlbnRzU3ViamVjdCA9IG5ldyBTdWJqZWN0PEZvcm1GaWVsZEV2ZW50PEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoZWRpdG9yOiBJRWRpdG9yRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4sIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yKTtcbiAgICAgICAgdGhpcy5fcHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhlbHBUZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVscFRleHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWRIaWRlTGFiZWxNYXJrZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZEhpZGVMYWJlbE1hcmtlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZWZhdWx0VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXR0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZXR0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXR0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXN5bmNWYWxpZGF0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FzeW5jVmFsaWRhdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXF1aXJlZEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZEV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNhYmxlZEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWRkZW5FeHByZXNzaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZGVuRXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZGRlblJlc2V0T25IaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZGVuUmVzZXRPbkhpZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1cGRhdGVPbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZU9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25Jbml0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25Jbml0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25DaGFuZ2VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25DaGFuZ2VzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyQ29udGVudEluaXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhZnRlclZpZXdJbml0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJWaWV3SW5pdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9uRGVzdHJveSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uRGVzdHJveTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vblZhbHVlQ2hhbmdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmllbGRDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZENsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxhYmVsQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWxDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpbnB1dENsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0Q2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1NpemVTbWFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUgPT09IEZpZWxkU2l6ZUVudW0uU21hbGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1NpemVMYXJnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUgPT09IEZpZWxkU2l6ZUVudW0uTGFyZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0xvY2FsaXplZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTG9jYWxpemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBjb3B5KCk6IEFGaWVsZERlc2NyaXB0b3I8RmllbGRNb2RlbCwgRWRpdG9yTW9kZWwsIEZpZWxkVmFsdWU+O1xuXG4gICAgcHVibGljIHdpdGhMYWJlbChsYWJlbDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9sYWJlbCA9IGxhYmVsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhIZWxwVGV4dChoZWxwVGV4dDogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hlbHBUZXh0ID0gaGVscFRleHQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmVxdWlyZWQocmVxdWlyZWQgPSB0cnVlLCByZXF1aXJlZEV4cHJlc3Npb24/OiBzdHJpbmcgfCAoKGZpZWxkPzogRm9ybWx5RmllbGRDb25maWcpID0+IGJvb2xlYW4pIHwgT2JzZXJ2YWJsZTxib29sZWFuPiwgaGlkZUxhYmVsTWFya2VyID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSByZXF1aXJlZDtcbiAgICAgICAgaWYgKHJlcXVpcmVkRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWRFeHByZXNzaW9uID0gcmVxdWlyZWRFeHByZXNzaW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkSGlkZUxhYmVsTWFya2VyID0gaGlkZUxhYmVsTWFya2VyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERpc2FibGVkKGRpc2FibGVkID0gdHJ1ZSwgZGlzYWJsZWRFeHByZXNzaW9uPzogc3RyaW5nIHwgKChmaWVsZD86IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBib29sZWFuKSB8IE9ic2VydmFibGU8Ym9vbGVhbj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgaWYgKGRpc2FibGVkRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWRFeHByZXNzaW9uID0gZGlzYWJsZWRFeHByZXNzaW9uO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSGlkZGVuKGhpZGRlbkV4cHJlc3Npb246IHN0cmluZyB8ICgoZmllbGQ/OiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYm9vbGVhbikgfCBPYnNlcnZhYmxlPGJvb2xlYW4+LCByZXNldE9uSGlkZT86IGJvb2xlYW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGlkZGVuRXhwcmVzc2lvbiA9IGhpZGRlbkV4cHJlc3Npb247XG4gICAgICAgIHRoaXMuX2hpZGRlblJlc2V0T25IaWRlID0gcmVzZXRPbkhpZGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVXBkYXRlT24odXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlT24gPSB1cGRhdGVPbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhPbkluaXQob25Jbml0PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fb25Jbml0ID0gb25Jbml0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE9uQ2hhbmdlcyhvbkNoYW5nZXM/OiBDb21tb25zRm9ybWx5SG9va0ZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZXMgPSBvbkNoYW5nZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWZ0ZXJDb250ZW50SW5pdChhZnRlckNvbnRlbnRJbml0PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJDb250ZW50SW5pdCA9IGFmdGVyQ29udGVudEluaXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWZ0ZXJWaWV3SW5pdChhZnRlclZpZXdJbml0PzogQ29tbW9uc0Zvcm1seUhvb2tGbjxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJWaWV3SW5pdCA9IGFmdGVyVmlld0luaXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoT25EZXN0cm95KG9uRGVzdHJveT86IENvbW1vbnNGb3JtbHlIb29rRm48RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSA9IG9uRGVzdHJveTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhPblZhbHVlQ2hhbmdlKG9uVmFsdWVDaGFuZ2U/OiAoZmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbD4sIHZhbHVlOiBGaWVsZFZhbHVlKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX29uVmFsdWVDaGFuZ2UgPSBvblZhbHVlQ2hhbmdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aERlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWU6IEZpZWxkVmFsdWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEdldHRlcihmbj86IEdldHRlckZuPEZpZWxkVmFsdWUsIEVkaXRvck1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9nZXR0ZXIgPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTZXR0ZXIoZm4/OiAoaXRlbTogRWRpdG9yTW9kZWwsIHZhbHVlOiBGaWVsZFZhbHVlKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3NldHRlciA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFZhbGlkYXRpb248VmFsdWUgPSBGaWVsZFZhbHVlLCBFZGl0b3JWYWx1ZSA9IEVkaXRvck1vZGVsPihcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICB2YWxpZGF0b3I/OiBGaWVsZFZhbGlkYXRvcjxWYWx1ZSwgRWRpdG9yVmFsdWUsIFBhcmVudEVkaXRvck1vZGVsPixcbiAgICAgICAgbWVzc2FnZT86IEZpZWxkVmFsaWRhdGlvbk1lc3NhZ2U8VmFsdWUsIEVkaXRvclZhbHVlLCBQYXJlbnRFZGl0b3JNb2RlbD5cbiAgICApOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbnMucHVzaChuZXcgRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcihuYW1lLCB2YWxpZGF0b3IgYXMgRmllbGRCYXNlVmFsaWRhdG9yPFZhbHVlLCBFZGl0b3JWYWx1ZSwgUGFyZW50RWRpdG9yTW9kZWw+LCBtZXNzYWdlKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVWYWxpZGF0aW9uKG5hbWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl92YWxpZGF0aW9ucyA9IHRoaXMuX3ZhbGlkYXRpb25zLmZpbHRlcih2ID0+IHYubmFtZSAhPT0gbmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQXN5bmNWYWxpZGF0aW9uPFZhbHVlID0gRmllbGRWYWx1ZSwgRWRpdG9yVmFsdWUgPSBFZGl0b3JNb2RlbD4oXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3I/OiBGaWVsZEFzeW5jVmFsaWRhdG9yPFZhbHVlLCBFZGl0b3JWYWx1ZT4sXG4gICAgICAgIG1lc3NhZ2U/OiBGaWVsZFZhbGlkYXRpb25NZXNzYWdlPFZhbHVlLCBFZGl0b3JWYWx1ZT5cbiAgICApOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYXN5bmNWYWxpZGF0aW9ucy5wdXNoKG5ldyBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yKG5hbWUsIGFzeW5jVmFsaWRhdG9yIGFzIEZpZWxkQXN5bmNCYXNlVmFsaWRhdG9yPFZhbHVlLCBFZGl0b3JWYWx1ZT4sIG1lc3NhZ2UpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUFzeW5jVmFsaWRhdGlvbihuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYXN5bmNWYWxpZGF0aW9ucyA9IHRoaXMuX2FzeW5jVmFsaWRhdGlvbnMuZmlsdGVyKHYgPT4gdi5uYW1lICE9PSBuYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcsIGxhYmVsQ2xhc3NOYW1lID0gJycsIGlucHV0Q2xhc3NOYW1lID0gJycsIGZpZWxkQ2xhc3NOYW1lPzogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgdGhpcy5fbGFiZWxDbGFzc05hbWUgPSBsYWJlbENsYXNzTmFtZTtcbiAgICAgICAgdGhpcy5faW5wdXRDbGFzc05hbWUgPSBpbnB1dENsYXNzTmFtZTtcbiAgICAgICAgdGhpcy5fZmllbGRDbGFzc05hbWUgPSBmaWVsZENsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTaXplKHNpemU6IEZpZWxkU2l6ZUVudW0gPSBGaWVsZFNpemVFbnVtLk5vcm1hbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgYWRkcyBhbiBpY29uIHdpdGggdGV4dCBTaG93IGFsbCB0cmFuc2xhdGlvbnMgYWJvdmUgdGhlIGZpZWxkIGFuZCBhZnRlciBjbGlja2luZyBvbiBpdCwgaXQgZGlzcGxheXMgYSBuZXcgZGlhbG9nIHdpdGggdGFibGV2aWV3LlxuICAgICAqIFRoaXMgbmV3IHRhYmxlIHZpZXcgc2hvd3MgYWxsIGF2YWlsYWJsZSB0cmFuc2xhdGlvbnMgZm9yIHNwZWNpZmljIHByb3BlcnR5IGFuZCBhbGxvd3MgZWRpdGluZyBpdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9jYWxpemVkKCk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLmlzTG9jYWxpemVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYExvY2FsaXphdGlvbiBjYW5ub3QgYmUgc2V0IGZvciBmaWVsZCAke3RoaXMucHJvcGVydHl9LCBsb2NhbGl6YXRpb24gbXVzdCBiZSBlbmFibGVkIG9uIGVkaXRvciBmaXJzdC5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0xvY2FsaXplZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0RXZlbnQoXG4gICAgICAgIHR5cGU6IEZvcm1GaWVsZEV2ZW50VHlwZUVudW0sXG4gICAgICAgIGNvbXBvbmVudDogRmllbGRUeXBlPENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZzxGaWVsZFZhbHVlLCBFZGl0b3JNb2RlbCwgYW55Pj4sXG4gICAgICAgIGRhdGE/OiBGb3JtRmllbGRFdmVudERhdGE8RmllbGRWYWx1ZSwgRWRpdG9yTW9kZWw+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50c1N1YmplY3QubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgZmllbGRDb21wb25lbnQ6IGNvbXBvbmVudCxcbiAgICAgICAgICAgIGZvcm1Db21wb25lbnQ6IGNvbXBvbmVudC5wcm9wcy5mb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgZm9ybTogY29tcG9uZW50Py5mb3JtIGFzIEZvcm1Hcm91cCxcbiAgICAgICAgICAgIGZpZWxkRm9ybUNvbnRyb2w6IGNvbXBvbmVudC5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICAgICAgICAgIGZpZWxkRm9ybWx5Q29uZmlnOiBjb21wb25lbnQuZmllbGQsXG4gICAgICAgICAgICBkYXRhOiBkYXRhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvcHlGaWVsZHNUbyhvYmo6IEFGaWVsZERlc2NyaXB0b3I8RmllbGRNb2RlbCwgRWRpdG9yTW9kZWwsIEZpZWxkVmFsdWU+KSB7XG4gICAgICAgIG9iai5fbGFiZWwgPSB0aGlzLl9sYWJlbDtcbiAgICAgICAgb2JqLl9wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xuICAgICAgICBvYmouX2hlbHBUZXh0ID0gdGhpcy5faGVscFRleHQ7XG4gICAgICAgIG9iai5fcmVxdWlyZWQgPSB0aGlzLl9yZXF1aXJlZDtcbiAgICAgICAgb2JqLl9kaXNhYmxlZCA9IHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICBvYmouX2RlZmF1bHRWYWx1ZSA9IHRoaXMuX2RlZmF1bHRWYWx1ZTtcbiAgICAgICAgb2JqLl9yZXF1aXJlZEV4cHJlc3Npb24gPSB0aGlzLl9yZXF1aXJlZEV4cHJlc3Npb247XG4gICAgICAgIG9iai5faGlkZGVuRXhwcmVzc2lvbiA9IHRoaXMuX2hpZGRlbkV4cHJlc3Npb247XG4gICAgICAgIG9iai5faGlkZGVuUmVzZXRPbkhpZGUgPSB0aGlzLl9oaWRkZW5SZXNldE9uSGlkZTtcbiAgICAgICAgb2JqLl91cGRhdGVPbiA9IHRoaXMuX3VwZGF0ZU9uO1xuICAgICAgICBvYmouX29uSW5pdCA9IHRoaXMuX29uSW5pdDtcbiAgICAgICAgb2JqLl9vbkNoYW5nZXMgPSB0aGlzLl9vbkNoYW5nZXM7XG4gICAgICAgIG9iai5fb25EZXN0cm95ID0gdGhpcy5fb25EZXN0cm95O1xuICAgICAgICBvYmouX2FmdGVyQ29udGVudEluaXQgPSB0aGlzLl9hZnRlckNvbnRlbnRJbml0O1xuICAgICAgICBvYmouX2FmdGVyVmlld0luaXQgPSB0aGlzLl9hZnRlclZpZXdJbml0O1xuICAgICAgICBvYmouX29uVmFsdWVDaGFuZ2UgPSB0aGlzLl9vblZhbHVlQ2hhbmdlO1xuICAgICAgICBvYmouX2Rpc2FibGVkRXhwcmVzc2lvbiA9IHRoaXMuX2Rpc2FibGVkRXhwcmVzc2lvbjtcbiAgICAgICAgb2JqLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIG9iai5fc2l6ZSA9IHRoaXMuc2l6ZTtcbiAgICAgICAgb2JqLl9nZXR0ZXIgPSB0aGlzLl9nZXR0ZXI7XG4gICAgICAgIG9iai5fc2V0dGVyID0gdGhpcy5fc2V0dGVyO1xuICAgICAgICBvYmouX2lzTG9jYWxpemVkID0gdGhpcy5faXNMb2NhbGl6ZWQ7XG4gICAgICAgIG9iai5fdmFsaWRhdGlvbnMgPSB0aGlzLl92YWxpZGF0aW9ucy5tYXAodmFsdWUgPT4gdmFsdWUuY29weSgpKTtcbiAgICAgICAgb2JqLl9hc3luY1ZhbGlkYXRpb25zID0gdGhpcy5fYXN5bmNWYWxpZGF0aW9ucy5tYXAodmFsdWUgPT4gdmFsdWUuY29weSgpKTtcbiAgICB9XG59XG4iXX0=
|