@mediusinc/mng-commons 5.5.0 → 6.0.0-rc.3
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/action/action-parameters.model.d.ts +4 -4
- package/core/data-providers/base.data-provider.d.ts +4 -7
- package/core/data-providers/lookup.data-provider.d.ts +2 -2
- package/core/descriptors/model.descriptor.d.ts +1 -7
- package/core/descriptors/tableview.descriptor.d.ts +5 -5
- package/core/helpers/notification.d.ts +17 -1
- package/core/helpers/route.d.ts +0 -1
- package/core/helpers/type-helpers.d.ts +8 -0
- package/core/i18n/i18n-error.d.ts +2 -3
- package/core/index.d.ts +0 -3
- package/core/models/menu.model.d.ts +0 -4
- package/core/router/route-builder.d.ts +1 -1
- package/core/services/commons.service.d.ts +0 -32
- package/core/services/tokens/module-config.token.d.ts +0 -28
- package/esm2022/core/action/action-parameters.model.mjs +1 -1
- package/esm2022/core/data-providers/base.data-provider.mjs +2 -4
- package/esm2022/core/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
- package/esm2022/core/helpers/notification.mjs +19 -4
- package/esm2022/core/helpers/type-helpers.mjs +1 -1
- package/esm2022/core/i18n/i18n-error.mjs +10 -8
- package/esm2022/core/index.mjs +1 -4
- package/esm2022/core/models/menu.model.mjs +1 -1
- package/esm2022/core/router/route-builder.mjs +2 -2
- package/esm2022/core/services/commons.service.mjs +1 -34
- package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +5 -86
- package/esm2022/filter/descriptors/filter.descriptor.mjs +7 -29
- package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +14 -41
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +3 -3
- package/esm2022/form/api/descriptors/action-button.descriptor.mjs +5 -17
- package/esm2022/form/api/descriptors/button-style.builder.mjs +80 -101
- package/esm2022/form/api/index.mjs +2 -1
- package/esm2022/form/api/models/button.model.mjs +2 -0
- package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +5 -0
- package/esm2022/model/class/descriptors/model-class.descriptor.mjs +28 -0
- package/esm2022/model/class/descriptors/type-class.descriptor.mjs +6 -0
- package/esm2022/model/class/helpers/model.mjs +53 -0
- package/esm2022/model/class/index.mjs +8 -0
- package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +5 -0
- package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +11 -6
- package/esm2022/model/descriptors/model.descriptor.mjs +11 -54
- package/esm2022/model/descriptors/type.descriptor.mjs +2 -10
- package/esm2022/model/helpers/i18n.mjs +14 -9
- package/esm2022/model/index.mjs +1 -2
- package/esm2022/table/api/class/class-table-attribute-converter.mjs +80 -0
- package/esm2022/table/api/class/class-table-attribute.model.mjs +2 -0
- package/esm2022/table/api/class/class-table-data-provider.factory.mjs +5 -0
- package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +99 -0
- package/esm2022/table/api/class/class-table-descriptor.factory.mjs +21 -0
- package/esm2022/table/api/class/index.mjs +6 -0
- package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +5 -0
- package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +14 -41
- package/esm2022/table/api/data-providers/table.data-provider.mjs +3 -9
- package/esm2022/table/api/descriptors/column.descriptor.mjs +8 -3
- package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +10 -77
- package/esm2022/table/api/descriptors/table.descriptor.mjs +3 -3
- package/esm2022/table/api/helpers/column-converter.mjs +25 -0
- package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +4 -4
- package/esm2022/table/api/index.mjs +2 -4
- package/esm2022/table/api/models/table-columns.model.mjs +1 -1
- package/esm2022/table/components/column-value/column-value.component.mjs +7 -5
- package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +3 -3
- package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +5 -5
- package/esm2022/table/components/table/table.component.mjs +17 -18
- package/esm2022/table/helpers/notification.mjs +19 -13
- package/esm2022/tableview/action/components/action/action.component.mjs +41 -37
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +22 -13
- package/esm2022/tableview/action/helpers/action-execution.mjs +1 -1
- package/esm2022/tableview/action/helpers/i18n.mjs +50 -30
- package/esm2022/tableview/action/helpers/notification.mjs +73 -12
- package/esm2022/tableview/action/helpers/styles.mjs +2 -2
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
- package/esm2022/tableview/action/services/action-executor.service.mjs +92 -75
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +18 -3
- package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +13 -104
- package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +15 -62
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +35 -82
- package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +20 -33
- package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +54 -95
- package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +21 -0
- package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +21 -0
- package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +37 -0
- package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +40 -0
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +25 -5
- package/esm2022/tableview/api/action/models/action-confirmation.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +1 -1
- package/esm2022/tableview/api/action/models/action-error.model.mjs +1 -1
- package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +1 -1
- package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +1 -1
- package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +1 -1
- package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +6 -6
- package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +3 -3
- package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +85 -0
- package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +2 -0
- package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +5 -0
- package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +95 -0
- package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +21 -0
- package/esm2022/tableview/api/class/index.mjs +13 -0
- package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +5 -0
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +35 -0
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +2 -0
- package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +5 -0
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +111 -0
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +26 -0
- package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +14 -32
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +40 -7
- package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +7 -73
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +49 -134
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +14 -8
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +11 -2
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +3 -5
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +2 -18
- package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +51 -0
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +1 -1
- package/esm2022/tableview/api/index.mjs +9 -9
- package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +13 -51
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +19 -11
- package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +19 -96
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +29 -182
- package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +8 -6
- package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +154 -106
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +164 -7
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +2 -0
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +2 -0
- package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +1 -1
- package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +1 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +5 -8
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +7 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +34 -23
- package/esm2022/tableview/editor/helpers/editor-field.mjs +3 -3
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +4 -4
- package/esm2022/tableview/editor/helpers/field-create.mjs +21 -0
- package/esm2022/tableview/index.mjs +3 -2
- package/esm2022/tableview/provide.mjs +44 -1
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +1 -1
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +715 -792
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +10 -113
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +144 -203
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model-class.mjs +97 -0
- package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-model.mjs +35 -144
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api-class.mjs +204 -0
- package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +55 -319
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +45 -38
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs +367 -0
- package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +850 -1483
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +421 -220
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/filter/descriptors/filter-lookup.descriptor.d.ts +1 -26
- package/filter/descriptors/filter.descriptor.d.ts +5 -12
- package/form/api/data-providers/lookup-data-provider.factory.d.ts +17 -20
- package/form/api/data-providers/lookup.data-provider.d.ts +3 -3
- package/form/api/descriptors/action-button.descriptor.d.ts +11 -13
- package/form/api/descriptors/button-style.builder.d.ts +30 -44
- package/form/api/index.d.ts +1 -0
- package/form/api/models/button.model.d.ts +19 -0
- package/i18n/sl.json +56 -6
- package/model/class/README.md +8 -0
- package/model/class/data-providers/base-from-class-data-provider.factory.d.ts +3 -0
- package/model/class/descriptors/model-class.descriptor.d.ts +12 -0
- package/model/class/descriptors/type-class.descriptor.d.ts +3 -0
- package/model/{helpers → class/helpers}/model.d.ts +1 -2
- package/model/class/index.d.ts +4 -0
- package/model/data-providers/base-from-type-data-provider.factory.d.ts +13 -6
- package/model/descriptors/model.descriptor.d.ts +12 -27
- package/model/descriptors/type.descriptor.d.ts +0 -5
- package/model/helpers/i18n.d.ts +8 -3
- package/model/index.d.ts +0 -1
- package/package.json +25 -7
- package/table/api/class/README.md +10 -0
- package/table/api/{helpers/class-attribute-converter.d.ts → class/class-table-attribute-converter.d.ts} +2 -9
- package/table/api/{models → class}/class-table-attribute.model.d.ts +1 -1
- package/table/api/class/class-table-data-provider.factory.d.ts +4 -0
- package/table/api/{helpers/table-descriptor-helpers.d.ts → class/class-table-descriptor-helpers.d.ts} +2 -4
- package/table/api/class/class-table-descriptor.factory.d.ts +11 -0
- package/table/api/class/index.d.ts +5 -0
- package/table/api/data-providers/table-data-provider.factory.d.ts +17 -20
- package/table/api/data-providers/table.data-provider.d.ts +4 -12
- package/table/api/descriptors/column.descriptor.d.ts +5 -2
- package/table/api/descriptors/table-descriptor.factory.d.ts +3 -39
- package/table/api/descriptors/table.descriptor.d.ts +3 -3
- package/table/api/helpers/column-converter.d.ts +7 -0
- package/table/api/helpers/table-data-provider-descriptor-convert.d.ts +3 -3
- package/table/api/index.d.ts +1 -3
- package/table/api/models/table-columns.model.d.ts +2 -2
- package/table/components/column-value/column-value.component.d.ts +2 -0
- package/table/components/filter/filter-active-tag/filter-active-tag.component.d.ts +1 -1
- package/table/components/filter/filter-form/filter-form.component.d.ts +1 -1
- package/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.d.ts +1 -1
- package/table/components/table/table.component.d.ts +0 -10
- package/table/helpers/notification.d.ts +10 -1
- package/tableview/action/components/action/action.component.d.ts +10 -13
- 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 +6 -5
- package/tableview/action/components/localization/data-language-dropdown.component.d.ts +3 -3
- package/tableview/action/components/table/action-table.component.d.ts +3 -3
- package/tableview/action/helpers/action-execution.d.ts +1 -1
- package/tableview/action/helpers/i18n.d.ts +36 -11
- package/tableview/action/helpers/notification.d.ts +37 -3
- package/tableview/action/models/execution/action-context.model.d.ts +3 -3
- package/tableview/action/models/execution/action-instance.model.d.ts +5 -5
- package/tableview/action/services/action-executor.service.d.ts +7 -7
- package/tableview/action/services/data-provider-executor.service.d.ts +16 -16
- package/tableview/action/services/view-container.service.d.ts +1 -1
- package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +20 -31
- package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +18 -25
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +39 -47
- package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +21 -13
- package/tableview/api/action/descriptors/action-link.descriptor.d.ts +3 -3
- package/tableview/api/action/descriptors/action.descriptor.d.ts +49 -60
- package/tableview/api/action/descriptors/editor-action-descriptor.factory.d.ts +21 -0
- package/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.d.ts +21 -0
- package/tableview/api/action/descriptors/table-action-descriptor.factory.d.ts +36 -0
- package/tableview/api/action/descriptors/table-action-editor-descriptor.factory.d.ts +40 -0
- package/tableview/api/action/helpers/data-provider-executors.d.ts +13 -8
- package/tableview/api/action/models/action-confirmation.model.d.ts +14 -0
- package/tableview/api/action/models/action-descriptor.types.d.ts +6 -2
- package/tableview/api/action/models/action-error.model.d.ts +1 -1
- package/tableview/api/action/models/execution/action-context-validation.model.d.ts +2 -2
- package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
- package/tableview/api/action/models/execution/action-instance.model.d.ts +1 -1
- package/tableview/api/action/models/tableview-action-default-categories.model.d.ts +5 -5
- package/tableview/api/action/services/data-provider-executor.service.d.ts +26 -25
- package/tableview/api/class/README.md +13 -0
- package/tableview/api/{editor/helpers/class-attribute-converter.d.ts → class/editor/class-editor-attribute-converter.d.ts} +2 -2
- package/tableview/api/{editor/models/class-tableview-attribute.model.d.ts → class/editor/class-editor-attribute.model.d.ts} +1 -1
- package/tableview/api/class/editor/class-editor-data-provider.factory.d.ts +4 -0
- package/tableview/api/{editor/helpers/editor-descriptor-helpers.d.ts → class/editor/class-editor-descriptor-helpers.d.ts} +2 -5
- package/tableview/api/class/editor/class-editor-descriptor.factory.d.ts +11 -0
- package/tableview/api/class/index.d.ts +10 -0
- package/tableview/api/{tableview/helpers/class-attribute-converter.d.ts → class/tableview/class-tableview-attribute-converter.d.ts} +1 -1
- package/tableview/api/{tableview/models → class/tableview}/class-tableview-attribute.model.d.ts +2 -2
- package/tableview/api/class/tableview/class-tableview-data-provider.factory.d.ts +4 -0
- package/tableview/api/{tableview/helpers/tableview-descriptor-helpers.d.ts → class/tableview/class-tableview-descriptor-helpers.d.ts} +1 -2
- package/tableview/api/class/tableview/class-tableview-descriptor.factory.d.ts +12 -0
- package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +17 -16
- package/tableview/api/editor/data-providers/editor.data-provider.d.ts +64 -29
- package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +5 -38
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +48 -112
- package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +5 -5
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +8 -1
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -3
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +3 -11
- package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +25 -0
- package/tableview/api/editor/models/editor-fields.model.d.ts +25 -21
- package/tableview/api/editor/models/form-editor.event.d.ts +0 -4
- package/tableview/api/index.d.ts +8 -7
- package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +20 -25
- package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +22 -22
- package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +20 -50
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +69 -163
- package/tableview/api/tableview/helpers/tableview-create.d.ts +18 -5
- package/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.d.ts +2 -2
- package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +73 -20
- package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +87 -9
- package/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.d.ts +9 -0
- package/tableview/api/tableview/models/tableview-descriptor-helper.type.d.ts +2 -0
- package/tableview/api/tableview/models/tableview-input.model.d.ts +1 -1
- package/tableview/api/tableview/models/tableview-route.model.d.ts +1 -1
- package/tableview/editor/helpers/field-create.d.ts +9 -0
- package/tableview/index.d.ts +2 -1
- package/tableview/provide.d.ts +7 -0
- package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
- package/tableview/tableview/components/tableview/tableview.component.d.ts +6 -6
- package/version-info.json +6 -6
- package/core/components/pages/error/error.page.component.d.ts +0 -11
- package/core/components/pages/not-found/not-found.page.component.d.ts +0 -11
- package/core/data-providers/base-data-provider.factory.d.ts +0 -13
- package/esm2022/core/components/pages/error/error.page.component.mjs +0 -24
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +0 -24
- package/esm2022/core/data-providers/base-data-provider.factory.mjs +0 -28
- package/esm2022/model/helpers/model.mjs +0 -71
- package/esm2022/table/api/helpers/class-attribute-converter.mjs +0 -104
- package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +0 -98
- package/esm2022/table/api/models/class-table-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +0 -88
- package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +0 -85
- package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +0 -95
- package/esm2022/tableview/api/editor/models/class-tableview-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +0 -34
- package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +0 -110
- package/esm2022/tableview/api/tableview/models/class-tableview-attribute.model.mjs +0 -2
- package/tableview/api/action/descriptors/action-confirmation.descriptor.d.ts +0 -37
|
@@ -2,8 +2,8 @@ import { Subject } from 'rxjs';
|
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
3
|
import { DataProviderInst, toObservable } from '@mediusinc/mng-commons/core';
|
|
4
4
|
export class TableDataProviderInst extends DataProviderInst {
|
|
5
|
-
constructor(
|
|
6
|
-
super(
|
|
5
|
+
constructor(serviceType) {
|
|
6
|
+
super(serviceType);
|
|
7
7
|
this._reloadTableSubject = new Subject();
|
|
8
8
|
this._isLazy = true;
|
|
9
9
|
this._getAll = () => ({ data: [] });
|
|
@@ -26,14 +26,8 @@ export class TableDataProviderInst extends DataProviderInst {
|
|
|
26
26
|
this._isLazy = false;
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated Use ${reloadTable} instead.
|
|
31
|
-
*/
|
|
32
|
-
getAllReload(params) {
|
|
33
|
-
this.reloadTable(params ? { params: params } : undefined);
|
|
34
|
-
}
|
|
35
29
|
reloadTable(event) {
|
|
36
30
|
this._reloadTableSubject.next(event ?? {});
|
|
37
31
|
}
|
|
38
32
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlL2FwaS9zcmMvZGF0YS1wcm92aWRlcnMvdGFibGUuZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQWlDLGdCQUFnQixFQUF3RCxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQW1DakssTUFBTSxPQUFPLHFCQUNULFNBQVEsZ0JBQThDO0lBT3RELFlBQW1CLFdBQXlCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUxKLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFvQyxDQUFDO1FBRS9FLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFNZixZQUFPLEdBQWtFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQztJQUZ0RyxDQUFDO0lBSUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxVQUFVLENBQUMsRUFBaUU7UUFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQXNEO1FBQ3BFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFrQyxFQUFFLE9BQWdCLEVBQUUsTUFBZSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlKLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBd0M7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7RGF0YUxpc3RQYXJhbXMsIERhdGFMaXN0UmVzdWx0LCBEYXRhUHJvdmlkZXJJbnN0LCBJRGF0YVByb3ZpZGVyLCBJdGVtT3JPYnNlcnZhYmxlLCBTZXJ2aWNlQ2xhc3NPcHRUeXBlLCB0b09ic2VydmFibGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7VGFibGVSZWxvYWRFdmVudH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWV2ZW50Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgVGFibGVEYXRhUHJvdmlkZXJHZXRBbGxGblR5cGU8XG4gICAgTW9kZWwgPSBhbnksXG4gICAgU2VydmljZSA9IHVuZGVmaW5lZCxcbiAgICBTb3J0cyA9IGtleW9mIE1vZGVsLFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbCxcbiAgICBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPERhdGFMaXN0UmVzdWx0PE1vZGVsPj5cbj4gPSAocGFyYW1zOiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4sIHNlcnZpY2U6IFNlcnZpY2UsIGxvY2FsZT86IHN0cmluZykgPT4gUmV0dXJuO1xuZXhwb3J0IHR5cGUgVGFibGVEYXRhUHJvdmlkZXJHZXRBbGxFYWdlckZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbFtdPj4gPSAoc2VydmljZTogU2VydmljZSwgbG9jYWxlPzogc3RyaW5nKSA9PiBSZXR1cm47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRGF0YVByb3ZpZGVyR2V0QWxsPE1vZGVsLCBTZXJ2aWNlLCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWw+IHtcbiAgICBnZXRBbGw6IFRhYmxlRGF0YVByb3ZpZGVyR2V0QWxsRm5UeXBlPE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz47XG5cbiAgICB3aXRoR2V0QWxsKGZuOiBUYWJsZURhdGFQcm92aWRlckdldEFsbEZuVHlwZTxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVEYXRhUHJvdmlkZXJTdXBwb3J0PFNvcnRzID0gYW55LCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0gYW55PiB7XG4gICAgZ2V0IGlzTGF6eSgpOiBib29sZWFuO1xuXG4gICAgZ2V0IHRhYmxlUmVsb2FkJCgpOiBPYnNlcnZhYmxlPFRhYmxlUmVsb2FkRXZlbnQ8U29ydHMsIEZpbHRlcnM+PjtcblxuICAgIHJlbG9hZFRhYmxlKGV2ZW50PzogVGFibGVSZWxvYWRFdmVudDxTb3J0cywgRmlsdGVycz4pOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBJVGFibGVEYXRhUHJvdmlkZXI8XG4gICAgTW9kZWwgPSBhbnksXG4gICAgU2VydmljZSA9IGFueSxcbiAgICBTb3J0cyA9IGtleW9mIE1vZGVsLFxuICAgIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbCxcbiAgICBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+XG4+ID0gSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgU2VydmljZUNsYXNzPiAmIElUYWJsZURhdGFQcm92aWRlclN1cHBvcnQ8U29ydHMsIEZpbHRlcnM+ICYgSVRhYmxlRGF0YVByb3ZpZGVyR2V0QWxsPE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz47XG5cbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnksIFNvcnRzID0ga2V5b2YgTW9kZWwsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbCwgU2VydmljZUNsYXNzID0gU2VydmljZUNsYXNzT3B0VHlwZTxTZXJ2aWNlPj5cbiAgICBleHRlbmRzIERhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzcz5cbiAgICBpbXBsZW1lbnRzIElUYWJsZURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnMsIFNlcnZpY2VDbGFzcz5cbntcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3JlbG9hZFRhYmxlU3ViamVjdCA9IG5ldyBTdWJqZWN0PFRhYmxlUmVsb2FkRXZlbnQ8U29ydHMsIEZpbHRlcnM+PigpO1xuXG4gICAgcHJvdGVjdGVkIF9pc0xhenkgPSB0cnVlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgICAgc3VwZXIoc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZ2V0QWxsOiBUYWJsZURhdGFQcm92aWRlckdldEFsbEZuVHlwZTxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+ID0gKCkgPT4gKHtkYXRhOiBbXX0pO1xuXG4gICAgZ2V0IGlzTGF6eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTGF6eTtcbiAgICB9XG5cbiAgICBnZXQgZ2V0QWxsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0QWxsO1xuICAgIH1cblxuICAgIGdldCB0YWJsZVJlbG9hZCQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWxvYWRUYWJsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgd2l0aEdldEFsbChmbjogVGFibGVEYXRhUHJvdmlkZXJHZXRBbGxGblR5cGU8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9nZXRBbGwgPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgd2l0aEdldEFsbEVhZ2VybHkoZm46IFRhYmxlRGF0YVByb3ZpZGVyR2V0QWxsRWFnZXJGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2dldEFsbCA9IChxcDogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+LCBzZXJ2aWNlOiBTZXJ2aWNlLCBsb2NhbGU/OiBzdHJpbmcpID0+IHRvT2JzZXJ2YWJsZShmbihzZXJ2aWNlLCBsb2NhbGUpKS5waXBlKG1hcChkYXRhID0+ICh7ZGF0YTogZGF0YX0pKSk7XG4gICAgICAgIHRoaXMuX2lzTGF6eSA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICByZWxvYWRUYWJsZShldmVudD86IFRhYmxlUmVsb2FkRXZlbnQ8U29ydHMsIEZpbHRlcnM+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbG9hZFRhYmxlU3ViamVjdC5uZXh0KGV2ZW50ID8/IHt9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { columnToDateNumberOrBoolean } from '../helpers/
|
|
1
|
+
import { columnToDateNumberOrBoolean } from '../helpers/column-converter';
|
|
2
2
|
import { ColumnDisplayTypeEnum, ColumnTypeEnum } from '../models/column.model';
|
|
3
3
|
export class ColumnDescriptor {
|
|
4
4
|
constructor(property) {
|
|
@@ -33,6 +33,9 @@ export class ColumnDescriptor {
|
|
|
33
33
|
get title() {
|
|
34
34
|
return this._title;
|
|
35
35
|
}
|
|
36
|
+
get titleUseModelBase() {
|
|
37
|
+
return this._titleUseModelBase;
|
|
38
|
+
}
|
|
36
39
|
get displayFormat() {
|
|
37
40
|
return this._displayFormat;
|
|
38
41
|
}
|
|
@@ -272,9 +275,11 @@ export class ColumnDescriptor {
|
|
|
272
275
|
* Sets the title for the column. If title is undefined, then the title will be calculated based on table model (i18nBase) and column property.
|
|
273
276
|
*
|
|
274
277
|
* @param title - The title of the column.
|
|
278
|
+
* @param useModelBase - Whether to append title to model's i18n path.
|
|
275
279
|
*/
|
|
276
|
-
withTitle(title) {
|
|
280
|
+
withTitle(title, useModelBase) {
|
|
277
281
|
this._title = title;
|
|
282
|
+
this._titleUseModelBase = useModelBase;
|
|
278
283
|
return this;
|
|
279
284
|
}
|
|
280
285
|
/**
|
|
@@ -467,4 +472,4 @@ export class ColumnDynamicDescriptor extends ColumnDescriptor {
|
|
|
467
472
|
return descriptor;
|
|
468
473
|
}
|
|
469
474
|
}
|
|
470
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQXFCN0UsTUFBTSxPQUFPLGdCQUFnQjtJQW1EekIsWUFBWSxRQUFnQjtRQWpEcEIsZ0JBQVcsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwRCx1QkFBa0IsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBUXpFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUVuQyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFVBQVU7UUFDRixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUt4QyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVkvQixVQUFVO1FBQ0Ysd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDLGVBQWU7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUl6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcs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b3JlJztcblxuaW1wb3J0IHtHZXR0ZXJGbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RW51bURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge2NvbHVtblRvRGF0ZU51bWJlck9yQm9vbGVhbn0gZnJvbSAnLi4vaGVscGVycy9jbGFzcy1hdHRyaWJ1dGUtY29udmVydGVyJztcbmltcG9ydCB7SUNvbHVtblZhbHVlQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLXZhbHVlLm1vZGVsJztcbmltcG9ydCB7Q29sdW1uRGlzcGxheVR5cGVFbnVtLCBDb2x1bW5UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIENvbHVtbkN1cnJlbmN5T3B0c1R5cGU8UHJvcGVydHkgPSBzdHJpbmc+ID0ge1xuICAgIGN1cnJlbmN5UHJvcGVydHk/OiBQcm9wZXJ0eTtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBjdXJyZW5jeURpc3BsYXk/OiAnc3ltYm9sJyB8ICdjb2RlJyB8ICduYW1lJztcbn0gJiBDb2x1bW5OdW1iZXJGcmFjdGlvbk9wdHNUeXBlICZcbiAgICBDb2x1bW5Mb2NhbGVPcHRzVHlwZTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTnVtYmVyT3B0c1R5cGUgPSBDb2x1bW5OdW1iZXJGcmFjdGlvbk9wdHNUeXBlICYgQ29sdW1uTG9jYWxlT3B0c1R5cGU7XG5cbmV4cG9ydCB0eXBlIENvbHVtbk51bWJlckZyYWN0aW9uT3B0c1R5cGUgPSB7XG4gICAgbWluSW50ZWdlckRpZ2l0cz86IG51bWJlcjtcbiAgICBtaW5GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgICBtYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtbkxvY2FsZU9wdHNUeXBlID0ge1xuICAgIGxvY2FsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZSA9IENvbHVtbk1vZGVsPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2NvbHVtblR5cGU6IENvbHVtblR5cGVFbnVtID0gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgIHByaXZhdGUgX2NvbHVtbkRpc3BsYXlUeXBlOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nO1xuICAgIHByb3RlY3RlZCBfdGl0bGU/OiBzdHJpbmc7XG5cbiAgICAvLyB2YWx1ZSBkaXNwbGF5XG4gICAgcHJpdmF0ZSBfZGlzcGxheUZvcm1hdD86IHN0cmluZztcbiAgICBwcml2YXRlIF9sb2NhbGU/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfZ2V0dGVyPzogR2V0dGVyRm48Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWw+O1xuICAgIHByaXZhdGUgX2lzTXVsdGlsaW5lID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaGFzVmFsdWVBc1Rvb2x0aXAgPSBmYWxzZTtcblxuICAgIC8vIGNvbHVtbiB2aXNpYmlsaXR5XG4gICAgcHJpdmF0ZSBfaXNSZW9yZGVyYWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzVG9nZ2xlYWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzVmlzaWJsZSA9IHRydWU7XG5cbiAgICAvLyBzdHlsaW5nXG4gICAgcHJpdmF0ZSBfaGVhZGVyQ2xhc3NOYW1lID0gJyc7XG4gICAgcHJpdmF0ZSBfY2xhc3NOYW1lID0gJyc7XG4gICAgcHJpdmF0ZSBfY2xhc3NOYW1lTWFwRm4/OiAoY2xhc3NOYW1lPzogc3RyaW5nLCBpdGVtPzogVGFibGVNb2RlbCkgPT4gc3RyaW5nO1xuICAgIHByaXZhdGUgX3dpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9taW5XaWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbWF4V2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gZW51bSBzcGVjaWZpY3NcbiAgICBwcml2YXRlIF9lbnVtPzogRW51bURlc2NyaXB0b3I8YW55PjtcblxuICAgIC8vIGJvb2xlYW4gc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfYm9vbGVhbkFzSWNvbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Jvb2xlYW5ZZXM/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfYm9vbGVhbk5vPzogc3RyaW5nO1xuXG4gICAgLy8gY3VycmVuY3kgc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfY3VycmVuY3lDb2RlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2N1cnJlbmN5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfY3VycmVuY3lEaXNwbGF5PzogJ3N5bWJvbCcgfCAnY29kZScgfCAnbmFtZSc7XG5cbiAgICAvLyBjdXN0b20gc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfY3VzdG9tQ29tcG9uZW50VHlwZT86IFR5cGU8SUNvbHVtblZhbHVlQ29tcG9uZW50PENvbHVtblZhbHVlLCBUYWJsZU1vZGVsLCBDb2x1bW5Nb2RlbD4+O1xuXG4gICAgLy8gaGVscGVyc1xuICAgIHByaXZhdGUgX2hhc0NvcHlUb0NsaXBib2FyZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2NsaXBib2FyZFZhbHVlR2V0dGVyPzogR2V0dGVyRm48Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWw+O1xuXG4gICAgLy8gbG9jYWxpemF0aW9uXG4gICAgcHJpdmF0ZSBfaXNMb2NhbGl6ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eT86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydHkgPSBwcm9wZXJ0eSBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5UeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtbkRpc3BsYXlUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uRGlzcGxheVR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzcGxheUZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGVhZGVyQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lTWFwRm4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWVNYXBGbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtaW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbldpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWF4V2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhXaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVudW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnVtO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vbGVhbkFzSWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5Bc0ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuWWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9vbGVhblllcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5ObygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jvb2xlYW5ObztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGN1c3RvbUNvbXBvbmVudFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21Db21wb25lbnRUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lDb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lDb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lEaXNwbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lEaXNwbGF5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5UHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNDb3B5VG9DbGlwYm9hcmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNDb3B5VG9DbGlwYm9hcmQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGlwYm9hcmRWYWx1ZUdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsaXBib2FyZFZhbHVlR2V0dGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGVtcGxhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldHRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTXVsdGlsaW5lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNdWx0aWxpbmU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNWYWx1ZUFzVG9vbHRpcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ZhbHVlQXNUb29sdGlwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNSZW9yZGVyYWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVvcmRlcmFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1RvZ2dsZWFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1RvZ2dsZWFibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Zpc2libGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Zpc2libGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0xvY2FsaXplZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTG9jYWxpemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBjb2x1bW4gdG8gZ2l2ZW4gdHlwZSB3aXRoIGFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSBDb2x1bW4gdHlwZSBlbnVtLlxuICAgICAqIEBwYXJhbSBkaXNwbGF5VHlwZSBDb2x1bW4gZGlzcGxheSB0eXBlXG4gICAgICogQHBhcmFtIGFyZ3MgQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgbWlnaHQgYmUgbmVlZGVkIGZvciBzcGVjaWZpYyB0YXJnZXQgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNUeXBlKHR5cGU6IENvbHVtblR5cGVFbnVtLCBkaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSwgLi4uYXJnczogYW55W10pOiB0aGlzIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlzcGxheVR5cGUgPT09IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeSA/IHRoaXMuYXNDdXJyZW5jeSguLi5hcmdzKSA6IHRoaXMuYXNOdW1iZXIoLi4uYXJncyk7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkJvb2xlYW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNCb29sZWFuKC4uLmFyZ3MpO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzRGF0ZSguLi5hcmdzKTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uRW51bTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc0VudW1VbnNhZmUoYXJnc1swXSBhcyBFbnVtRGVzY3JpcHRvcjxhbnk+KTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzQ3VzdG9tQ29tcG9uZW50KGFyZ3NbMF0pO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5TdHJpbmc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbHVtbiBkaXNwbGF5IGFzIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIG51bWJlciBkaXNwbGF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBhc051bWJlcihvcHRzPzogQ29sdW1uTnVtYmVyT3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID1cbiAgICAgICAgICAgIG9wdHM/Lm1pbkludGVnZXJEaWdpdHMgfHwgb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgfHwgb3B0cz8ubWF4RnJhY3Rpb25EaWdpdHNcbiAgICAgICAgICAgICAgICA/IGAke29wdHM/Lm1pbkludGVnZXJEaWdpdHMgPz8gMH0uJHtvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyA/PyAwfS0ke29wdHM/Lm1heEZyYWN0aW9uRGlnaXRzID8/IG9wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9YFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSBvcHRzPy5sb2NhbGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSBhcyBjdXJyZW5jeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGN1cnJlbmN5IGRpc3BsYXkuXG4gICAgICovXG4gICAgcHVibGljIGFzQ3VycmVuY3kob3B0cz86IENvbHVtbkN1cnJlbmN5T3B0c1R5cGU8a2V5b2YgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNDdXJyZW5jeVVuc2FmZSh7XG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICAgICAgY3VycmVuY3lQcm9wZXJ0eTogb3B0cz8uY3VycmVuY3lQcm9wZXJ0eSA/IChvcHRzLmN1cnJlbmN5UHJvcGVydHkgYXMgc3RyaW5nKSA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29sdW1uIGRpc3BsYXkgYXMgY3VycmVuY3kuXG4gICAgICpcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIFVOU0FGRSFcbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGN1cnJlbmN5IGRpc3BsYXkuXG4gICAgICovXG4gICAgcHVibGljIGFzQ3VycmVuY3lVbnNhZmUob3B0cz86IENvbHVtbkN1cnJlbmN5T3B0c1R5cGUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLk51bWJlcjtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgICAgIHRoaXMuX2N1cnJlbmN5Q29kZSA9IG9wdHM/LmN1cnJlbmN5O1xuICAgICAgICB0aGlzLl9jdXJyZW5jeVByb3BlcnR5ID0gb3B0cz8uY3VycmVuY3lQcm9wZXJ0eTtcbiAgICAgICAgdGhpcy5fY3VycmVuY3lEaXNwbGF5ID0gb3B0cz8uY3VycmVuY3lEaXNwbGF5O1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID1cbiAgICAgICAgICAgIG9wdHM/Lm1pbkludGVnZXJEaWdpdHMgfHwgb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgfHwgb3B0cz8ubWF4RnJhY3Rpb25EaWdpdHNcbiAgICAgICAgICAgICAgICA/IGAke29wdHM/Lm1pbkludGVnZXJEaWdpdHMgPz8gMH0uJHtvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyA/PyAwfS0ke29wdHM/Lm1heEZyYWN0aW9uRGlnaXRzID8/IG9wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9YFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSBvcHRzPy5sb2NhbGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSBhcyBkYXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpc3BsYXlGb3JtYXQgRGF0ZSBkaXNwbGF5IGZvcm1hdCAoaW4gQW5ndWxhciBkYXRlIGZvcm1hdHRpbmcpLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc0RhdGUoZGlzcGxheUZvcm1hdCA9ICdkZC5NTS55eXl5Jyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uRGF0ZTtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRGF0ZTtcbiAgICAgICAgdGhpcy5fZGlzcGxheUZvcm1hdCA9IGRpc3BsYXlGb3JtYXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSBhcyBib29sZWFuLlxuICAgICAqXG4gICAgICogQHBhcmFtIHllcyBUcmFuc2xhdGlvbiBrZXkgZm9yIHRydWUgdmFsdWUuXG4gICAgICogQHBhcmFtIG5vIFRyYW5zbGF0aW9uIGtleSBmb3IgZmFsc2UgdmFsdWUuXG4gICAgICogQHBhcmFtIGFzSWNvbiBVc2UgdHJ1ZS9mYWxzZSB0ZXh0cyBhcyBpY29uLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc0Jvb2xlYW4oeWVzPzogc3RyaW5nLCBubz86IHN0cmluZywgYXNJY29uID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgICAgIHRoaXMuX2Jvb2xlYW5Bc0ljb24gPSBhc0ljb247XG4gICAgICAgIHRoaXMuX2Jvb2xlYW5ZZXMgPSB5ZXM7XG4gICAgICAgIHRoaXMuX2Jvb2xlYW5ObyA9IG5vO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29sdW1uIGRpc3BsYXkgYXMgZW51bS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnVtRGVzYyBFbnVtIGRlc2NyaXB0b3IgZm9yIHZhbHVlIGRpc3BsYXkuXG4gICAgICovXG4gICAgcHVibGljIGFzRW51bVVuc2FmZShlbnVtRGVzYzogRW51bURlc2NyaXB0b3I8YW55Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uRW51bTtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uRW51bTtcbiAgICAgICAgdGhpcy5fZW51bSA9IGVudW1EZXNjO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29sdW1uIGRpc3BsYXkgd2l0aCBjdXN0b20gY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1c3RvbUNvbXBvbmVudFR5cGUgQ29tcG9uZW50IHR5cGUgdG8gYmUgdXNlZCBmb3IgZGlzcGxheS4gTXVzdCBpbXBsZW1lbnQge0lDb2x1bW5WYWx1ZUNvbXBvbmVudH0uXG4gICAgICovXG4gICAgcHVibGljIGFzQ3VzdG9tQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudFR5cGU6IFR5cGU8SUNvbHVtblZhbHVlQ29tcG9uZW50PENvbHVtblZhbHVlLCBUYWJsZU1vZGVsLCBDb2x1bW5Nb2RlbD4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5DdXN0b207XG4gICAgICAgIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZSA9IGN1c3RvbUNvbXBvbmVudFR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgY29sdW1ucyBkaXNwbGF5IGFzIEhUTUwgdXNpbmcgQW5ndWxhciBpbm5lckhUTUwuXG4gICAgICovXG4gICAgcHVibGljIGFzSHRtbCgpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uSHRtbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY2xhc3MgbmFtZXMgZm9yIHRoZSBjb2x1bW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNsYXNzIG5hbWUgZm9yIHRoZSBlbGVtZW50IGNvbHVtbi5cbiAgICAgKiBAcGFyYW0gaGVhZGVyQ2xhc3NOYW1lIC0gVGhlIGNsYXNzIG5hbWUgZm9yIHRoZSBoZWFkZXIgZWxlbWVudCBvZiB0aGUgY29sdW1uLlxuICAgICAqIEBwYXJhbSBjbGFzc05hbWVNYXBGbiAtIEEgZnVuY3Rpb24gdG8gcmV0dXJuIGNsYXNzIG5hbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgY2xhc3MgbmFtZSBhbmQgcm93IGl0ZW0gdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhDbGFzc05hbWUoY2xhc3NOYW1lPzogc3RyaW5nLCBoZWFkZXJDbGFzc05hbWU/OiBzdHJpbmcsIGNsYXNzTmFtZU1hcEZuPzogKGNsYXNzTmFtZT86IHN0cmluZywgaXRlbT86IFRhYmxlTW9kZWwpID0+IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jbGFzc05hbWUgPSBjbGFzc05hbWUgPz8gJyc7XG4gICAgICAgIHRoaXMuX2hlYWRlckNsYXNzTmFtZSA9IGhlYWRlckNsYXNzTmFtZSA/PyAnJztcbiAgICAgICAgdGhpcy5fY2xhc3NOYW1lTWFwRm4gPSBjbGFzc05hbWVNYXBGbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgd2lkdGggZm9yIHRoZSBjb2x1bW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2lkdGggLSBUaGUgZGVzaXJlZCB3aWR0aCBpbiBwZXJjZW50cyAocmVsYXRpdmUgdG8gdGFibGUgd2lkdGgpLlxuICAgICAqIEBwYXJhbSBtaW5XaWR0aCAtIFRoZSBtaW5pbXVtIHdpZHRoIG9mIGNvbHVtbiBpbiBwaXhlbHMuXG4gICAgICogQHBhcmFtIG1heFdpZHRoIC0gVGhlIG1heGltdW0gd2lkdGggb2YgY29sdW1uIGluIHBpeGVscy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFdpZHRoKHdpZHRoPzogbnVtYmVyLCBtaW5XaWR0aD86IG51bWJlciwgbWF4V2lkdGg/OiBudW1iZXIpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB3aWR0aCA/PyBudWxsO1xuICAgICAgICB0aGlzLl9taW5XaWR0aCA9IG1pbldpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX21heFdpZHRoID0gbWF4V2lkdGggPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGl0bGUgZm9yIHRoZSBjb2x1bW4uIElmIHRpdGxlIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgdGl0bGUgd2lsbCBiZSBjYWxjdWxhdGVkIGJhc2VkIG9uIHRhYmxlIG1vZGVsIChpMThuQmFzZSkgYW5kIGNvbHVtbiBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSAtIFRoZSB0aXRsZSBvZiB0aGUgY29sdW1uLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBidXR0b24gdGhhdCBjb3BpZXMgY29sdW1uIHZhbHVlIHRvIHRoZSBjbGlwYm9hcmQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaGFzQ29weVRvQ2xpcGJvYXJkIC0gRmxhZyB0byBlbmFibGUvZGlzYWJsZSB0aGUgZmVhdHVyZS5cbiAgICAgKiBAcGFyYW0gY2xpcGJvYXJkVmFsdWVHZXR0ZXIgLSBPcHRpb25hbCBnZXR0ZXIgZnVuY3Rpb24gdG8gYWRqdXN0IHRoZSB2YWx1ZSB0byBiZSBjb3BpZWQgdG8gY2xpcGJvYXJkLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ29weVRvQ2xpcGJvYXJkKGhhc0NvcHlUb0NsaXBib2FyZCA9IHRydWUsIGNsaXBib2FyZFZhbHVlR2V0dGVyPzogR2V0dGVyRm48Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc0NvcHlUb0NsaXBib2FyZCA9IGhhc0NvcHlUb0NsaXBib2FyZDtcblxuICAgICAgICBpZiAoY2xpcGJvYXJkVmFsdWVHZXR0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NsaXBib2FyZFZhbHVlR2V0dGVyID0gY2xpcGJvYXJkVmFsdWVHZXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFVzZSBge3t9fWAgc3ludGF4IGZvciBzdHJpbmcgaW50ZXJwb2xhdGlvbiB3aXRoaW4gdGVtcGxhdGUuXG4gICAgICogVXNlIGBpdGVtYCBrZXkgdG8gYWNjZXNzIHZhbHVlIG9mIHJvdyBpdGVtLlxuICAgICAqXG4gICAgICogRXhhbXBsZSBpbnRlcnBvbGF0ZXMgcm93IGl0ZW0ncyB0aXRsZSB3aXRoaW4gc29tZSB0ZXh0OlxuICAgICAqIGBgYFxuICAgICAqIFRoaXMgdGVtcGxhdGUgc2hvd3Mge3tpdGVtLnRpdGxlfX0gdmFsdWUgaW4gY29sdW1uLlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRlbXBsYXRlIC0gVGhlIHRlbXBsYXRlIHRvIHNldC5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogRGlzcGxheSBpdGVtJ3MgdGl0bGUgcHJvcGVydHkgd2l0aGluIHNvbWUgdGV4dDpcbiAgICAgKlxuICAgICAqIGBgYFxuICAgICAqIFRoaXMgdGVtcGxhdGUgc2hvd3Mge3tpdGVtLnRpdGxlfX0gdmFsdWUgaW4gY29sdW1uLlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGFkanVzdGluZyB0aGUgY29sdW1uIHZhbHVlIGZvciBkaXNwbGF5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD59IGdldHRlciAtIFRoZSBnZXR0ZXIgZnVuY3Rpb24gdG8gYmUgdXNlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEdldHRlcihnZXR0ZXI/OiBHZXR0ZXJGbjxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZ2V0dGVyID0gZ2V0dGVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRleHQgaW4gbXVsdGlwbGUgbGluZXMgKHVzZWZ1bCBmb3IgZGlzcGxheWluZyBvZiBsb25nIHRleHRzKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpc011bHRpbGluZSBFbmFibGVzL2Rpc2FibGVkIHRoZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoTXVsdGlsaW5lKGlzTXVsdGlsaW5lID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc011bHRpbGluZSA9IGlzTXVsdGlsaW5lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyB0aGUgd2hvbGUgZGlzcGxheSB2YWx1ZSBhcyB0ZXh0ICh1c2VmdWxlIHdoZW4gZGlzcGxheSB2YWx1ZXMgYXJlIGV4cGVjdGVkIHRvIGJlIHRvIGxvbmcgYW5kL29yIGFyZSBvdmVyZmxvd24pLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlQXNUb29sdGlwIEVuYWJsZXMvZGlzYWJsZWQgdGhlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhWYWx1ZUFzVG9vbHRpcCh2YWx1ZUFzVG9vbHRpcCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzVmFsdWVBc1Rvb2x0aXAgPSB2YWx1ZUFzVG9vbHRpcDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcmRlcmluZyBvZiBjb2x1bW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNSZW9yZGVyYWJsZSBGbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHJlb3JkZXJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhSZW9yZGVyYWJsZShpc1Jlb3JkZXJhYmxlID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc1Jlb3JkZXJhYmxlID0gaXNSZW9yZGVyYWJsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0b2dnbGluZyBjb2x1bW4gdmlzaWJpbGl0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpc1Jlb3JkZXJhYmxlIEZsYWcgdG8gZW5hYmxlL2Rpc2FibGUgdmlzaWJpbGl0eSB0b2dnbGUuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhUb2dnbGVhYmxlKGlzVG9nZ2xlYWJsZSA9IHRydWUsIGlzVmlzaWJsZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNUb2dnbGVhYmxlID0gaXNUb2dnbGVhYmxlO1xuICAgICAgICB0aGlzLl9pc1Zpc2libGUgPSBpc1Zpc2libGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgbG9jYWxpemF0aW9uIG9mIGNvbHVtbiBieSBkaXNwbGF5aW5nIGZsYWcgaWYgdGhlIGNvbHVtbiB2YWx1ZSBpcyBsb2NhbGl6ZWQgKG9yIGp1c3QgZGlzcGxheWluZyBkZWZhdWx0IGZhbGxiYWNrIHRleHQpLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV4aXN0c1Byb3BlcnR5IFByb3BlcnR5IHRvIG1hcmtcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9jYWxpemVkKGV4aXN0c1Byb3BlcnR5Pzoga2V5b2YgVGFibGVNb2RlbCk6IHRoaXMge1xuICAgICAgICBpZiAoZXhpc3RzUHJvcGVydHkpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5ID0gZXhpc3RzUHJvcGVydHkgYXMgc3RyaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkgPSBgJHt0aGlzLl9wcm9wZXJ0eX1Mb2NhbGl6ZWRgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyBjdXJyZW50IGRlc2NyaXB0b3IgdG8gYSBuZXcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGNvcHkoKTogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4odGhpcy5fcHJvcGVydHkpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvcHlGaWVsZHNUbyhvYmo6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPikge1xuICAgICAgICBvYmouX3RpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICAgIG9iai5fY29sdW1uVHlwZSA9IHRoaXMuX2NvbHVtblR5cGU7XG4gICAgICAgIG9iai5fY29sdW1uRGlzcGxheVR5cGUgPSB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZTtcbiAgICAgICAgb2JqLl9lbnVtID0gdGhpcy5fZW51bTtcbiAgICAgICAgb2JqLl9ib29sZWFuQXNJY29uID0gdGhpcy5fYm9vbGVhbkFzSWNvbjtcbiAgICAgICAgb2JqLl9ib29sZWFuWWVzID0gdGhpcy5fYm9vbGVhblllcztcbiAgICAgICAgb2JqLl9ib29sZWFuTm8gPSB0aGlzLl9ib29sZWFuTm87XG4gICAgICAgIG9iai5fbG9jYWxlID0gdGhpcy5fbG9jYWxlO1xuICAgICAgICBvYmouX2N1cnJlbmN5Q29kZSA9IHRoaXMuX2N1cnJlbmN5Q29kZTtcbiAgICAgICAgb2JqLl9jdXJyZW5jeURpc3BsYXkgPSB0aGlzLl9jdXJyZW5jeURpc3BsYXk7XG4gICAgICAgIG9iai5fY3VycmVuY3lQcm9wZXJ0eSA9IHRoaXMuX2N1cnJlbmN5UHJvcGVydHk7XG4gICAgICAgIG9iai5fZGlzcGxheUZvcm1hdCA9IHRoaXMuX2Rpc3BsYXlGb3JtYXQ7XG4gICAgICAgIG9iai5faGVhZGVyQ2xhc3NOYW1lID0gdGhpcy5faGVhZGVyQ2xhc3NOYW1lO1xuICAgICAgICBvYmouX2NsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZTtcbiAgICAgICAgb2JqLl9jbGFzc05hbWVNYXBGbiA9IHRoaXMuX2NsYXNzTmFtZU1hcEZuO1xuICAgICAgICBvYmouX3dpZHRoID0gdGhpcy5fd2lkdGg7XG4gICAgICAgIG9iai5fbWluV2lkdGggPSB0aGlzLl9taW5XaWR0aDtcbiAgICAgICAgb2JqLl9tYXhXaWR0aCA9IHRoaXMuX21heFdpZHRoO1xuICAgICAgICBvYmouX2N1c3RvbUNvbXBvbmVudFR5cGUgPSB0aGlzLl9jdXN0b21Db21wb25lbnRUeXBlO1xuICAgICAgICBvYmouX2hhc0NvcHlUb0NsaXBib2FyZCA9IHRoaXMuX2hhc0NvcHlUb0NsaXBib2FyZDtcbiAgICAgICAgb2JqLl90ZW1wbGF0ZSA9IHRoaXMuX3RlbXBsYXRlO1xuICAgICAgICBvYmouX2dldHRlciA9IHRoaXMuX2dldHRlcjtcbiAgICAgICAgb2JqLl9pc011bHRpbGluZSA9IHRoaXMuX2lzTXVsdGlsaW5lO1xuICAgICAgICBvYmouX2hhc1ZhbHVlQXNUb29sdGlwID0gdGhpcy5faGFzVmFsdWVBc1Rvb2x0aXA7XG4gICAgICAgIG9iai5faXNSZW9yZGVyYWJsZSA9IHRoaXMuX2lzUmVvcmRlcmFibGU7XG4gICAgICAgIG9iai5faXNUb2dnbGVhYmxlID0gdGhpcy5faXNUb2dnbGVhYmxlO1xuICAgICAgICBvYmouX2lzVmlzaWJsZSA9IHRoaXMuX2lzVmlzaWJsZTtcbiAgICAgICAgb2JqLl9pc0xvY2FsaXplZCA9IHRoaXMuX2lzTG9jYWxpemVkO1xuICAgICAgICBvYmouX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5ID0gdGhpcy5fbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uRHluYW1pY0Rlc2NyaXB0b3IgZXh0ZW5kcyBDb2x1bW5EZXNjcmlwdG9yPGFueSwgYW55PiB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIF90aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgX3Zpc2liaWxpdHkgPSB0cnVlO1xuXG4gICAgLy8gcHJpdmF0ZSBfZmlsdGVyU3RhdHVzO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2aXNpYmlsaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJpbGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGNvbHVtbidzIHRpdGxlIGFuZCByZXR1cm5zIHRoaXMgY29sdW1uXG4gICAgICogQHBhcmFtIHRpdGxlIHRpdGxlIHRvIGJlIHNldFxuICAgICAqIEBwYXJhbSBvdmVycmlkZSBzaG91bGQgY29sdW1uIHRpdGxlIGlmIGFsbCByZWFkeSBzZXQ/XG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhUaXRsZSh0aXRsZTogc3RyaW5nLCBvdmVycmlkZSA9IGZhbHNlKTogdGhpcyB7XG4gICAgICAgIGlmICh0aGlzLl90aXRsZSA9PSBudWxsIHx8IG92ZXJyaWRlKSB7XG4gICAgICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRlZmluZXMgYXV0b21hdGljIHR5cGUgYW5kIHJldHVybnMgdGhpcyBjb2x1bW5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEF1dG9tYXRpY1R5cGUodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICBjb2x1bW5Ub0RhdGVOdW1iZXJPckJvb2xlYW4odGhpcywgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHZpc2liaWxpdHkgc3RhdGUgZm9yIGNvbHVtbiBhbmQgcmV0dXJucyB0aGlzIGNvbHVtblxuICAgICAqIEBwYXJhbSB2aXNpYmlsaXR5XG4gICAgICovXG4gICAgcHVibGljIHdpdGhWaXNpYmlsaXR5KHZpc2liaWxpdHk6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdmlzaWJpbGl0eSA9IHZpc2liaWxpdHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgZGVlcCBjb3B5IG9mIGNvbHVtbiBkeW5hbWljIGRlc2NyaXB0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29weSgpOiBDb2x1bW5EeW5hbWljRGVzY3JpcHRvciB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQ29sdW1uRHluYW1pY0Rlc2NyaXB0b3IodGhpcy5fcHJvcGVydHkpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fdmlzaWJpbGl0eSA9IHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0NvbHVtbkRlc2NyaXB0b3IoKTogQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IENvbHVtbkRlc2NyaXB0b3IodGhpcy5fcHJvcGVydHkpO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhkZXNjcmlwdG9yKTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuIl19
|
|
475
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXhFLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQXFCN0UsTUFBTSxPQUFPLGdCQUFnQjtJQW9EekIsWUFBWSxRQUFnQjtRQWxEcEIsZ0JBQVcsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwRCx1QkFBa0IsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBU3pFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUVuQyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFVBQVU7UUFDRixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQUt4QyxvQkFBb0I7UUFDWixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQVkvQixVQUFVO1FBQ0Ysd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBR3BDLGVBQWU7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUl6QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcs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QUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtHZXR0ZXJGbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RW51bURlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge2NvbHVtblRvRGF0ZU51bWJlck9yQm9vbGVhbn0gZnJvbSAnLi4vaGVscGVycy9jb2x1bW4tY29udmVydGVyJztcbmltcG9ydCB7SUNvbHVtblZhbHVlQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLXZhbHVlLm1vZGVsJztcbmltcG9ydCB7Q29sdW1uRGlzcGxheVR5cGVFbnVtLCBDb2x1bW5UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIENvbHVtbkN1cnJlbmN5T3B0c1R5cGU8UHJvcGVydHkgPSBzdHJpbmc+ID0ge1xuICAgIGN1cnJlbmN5UHJvcGVydHk/OiBQcm9wZXJ0eTtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBjdXJyZW5jeURpc3BsYXk/OiAnc3ltYm9sJyB8ICdjb2RlJyB8ICduYW1lJztcbn0gJiBDb2x1bW5OdW1iZXJGcmFjdGlvbk9wdHNUeXBlICZcbiAgICBDb2x1bW5Mb2NhbGVPcHRzVHlwZTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uTnVtYmVyT3B0c1R5cGUgPSBDb2x1bW5OdW1iZXJGcmFjdGlvbk9wdHNUeXBlICYgQ29sdW1uTG9jYWxlT3B0c1R5cGU7XG5cbmV4cG9ydCB0eXBlIENvbHVtbk51bWJlckZyYWN0aW9uT3B0c1R5cGUgPSB7XG4gICAgbWluSW50ZWdlckRpZ2l0cz86IG51bWJlcjtcbiAgICBtaW5GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgICBtYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtbkxvY2FsZU9wdHNUeXBlID0ge1xuICAgIGxvY2FsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZSA9IENvbHVtbk1vZGVsPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2NvbHVtblR5cGU6IENvbHVtblR5cGVFbnVtID0gQ29sdW1uVHlwZUVudW0uU3RyaW5nO1xuICAgIHByaXZhdGUgX2NvbHVtbkRpc3BsYXlUeXBlOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nO1xuICAgIHByb3RlY3RlZCBfdGl0bGU/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGl0bGVVc2VNb2RlbEJhc2U/OiBib29sZWFuO1xuXG4gICAgLy8gdmFsdWUgZGlzcGxheVxuICAgIHByaXZhdGUgX2Rpc3BsYXlGb3JtYXQ/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbG9jYWxlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3RlbXBsYXRlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2dldHRlcj86IEdldHRlckZuPENvbHVtblZhbHVlLCBUYWJsZU1vZGVsPjtcbiAgICBwcml2YXRlIF9pc011bHRpbGluZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2hhc1ZhbHVlQXNUb29sdGlwID0gZmFsc2U7XG5cbiAgICAvLyBjb2x1bW4gdmlzaWJpbGl0eVxuICAgIHByaXZhdGUgX2lzUmVvcmRlcmFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1RvZ2dsZWFibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgLy8gc3R5bGluZ1xuICAgIHByaXZhdGUgX2hlYWRlckNsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NsYXNzTmFtZU1hcEZuPzogKGNsYXNzTmFtZT86IHN0cmluZywgaXRlbT86IFRhYmxlTW9kZWwpID0+IHN0cmluZztcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbWluV2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX21heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVudW0gc3BlY2lmaWNzXG4gICAgcHJpdmF0ZSBfZW51bT86IEVudW1EZXNjcmlwdG9yPGFueT47XG5cbiAgICAvLyBib29sZWFuIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Bc0ljb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9ib29sZWFuWWVzPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2Jvb2xlYW5Obz86IHN0cmluZztcblxuICAgIC8vIGN1cnJlbmN5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9jdXJyZW5jeVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2N1cnJlbmN5RGlzcGxheT86ICdzeW1ib2wnIHwgJ2NvZGUnIHwgJ25hbWUnO1xuXG4gICAgLy8gY3VzdG9tIHNwZWNpZmljc1xuICAgIHByaXZhdGUgX2N1c3RvbUNvbXBvbmVudFR5cGU/OiBUeXBlPElDb2x1bW5WYWx1ZUNvbXBvbmVudDxDb2x1bW5WYWx1ZSwgVGFibGVNb2RlbCwgQ29sdW1uTW9kZWw+PjtcblxuICAgIC8vIGhlbHBlcnNcbiAgICBwcml2YXRlIF9oYXNDb3B5VG9DbGlwYm9hcmQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRWYWx1ZUdldHRlcj86IEdldHRlckZuPENvbHVtblZhbHVlLCBUYWJsZU1vZGVsPjtcblxuICAgIC8vIGxvY2FsaXphdGlvblxuICAgIHByaXZhdGUgX2lzTG9jYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Byb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtblR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5EaXNwbGF5VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkRpc3BsYXlUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlVXNlTW9kZWxCYXNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVVc2VNb2RlbEJhc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNwbGF5Rm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUZvcm1hdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoZWFkZXJDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWVNYXBGbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsYXNzTmFtZU1hcEZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgd2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1pbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluV2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtYXhXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFdpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZW51bSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib29sZWFuQXNJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9vbGVhbkFzSWNvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvb2xlYW5ZZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ib29sZWFuWWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vbGVhbk5vKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm9vbGVhbk5vO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VzdG9tQ29tcG9uZW50VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbUNvbXBvbmVudFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW5jeUNvZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW5jeUNvZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW5jeURpc3BsYXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW5jeURpc3BsYXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjdXJyZW5jeVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0NvcHlUb0NsaXBib2FyZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0NvcHlUb0NsaXBib2FyZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsaXBib2FyZFZhbHVlR2V0dGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xpcGJvYXJkVmFsdWVHZXR0ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0ZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ2V0dGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0dGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNdWx0aWxpbmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc011bHRpbGluZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1ZhbHVlQXNUb29sdGlwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzVmFsdWVBc1Rvb2x0aXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Jlb3JkZXJhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZW9yZGVyYWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzVG9nZ2xlYWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9nZ2xlYWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzVmlzaWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTG9jYWxpemVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2NhbGl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGNvbHVtbiB0byBnaXZlbiB0eXBlIHdpdGggYWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIENvbHVtbiB0eXBlIGVudW0uXG4gICAgICogQHBhcmFtIGRpc3BsYXlUeXBlIENvbHVtbiBkaXNwbGF5IHR5cGVcbiAgICAgKiBAcGFyYW0gYXJncyBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgdGhhdCBtaWdodCBiZSBuZWVkZWQgZm9yIHNwZWNpZmljIHRhcmdldCB0eXBlLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc1R5cGUodHlwZTogQ29sdW1uVHlwZUVudW0sIGRpc3BsYXlUeXBlPzogQ29sdW1uRGlzcGxheVR5cGVFbnVtLCAuLi5hcmdzOiBhbnlbXSk6IHRoaXMge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uTnVtYmVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5ID8gdGhpcy5hc0N1cnJlbmN5KC4uLmFyZ3MpIDogdGhpcy5hc051bWJlciguLi5hcmdzKTtcbiAgICAgICAgICAgIGNhc2UgQ29sdW1uVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc0Jvb2xlYW4oLi4uYXJncyk7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNEYXRlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5FbnVtOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFzRW51bVVuc2FmZShhcmdzWzBdIGFzIEVudW1EZXNjcmlwdG9yPGFueT4pO1xuICAgICAgICAgICAgY2FzZSBDb2x1bW5UeXBlRW51bS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXNDdXN0b21Db21wb25lbnQoYXJnc1swXSk7XG4gICAgICAgICAgICBjYXNlIENvbHVtblR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgY29sdW1uIGRpc3BsYXkgYXMgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgbnVtYmVyIGRpc3BsYXkuXG4gICAgICovXG4gICAgcHVibGljIGFzTnVtYmVyKG9wdHM/OiBDb2x1bW5OdW1iZXJPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5OdW1iZXI7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbHVtbiBkaXNwbGF5IGFzIGN1cnJlbmN5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgY3VycmVuY3kgZGlzcGxheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNDdXJyZW5jeShvcHRzPzogQ29sdW1uQ3VycmVuY3lPcHRzVHlwZTxrZXlvZiBUYWJsZU1vZGVsPik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hc0N1cnJlbmN5VW5zYWZlKHtcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgICAgICBjdXJyZW5jeVByb3BlcnR5OiBvcHRzPy5jdXJyZW5jeVByb3BlcnR5ID8gKG9wdHMuY3VycmVuY3lQcm9wZXJ0eSBhcyBzdHJpbmcpIDogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSBhcyBjdXJyZW5jeS5cbiAgICAgKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgVU5TQUZFIVxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgY3VycmVuY3kgZGlzcGxheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNDdXJyZW5jeVVuc2FmZShvcHRzPzogQ29sdW1uQ3VycmVuY3lPcHRzVHlwZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5DdXJyZW5jeTtcbiAgICAgICAgdGhpcy5fY3VycmVuY3lDb2RlID0gb3B0cz8uY3VycmVuY3k7XG4gICAgICAgIHRoaXMuX2N1cnJlbmN5UHJvcGVydHkgPSBvcHRzPy5jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9jdXJyZW5jeURpc3BsYXkgPSBvcHRzPy5jdXJyZW5jeURpc3BsYXk7XG4gICAgICAgIHRoaXMuX2Rpc3BsYXlGb3JtYXQgPVxuICAgICAgICAgICAgb3B0cz8ubWluSW50ZWdlckRpZ2l0cyB8fCBvcHRzPy5taW5GcmFjdGlvbkRpZ2l0cyB8fCBvcHRzPy5tYXhGcmFjdGlvbkRpZ2l0c1xuICAgICAgICAgICAgICAgID8gYCR7b3B0cz8ubWluSW50ZWdlckRpZ2l0cyA/PyAwfS4ke29wdHM/Lm1pbkZyYWN0aW9uRGlnaXRzID8/IDB9LSR7b3B0cz8ubWF4RnJhY3Rpb25EaWdpdHMgPz8gb3B0cz8ubWluRnJhY3Rpb25EaWdpdHMgPz8gMH1gXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IG9wdHM/LmxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbHVtbiBkaXNwbGF5IGFzIGRhdGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGlzcGxheUZvcm1hdCBEYXRlIGRpc3BsYXkgZm9ybWF0IChpbiBBbmd1bGFyIGRhdGUgZm9ybWF0dGluZykuXG4gICAgICovXG4gICAgcHVibGljIGFzRGF0ZShkaXNwbGF5Rm9ybWF0ID0gJ2RkLk1NLnl5eXknKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5EYXRlO1xuICAgICAgICB0aGlzLl9kaXNwbGF5Rm9ybWF0ID0gZGlzcGxheUZvcm1hdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGNvbHVtbiBkaXNwbGF5IGFzIGJvb2xlYW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0geWVzIFRyYW5zbGF0aW9uIGtleSBmb3IgdHJ1ZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gbm8gVHJhbnNsYXRpb24ga2V5IGZvciBmYWxzZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gYXNJY29uIFVzZSB0cnVlL2ZhbHNlIHRleHRzIGFzIGljb24uXG4gICAgICovXG4gICAgcHVibGljIGFzQm9vbGVhbih5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5UeXBlID0gQ29sdW1uVHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQm9vbGVhbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhbkFzSWNvbiA9IGFzSWNvbjtcbiAgICAgICAgdGhpcy5fYm9vbGVhblllcyA9IHllcztcbiAgICAgICAgdGhpcy5fYm9vbGVhbk5vID0gbm87XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSBhcyBlbnVtLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVudW1EZXNjIEVudW0gZGVzY3JpcHRvciBmb3IgdmFsdWUgZGlzcGxheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNFbnVtVW5zYWZlKGVudW1EZXNjOiBFbnVtRGVzY3JpcHRvcjxhbnk+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5FbnVtO1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5FbnVtO1xuICAgICAgICB0aGlzLl9lbnVtID0gZW51bURlc2M7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBjb2x1bW4gZGlzcGxheSB3aXRoIGN1c3RvbSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VzdG9tQ29tcG9uZW50VHlwZSBDb21wb25lbnQgdHlwZSB0byBiZSB1c2VkIGZvciBkaXNwbGF5LiBNdXN0IGltcGxlbWVudCB7SUNvbHVtblZhbHVlQ29tcG9uZW50fS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNDdXN0b21Db21wb25lbnQoY3VzdG9tQ29tcG9uZW50VHlwZTogVHlwZTxJQ29sdW1uVmFsdWVDb21wb25lbnQ8Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWwsIENvbHVtbk1vZGVsPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLkN1c3RvbTtcbiAgICAgICAgdGhpcy5fY29sdW1uRGlzcGxheVR5cGUgPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgICAgICB0aGlzLl9jdXN0b21Db21wb25lbnRUeXBlID0gY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBjb2x1bW5zIGRpc3BsYXkgYXMgSFRNTCB1c2luZyBBbmd1bGFyIGlubmVySFRNTC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXNIdG1sKCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5EaXNwbGF5VHlwZSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5IdG1sO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjbGFzcyBuYW1lcyBmb3IgdGhlIGNvbHVtbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBmb3IgdGhlIGVsZW1lbnQgY29sdW1uLlxuICAgICAqIEBwYXJhbSBoZWFkZXJDbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBmb3IgdGhlIGhlYWRlciBlbGVtZW50IG9mIHRoZSBjb2x1bW4uXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZU1hcEZuIC0gQSBmdW5jdGlvbiB0byByZXR1cm4gY2xhc3MgbmFtZSBiYXNlZCBvbiB0aGUgY3VycmVudCBjbGFzcyBuYW1lIGFuZCByb3cgaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENsYXNzTmFtZShjbGFzc05hbWU/OiBzdHJpbmcsIGhlYWRlckNsYXNzTmFtZT86IHN0cmluZywgY2xhc3NOYW1lTWFwRm4/OiAoY2xhc3NOYW1lPzogc3RyaW5nLCBpdGVtPzogVGFibGVNb2RlbCkgPT4gc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZSA9IGNsYXNzTmFtZSA/PyAnJztcbiAgICAgICAgdGhpcy5faGVhZGVyQ2xhc3NOYW1lID0gaGVhZGVyQ2xhc3NOYW1lID8/ICcnO1xuICAgICAgICB0aGlzLl9jbGFzc05hbWVNYXBGbiA9IGNsYXNzTmFtZU1hcEZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB3aWR0aCBmb3IgdGhlIGNvbHVtbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3aWR0aCAtIFRoZSBkZXNpcmVkIHdpZHRoIGluIHBlcmNlbnRzIChyZWxhdGl2ZSB0byB0YWJsZSB3aWR0aCkuXG4gICAgICogQHBhcmFtIG1pbldpZHRoIC0gVGhlIG1pbmltdW0gd2lkdGggb2YgY29sdW1uIGluIHBpeGVscy5cbiAgICAgKiBAcGFyYW0gbWF4V2lkdGggLSBUaGUgbWF4aW11bSB3aWR0aCBvZiBjb2x1bW4gaW4gcGl4ZWxzLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoV2lkdGgod2lkdGg/OiBudW1iZXIsIG1pbldpZHRoPzogbnVtYmVyLCBtYXhXaWR0aD86IG51bWJlcik6IHRoaXMge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX21pbldpZHRoID0gbWluV2lkdGggPz8gbnVsbDtcbiAgICAgICAgdGhpcy5fbWF4V2lkdGggPSBtYXhXaWR0aCA/PyBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aXRsZSBmb3IgdGhlIGNvbHVtbi4gSWYgdGl0bGUgaXMgdW5kZWZpbmVkLCB0aGVuIHRoZSB0aXRsZSB3aWxsIGJlIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGFibGUgbW9kZWwgKGkxOG5CYXNlKSBhbmQgY29sdW1uIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlIC0gVGhlIHRpdGxlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQHBhcmFtIHVzZU1vZGVsQmFzZSAtIFdoZXRoZXIgdG8gYXBwZW5kIHRpdGxlIHRvIG1vZGVsJ3MgaTE4biBwYXRoLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU/OiBzdHJpbmcsIHVzZU1vZGVsQmFzZT86IGJvb2xlYW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fdGl0bGVVc2VNb2RlbEJhc2UgPSB1c2VNb2RlbEJhc2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgYnV0dG9uIHRoYXQgY29waWVzIGNvbHVtbiB2YWx1ZSB0byB0aGUgY2xpcGJvYXJkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGhhc0NvcHlUb0NsaXBib2FyZCAtIEZsYWcgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGZlYXR1cmUuXG4gICAgICogQHBhcmFtIGNsaXBib2FyZFZhbHVlR2V0dGVyIC0gT3B0aW9uYWwgZ2V0dGVyIGZ1bmN0aW9uIHRvIGFkanVzdCB0aGUgdmFsdWUgdG8gYmUgY29waWVkIHRvIGNsaXBib2FyZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENvcHlUb0NsaXBib2FyZChoYXNDb3B5VG9DbGlwYm9hcmQgPSB0cnVlLCBjbGlwYm9hcmRWYWx1ZUdldHRlcj86IEdldHRlckZuPENvbHVtblZhbHVlLCBUYWJsZU1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNDb3B5VG9DbGlwYm9hcmQgPSBoYXNDb3B5VG9DbGlwYm9hcmQ7XG5cbiAgICAgICAgaWYgKGNsaXBib2FyZFZhbHVlR2V0dGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGlwYm9hcmRWYWx1ZUdldHRlciA9IGNsaXBib2FyZFZhbHVlR2V0dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBVc2UgYHt7fX1gIHN5bnRheCBmb3Igc3RyaW5nIGludGVycG9sYXRpb24gd2l0aGluIHRlbXBsYXRlLlxuICAgICAqIFVzZSBgaXRlbWAga2V5IHRvIGFjY2VzcyB2YWx1ZSBvZiByb3cgaXRlbS5cbiAgICAgKlxuICAgICAqIEV4YW1wbGUgaW50ZXJwb2xhdGVzIHJvdyBpdGVtJ3MgdGl0bGUgd2l0aGluIHNvbWUgdGV4dDpcbiAgICAgKiBgYGBcbiAgICAgKiBUaGlzIHRlbXBsYXRlIHNob3dzIHt7aXRlbS50aXRsZX19IHZhbHVlIGluIGNvbHVtbi5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZW1wbGF0ZSAtIFRoZSB0ZW1wbGF0ZSB0byBzZXQuXG4gICAgICpcbiAgICAgKiBAdXNhZ2VOb3Rlc1xuICAgICAqIERpc3BsYXkgaXRlbSdzIHRpdGxlIHByb3BlcnR5IHdpdGhpbiBzb21lIHRleHQ6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiBUaGlzIHRlbXBsYXRlIHNob3dzIHt7aXRlbS50aXRsZX19IHZhbHVlIGluIGNvbHVtbi5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFRlbXBsYXRlKHRlbXBsYXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBhZGp1c3RpbmcgdGhlIGNvbHVtbiB2YWx1ZSBmb3IgZGlzcGxheS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7R2V0dGVyRm48Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWw+fSBnZXR0ZXIgLSBUaGUgZ2V0dGVyIGZ1bmN0aW9uIHRvIGJlIHVzZWQuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhHZXR0ZXIoZ2V0dGVyPzogR2V0dGVyRm48Q29sdW1uVmFsdWUsIFRhYmxlTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2dldHRlciA9IGdldHRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0ZXh0IGluIG11bHRpcGxlIGxpbmVzICh1c2VmdWwgZm9yIGRpc3BsYXlpbmcgb2YgbG9uZyB0ZXh0cykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNNdWx0aWxpbmUgRW5hYmxlcy9kaXNhYmxlZCB0aGUgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE11bHRpbGluZShpc011bHRpbGluZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNNdWx0aWxpbmUgPSBpc011bHRpbGluZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd3MgdGhlIHdob2xlIGRpc3BsYXkgdmFsdWUgYXMgdGV4dCAodXNlZnVsZSB3aGVuIGRpc3BsYXkgdmFsdWVzIGFyZSBleHBlY3RlZCB0byBiZSB0byBsb25nIGFuZC9vciBhcmUgb3ZlcmZsb3duKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZUFzVG9vbHRpcCBFbmFibGVzL2Rpc2FibGVkIHRoZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVmFsdWVBc1Rvb2x0aXAodmFsdWVBc1Rvb2x0aXAgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc1ZhbHVlQXNUb29sdGlwID0gdmFsdWVBc1Rvb2x0aXA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3JkZXJpbmcgb2YgY29sdW1uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlzUmVvcmRlcmFibGUgRmxhZyB0byBlbmFibGUvZGlzYWJsZSByZW9yZGVyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUmVvcmRlcmFibGUoaXNSZW9yZGVyYWJsZSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNSZW9yZGVyYWJsZSA9IGlzUmVvcmRlcmFibGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgdG9nZ2xpbmcgY29sdW1uIHZpc2liaWxpdHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNSZW9yZGVyYWJsZSBGbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHZpc2liaWxpdHkgdG9nZ2xlLlxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVG9nZ2xlYWJsZShpc1RvZ2dsZWFibGUgPSB0cnVlLCBpc1Zpc2libGUgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzVG9nZ2xlYWJsZSA9IGlzVG9nZ2xlYWJsZTtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gaXNWaXNpYmxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIGxvY2FsaXphdGlvbiBvZiBjb2x1bW4gYnkgZGlzcGxheWluZyBmbGFnIGlmIHRoZSBjb2x1bW4gdmFsdWUgaXMgbG9jYWxpemVkIChvciBqdXN0IGRpc3BsYXlpbmcgZGVmYXVsdCBmYWxsYmFjayB0ZXh0KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBleGlzdHNQcm9wZXJ0eSBQcm9wZXJ0eSB0byBtYXJrXG4gICAgICovXG4gICAgcHVibGljIGxvY2FsaXplZChleGlzdHNQcm9wZXJ0eT86IGtleW9mIFRhYmxlTW9kZWwpOiB0aGlzIHtcbiAgICAgICAgaWYgKGV4aXN0c1Byb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IGV4aXN0c1Byb3BlcnR5IGFzIHN0cmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5ID0gYCR7dGhpcy5fcHJvcGVydHl9TG9jYWxpemVkYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgY3VycmVudCBkZXNjcmlwdG9yIHRvIGEgbmV3IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3B5KCk6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIENvbHVtblZhbHVlPiB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+KHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb3B5RmllbGRzVG8ob2JqOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4pIHtcbiAgICAgICAgb2JqLl90aXRsZSA9IHRoaXMuX3RpdGxlO1xuICAgICAgICBvYmouX2NvbHVtblR5cGUgPSB0aGlzLl9jb2x1bW5UeXBlO1xuICAgICAgICBvYmouX2NvbHVtbkRpc3BsYXlUeXBlID0gdGhpcy5fY29sdW1uRGlzcGxheVR5cGU7XG4gICAgICAgIG9iai5fZW51bSA9IHRoaXMuX2VudW07XG4gICAgICAgIG9iai5fYm9vbGVhbkFzSWNvbiA9IHRoaXMuX2Jvb2xlYW5Bc0ljb247XG4gICAgICAgIG9iai5fYm9vbGVhblllcyA9IHRoaXMuX2Jvb2xlYW5ZZXM7XG4gICAgICAgIG9iai5fYm9vbGVhbk5vID0gdGhpcy5fYm9vbGVhbk5vO1xuICAgICAgICBvYmouX2xvY2FsZSA9IHRoaXMuX2xvY2FsZTtcbiAgICAgICAgb2JqLl9jdXJyZW5jeUNvZGUgPSB0aGlzLl9jdXJyZW5jeUNvZGU7XG4gICAgICAgIG9iai5fY3VycmVuY3lEaXNwbGF5ID0gdGhpcy5fY3VycmVuY3lEaXNwbGF5O1xuICAgICAgICBvYmouX2N1cnJlbmN5UHJvcGVydHkgPSB0aGlzLl9jdXJyZW5jeVByb3BlcnR5O1xuICAgICAgICBvYmouX2Rpc3BsYXlGb3JtYXQgPSB0aGlzLl9kaXNwbGF5Rm9ybWF0O1xuICAgICAgICBvYmouX2hlYWRlckNsYXNzTmFtZSA9IHRoaXMuX2hlYWRlckNsYXNzTmFtZTtcbiAgICAgICAgb2JqLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIG9iai5fY2xhc3NOYW1lTWFwRm4gPSB0aGlzLl9jbGFzc05hbWVNYXBGbjtcbiAgICAgICAgb2JqLl93aWR0aCA9IHRoaXMuX3dpZHRoO1xuICAgICAgICBvYmouX21pbldpZHRoID0gdGhpcy5fbWluV2lkdGg7XG4gICAgICAgIG9iai5fbWF4V2lkdGggPSB0aGlzLl9tYXhXaWR0aDtcbiAgICAgICAgb2JqLl9jdXN0b21Db21wb25lbnRUeXBlID0gdGhpcy5fY3VzdG9tQ29tcG9uZW50VHlwZTtcbiAgICAgICAgb2JqLl9oYXNDb3B5VG9DbGlwYm9hcmQgPSB0aGlzLl9oYXNDb3B5VG9DbGlwYm9hcmQ7XG4gICAgICAgIG9iai5fdGVtcGxhdGUgPSB0aGlzLl90ZW1wbGF0ZTtcbiAgICAgICAgb2JqLl9nZXR0ZXIgPSB0aGlzLl9nZXR0ZXI7XG4gICAgICAgIG9iai5faXNNdWx0aWxpbmUgPSB0aGlzLl9pc011bHRpbGluZTtcbiAgICAgICAgb2JqLl9oYXNWYWx1ZUFzVG9vbHRpcCA9IHRoaXMuX2hhc1ZhbHVlQXNUb29sdGlwO1xuICAgICAgICBvYmouX2lzUmVvcmRlcmFibGUgPSB0aGlzLl9pc1Jlb3JkZXJhYmxlO1xuICAgICAgICBvYmouX2lzVG9nZ2xlYWJsZSA9IHRoaXMuX2lzVG9nZ2xlYWJsZTtcbiAgICAgICAgb2JqLl9pc1Zpc2libGUgPSB0aGlzLl9pc1Zpc2libGU7XG4gICAgICAgIG9iai5faXNMb2NhbGl6ZWQgPSB0aGlzLl9pc0xvY2FsaXplZDtcbiAgICAgICAgb2JqLl9sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSA9IHRoaXMuX2xvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yIGV4dGVuZHMgQ29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4ge1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIF92aXNpYmlsaXR5ID0gdHJ1ZTtcblxuICAgIC8vIHByaXZhdGUgX2ZpbHRlclN0YXR1cztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocHJvcGVydHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjb2x1bW4ncyB0aXRsZSBhbmQgcmV0dXJucyB0aGlzIGNvbHVtblxuICAgICAqIEBwYXJhbSB0aXRsZSB0aXRsZSB0byBiZSBzZXRcbiAgICAgKiBAcGFyYW0gb3ZlcnJpZGUgc2hvdWxkIGNvbHVtbiB0aXRsZSBpZiBhbGwgcmVhZHkgc2V0P1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3aXRoVGl0bGUodGl0bGU6IHN0cmluZywgb3ZlcnJpZGUgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICBpZiAodGhpcy5fdGl0bGUgPT0gbnVsbCB8fCBvdmVycmlkZSkge1xuICAgICAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWZpbmVzIGF1dG9tYXRpYyB0eXBlIGFuZCByZXR1cm5zIHRoaXMgY29sdW1uXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhBdXRvbWF0aWNUeXBlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgY29sdW1uVG9EYXRlTnVtYmVyT3JCb29sZWFuKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB2aXNpYmlsaXR5IHN0YXRlIGZvciBjb2x1bW4gYW5kIHJldHVybnMgdGhpcyBjb2x1bW5cbiAgICAgKiBAcGFyYW0gdmlzaWJpbGl0eVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoVmlzaWJpbGl0eSh2aXNpYmlsaXR5OiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Zpc2liaWxpdHkgPSB2aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGRlZXAgY29weSBvZiBjb2x1bW4gZHluYW1pYyBkZXNjcmlwdG9yXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNvcHkoKTogQ29sdW1uRHluYW1pY0Rlc2NyaXB0b3Ige1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IENvbHVtbkR5bmFtaWNEZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIGRlc2NyaXB0b3IuX3RpdGxlID0gdGhpcy5fdGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Zpc2liaWxpdHkgPSB0aGlzLl92aXNpYmlsaXR5O1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Db2x1bW5EZXNjcmlwdG9yKCk6IENvbHVtbkRlc2NyaXB0b3I8YW55LCBhbnk+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,89 +1,22 @@
|
|
|
1
|
-
import { ModelDescriptor,
|
|
2
|
-
import { getTableClassAttributeDef } from '../helpers/class-attribute-converter';
|
|
3
|
-
import { upsertTableColumnFromAttributeDef } from '../helpers/table-descriptor-helpers';
|
|
1
|
+
import { ModelDescriptor, model } from '@mediusinc/mng-commons/model';
|
|
4
2
|
import { TableDescriptorInst, TableDynamicDescriptorInst } from './table.descriptor';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
static create(idProperty, titleProperty, i18nBaseKey) {
|
|
10
|
-
return tableDescriptor({ id: idProperty, title: titleProperty, i18nBase: i18nBaseKey });
|
|
11
|
-
}
|
|
12
|
-
static fromClass(type, idProperty, titleProperty, i18nBaseKey) {
|
|
13
|
-
return tableDescriptorFromClass(type, { id: idProperty, title: titleProperty, i18nBase: i18nBaseKey });
|
|
14
|
-
}
|
|
15
|
-
static fromModel(model) {
|
|
16
|
-
return new TableDescriptorInst(model);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* generates descriptor based on type attribute definition
|
|
20
|
-
* @param type class type
|
|
21
|
-
* @param idProperty
|
|
22
|
-
* @param titleProperty
|
|
23
|
-
*/
|
|
24
|
-
static fromClassWithAutoAttrsDef(type, idProperty, titleProperty) {
|
|
25
|
-
return tableDescriptorFromClassAttrsDef(type, undefined, { id: idProperty, title: titleProperty });
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* generates descriptor base on given attribute definition
|
|
29
|
-
* @param type class type
|
|
30
|
-
* @param attributes attributes from which descriptor is generated
|
|
31
|
-
* @param idProperty
|
|
32
|
-
* @param titleProperty
|
|
33
|
-
*/
|
|
34
|
-
static fromClassWithCustomAttrsDef(type, attributes, idProperty, titleProperty) {
|
|
35
|
-
return tableDescriptorFromClassAttrsDef(type, attributes, { id: idProperty, title: titleProperty });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export function tableDescriptor(typeOrModelOrClassOrOpts, opts) {
|
|
39
|
-
if (typeOrModelOrClassOrOpts == null) {
|
|
3
|
+
export function tableDescriptor(modelOrOpts,
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
opts) {
|
|
6
|
+
if (modelOrOpts == null) {
|
|
40
7
|
return new TableDescriptorInst(model());
|
|
41
8
|
}
|
|
42
|
-
else if (
|
|
43
|
-
return new TableDescriptorInst(
|
|
44
|
-
}
|
|
45
|
-
else if (typeOrModelOrClassOrOpts instanceof ModelDescriptor) {
|
|
46
|
-
return new TableDescriptorInst(typeOrModelOrClassOrOpts);
|
|
9
|
+
else if (modelOrOpts instanceof ModelDescriptor) {
|
|
10
|
+
return new TableDescriptorInst(modelOrOpts);
|
|
47
11
|
}
|
|
48
12
|
else {
|
|
49
13
|
// this could have autoGenerated if model descriptor is class
|
|
50
|
-
return new TableDescriptorInst(model(
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
export function tableDescriptorFromClass(type, opts) {
|
|
54
|
-
return new TableDescriptorInst(model(type, opts));
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* generates descriptor based on type attribute definition
|
|
58
|
-
* @param type class type
|
|
59
|
-
* @param attributes
|
|
60
|
-
* @param opts
|
|
61
|
-
*/
|
|
62
|
-
export function tableDescriptorFromClassAttrsDef(type, attributes, opts) {
|
|
63
|
-
const descriptor = new TableDescriptorInst(model(type, opts), true);
|
|
64
|
-
(attributes ?? getTableClassAttributeDef(type))
|
|
65
|
-
.filter(attr => !attr.type.includes('Set') && !attr.type.includes('Array'))
|
|
66
|
-
.forEach(attr => upsertTableColumnFromAttributeDef(descriptor, attr));
|
|
67
|
-
return descriptor;
|
|
68
|
-
}
|
|
69
|
-
export class TableDynamicDescriptor extends TableDynamicDescriptorInst {
|
|
70
|
-
constructor() {
|
|
71
|
-
super(ModelDescriptor.create());
|
|
72
|
-
}
|
|
73
|
-
static create(idProperty, titleProperty, i18nBaseKey) {
|
|
74
|
-
return tableDynamicDescriptor({
|
|
75
|
-
id: idProperty,
|
|
76
|
-
title: titleProperty,
|
|
77
|
-
i18nBase: i18nBaseKey
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
static fromModel(model) {
|
|
81
|
-
return tableDynamicDescriptor(model);
|
|
14
|
+
return new TableDescriptorInst(model(modelOrOpts));
|
|
82
15
|
}
|
|
83
16
|
}
|
|
84
17
|
export function tableDynamicDescriptor(modelOrOpts) {
|
|
85
18
|
return modelOrOpts instanceof ModelDescriptor
|
|
86
19
|
? new TableDynamicDescriptorInst(modelOrOpts)
|
|
87
|
-
: new TableDynamicDescriptorInst(new ModelDescriptor(
|
|
20
|
+
: new TableDynamicDescriptorInst(new ModelDescriptor(modelOrOpts?.id, modelOrOpts?.title, modelOrOpts?.i18nBase));
|
|
88
21
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGVzY3JpcHRvci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL3NyYy9kZXNjcmlwdG9ycy90YWJsZS1kZXNjcmlwdG9yLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBNkIsY0FBYyxFQUFFLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRS9HLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRGLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5GLE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUF3QjtJQUN6RDtRQUNJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUNoQixVQUE2QixFQUM3QixhQUFnQyxFQUNoQyxXQUF5QztRQUV6QyxPQUFPLGVBQWUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FDbkIsSUFBMkIsRUFDM0IsVUFBNkIsRUFDN0IsYUFBZ0MsRUFDaEMsV0FBeUM7UUFFekMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQW1FLEtBQWtDO1FBQ3hILE9BQU8sSUFBSSxtQkFBbUIsQ0FBNkIsS0FBSyxDQUFDLENBQUM7SUFDdEUs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QUF1RTtJQUMxRyxPQUFPLFdBQVcsWUFBWSxlQUFlO1FBQ3pDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztRQUM3QyxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLGVBQWUsQ0FBTSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQVksRUFBRSxXQUFXLEVBQUUsS0FBZSxFQUFFLFdBQVcsRUFBRSxRQUFrQixDQUFDLENBQUMsQ0FBQztBQUN4SyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvciwgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0cywgVHlwZURlc2NyaXB0b3IsIG1vZGVsfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtnZXRUYWJsZUNsYXNzQXR0cmlidXRlRGVmfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuaW1wb3J0IHt1cHNlcnRUYWJsZUNvbHVtbkZyb21BdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL2hlbHBlcnMvdGFibGUtZGVzY3JpcHRvci1oZWxwZXJzJztcbmltcG9ydCB7VGFibGVDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnLi4vbW9kZWxzL2NsYXNzLXRhYmxlLWF0dHJpYnV0ZS5tb2RlbCc7XG5pbXBvcnQge1RhYmxlRGVzY3JpcHRvckluc3QsIFRhYmxlRHluYW1pY0Rlc2NyaXB0b3JJbnN0fSBmcm9tICcuL3RhYmxlLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgVGFibGVEZXNjcmlwdG9yIGV4dGVuZHMgVGFibGVEZXNjcmlwdG9ySW5zdDxhbnk+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKG1vZGVsKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgICAgICBpZFByb3BlcnR5Pzoga2V5b2YgVGFibGVNb2RlbCxcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIFRhYmxlTW9kZWwsXG4gICAgICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPHVua25vd24+XG4gICAgKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz4ge1xuICAgICAgICByZXR1cm4gdGFibGVEZXNjcmlwdG9yKHtpZDogaWRQcm9wZXJ0eSwgdGl0bGU6IHRpdGxlUHJvcGVydHksIGkxOG5CYXNlOiBpMThuQmFzZUtleX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8VGFibGVNb2RlbD4sXG4gICAgICAgIGlkUHJvcGVydHk/OiBrZXlvZiBUYWJsZU1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgVGFibGVNb2RlbCxcbiAgICAgICAgaTE4bkJhc2VLZXk/OiBDbGFzc1R5cGU8dW5rbm93bj4gfCBzdHJpbmdcbiAgICApOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgICAgIHJldHVybiB0YWJsZURlc2NyaXB0b3JGcm9tQ2xhc3ModHlwZSwge2lkOiBpZFByb3BlcnR5LCB0aXRsZTogdGl0bGVQcm9wZXJ0eSwgaTE4bkJhc2U6IGkxOG5CYXNlS2V5fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWw8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxUYWJsZU1vZGVsPik6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGRlc2NyaXB0b3IgYmFzZWQgb24gdHlwZSBhdHRyaWJ1dGUgZGVmaW5pdGlvblxuICAgICAqIEBwYXJhbSB0eXBlIGNsYXNzIHR5cGVcbiAgICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoQXV0b0F0dHJzRGVmPFRhYmxlTW9kZWw+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8VGFibGVNb2RlbD4sXG4gICAgICAgIGlkUHJvcGVydHk/OiBrZXlvZiBUYWJsZU1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgVGFibGVNb2RlbFxuICAgICk6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGFibGVEZXNjcmlwdG9yRnJvbUNsYXNzQXR0cnNEZWYodHlwZSwgdW5kZWZpbmVkLCB7aWQ6IGlkUHJvcGVydHksIHRpdGxlOiB0aXRsZVByb3BlcnR5fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGRlc2NyaXB0b3IgYmFzZSBvbiBnaXZlbiBhdHRyaWJ1dGUgZGVmaW5pdGlvblxuICAgICAqIEBwYXJhbSB0eXBlIGNsYXNzIHR5cGVcbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyBhdHRyaWJ1dGVzIGZyb20gd2hpY2ggZGVzY3JpcHRvciBpcyBnZW5lcmF0ZWRcbiAgICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoQ3VzdG9tQXR0cnNEZWY8VGFibGVNb2RlbD4oXG4gICAgICAgIHR5cGU6IENsYXNzVHlwZTxUYWJsZU1vZGVsPixcbiAgICAgICAgYXR0cmlidXRlczogVGFibGVDbGFzc0F0dHJpYnV0ZURlZltdLFxuICAgICAgICBpZFByb3BlcnR5Pzoga2V5b2YgVGFibGVNb2RlbCxcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIFRhYmxlTW9kZWxcbiAgICApOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRhYmxlRGVzY3JpcHRvckZyb21DbGFzc0F0dHJzRGVmKHR5cGUsIGF0dHJpYnV0ZXMsIHtpZDogaWRQcm9wZXJ0eSwgdGl0bGU6IHRpdGxlUHJvcGVydHl9KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlRGVzY3JpcHRvclNvcnRzRmlsdGVyc0NyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+ID0ge1xuICAgIGZpbHRlcnNUeXBlPzogVHlwZURlc2NyaXB0b3I8RmlsdGVycz47XG4gICAgc29ydHNUeXBlPzogVHlwZURlc2NyaXB0b3I8U29ydHM+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4gPSBUYWJsZURlc2NyaXB0b3JTb3J0c0ZpbHRlcnNDcmVhdGVPcHRzVHlwZTxcbiAgICBUYWJsZU1vZGVsLFxuICAgIFNvcnRzLFxuICAgIEZpbHRlcnNcbj4gJlxuICAgIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8VGFibGVNb2RlbD47XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZURlc2NyaXB0b3I8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4oKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIG9wdHM6IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPlxuKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8VGFibGVNb2RlbD4sXG4gICAgb3B0cz86IFRhYmxlRGVzY3JpcHRvclNvcnRzRmlsdGVyc0NyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPlxuKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIHR5cGU6IFR5cGVEZXNjcmlwdG9yPFRhYmxlTW9kZWw+LFxuICAgIG9wdHM/OiBUYWJsZURlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz5cbik6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+O1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGVzY3JpcHRvcjxUYWJsZU1vZGVsLCBTb3J0cyA9IGtleW9mIFRhYmxlTW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZU1vZGVsPihcbiAgICB0eXBlT3JNb2RlbE9yQ2xhc3NPck9wdHM/OiBUeXBlRGVzY3JpcHRvcjxUYWJsZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxUYWJsZU1vZGVsPiB8IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWw+LFxuICAgIG9wdHM/OiBUYWJsZURlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz5cbikge1xuICAgIGlmICh0eXBlT3JNb2RlbE9yQ2xhc3NPck9wdHMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsPFRhYmxlTW9kZWw+KCkpO1xuICAgIH0gZWxzZSBpZiAodHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbDxUYWJsZU1vZGVsPigob3B0cyBhcyBUYWJsZURlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxUYWJsZU1vZGVsPiB8IHVuZGVmaW5lZCkgPz8ge30pKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPck1vZGVsT3JDbGFzc09yT3B0cyBpbnN0YW5jZW9mIE1vZGVsRGVzY3JpcHRvcikge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KHR5cGVPck1vZGVsT3JDbGFzc09yT3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBjb3VsZCBoYXZlIGF1dG9HZW5lcmF0ZWQgaWYgbW9kZWwgZGVzY3JpcHRvciBpcyBjbGFzc1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsPFRhYmxlTW9kZWw+KHR5cGVPck1vZGVsT3JDbGFzc09yT3B0cykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGVzY3JpcHRvckZyb21DbGFzczxUYWJsZU1vZGVsLCBTb3J0cyA9IGtleW9mIFRhYmxlTW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZU1vZGVsPihcbiAgICB0eXBlOiBDbGFzc1R5cGU8VGFibGVNb2RlbD4sXG4gICAgb3B0cz86IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWw+XG4pOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgcmV0dXJuIG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbDxUYWJsZU1vZGVsPih0eXBlIGFzIENsYXNzVHlwZTxUYWJsZU1vZGVsPiwgb3B0cykpO1xufVxuXG4vKipcbiAqIGdlbmVyYXRlcyBkZXNjcmlwdG9yIGJhc2VkIG9uIHR5cGUgYXR0cmlidXRlIGRlZmluaXRpb25cbiAqIEBwYXJhbSB0eXBlIGNsYXNzIHR5cGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0gb3B0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yRnJvbUNsYXNzQXR0cnNEZWY8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPFRhYmxlTW9kZWw+LFxuICAgIGF0dHJpYnV0ZXM/OiBUYWJsZUNsYXNzQXR0cmlidXRlRGVmW10sXG4gICAgb3B0cz86IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWw+XG4pOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPiB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbCh0eXBlLCBvcHRzKSwgdHJ1ZSk7XG4gICAgKGF0dHJpYnV0ZXMgPz8gZ2V0VGFibGVDbGFzc0F0dHJpYnV0ZURlZih0eXBlKSlcbiAgICAgICAgLmZpbHRlcihhdHRyID0+ICFhdHRyLnR5cGUuaW5jbHVkZXMoJ1NldCcpICYmICFhdHRyLnR5cGUuaW5jbHVkZXMoJ0FycmF5JykpXG4gICAgICAgIC5mb3JFYWNoKGF0dHIgPT4gdXBzZXJ0VGFibGVDb2x1bW5Gcm9tQXR0cmlidXRlRGVmKGRlc2NyaXB0b3IsIGF0dHIpKTtcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlRHluYW1pY0Rlc2NyaXB0b3IgZXh0ZW5kcyBUYWJsZUR5bmFtaWNEZXNjcmlwdG9ySW5zdCB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihNb2RlbERlc2NyaXB0b3IuY3JlYXRlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlKGlkUHJvcGVydHk/OiBzdHJpbmcsIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcsIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT4pOiBUYWJsZUR5bmFtaWNEZXNjcmlwdG9ySW5zdCB7XG4gICAgICAgIHJldHVybiB0YWJsZUR5bmFtaWNEZXNjcmlwdG9yKHtcbiAgICAgICAgICAgIGlkOiBpZFByb3BlcnR5LFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlUHJvcGVydHksXG4gICAgICAgICAgICBpMThuQmFzZTogaTE4bkJhc2VLZXlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWwobW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+KTogVGFibGVEeW5hbWljRGVzY3JpcHRvckluc3Qge1xuICAgICAgICByZXR1cm4gdGFibGVEeW5hbWljRGVzY3JpcHRvcihtb2RlbCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVEeW5hbWljRGVzY3JpcHRvcihtb2RlbE9yT3B0cz86IE1vZGVsRGVzY3JpcHRvcjxhbnk+IHwgVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8YW55Pik6IFRhYmxlRHluYW1pY0Rlc2NyaXB0b3JJbnN0IHtcbiAgICByZXR1cm4gbW9kZWxPck9wdHMgaW5zdGFuY2VvZiBNb2RlbERlc2NyaXB0b3JcbiAgICAgICAgPyBuZXcgVGFibGVEeW5hbWljRGVzY3JpcHRvckluc3QobW9kZWxPck9wdHMpXG4gICAgICAgIDogbmV3IFRhYmxlRHluYW1pY0Rlc2NyaXB0b3JJbnN0KG5ldyBNb2RlbERlc2NyaXB0b3I8YW55Pih1bmRlZmluZWQsIG1vZGVsT3JPcHRzPy5pZCBhcyBzdHJpbmcsIG1vZGVsT3JPcHRzPy50aXRsZSBhcyBzdHJpbmcsIG1vZGVsT3JPcHRzPy5pMThuQmFzZSBhcyBzdHJpbmcpKTtcbn1cbiJdfQ==
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGVzY3JpcHRvci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL3NyYy9kZXNjcmlwdG9ycy90YWJsZS1kZXNjcmlwdG9yLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBNkMsS0FBSyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFL0csT0FBTyxFQUFDLG1CQUFtQixFQUFFLDBCQUEwQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUF5Qm5GLE1BQU0sVUFBVSxlQUFlLENBQzNCLFdBQXFGO0FBQ3JGLDZEQUE2RDtBQUM3RCxJQUFnRTtJQUVoRSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksbUJBQW1CLENBQTZCLEtBQUssRUFBYyxDQUFDLENBQUM7SUFDcEYsQ0FBQztTQUFNLElBQUksV0FBVyxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxtQkFBbUIsQ0FBNkIsV0FBVyxDQUFDLENBQUM7SUFDNUUsQ0FBQztTQUFNLENBQUM7UUFDSiw2REFBNkQ7UUFDN0QsT0FBTyxJQUFJLG1CQUFtQixDQUE2QixLQUFLLENBQWEsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxXQUF1RTtJQUMxRyxPQUFPLFdBQVcsWUFBWSxlQUFlO1FBQ3pDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLFdBQVcsQ0FBQztRQUM3QyxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLGVBQWUsQ0FBTSxXQUFXLEVBQUUsRUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFlLEVBQUUsV0FBVyxFQUFFLFFBQWtCLENBQUMsQ0FBQyxDQUFDO0FBQzdKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGVsRGVzY3JpcHRvciwgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0cywgVHlwZURlc2NyaXB0b3IsIG1vZGVsfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtUYWJsZURlc2NyaXB0b3JJbnN0LCBUYWJsZUR5bmFtaWNEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi90YWJsZS5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgVGFibGVEZXNjcmlwdG9yU29ydHNGaWx0ZXJzQ3JlYXRlT3B0c1R5cGU8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4gPSB7XG4gICAgZmlsdGVyc1R5cGU/OiBUeXBlRGVzY3JpcHRvcjxGaWx0ZXJzPiB8IE1vZGVsRGVzY3JpcHRvcjxGaWx0ZXJzPjtcbiAgICBzb3J0c1R5cGU/OiBUeXBlRGVzY3JpcHRvcjxTb3J0cz4gfCBNb2RlbERlc2NyaXB0b3I8U29ydHM+O1xufTtcblxuZXhwb3J0IHR5cGUgVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4gPSBUYWJsZURlc2NyaXB0b3JTb3J0c0ZpbHRlcnNDcmVhdGVPcHRzVHlwZTxcbiAgICBUYWJsZU1vZGVsLFxuICAgIFNvcnRzLFxuICAgIEZpbHRlcnNcbj4gJlxuICAgIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8VGFibGVNb2RlbD47XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZURlc2NyaXB0b3I8VGFibGVNb2RlbCwgU29ydHMgPSBrZXlvZiBUYWJsZU1vZGVsLCBGaWx0ZXJzID0ga2V5b2YgVGFibGVNb2RlbD4oKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIG9wdHM6IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPlxuKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8VGFibGVNb2RlbD4sXG4gICAgb3B0cz86IFRhYmxlRGVzY3JpcHRvclNvcnRzRmlsdGVyc0NyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPlxuKTogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz47XG5leHBvcnQgZnVuY3Rpb24gdGFibGVEZXNjcmlwdG9yPFRhYmxlTW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGVNb2RlbCwgRmlsdGVycyA9IGtleW9mIFRhYmxlTW9kZWw+KFxuICAgIG9wdHM/OiBUYWJsZURlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxUYWJsZU1vZGVsLCBTb3J0cywgRmlsdGVycz5cbik6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+O1xuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGVzY3JpcHRvcjxUYWJsZU1vZGVsLCBTb3J0cyA9IGtleW9mIFRhYmxlTW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZU1vZGVsPihcbiAgICBtb2RlbE9yT3B0cz86IE1vZGVsRGVzY3JpcHRvcjxUYWJsZU1vZGVsPiB8IFRhYmxlRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPFRhYmxlTW9kZWw+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvcHRzPzogVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+XG4pIHtcbiAgICBpZiAobW9kZWxPck9wdHMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsPFRhYmxlTW9kZWw+KCkpO1xuICAgIH0gZWxzZSBpZiAobW9kZWxPck9wdHMgaW5zdGFuY2VvZiBNb2RlbERlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIFNvcnRzLCBGaWx0ZXJzPihtb2RlbE9yT3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBjb3VsZCBoYXZlIGF1dG9HZW5lcmF0ZWQgaWYgbW9kZWwgZGVzY3JpcHRvciBpcyBjbGFzc1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsPFRhYmxlTW9kZWw+KG1vZGVsT3JPcHRzKSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVEeW5hbWljRGVzY3JpcHRvcihtb2RlbE9yT3B0cz86IE1vZGVsRGVzY3JpcHRvcjxhbnk+IHwgVGFibGVEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8YW55Pik6IFRhYmxlRHluYW1pY0Rlc2NyaXB0b3JJbnN0IHtcbiAgICByZXR1cm4gbW9kZWxPck9wdHMgaW5zdGFuY2VvZiBNb2RlbERlc2NyaXB0b3JcbiAgICAgICAgPyBuZXcgVGFibGVEeW5hbWljRGVzY3JpcHRvckluc3QobW9kZWxPck9wdHMpXG4gICAgICAgIDogbmV3IFRhYmxlRHluYW1pY0Rlc2NyaXB0b3JJbnN0KG5ldyBNb2RlbERlc2NyaXB0b3I8YW55Pihtb2RlbE9yT3B0cz8uaWQgYXMgc3RyaW5nLCBtb2RlbE9yT3B0cz8udGl0bGUgYXMgc3RyaW5nLCBtb2RlbE9yT3B0cz8uaTE4bkJhc2UgYXMgc3RyaW5nKSk7XG59XG4iXX0=
|