@pepperi-addons/ngx-lib 0.4.2-beta.31 → 0.4.2-beta.310
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/README.md +35 -0
- package/address/address.component.d.ts +9 -2
- package/attachment/attachment.component.d.ts +3 -1
- package/carousel/carousel.component.d.ts +3 -2
- package/checkbox/checkbox.component.d.ts +8 -1
- package/chips/chips.component.d.ts +4 -7
- package/chips/chips.service.d.ts +0 -3
- package/core/common/directives/base-destroyer.directive.d.ts +10 -0
- package/core/common/directives/public-api.d.ts +1 -0
- package/core/common/pipes/common-pipes.d.ts +5 -2
- package/core/common/services/addon.service.d.ts +6 -4
- package/core/common/services/file.service.d.ts +7 -2
- package/core/common/services/session.service.d.ts +2 -0
- package/core/common/services/utilities.service.d.ts +4 -4
- package/core/customization/customization.model.d.ts +4 -1
- package/core/customization/customization.service.d.ts +4 -0
- package/date/date.component.d.ts +4 -2
- package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
- package/draggable-items/draggable-items.component.d.ts +3 -6
- package/draggable-items/draggable-items.module.d.ts +4 -3
- package/elements/README.md +256 -0
- package/esm2020/address/address.component.mjs +93 -5
- package/esm2020/assets/i18n/ar.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/de.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/en.ngx-lib.json +186 -0
- package/esm2020/assets/i18n/es.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/fr.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/he.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/hu.ngx-lib.json +79 -0
- package/esm2020/assets/i18n/it.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/ja.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/nl.ngx-lib.json +79 -0
- package/esm2020/assets/i18n/pl.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/pt.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/ru.ngx-lib.json +79 -0
- package/esm2020/assets/i18n/sr.ngx-lib.json +180 -0
- package/esm2020/assets/i18n/zh.ngx-lib.json +180 -0
- package/esm2020/attachment/attachment.component.mjs +16 -6
- package/esm2020/carousel/carousel.component.mjs +14 -4
- package/esm2020/checkbox/checkbox.component.mjs +37 -3
- package/esm2020/chips/chips.component.mjs +11 -16
- package/esm2020/chips/chips.service.mjs +2 -11
- package/esm2020/color/color-picker.component.mjs +3 -3
- package/esm2020/color/color.component.mjs +3 -3
- package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
- package/esm2020/core/common/directives/public-api.mjs +2 -1
- package/esm2020/core/common/pipes/common-pipes.mjs +18 -8
- package/esm2020/core/common/services/addon.service.mjs +31 -7
- package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
- package/esm2020/core/common/services/file.service.mjs +57 -20
- package/esm2020/core/common/services/session.service.mjs +5 -1
- package/esm2020/core/common/services/utilities.service.mjs +7 -7
- package/esm2020/core/customization/customization.model.mjs +46 -10
- package/esm2020/core/customization/customization.service.mjs +29 -1
- package/esm2020/core/http/services/http.service.mjs +17 -8
- package/esm2020/core/http/services/loader.service.mjs +3 -3
- package/esm2020/date/date.component.mjs +35 -13
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +44 -4
- package/esm2020/draggable-items/draggable-items.component.mjs +7 -15
- package/esm2020/draggable-items/draggable-items.module.mjs +5 -1
- package/esm2020/field-title/field-title.component.mjs +6 -3
- package/esm2020/files-uploader/files-uploader.component.mjs +23 -32
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +7 -4
- package/esm2020/form/internal-button.component.mjs +2 -2
- package/esm2020/form/internal-carusel.component.mjs +10 -6
- package/esm2020/form/internal-field-generator.component.mjs +3 -3
- package/esm2020/form/internal-form.component.mjs +5 -3
- package/esm2020/form/internal-list.component.mjs +2 -2
- package/esm2020/form/internal-menu.component.mjs +4 -6
- package/esm2020/form/internal-page.component.mjs +3 -4
- package/esm2020/group-buttons/group-buttons.component.mjs +2 -2
- package/esm2020/icon/icon.component.mjs +36 -6
- package/esm2020/icon/icon.service.mjs +5 -1
- package/esm2020/image/image.component.mjs +15 -3
- package/esm2020/image/image.service.mjs +2 -4
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +99 -25
- package/esm2020/json-editor/json-editor.component.mjs +288 -0
- package/esm2020/json-editor/json-editor.module.mjs +83 -0
- package/esm2020/json-editor/json-tree-node.component.mjs +32 -0
- package/esm2020/json-editor/pepperi-addons-ngx-lib-json-editor.mjs +5 -0
- package/esm2020/json-editor/public-api.mjs +6 -0
- package/esm2020/lib/i18n/embedded-i18n.mjs +33 -0
- package/esm2020/link/link.component.mjs +25 -4
- package/esm2020/list/list-actions.component.mjs +1 -1
- package/esm2020/list/list-chooser.component.mjs +1 -1
- package/esm2020/list/list-pager.component.mjs +1 -1
- package/esm2020/list/list-sorting.component.mjs +1 -1
- package/esm2020/list/list-total.component.mjs +6 -3
- package/esm2020/list/list-views.component.mjs +1 -1
- package/esm2020/list/list.component.mjs +230 -37
- package/esm2020/list/list.model.mjs +1 -1
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +6 -3
- package/esm2020/menu/menu.model.mjs +2 -1
- package/esm2020/page-layout/page-layout.component.mjs +28 -7
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
- package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +67 -33
- package/esm2020/query-builder/common/model/legacy.mjs +1 -1
- package/esm2020/query-builder/common/model/operator.mjs +73 -63
- package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
- package/esm2020/query-builder/common/services/query-structure.service.mjs +34 -2
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +14 -12
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
- package/esm2020/query-builder/query-builder.module.mjs +14 -3
- package/esm2020/query-builder/query-builder.service.mjs +2 -2
- package/esm2020/remote-loader/addon-block-loader.component.mjs +26 -16
- package/esm2020/remote-loader/addon-block-loader.service.mjs +5 -2
- package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -27
- package/esm2020/remote-loader/remote-loader.component.mjs +1 -3
- package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
- package/esm2020/remote-loader/remote-loader.service.mjs +49 -26
- package/esm2020/reset-configuration-field/pepperi-addons-ngx-lib-reset-configuration-field.mjs +5 -0
- package/esm2020/reset-configuration-field/public-api.mjs +3 -0
- package/esm2020/reset-configuration-field/reset-configuration-field.component.mjs +55 -0
- package/esm2020/reset-configuration-field/reset-configuration-field.module.mjs +36 -0
- package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +19 -3
- package/esm2020/search/search.component.mjs +43 -16
- package/esm2020/select/select.component.mjs +124 -53
- package/esm2020/select-panel/select-panel.component.mjs +4 -6
- package/esm2020/side-bar/side-bar.component.mjs +18 -4
- package/esm2020/signature/public-api.mjs +2 -1
- package/esm2020/signature/signature-dialog.component.mjs +79 -0
- package/esm2020/signature/signature.component.mjs +84 -68
- package/esm2020/signature/signature.module.mjs +6 -5
- package/esm2020/size-detector/size-detector.component.mjs +16 -6
- package/esm2020/skeleton-loader/public-api.mjs +2 -2
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +33 -9
- package/esm2020/slider/slider.component.mjs +2 -2
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
- package/esm2020/smart-filters/common/model/base-filter-component.mjs +5 -11
- package/esm2020/smart-filters/common/model/operator.mjs +15 -6
- package/esm2020/smart-filters/common/model/type.mjs +1 -1
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
- package/esm2020/smart-filters/smart-filters.component.mjs +2 -2
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +27 -7
- package/esm2020/snack-bar/snack-bar.component.mjs +19 -4
- package/esm2020/textarea/textarea.component.mjs +12 -3
- package/esm2020/textbox/textbox-validation.directive.mjs +2 -4
- package/esm2020/textbox/textbox.component.mjs +85 -10
- package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
- package/esm2020/top-bar/top-bar.component.mjs +26 -15
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +92 -5
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +15 -5
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +13 -3
- package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +37 -2
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +11 -25
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs +35 -12
- package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
- package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -25
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +40 -5
- package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +15 -5
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +101 -24
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs +407 -0
- package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +24 -3
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +241 -43
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +66 -31
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +140 -81
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +169 -83
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
- package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs +45 -15
- package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +123 -51
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +173 -81
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +18 -3
- package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +11 -2
- package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +87 -12
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +26 -15
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +3420 -577
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +92 -5
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +15 -5
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +13 -3
- package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +36 -2
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +11 -25
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs +34 -12
- package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
- package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -25
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +39 -5
- package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +15 -5
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +98 -24
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs +403 -0
- package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +24 -3
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +238 -42
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
- package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +65 -31
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +136 -80
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +157 -69
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
- package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs +42 -15
- package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +122 -51
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
- package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +169 -81
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
- package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +18 -3
- package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +11 -2
- package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +85 -12
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +25 -14
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +3416 -574
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/field-title/field-title.component.d.ts +2 -1
- package/files-uploader/files-uploader.component.d.ts +4 -2
- package/form/internal-carusel.component.d.ts +1 -0
- package/form/internal-menu.component.d.ts +1 -2
- package/icon/icon.component.d.ts +4 -0
- package/image/image.component.d.ts +3 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +24 -8
- package/json-editor/index.d.ts +5 -0
- package/json-editor/json-editor.component.d.ts +75 -0
- package/json-editor/json-editor.component.theme.scss +5 -0
- package/json-editor/json-editor.module.d.ts +24 -0
- package/json-editor/json-tree-node.component.d.ts +18 -0
- package/json-editor/public-api.d.ts +2 -0
- package/lib/i18n/embedded-i18n.d.ts +1 -0
- package/link/link.component.d.ts +7 -2
- package/list/list-total.component.d.ts +2 -1
- package/list/list.component.d.ts +21 -5
- package/list/list.model.d.ts +2 -1
- package/menu/menu.component.d.ts +2 -1
- package/menu/menu.model.d.ts +1 -0
- package/package.json +18 -2
- package/page-layout/page-layout.component.d.ts +8 -2
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
- package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
- package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
- package/public-api.d.ts +1 -0
- package/quantity-selector/quantity-selector.component.d.ts +9 -9
- package/query-builder/common/model/legacy.d.ts +2 -0
- package/query-builder/common/model/operator.d.ts +11 -1
- package/query-builder/common/services/query-structure.service.d.ts +1 -0
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +3 -1
- package/query-builder/query-builder.module.d.ts +7 -3
- package/remote-loader/addon-block-loader.component.d.ts +4 -2
- package/remote-loader/remote-loader-element.component.d.ts +8 -1
- package/remote-loader/remote-loader.model.d.ts +1 -0
- package/remote-loader/remote-loader.service.d.ts +3 -1
- package/reset-configuration-field/index.d.ts +5 -0
- package/reset-configuration-field/public-api.d.ts +2 -0
- package/reset-configuration-field/reset-configuration-field.component.d.ts +23 -0
- package/reset-configuration-field/reset-configuration-field.module.d.ts +12 -0
- package/rich-html-textarea/rich-html-textarea.component.d.ts +4 -1
- package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
- package/search/search.component.d.ts +9 -3
- package/select/select.component.d.ts +18 -2
- package/select-panel/select-panel.component.d.ts +1 -2
- package/side-bar/side-bar.component.d.ts +4 -1
- package/signature/public-api.d.ts +1 -0
- package/signature/signature-dialog.component.d.ts +29 -0
- package/signature/signature.component.d.ts +3 -13
- package/signature/signature.module.d.ts +16 -15
- package/size-detector/size-detector.component.d.ts +6 -3
- package/skeleton-loader/skeleton-loader.component.d.ts +15 -7
- package/slider/slider.component.theme.scss +4 -0
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -0
- package/smart-filters/common/model/base-filter-component.d.ts +2 -4
- package/smart-filters/common/model/operator.d.ts +3 -0
- package/smart-filters/common/model/type.d.ts +1 -1
- package/smart-filters/date-filter/date-filter.component.d.ts +3 -0
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -0
- package/smart-filters/number-filter/number-filter.component.d.ts +3 -0
- package/smart-filters/text-filter/text-filter.component.d.ts +4 -0
- package/snack-bar/snack-bar.component.d.ts +9 -4
- package/src/assets/i18n/ar.ngx-lib.json +180 -0
- package/src/assets/i18n/de.ngx-lib.json +106 -4
- package/src/assets/i18n/en.ngx-lib.json +14 -3
- package/src/assets/i18n/es.ngx-lib.json +113 -11
- package/src/assets/i18n/fr.ngx-lib.json +105 -4
- package/src/assets/i18n/he.ngx-lib.json +105 -4
- package/src/assets/i18n/it.ngx-lib.json +114 -13
- package/src/assets/i18n/ja.ngx-lib.json +105 -4
- package/src/assets/i18n/pl.ngx-lib.json +105 -4
- package/src/assets/i18n/pt.ngx-lib.json +105 -4
- package/src/assets/i18n/sr.ngx-lib.json +180 -0
- package/src/assets/i18n/zh.ngx-lib.json +105 -2
- package/src/core/style/abstracts/mixins.scss +135 -26
- package/src/core/style/abstracts/variables.scss +10 -1
- package/src/core/style/base/Spacing.stories.mdx +22 -22
- package/src/core/style/base/base.scss +16 -14
- package/src/core/style/base/typography.scss +2 -1
- package/src/core/style/components/button.scss +11 -0
- package/src/core/style/components/checkbox.scss +13 -63
- package/src/core/style/components/file.scss +4 -4
- package/src/core/style/components/general.scss +27 -9
- package/src/core/style/components/textarea.scss +13 -0
- package/textarea/textarea.component.d.ts +2 -1
- package/textbox/textbox.component.d.ts +10 -3
- package/theming.scss +5 -1
- package/top-bar/top-bar.component.d.ts +2 -0
- package/src/assets/images/sail-away.jpg +0 -0
- package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Injectable, Optional } from '@angular/core';
|
|
2
2
|
import { createCustomElement } from '@angular/elements';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
|
-
import { connectRouter } from '@angular-architects/module-federation-tools';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
import * as i1 from "./session.service";
|
|
7
6
|
import * as i2 from "../../http/services/http.service";
|
|
@@ -13,12 +12,13 @@ import * as i6 from "@angular/router";
|
|
|
13
12
|
This service is the webapp api for addon usege.
|
|
14
13
|
*/
|
|
15
14
|
export class PepAddonService {
|
|
16
|
-
constructor(sessionService, httpService, loaderService, translateService, fileService, route) {
|
|
15
|
+
constructor(sessionService, httpService, loaderService, translateService, fileService, router, route) {
|
|
17
16
|
this.sessionService = sessionService;
|
|
18
17
|
this.httpService = httpService;
|
|
19
18
|
this.loaderService = loaderService;
|
|
20
19
|
this.translateService = translateService;
|
|
21
20
|
this.fileService = fileService;
|
|
21
|
+
this.router = router;
|
|
22
22
|
this.route = route;
|
|
23
23
|
this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
|
|
24
24
|
// private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
|
|
@@ -168,10 +168,32 @@ export class PepAddonService {
|
|
|
168
168
|
// Fix internal routing bug.
|
|
169
169
|
connectInternalRouter(elementName) {
|
|
170
170
|
const customElementObject = PepAddonService._customElementsMap.get(elementName);
|
|
171
|
-
|
|
171
|
+
let router = customElementObject?.injector.get(Router);
|
|
172
|
+
// This cause a refresh (everithing is loading twice) when reloading the page...
|
|
173
|
+
// But if we remove this the first navigation is clear all history cause the router is not connected.
|
|
174
|
+
if (!router) {
|
|
175
|
+
router = this.router;
|
|
176
|
+
}
|
|
172
177
|
if (router) {
|
|
173
178
|
const useHash = location.href.includes('#');
|
|
174
|
-
connectRouter(router, useHash);
|
|
179
|
+
this.connectRouter(router, useHash);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
connectRouter(router, useHash = false) {
|
|
183
|
+
let url;
|
|
184
|
+
if (!useHash) {
|
|
185
|
+
url = `${location.pathname.substr(1)}${location.search}`;
|
|
186
|
+
router.navigateByUrl(url);
|
|
187
|
+
window.addEventListener('popstate', () => {
|
|
188
|
+
router.navigateByUrl(url);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
url = `${location.hash.substr(1)}${location.search}`;
|
|
193
|
+
router.navigateByUrl(url);
|
|
194
|
+
window.addEventListener('hashchange', () => {
|
|
195
|
+
router.navigateByUrl(url);
|
|
196
|
+
});
|
|
175
197
|
}
|
|
176
198
|
}
|
|
177
199
|
static createMultiTranslateLoader(addonUUID, addonService, libsName = ['ngx-lib']) {
|
|
@@ -190,14 +212,16 @@ export class PepAddonService {
|
|
|
190
212
|
}
|
|
191
213
|
}
|
|
192
214
|
PepAddonService._customElementsMap = new Map();
|
|
193
|
-
PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
215
|
+
PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.Router, optional: true }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
194
216
|
PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, providedIn: 'root' });
|
|
195
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, decorators: [{
|
|
196
218
|
type: Injectable,
|
|
197
219
|
args: [{
|
|
198
220
|
providedIn: 'root',
|
|
199
221
|
}]
|
|
200
|
-
}], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.
|
|
222
|
+
}], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.Router, decorators: [{
|
|
223
|
+
type: Optional
|
|
224
|
+
}] }, { type: i6.ActivatedRoute, decorators: [{
|
|
201
225
|
type: Optional
|
|
202
226
|
}] }]; } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7O0FBRTVFOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFheEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkIsRUFDZCxLQUFxQjtRQUxqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBbEI1QixxQkFBZ0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUMzRSw4REFBOEQ7UUFDN0Msc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFnQnJGLEVBQUU7SUFDTixDQUFDO0lBYkQsSUFBWSxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM5RixDQUFDO0lBYU8sd0JBQXdCLENBQUMsT0FBTyxHQUFHLEtBQUs7UUFDNUMsT0FBTyxPQUFPO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkI7WUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsU0FBaUI7UUFDbEMsOEJBQThCO1FBQzFCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDL0YsT0FBTyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RixXQUFXO1FBQ1AsMEVBQTBFO1FBQzlFLElBQUk7SUFDUixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBWSxFQUFFLFNBQWlCO1FBQ2hELDhCQUE4QjtRQUMxQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDNUYsV0FBVztRQUNYLDhFQUE4RTtRQUM5RSxJQUFJO0lBQ1IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsUUFBUSxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLGFBQWEsR0FBRyxJQUFJO1FBQ3BGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFNUQseUNBQXlDO1FBQ3pDLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNmLE9BQU8sb0JBQW9CLGFBQWEsR0FBRyxTQUFTLEVBQUUsQ0FBQztTQUMxRDthQUFNO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyRCxPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7U0FDekY7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUNYLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLE9BQU8sR0FBRyxLQUFLO1FBRWYsMENBQTBDO1FBQzFDLHdDQUF3QztRQUN4QyxrQkFBa0I7UUFDbEIsb0RBQW9EO1FBQ3BELGtCQUFrQjtRQUNsQixLQUFLO1FBRUwsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLFdBQVcsSUFBSSxZQUFZLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsZ0JBQWdCLENBQ1osU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsSUFBSSxHQUFHLEVBQUUsRUFDVCxXQUFXLEdBQUcsRUFBRSxFQUNoQixPQUFPLEdBQUcsS0FBSztRQUVmLDJDQUEyQztRQUMzQyx3Q0FBd0M7UUFDeEMsa0JBQWtCO1FBQ2xCLG9EQUFvRDtRQUNwRCxZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLEtBQUs7UUFFTCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxJQUFJLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDakIsU0FBaUIsRUFDakIsR0FBVztRQUVYLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDekMsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLEdBQUc7U0FDbkIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUMvQjthQUNJO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDN0I7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUNsQixTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBUztRQUVULE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDekMsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLEdBQUc7WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQTtRQUVGLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDL0I7YUFDSTtZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQzdCO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFNBQWM7UUFDdEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRTtnQkFDL0MsTUFBTSxFQUFFO29CQUNKLFFBQVE7b0JBQ1IsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFVBQVUsRUFBRSxPQUFPO2lCQUN0QjthQUNKLENBQUMsQ0FBQyxDQUFBO1FBQ1AsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELEtBQUssQ0FBQyxLQUFrQixFQUFFLElBQWtCO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsU0FBaUIsRUFBRSxPQUFPLEdBQUcsU0FBUztRQUMvRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEcsTUFBTSxrQkFBa0IsR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpGLE9BQU87WUFDSCxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxrQkFBa0I7U0FDN0IsQ0FBQztJQUNOLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxTQUFpQjtRQUN6QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQztRQUV4QyxPQUFPO1lBQ0gsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsRUFBRTtZQUN6RyxNQUFNLEVBQUUsT0FBTztTQUNsQixDQUFDO0lBQ04sQ0FBQztJQUVELHVCQUF1QixDQUFDLFNBQTJCLEVBQUUsWUFBWSxHQUFHLFVBQVU7UUFDMUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQTJFO1FBQzFGLE1BQU0sU0FBUyxHQUFHO1lBQ2QsTUFBTSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsV0FBbUIsRUFBRSxTQUFvQixFQUFFLFFBQWtCO1FBQzdFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2xDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekYsNEVBQTRFO1lBQzVFLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLHFCQUFxQixDQUFDLFdBQW1CO1FBQ3JDLE1BQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXpELElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsMEJBQTBCLENBQ3BDLFNBQWlCLEVBQ2pCLFlBQTZCLEVBQzdCLFFBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUV0QixNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUV0QyxJQUFJLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNsRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDbEc7U0FDSjtRQUVELE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJGLE9BQU8sWUFBWSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDO1lBQzVELEdBQUcsMEJBQTBCO1lBQzdCLHdCQUF3QjtTQUMzQixDQUFDLENBQUM7SUFDUCxDQUFDOztBQXBPYyxrQ0FBa0IsR0FBcUIsSUFBSSxHQUFHLEVBQUcsQ0FBQTs0R0FQdkQsZUFBZTtnSEFBZixlQUFlLGNBRlosTUFBTTsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBb0JRLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJVHJhbnNsYXRpb25SZXNvdXJjZSB9IGZyb20gJ25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgUGVwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24tdG9vbHMnO1xuXG4vKlxuICAgIFRoaXMgc2VydmljZSBpcyB0aGUgd2ViYXBwIGFwaSBmb3IgYWRkb24gdXNlZ2UuXG4qL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQWRkb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBR0VTX0FERE9OX1VVSUQgPSAnNTAwNjJlMGMtOTk2Ny00ZWQ0LTkxMDItZjJiYzUwNjAyZDQxJztcbiAgICAvLyBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbkFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uc0RpY3Rpb25hcnlBc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9SRUxBVElWRV9QQVRIID0gJy9hZGRvbnMvYXBpJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIID0gYCR7dGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSH0vYXN5bmNgO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2N1c3RvbUVsZW1lbnRzTWFwOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHJpdmF0ZSBnZXQgZGV2U2VydmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZSA/IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RldlNlcnZlcicpID09PSAndHJ1ZScgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNBc3luY1xuICAgICAgICAgICAgPyB0aGlzLkFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIXG4gICAgICAgICAgICA6IHRoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEg7XG4gICAgfVxuXG4gICAgZ2V0QWRkb25TdGF0aWNGb2xkZXIoYWRkb25VVUlEOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBpZiAoYWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSk7XG4gICAgICAgICAgICByZXR1cm4gYWRkb25zRGljdGlvbmFyeSAmJiBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gPyBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gOiAnJztcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSkgfHwgJyc7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzZXRBZGRvblN0YXRpY0ZvbGRlcihwYXRoOiBzdHJpbmcsIGFkZG9uVVVJRDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIChhZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKSA/PyB7fTtcbiAgICAgICAgICAgIGFkZG9uc0RpY3Rpb25hcnlbYWRkb25VVUlEXSA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSwgYWRkb25zRGljdGlvbmFyeSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVksIHBhdGgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQ6IHN0cmluZywgZmlsZU5hbWUgPSAnJywgaXNBc3luYyA9IGZhbHNlLCBsb2NhbGhvc3RQb3J0ID0gNDUwMCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVUb0FkZCA9IGZpbGVOYW1lLmxlbmd0aCA+IDAgPyBgLyR7ZmlsZU5hbWV9YCA6ICcnO1xuICAgICAgICBcbiAgICAgICAgLy8gRm9yIGRldlNlcnZlciBydW4gc2VydmVyIG9uIGxvY2FsaG9zdC5cbiAgICAgICAgaWYodGhpcy5kZXZTZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cDovL2xvY2FsaG9zdDoke2xvY2FsaG9zdFBvcnR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFBhcGlCYXNlVXJsKCk7XG4gICAgICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0ke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmMpfS8ke2FkZG9uVVVJRH0ke2ZpbGVUb0FkZH1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0vJHtmdW5jdGlvbk5hbWV9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgYm9keSA9IHt9LFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0UGFwaUFwaUNhbGwoXG4gICAgICAgIC8vICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgLy8gICAgICAgICBpc0FzeW5jXG4gICAgICAgIC8vICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgLy8gICAgIGJvZHksXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRBZGRvbkNQSUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICB1cmw6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmVtaXRFdmVudChcIkFkZG9uQVBJXCIsIHtcbiAgICAgICAgICAgIEFkZG9uVVVJRDogYWRkb25VVUlELFxuICAgICAgICAgICAgUmVsYXRpdmVVUkw6IHVybCxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocmVzLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwb3N0QWRkb25DUElDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueVxuICAgICkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmVtaXRFdmVudChcIkFkZG9uQVBJXCIsIHtcbiAgICAgICAgICAgIEFkZG9uVVVJRDogYWRkb25VVUlELFxuICAgICAgICAgICAgUmVsYXRpdmVVUkw6IHVybCxcbiAgICAgICAgICAgIE1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgQm9keTogYm9keVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyZXMuU3VjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzLlZhbHVlKVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgIGVtaXRFdmVudChldmVudEtleTogc3RyaW5nLCBldmVudERhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZW1pdC1ldmVudCcsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRLZXksXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RGF0YTogZXZlbnREYXRhLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uOiByZXNvbHZlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gVE9ETzogbmVlZCB0byBjaGVrIHRoaXMgaWYgdGhlIGxvYWRlciBpcyB3b3JraW5nLlxuICAgIGZldGNoKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdD86IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc2hvdygpO1xuXG4gICAgICAgIHJldHVybiB3aW5kb3cuZmV0Y2goaW5wdXQsIGluaXQpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQ6IHN0cmluZywgbGliTmFtZSA9ICduZ3gtbGliJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1BhdGg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhZGRvblN0YXRpY0ZvbGRlciwgbGliTmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1N1ZmZpeDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNTdWZmaXgobGliTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogdHJhbnNsYXRpb25zUGF0aCxcbiAgICAgICAgICAgIHN1ZmZpeDogdHJhbnNsYXRpb25zU3VmZml4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQ6IHN0cmluZyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdWJGb2xkZXIgPSAnYXNzZXRzL2kxOG4vJztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiBhZGRvblN0YXRpY0ZvbGRlci5sZW5ndGggPiAwID8gYCR7YWRkb25TdGF0aWNGb2xkZXJ9JHtkZWZhdWx0U3ViRm9sZGVyfWAgOiBgLyR7ZGVmYXVsdFN1YkZvbGRlcn1gLFxuICAgICAgICAgICAgc3VmZml4OiAnLmpzb24nLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdXJsTGFuZ1BhcmFtID0gJ3VzZXJMYW5nJykge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlLCB1cmxMYW5nUGFyYW0pO1xuICAgIH1cblxuICAgIGdldFBhZ2VzQWRkb25VVUlEKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5QQUdFU19BRERPTl9VVUlEO1xuICAgIH1cblxuICAgIHNldFNoZWxsUm91dGVyRGF0YShkYXRhOiB7IGFkZFBhZGRpbmc/OiBib29sZWFuLCBzaG93U2lkZWJhcj86IGJvb2xlYW4sIHNob3dIZWFkZXI/OiBib29sZWFuIH0pIHtcbiAgICAgICAgY29uc3QgZXZlbnREYXRhID0ge1xuICAgICAgICAgICAgZGV0YWlsOiBkYXRhLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdzZXQtcm91dGVyLWRhdGEnLCBldmVudERhdGEpO1xuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudCk7XG4gICAgfVxuXG4gICAgZGVmaW5lQ3VzdG9tRWxlbWVudChlbGVtZW50TmFtZTogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55PiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIGlmICghY3VzdG9tRWxlbWVudHMuZ2V0KGVsZW1lbnROYW1lKSkgeyAgXG4gICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoZWxlbWVudE5hbWUsIGNyZWF0ZUN1c3RvbUVsZW1lbnQoY29tcG9uZW50LCB7aW5qZWN0b3I6IGluamVjdG9yfSkpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGVsZW1lbnROYW1lIGluIHRoZSBfY3VzdG9tRWxlbWVudHNNYXAgKEZpeCBpbnRlcm5hbCByb3V0aW5nIGJ1ZykuXG4gICAgICAgICAgICBQZXBBZGRvblNlcnZpY2UuX2N1c3RvbUVsZW1lbnRzTWFwLnNldChlbGVtZW50TmFtZSwge2luamVjdG9yOiBpbmplY3Rvcn0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRml4IGludGVybmFsIHJvdXRpbmcgYnVnLlxuICAgIGNvbm5lY3RJbnRlcm5hbFJvdXRlcihlbGVtZW50TmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUVsZW1lbnRPYmplY3QgPSBQZXBBZGRvblNlcnZpY2UuX2N1c3RvbUVsZW1lbnRzTWFwLmdldChlbGVtZW50TmFtZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGN1c3RvbUVsZW1lbnRPYmplY3Q/LmluamVjdG9yLmdldChSb3V0ZXIpO1xuXG4gICAgICAgIGlmIChyb3V0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZUhhc2ggPSBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcjJyk7XG4gICAgICAgICAgICBjb25uZWN0Um91dGVyKHJvdXRlciwgdXNlSGFzaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgYWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIGxpYnNOYW1lID0gWyduZ3gtbGliJ10sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzID0gW107XG5cbiAgICAgICAgaWYgKGxpYnNOYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlic05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGliTmFtZSA9IGxpYnNOYW1lW2luZGV4XTtcbiAgICAgICAgICAgICAgICBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcy5wdXNoKGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCwgbGliTmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWRkb25UcmFuc2xhdGlvblJlc291cmNlID0gYWRkb25TZXJ2aWNlLmdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQpO1xuXG4gICAgICAgIHJldHVybiBhZGRvblNlcnZpY2UudHJhbnNsYXRlU2VydmljZS5jcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihbXG4gICAgICAgICAgICAuLi5uZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcyxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFZekQ7O0VBRUU7QUFJRixNQUFNLE9BQU8sZUFBZTtJQWF4QixZQUNZLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLGFBQStCLEVBQ2hDLGdCQUFxQyxFQUNyQyxXQUEyQixFQUNkLE1BQWMsRUFDZCxLQUFxQjtRQU5qQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQW5CNUIscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFDM0UsOERBQThEO1FBQzdDLHNDQUFpQyxHQUFHLDRCQUE0QixDQUFDO1FBQ2pFLDRCQUF1QixHQUFHLGFBQWEsQ0FBQztRQUN4QyxrQ0FBNkIsR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsUUFBUSxDQUFDO1FBaUJyRixFQUFFO0lBQ04sQ0FBQztJQWRELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxH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QywwQkFBMEIsQ0FDcEMsU0FBaUIsRUFDakIsWUFBNkIsRUFDN0IsUUFBUSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBRXRCLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNsRztTQUNKO1FBRUQsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckYsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUM7WUFDNUQsR0FBRywwQkFBMEI7WUFDN0Isd0JBQXdCO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBN1BjLGtDQUFrQixHQUFxQixJQUFJLEdBQUcsRUFBRyxDQUFBOzRHQVB2RCxlQUFlO2dIQUFmLGVBQWUsY0FGWixNQUFNOzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFvQlEsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGVwU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXBGaWxlU2VydmljZSB9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElUcmFuc2xhdGlvblJlc291cmNlIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tdWx0aS1odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBQZXBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBjb25uZWN0Um91dGVyIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbi10b29scyc7XG5cbi8qXG4gICAgVGhpcyBzZXJ2aWNlIGlzIHRoZSB3ZWJhcHAgYXBpIGZvciBhZGRvbiB1c2VnZS5cbiovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBBZGRvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUEFHRVNfQURET05fVVVJRCA9ICc1MDA2MmUwYy05OTY3LTRlZDQtOTEwMi1mMmJjNTA2MDJkNDEnO1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uQXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25zRGljdGlvbmFyeUFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX1JFTEFUSVZFX1BBVEggPSAnL2FkZG9ucy9hcGknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX0FTWU5DX1JFTEFUSVZFX1BBVEggPSBgJHt0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIfS9hc3luY2A7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfY3VzdG9tRWxlbWVudHNNYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgZ2V0IGRldlNlcnZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGUgPyB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdkZXZTZXJ2ZXInKSA9PT0gJ3RydWUnIDogZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogUGVwVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoaXNBc3luYyA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGlzQXN5bmNcbiAgICAgICAgICAgID8gdGhpcy5BRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSFxuICAgICAgICAgICAgOiB0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIO1xuICAgIH1cblxuICAgIGdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gaWYgKGFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpO1xuICAgICAgICAgICAgcmV0dXJuIGFkZG9uc0RpY3Rpb25hcnkgJiYgYWRkb25zRGljdGlvbmFyeVthZGRvblVVSURdID8gYWRkb25zRGljdGlvbmFyeVthZGRvblVVSURdIDogJyc7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVkpIHx8ICcnO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgc2V0QWRkb25TdGF0aWNGb2xkZXIocGF0aDogc3RyaW5nLCBhZGRvblVVSUQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBpZiAoYWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSkgPz8ge307XG4gICAgICAgICAgICBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gPSBwYXRoO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVksIGFkZG9uc0RpY3Rpb25hcnkpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZLCBwYXRoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlEOiBzdHJpbmcsIGZpbGVOYW1lID0gJycsIGlzQXN5bmMgPSBmYWxzZSwgbG9jYWxob3N0UG9ydCA9IDQ1MDApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlVG9BZGQgPSBmaWxlTmFtZS5sZW5ndGggPiAwID8gYC8ke2ZpbGVOYW1lfWAgOiAnJztcbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBkZXZTZXJ2ZXIgcnVuIHNlcnZlciBvbiBsb2NhbGhvc3QuXG4gICAgICAgIGlmKHRoaXMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtsb2NhbGhvc3RQb3J0fSR7ZmlsZVRvQWRkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9JHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jKX0vJHthZGRvblVVSUR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRQYXBpQXBpQ2FsbChcbiAgICAgICAgLy8gICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAvLyAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgLy8gICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGJvZHkgPSB7fSxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBib2R5LFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdEh0dHBDYWxsKGAke3BhcGlCYXNlVXJsfS8ke2Z1bmN0aW9uTmFtZX1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QWRkb25DUElDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5lbWl0RXZlbnQoXCJBZGRvbkFQSVwiLCB7XG4gICAgICAgICAgICBBZGRvblVVSUQ6IGFkZG9uVVVJRCxcbiAgICAgICAgICAgIFJlbGF0aXZlVVJMOiB1cmwsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJlcy5TdWNjZXNzKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzLlZhbHVlKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcG9zdEFkZG9uQ1BJQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBib2R5OiBhbnlcbiAgICApIHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5lbWl0RXZlbnQoXCJBZGRvbkFQSVwiLCB7XG4gICAgICAgICAgICBBZGRvblVVSUQ6IGFkZG9uVVVJRCxcbiAgICAgICAgICAgIFJlbGF0aXZlVVJMOiB1cmwsXG4gICAgICAgICAgICBNZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIEJvZHk6IGJvZHlcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocmVzLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICB9ICAgXG5cbiAgICBlbWl0RXZlbnQoZXZlbnRLZXk6IHN0cmluZywgZXZlbnREYXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2VtaXQtZXZlbnQnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50S2V5LFxuICAgICAgICAgICAgICAgICAgICBldmVudERhdGE6IGV2ZW50RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbjogcmVzb2x2ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlayB0aGlzIGlmIHRoZSBsb2FkZXIgaXMgd29ya2luZy5cbiAgICBmZXRjaChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnNob3coKTtcblxuICAgICAgICByZXR1cm4gd2luZG93LmZldGNoKGlucHV0LCBpbml0KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5oaWRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNQYXRoOiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYWRkb25TdGF0aWNGb2xkZXIsIGxpYk5hbWUpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNTdWZmaXg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KGxpYk5hbWUpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IHRyYW5zbGF0aW9uc1BhdGgsXG4gICAgICAgICAgICBzdWZmaXg6IHRyYW5zbGF0aW9uc1N1ZmZpeCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ViRm9sZGVyID0gJ2Fzc2V0cy9pMThuLyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogYWRkb25TdGF0aWNGb2xkZXIubGVuZ3RoID4gMCA/IGAke2FkZG9uU3RhdGljRm9sZGVyfSR7ZGVmYXVsdFN1YkZvbGRlcn1gIDogYC8ke2RlZmF1bHRTdWJGb2xkZXJ9YCxcbiAgICAgICAgICAgIHN1ZmZpeDogJy5qc29uJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHVybExhbmdQYXJhbSA9ICd1c2VyTGFuZycpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZSwgdXJsTGFuZ1BhcmFtKTtcbiAgICB9XG5cbiAgICBnZXRQYWdlc0FkZG9uVVVJRCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUEFHRVNfQURET05fVVVJRDtcbiAgICB9XG5cbiAgICBzZXRTaGVsbFJvdXRlckRhdGEoZGF0YTogeyBhZGRQYWRkaW5nPzogYm9vbGVhbiwgc2hvd1NpZGViYXI/OiBib29sZWFuLCBzaG93SGVhZGVyPzogYm9vbGVhbiB9KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGRldGFpbDogZGF0YSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgnc2V0LXJvdXRlci1kYXRhJywgZXZlbnREYXRhKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpO1xuICAgIH1cblxuICAgIGRlZmluZUN1c3RvbUVsZW1lbnQoZWxlbWVudE5hbWU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBpZiAoIWN1c3RvbUVsZW1lbnRzLmdldChlbGVtZW50TmFtZSkpIHsgIFxuICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKGVsZW1lbnROYW1lLCBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwge2luamVjdG9yOiBpbmplY3Rvcn0pKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gU2V0IHRoZSBlbGVtZW50TmFtZSBpbiB0aGUgX2N1c3RvbUVsZW1lbnRzTWFwIChGaXggaW50ZXJuYWwgcm91dGluZyBidWcpLlxuICAgICAgICAgICAgUGVwQWRkb25TZXJ2aWNlLl9jdXN0b21FbGVtZW50c01hcC5zZXQoZWxlbWVudE5hbWUsIHtpbmplY3RvcjogaW5qZWN0b3J9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpeCBpbnRlcm5hbCByb3V0aW5nIGJ1Zy5cbiAgICBjb25uZWN0SW50ZXJuYWxSb3V0ZXIoZWxlbWVudE5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBjdXN0b21FbGVtZW50T2JqZWN0ID0gUGVwQWRkb25TZXJ2aWNlLl9jdXN0b21FbGVtZW50c01hcC5nZXQoZWxlbWVudE5hbWUpO1xuICAgICAgICBsZXQgcm91dGVyID0gY3VzdG9tRWxlbWVudE9iamVjdD8uaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG5cbiAgICAgICAgLy8gVGhpcyBjYXVzZSBhIHJlZnJlc2ggKGV2ZXJpdGhpbmcgaXMgbG9hZGluZyB0d2ljZSkgd2hlbiByZWxvYWRpbmcgdGhlIHBhZ2UuLi5cbiAgICAgICAgLy8gQnV0IGlmIHdlIHJlbW92ZSB0aGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uIGlzIGNsZWFyIGFsbCBoaXN0b3J5IGNhdXNlIHRoZSByb3V0ZXIgaXMgbm90IGNvbm5lY3RlZC5cbiAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlciA9IHRoaXMucm91dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvdXRlcikge1xuICAgICAgICAgICAgY29uc3QgdXNlSGFzaCA9IGxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyMnKTtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdFJvdXRlcihyb3V0ZXIsIHVzZUhhc2gpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgY29ubmVjdFJvdXRlcihyb3V0ZXIsIHVzZUhhc2ggPSBmYWxzZSkge1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICBpZiAoIXVzZUhhc2gpIHtcbiAgICAgICAgICAgIHVybCA9IGAke2xvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cigxKX0ke2xvY2F0aW9uLnNlYXJjaH1gO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtsb2NhdGlvbi5oYXNoLnN1YnN0cigxKX0ke2xvY2F0aW9uLnNlYXJjaH1gO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgbGlic05hbWUgPSBbJ25neC1saWInXSxcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMgPSBbXTtcblxuICAgICAgICBpZiAobGlic05hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaWJzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWJOYW1lID0gbGlic05hbWVbaW5kZXhdO1xuICAgICAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLnB1c2goYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlELCBsaWJOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIC4uLm5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -88,13 +88,13 @@ export class PepDataConvertorService {
|
|
|
88
88
|
dataField.Enabled = field.Enabled === false ? false : true;
|
|
89
89
|
dataField.FieldType = field.FieldType;
|
|
90
90
|
dataField.FormattedValue =
|
|
91
|
-
field.FormattedValue || field.Value
|
|
91
|
+
field.FormattedValue || field.Value;
|
|
92
92
|
dataField.GroupFields = null;
|
|
93
93
|
dataField.NotificationInfo = '';
|
|
94
94
|
dataField.OptionalValues = field.OptionalValues;
|
|
95
95
|
dataField.ReferenceObjectSubType = '';
|
|
96
96
|
dataField.TextColor = '';
|
|
97
|
-
dataField.Value = field.Value
|
|
97
|
+
dataField.Value = field.Value;
|
|
98
98
|
dataField.Visible = true;
|
|
99
99
|
return dataField;
|
|
100
100
|
}
|
|
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
119
119
|
providedIn: 'root',
|
|
120
120
|
}]
|
|
121
121
|
}] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb252ZXJ0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2RhdGEtY29udmVydG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGtCQUFrQixFQUVsQixnQkFBZ0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRW5ELE1BQU0sT0FBTyxZQUFZO0lBY3JCLFlBQ0ksVUFXSSxFQUFFO1FBRU4sSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEdB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SSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQ1YsQ0FBUyxFQUNULEtBQWEsRUFDYixVQUFrQixFQUNsQixDQUFTLEVBQ1QsTUFBYyxFQUNkLFVBQWtCLEVBQ2xCLFVBQWtCO1FBRWxCLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixDQUFDLEVBQUUsQ0FBQztZQUNKLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLFVBQVU7WUFDdEIsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7b0hBekhRLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07MkZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRmllbGRMYXlvdXQsXG4gICAgT2JqZWN0c0RhdGFSb3csXG4gICAgVUlDb250cm9sLFxuICAgIFVJQ29udHJvbEZpZWxkLFxuICAgIE9iamVjdHNEYXRhUm93Q2VsbCxcbiAgICBGSUVMRF9UWVBFLFxuICAgIFhfQUxJR05NRU5UX1RZUEUsXG59IGZyb20gJy4uL21vZGVsL3dhcGkubW9kZWwnO1xuaW1wb3J0IHsgUGVwR3VpZCB9IGZyb20gJy4uL21vZGVsL3V0aWxpdGllcy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBQZXBGaWVsZERhdGEge1xuICAgIEFwaU5hbWU6IHN0cmluZztcbiAgICBFbmFibGVkPzogYm9vbGVhbjtcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBSZWFkT25seT86IGJvb2xlYW47XG4gICAgQ29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBDb2x1bW5XaWR0aFR5cGU/OiBudW1iZXI7XG4gICAgWEFsaWdubWVudDogWF9BTElHTk1FTlRfVFlQRTtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBPcHRpb25hbFZhbHVlcz86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBBcGlOYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgRW5hYmxlZD86IGJvb2xlYW47XG4gICAgICAgICAgICBWYWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgICAgICAgICAgRmllbGRUeXBlPzogRklFTERfVFlQRTtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICAgICAgICAgIENvbHVtbldpZHRoPzogbnVtYmVyO1xuICAgICAgICAgICAgQ29sdW1uV2lkdGhUeXBlPzogbnVtYmVyO1xuICAgICAgICAgICAgWEFsaWdubWVudD86IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgICAgICAgICBUaXRsZT86IHN0cmluZztcbiAgICAgICAgfSA9IHt9XG4gICAgKSB7XG4gICAgICAgIHRoaXMuQXBpTmFtZSA9IG9wdGlvbnMuQXBpTmFtZTtcbiAgICAgICAgdGhpcy5FbmFibGVkID0gISFvcHRpb25zLkVuYWJsZWQ7XG4gICAgICAgIHRoaXMuVmFsdWUgPSBvcHRpb25zLlZhbHVlO1xuICAgICAgICB0aGlzLkZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5Gb3JtYXR0ZWRWYWx1ZSB8fCAnJztcbiAgICAgICAgdGhpcy5GaWVsZFR5cGUgPSBvcHRpb25zLkZpZWxkVHlwZTtcbiAgICAgICAgdGhpcy5SZWFkT25seSA9ICEhb3B0aW9ucy5SZWFkT25seTtcbiAgICAgICAgdGhpcy5Db2x1bW5XaWR0aCA9IG9wdGlvbnMuQ29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMuQ29sdW1uV2lkdGhUeXBlID0gb3B0aW9ucy5Db2x1bW5XaWR0aFR5cGU7XG4gICAgICAgIHRoaXMuWEFsaWdubWVudCA9IG9wdGlvbnMuWEFsaWdubWVudCB8fCBYX0FMSUdOTUVOVF9UWVBFLkxlZnQ7XG4gICAgICAgIHRoaXMuVGl0bGUgPSBvcHRpb25zLlRpdGxlIHx8ICcnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBQZXBSb3dEYXRhIHtcbiAgICBVVUlEPzogc3RyaW5nO1xuICAgIElzRWRpdGFibGU/OiBib29sZWFuO1xuICAgIElzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnM/OiBib29sZWFuO1xuICAgIEZpZWxkczogUGVwRmllbGREYXRhW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlIHtcbiAgICBnZXRVaUNvbnRyb2woZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBVSUNvbnRyb2wge1xuICAgICAgICBjb25zdCB1aUNvbnRyb2wgPSBuZXcgVUlDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKGZvcm1EYXRhPy5GaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVpUm93ID0gZm9ybURhdGEuRmllbGRzO1xuICAgICAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBbXTtcbiAgICAgICAgICAgIHVpUm93LmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIHVpQ29udHJvbC5Db250cm9sRmllbGRzLnB1c2godGhpcy5zZXRVSUNvbnRyb2xGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVpQ29udHJvbDtcbiAgICB9XG5cbiAgICBjb252ZXJ0Rm9ybURhdGEoZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBPYmplY3RzRGF0YVJvdyB7XG4gICAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXcgT2JqZWN0c0RhdGFSb3coKTtcbiAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgcm93RGF0YS5UeXBlID0gMDtcbiAgICAgICAgcm93RGF0YS5VSUQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgZm9ybURhdGEuRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHJvd0RhdGE7XG4gICAgfVxuXG4gICAgY29udmVydExpc3REYXRhKFxuICAgICAgICB0YWJsZURhdGE6IFBlcFJvd0RhdGFbXSxcbiAgICAgICAgcm93VVVJRCA9ICcnXG4gICAgKTogQXJyYXk8T2JqZWN0c0RhdGFSb3c+IHtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxPYmplY3RzRGF0YVJvdz4oKTtcblxuICAgICAgICBpZiAodGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhYmxlRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dEYXRhID0gbmV3IE9iamVjdHNEYXRhUm93KCk7XG4gICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgICAgICAgICByb3dEYXRhLlR5cGUgPSAwO1xuICAgICAgICAgICAgICAgIHJvd0RhdGEuVUlEID0gcm93VVVJRFxuICAgICAgICAgICAgICAgICAgICA/IHJvd1VVSURcbiAgICAgICAgICAgICAgICAgICAgOiByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgICAgICBpZiAocm93LklzRWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNFZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0YWJsZUZvckFjdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5Jc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LkZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93RGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHNldFVJQ29udHJvbEZpZWxkKGZpZWxkOiBQZXBGaWVsZERhdGEpOiBVSUNvbnRyb2xGaWVsZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xGaWVsZCA9IG5ldyBVSUNvbnRyb2xGaWVsZCgpO1xuICAgICAgICBjb250cm9sRmllbGQuQXBpTmFtZSA9IGZpZWxkLkFwaU5hbWU7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5GaWVsZFR5cGUgPSBmaWVsZC5GaWVsZFR5cGU7XG5cbiAgICAgICAgY29udHJvbEZpZWxkLkxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiAxLFxuICAgICAgICAgICAgV2lkdGg6IDEsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiBmaWVsZC5YQWxpZ25tZW50LFxuICAgICAgICAgICAgWTogMSxcbiAgICAgICAgICAgIEhlaWdodDogMSxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnRyb2xGaWVsZC5UaXRsZSA9IGZpZWxkLlRpdGxlO1xuICAgICAgICBjb250cm9sRmllbGQuUmVhZE9ubHkgPSBmaWVsZC5SZWFkT25seSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgY29udHJvbEZpZWxkLkNvbHVtbldpZHRoID0gZmllbGQuQ29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5Db2x1bW5XaWR0aFR5cGUgPSBmaWVsZC5Db2x1bW5XaWR0aFR5cGUgfHwgMTtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xGaWVsZDtcbiAgICB9XG5cbiAgICBzZXREYXRhRmllbGQoZmllbGQ6IFBlcEZpZWxkRGF0YSk6IE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgICAgIGNvbnN0IGRhdGFGaWVsZCA9IG5ldyBPYmplY3RzRGF0YVJvd0NlbGwoKTtcbiAgICAgICAgZGF0YUZpZWxkLkFkZGl0aW9uYWxWYWx1ZSA9IGZpZWxkLkFkZGl0aW9uYWxWYWx1ZTtcbiAgICAgICAgZGF0YUZpZWxkLkFwaU5hbWUgPSBmaWVsZC5BcGlOYW1lO1xuICAgICAgICBkYXRhRmllbGQuRW5hYmxlZCA9IGZpZWxkLkVuYWJsZWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICBkYXRhRmllbGQuRmllbGRUeXBlID0gZmllbGQuRmllbGRUeXBlO1xuICAgICAgICBkYXRhRmllbGQuRm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgZmllbGQuRm9ybWF0dGVkVmFsdWUgfHwgZmllbGQuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgZGF0YUZpZWxkLkdyb3VwRmllbGRzID0gbnVsbDtcbiAgICAgICAgZGF0YUZpZWxkLk5vdGlmaWNhdGlvbkluZm8gPSAnJztcbiAgICAgICAgZGF0YUZpZWxkLk9wdGlvbmFsVmFsdWVzID0gZmllbGQuT3B0aW9uYWxWYWx1ZXM7XG4gICAgICAgIGRhdGFGaWVsZC5SZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5UZXh0Q29sb3IgPSAnJztcbiAgICAgICAgZGF0YUZpZWxkLlZhbHVlID0gZmllbGQuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgZGF0YUZpZWxkLlZpc2libGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YUZpZWxkO1xuICAgIH1cblxuICAgIHNldEZpZWxkTGF5b3V0KFxuICAgICAgICB4OiBudW1iZXIsXG4gICAgICAgIHdpZHRoOiBudW1iZXIsXG4gICAgICAgIHhBbGlnbm1lbnQ6IG51bWJlcixcbiAgICAgICAgeTogbnVtYmVyLFxuICAgICAgICBoZWlnaHQ6IG51bWJlcixcbiAgICAgICAgeUFsaWdubWVudDogbnVtYmVyLFxuICAgICAgICBsaW5lTnVtYmVyOiBudW1iZXJcbiAgICApOiBGaWVsZExheW91dCB7XG4gICAgICAgIGNvbnN0IGxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiB4LFxuICAgICAgICAgICAgV2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgWEFsaWdubWVudDogeEFsaWdubWVudCxcbiAgICAgICAgICAgIFk6IHksXG4gICAgICAgICAgICBIZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IHlBbGlnbm1lbnQsXG4gICAgICAgICAgICBMaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgIH1cbn1cbiJdfQ==
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb252ZXJ0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2RhdGEtY29udmVydG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGtCQUFrQixFQUVsQixnQkFBZ0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRW5ELE1BQU0sT0FBTyxZQUFZO0lBY3JCLFlBQ0ksVUFXSSxFQUFFO1FBRU4sSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBQ0QsTUFBTSxPQUFPLFVBQVU7Q0FNdEI7QUFLRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQVksQ0FBQyxRQUFvQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWxDLElBQUksUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3BCLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1NBQ0w7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQW9CO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hELENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUNYLFNBQXVCLEVBQ3ZCLE9BQU8sR0FBRyxFQUFFO1FBRVosTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQWtCLENBQUM7UUFFekMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPO29CQUNqQixDQUFDLENBQUMsT0FBTztvQkFDVCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO3dCQUNWLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUM5QjtnQkFDRCxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsS0FBSyxLQUFLLEVBQUU7b0JBQ3RDLE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7aUJBQzFDO2dCQUNELElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtvQkFDaEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQzdCO2dCQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFtQjtRQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNyQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFekMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxDQUFDLEVBQUUsQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDO1lBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLENBQUMsRUFBRSxDQUFDO1lBQ0osTUFBTSxFQUFFLENBQUM7WUFDVCxVQUFVLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7UUFFSCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsWUFBWSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDL0QsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFtQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDM0MsU0FBUyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdEMsU0FBUyxDQUFDLGNBQWM7WUFDcEIsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQ1YsQ0FBUyxFQUNULEtBQWEsRUFDYixVQUFrQixFQUNsQixDQUFTLEVBQ1QsTUFBYyxFQUNkLFVBQWtCLEVBQ2xCLFVBQWtCO1FBRWxCLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixDQUFDLEVBQUUsQ0FBQztZQUNKLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLFVBQVU7WUFDdEIsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7b0hBekhRLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07MkZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRmllbGRMYXlvdXQsXG4gICAgT2JqZWN0c0RhdGFSb3csXG4gICAgVUlDb250cm9sLFxuICAgIFVJQ29udHJvbEZpZWxkLFxuICAgIE9iamVjdHNEYXRhUm93Q2VsbCxcbiAgICBGSUVMRF9UWVBFLFxuICAgIFhfQUxJR05NRU5UX1RZUEUsXG59IGZyb20gJy4uL21vZGVsL3dhcGkubW9kZWwnO1xuaW1wb3J0IHsgUGVwR3VpZCB9IGZyb20gJy4uL21vZGVsL3V0aWxpdGllcy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBQZXBGaWVsZERhdGEge1xuICAgIEFwaU5hbWU6IHN0cmluZztcbiAgICBFbmFibGVkPzogYm9vbGVhbjtcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBSZWFkT25seT86IGJvb2xlYW47XG4gICAgQ29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBDb2x1bW5XaWR0aFR5cGU/OiBudW1iZXI7XG4gICAgWEFsaWdubWVudDogWF9BTElHTk1FTlRfVFlQRTtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBPcHRpb25hbFZhbHVlcz86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBBcGlOYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgRW5hYmxlZD86IGJvb2xlYW47XG4gICAgICAgICAgICBWYWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgICAgICAgICAgRmllbGRUeXBlPzogRklFTERfVFlQRTtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICAgICAgICAgIENvbHVtbldpZHRoPzogbnVtYmVyO1xuICAgICAgICAgICAgQ29sdW1uV2lkdGhUeXBlPzogbnVtYmVyO1xuICAgICAgICAgICAgWEFsaWdubWVudD86IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgICAgICAgICBUaXRsZT86IHN0cmluZztcbiAgICAgICAgfSA9IHt9XG4gICAgKSB7XG4gICAgICAgIHRoaXMuQXBpTmFtZSA9IG9wdGlvbnMuQXBpTmFtZTtcbiAgICAgICAgdGhpcy5FbmFibGVkID0gISFvcHRpb25zLkVuYWJsZWQ7XG4gICAgICAgIHRoaXMuVmFsdWUgPSBvcHRpb25zLlZhbHVlO1xuICAgICAgICB0aGlzLkZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5Gb3JtYXR0ZWRWYWx1ZSB8fCAnJztcbiAgICAgICAgdGhpcy5GaWVsZFR5cGUgPSBvcHRpb25zLkZpZWxkVHlwZTtcbiAgICAgICAgdGhpcy5SZWFkT25seSA9ICEhb3B0aW9ucy5SZWFkT25seTtcbiAgICAgICAgdGhpcy5Db2x1bW5XaWR0aCA9IG9wdGlvbnMuQ29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMuQ29sdW1uV2lkdGhUeXBlID0gb3B0aW9ucy5Db2x1bW5XaWR0aFR5cGU7XG4gICAgICAgIHRoaXMuWEFsaWdubWVudCA9IG9wdGlvbnMuWEFsaWdubWVudCB8fCBYX0FMSUdOTUVOVF9UWVBFLkxlZnQ7XG4gICAgICAgIHRoaXMuVGl0bGUgPSBvcHRpb25zLlRpdGxlIHx8ICcnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBQZXBSb3dEYXRhIHtcbiAgICBVVUlEPzogc3RyaW5nO1xuICAgIElzRWRpdGFibGU/OiBib29sZWFuO1xuICAgIElzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnM/OiBib29sZWFuO1xuICAgIEZpZWxkczogUGVwRmllbGREYXRhW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlIHtcbiAgICBnZXRVaUNvbnRyb2woZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBVSUNvbnRyb2wge1xuICAgICAgICBjb25zdCB1aUNvbnRyb2wgPSBuZXcgVUlDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKGZvcm1EYXRhPy5GaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVpUm93ID0gZm9ybURhdGEuRmllbGRzO1xuICAgICAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBbXTtcbiAgICAgICAgICAgIHVpUm93LmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIHVpQ29udHJvbC5Db250cm9sRmllbGRzLnB1c2godGhpcy5zZXRVSUNvbnRyb2xGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVpQ29udHJvbDtcbiAgICB9XG5cbiAgICBjb252ZXJ0Rm9ybURhdGEoZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBPYmplY3RzRGF0YVJvdyB7XG4gICAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXcgT2JqZWN0c0RhdGFSb3coKTtcbiAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgcm93RGF0YS5UeXBlID0gMDtcbiAgICAgICAgcm93RGF0YS5VSUQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgZm9ybURhdGEuRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHJvd0RhdGE7XG4gICAgfVxuXG4gICAgY29udmVydExpc3REYXRhKFxuICAgICAgICB0YWJsZURhdGE6IFBlcFJvd0RhdGFbXSxcbiAgICAgICAgcm93VVVJRCA9ICcnXG4gICAgKTogQXJyYXk8T2JqZWN0c0RhdGFSb3c+IHtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxPYmplY3RzRGF0YVJvdz4oKTtcblxuICAgICAgICBpZiAodGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhYmxlRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dEYXRhID0gbmV3IE9iamVjdHNEYXRhUm93KCk7XG4gICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgICAgICAgICByb3dEYXRhLlR5cGUgPSAwO1xuICAgICAgICAgICAgICAgIHJvd0RhdGEuVUlEID0gcm93VVVJRFxuICAgICAgICAgICAgICAgICAgICA/IHJvd1VVSURcbiAgICAgICAgICAgICAgICAgICAgOiByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgICAgICBpZiAocm93LklzRWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNFZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0YWJsZUZvckFjdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5Jc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LkZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93RGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHNldFVJQ29udHJvbEZpZWxkKGZpZWxkOiBQZXBGaWVsZERhdGEpOiBVSUNvbnRyb2xGaWVsZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xGaWVsZCA9IG5ldyBVSUNvbnRyb2xGaWVsZCgpO1xuICAgICAgICBjb250cm9sRmllbGQuQXBpTmFtZSA9IGZpZWxkLkFwaU5hbWU7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5GaWVsZFR5cGUgPSBmaWVsZC5GaWVsZFR5cGU7XG5cbiAgICAgICAgY29udHJvbEZpZWxkLkxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiAxLFxuICAgICAgICAgICAgV2lkdGg6IDEsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiBmaWVsZC5YQWxpZ25tZW50LFxuICAgICAgICAgICAgWTogMSxcbiAgICAgICAgICAgIEhlaWdodDogMSxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnRyb2xGaWVsZC5UaXRsZSA9IGZpZWxkLlRpdGxlO1xuICAgICAgICBjb250cm9sRmllbGQuUmVhZE9ubHkgPSBmaWVsZC5SZWFkT25seSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgY29udHJvbEZpZWxkLkNvbHVtbldpZHRoID0gZmllbGQuQ29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5Db2x1bW5XaWR0aFR5cGUgPSBmaWVsZC5Db2x1bW5XaWR0aFR5cGUgfHwgMTtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xGaWVsZDtcbiAgICB9XG5cbiAgICBzZXREYXRhRmllbGQoZmllbGQ6IFBlcEZpZWxkRGF0YSk6IE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgICAgIGNvbnN0IGRhdGFGaWVsZCA9IG5ldyBPYmplY3RzRGF0YVJvd0NlbGwoKTtcbiAgICAgICAgZGF0YUZpZWxkLkFkZGl0aW9uYWxWYWx1ZSA9IGZpZWxkLkFkZGl0aW9uYWxWYWx1ZTtcbiAgICAgICAgZGF0YUZpZWxkLkFwaU5hbWUgPSBmaWVsZC5BcGlOYW1lO1xuICAgICAgICBkYXRhRmllbGQuRW5hYmxlZCA9IGZpZWxkLkVuYWJsZWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICBkYXRhRmllbGQuRmllbGRUeXBlID0gZmllbGQuRmllbGRUeXBlO1xuICAgICAgICBkYXRhRmllbGQuRm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgZmllbGQuRm9ybWF0dGVkVmFsdWUgfHwgZmllbGQuVmFsdWU7XG4gICAgICAgIGRhdGFGaWVsZC5Hcm91cEZpZWxkcyA9IG51bGw7XG4gICAgICAgIGRhdGFGaWVsZC5Ob3RpZmljYXRpb25JbmZvID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5PcHRpb25hbFZhbHVlcyA9IGZpZWxkLk9wdGlvbmFsVmFsdWVzO1xuICAgICAgICBkYXRhRmllbGQuUmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xuICAgICAgICBkYXRhRmllbGQuVGV4dENvbG9yID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5WYWx1ZSA9IGZpZWxkLlZhbHVlO1xuICAgICAgICBkYXRhRmllbGQuVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhRmllbGQ7XG4gICAgfVxuXG4gICAgc2V0RmllbGRMYXlvdXQoXG4gICAgICAgIHg6IG51bWJlcixcbiAgICAgICAgd2lkdGg6IG51bWJlcixcbiAgICAgICAgeEFsaWdubWVudDogbnVtYmVyLFxuICAgICAgICB5OiBudW1iZXIsXG4gICAgICAgIGhlaWdodDogbnVtYmVyLFxuICAgICAgICB5QWxpZ25tZW50OiBudW1iZXIsXG4gICAgICAgIGxpbmVOdW1iZXI6IG51bWJlclxuICAgICk6IEZpZWxkTGF5b3V0IHtcbiAgICAgICAgY29uc3QgbGF5b3V0ID0gbmV3IEZpZWxkTGF5b3V0KHtcbiAgICAgICAgICAgIFg6IHgsXG4gICAgICAgICAgICBXaWR0aDogd2lkdGgsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiB4QWxpZ25tZW50LFxuICAgICAgICAgICAgWTogeSxcbiAgICAgICAgICAgIEhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgWUFsaWdubWVudDogeUFsaWdubWVudCxcbiAgICAgICAgICAgIExpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBsYXlvdXQ7XG4gICAgfVxufVxuIl19
|
|
@@ -149,13 +149,9 @@ export class PepFileService {
|
|
|
149
149
|
: filePath.lastIndexOf('.');
|
|
150
150
|
return filePath.substr(filePath.lastIndexOf('/') + 1, lastIndex);
|
|
151
151
|
}
|
|
152
|
-
getFileExtension(
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
if (fileSplit.length > 1) {
|
|
156
|
-
fileExt = fileSplit[fileSplit.length - 2];
|
|
157
|
-
}
|
|
158
|
-
return fileExt;
|
|
152
|
+
getFileExtension(filename) {
|
|
153
|
+
const extension = filename.substring(filename.lastIndexOf('.') + 1, filename.length);
|
|
154
|
+
return extension;
|
|
159
155
|
}
|
|
160
156
|
/* Returns true if url is valid */
|
|
161
157
|
isValidUrl(url) {
|
|
@@ -168,21 +164,62 @@ export class PepFileService {
|
|
|
168
164
|
return false;
|
|
169
165
|
}
|
|
170
166
|
}
|
|
171
|
-
|
|
172
|
-
const
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
byteNumbers[i] = slice.charCodeAt(i);
|
|
179
|
-
}
|
|
180
|
-
const byteArray = new Uint8Array(byteNumbers);
|
|
181
|
-
byteArrays.push(byteArray);
|
|
167
|
+
convertFromb64toArrayBuffer(base64String) {
|
|
168
|
+
const base64 = base64String.slice(base64String.indexOf(',') + 1);
|
|
169
|
+
const binary_string = window.atob(base64);
|
|
170
|
+
const len = binary_string.length;
|
|
171
|
+
const bytes = new Uint8Array(len);
|
|
172
|
+
for (let i = 0; i < len; i++) {
|
|
173
|
+
bytes[i] = binary_string.charCodeAt(i);
|
|
182
174
|
}
|
|
183
|
-
|
|
175
|
+
return bytes.buffer;
|
|
176
|
+
}
|
|
177
|
+
convertFromb64toBlob(base64String) {
|
|
178
|
+
// const byteCharacters = window.atob(b64Data);
|
|
179
|
+
const byteArrays = this.convertFromb64toArrayBuffer(base64String);
|
|
180
|
+
const fileStrArr = base64String.split(';');
|
|
181
|
+
const contentType = fileStrArr[0].split(':')[1];
|
|
182
|
+
const blob = new Blob([byteArrays], { type: contentType });
|
|
184
183
|
return blob;
|
|
185
184
|
}
|
|
185
|
+
getBase64FileSize(base64String) {
|
|
186
|
+
let fileSize;
|
|
187
|
+
try {
|
|
188
|
+
base64String = base64String.slice(base64String.indexOf(',') + 1);
|
|
189
|
+
fileSize = window.atob(base64String).length;
|
|
190
|
+
}
|
|
191
|
+
catch (e) {
|
|
192
|
+
fileSize = -1;
|
|
193
|
+
}
|
|
194
|
+
return fileSize; // return size in bytes;
|
|
195
|
+
}
|
|
196
|
+
fileToBase64(file) {
|
|
197
|
+
return new Promise((resolve, reject) => {
|
|
198
|
+
const reader = new FileReader();
|
|
199
|
+
reader.readAsDataURL(file);
|
|
200
|
+
reader.onload = () => resolve(reader.result);
|
|
201
|
+
reader.onerror = (error) => reject(error);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
isValidFileExtension(fileExtension, acceptedExtensions) {
|
|
205
|
+
const extensionOK = acceptedExtensions === '' ||
|
|
206
|
+
acceptedExtensions.indexOf(fileExtension.toLowerCase()) !== -1;
|
|
207
|
+
return extensionOK;
|
|
208
|
+
}
|
|
209
|
+
isValidFileSize(fileStr, sizeLimitMB = 5) {
|
|
210
|
+
const file = fileStr;
|
|
211
|
+
let fileSize = 0;
|
|
212
|
+
// check if got file as Base64
|
|
213
|
+
if (typeof fileStr === 'string' && fileStr.indexOf('data:') > -1) {
|
|
214
|
+
fileSize = this.getBase64FileSize(fileStr);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
fileSize = file.size;
|
|
218
|
+
}
|
|
219
|
+
// check the size
|
|
220
|
+
const sizeOK = fileSize !== -1 && file != null && fileSize < sizeLimitMB * 1048576;
|
|
221
|
+
return sizeOK;
|
|
222
|
+
}
|
|
186
223
|
getAssetsPath(assetsDomain = '', libName = 'ngx-lib') {
|
|
187
224
|
const concatChar = assetsDomain === '' || assetsDomain.endsWith('/') ? '' : '/';
|
|
188
225
|
return `${assetsDomain}${concatChar}assets/${libName}/`;
|
|
@@ -210,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
210
247
|
providedIn: 'root',
|
|
211
248
|
}]
|
|
212
249
|
}], ctorParameters: function () { return []; } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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LEdBQUcsVUFBVSxVQUFVLE9BQU8sR0FBRyxDQUFDO0lBQzVELENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUFPLEdBQUcsU0FBUztRQUMzQyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QixDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsT0FBTyxHQUFHLFNBQVM7UUFDNUQsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDL0QsQ0FBQztJQUVELG1CQUFtQixDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFPLEdBQUcsU0FBUztRQUNsRSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVc7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzsyR0F0UFEsY0FBYzsrR0FBZCxjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGVwRmlsZVR5cGUgPSAnc2NyaXB0JyB8ICdzdHlsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEV4dGVybmFsRmlsZU1vZGVsIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgdHlwZTogUGVwRmlsZVR5cGU7XG59XG5cbmRlY2xhcmUgbGV0IGRvY3VtZW50OiBhbnk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEZpbGVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHNjcmlwdHM6IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHN0eWxlczogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2NyaXB0cyA9IG5ldyBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT4oKTtcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+KCk7XG4gICAgfVxuXG4gICAgbG9hZEZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IGFueVtdID0gW107XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT09ICdzdHlsZScpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9hZFN0eWxlKGZpbGUucGF0aCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRTY3JpcHQoZmlsZS5wYXRoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgIGluZGV4IDwgZmlsZXMubGVuZ3RoICYmXG4gICAgICAgICAgICBmaWxlc1tpbmRleF0ucGF0aCAmJlxuICAgICAgICAgICAgZmlsZXNbaW5kZXhdLnBhdGgudHJpbSgpICE9PSAnJztcbiAgICAgICAgICAgIGluZGV4KytcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRGaWxlTmFtZShmaWxlc1tpbmRleF0ucGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChmaWxlc1tpbmRleF0udHlwZSA9PT0gJ3NjcmlwdCcgJiYgdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5kZWxldGUobmFtZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzW2luZGV4XS50eXBlID09PSAnc3R5bGUnICYmIHRoaXMuc3R5bGVzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRTY3JpcHQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGlzbid0IGV4aXN0IGFkZCBpdC5cbiAgICAgICAgICAgIGlmICghdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdEl0ZW0gPSB0aGlzLnNjcmlwdHMuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgICAgICAgICBpZiAoc2NyaXB0SXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0OiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzY3JpcHRcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzY3JpcHRJdGVtLnNyYztcbiAgICAgICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdpZCcsIG5hbWUpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElFXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcnNcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkU3R5bGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc3R5bGUgaXNuJ3QgZXhpc3QgYWRkIGl0LlxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0eWxlcy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlcy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN0eWxlSXRlbSA9IHRoaXMuc3R5bGVzLmdldChuYW1lKTtcblxuICAgICAgICAgICAgLy8gUmVzb2x2ZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgICAgaWYgKHN0eWxlSXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdBbHJlYWR5IExvYWRlZCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExvYWQgc3R5bGVcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICAgICAgc3R5bGUuaHJlZiA9IHN0eWxlSXRlbS5zcmM7XG4gICAgICAgICAgICAgICAgc3R5bGUubWVkaWEgPSAnYWxsJztcbiAgICAgICAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XG5cbiAgICAgICAgICAgICAgICBzdHlsZUl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRGb250U3R5bGUoc3R5bGVJZDogc3RyaW5nLCBocmVmOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICBzdHlsZUlkXG4gICAgICAgICkgYXMgSFRNTExpbmtFbGVtZW50O1xuXG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudC5ocmVmID0gaHJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgc3R5bGUuaWQgPSBzdHlsZUlkO1xuICAgICAgICAgICAgc3R5bGUucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgICAgc3R5bGUuaHJlZiA9IGAke2hyZWZ9YDtcblxuICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaWxlTmFtZShmaWxlUGF0aDogc3RyaW5nLCB3aXRoRXh0ZW5zdGlvbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gd2l0aEV4dGVuc3Rpb25cbiAgICAgICAgICAgID8gZmlsZVBhdGgubGVuZ3RoIC0gMVxuICAgICAgICAgICAgOiBmaWxlUGF0aC5sYXN0SW5kZXhPZignLicpO1xuXG4gICAgICAgIHJldHVybiBmaWxlUGF0aC5zdWJzdHIoZmlsZVBhdGgubGFzdEluZGV4T2YoJy8nKSArIDEsIGxhc3RJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsZVNwbGl0ID0gZmlsZVBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgbGV0IGZpbGVFeHQgPSAnJztcbiAgICAgICAgaWYgKGZpbGVTcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBmaWxlRXh0ID0gZmlsZVNwbGl0W2ZpbGVTcGxpdC5sZW5ndGggLSAyXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZUV4dDtcbiAgICB9XG5cbiAgICAvKiBSZXR1cm5zIHRydWUgaWYgdXJsIGlzIHZhbGlkICovXG4gICAgaXNWYWxpZFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAvKiBUcnkgY3JlYXRpbmcgYSB2YWxpZCBVUkwgKi9cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb252ZXJ0RnJvbWI2NHRvQmxvYihcbiAgICAgICAgYjY0RGF0YTogYW55LFxuICAgICAgICBjb250ZW50VHlwZSA9ICcnLFxuICAgICAgICBzbGljZVNpemUgPSA1MTJcbiAgICApOiBCbG9iIHtcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gW107XG5cbiAgICAgICAgZm9yIChcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgb2Zmc2V0IDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHNsaWNlU2l6ZVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gYnl0ZUNoYXJhY3RlcnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzbGljZVNpemUpO1xuXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4gPSAnJywgbGliTmFtZSA9ICduZ3gtbGliJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbmNhdENoYXIgPVxuICAgICAgICAgICAgYXNzZXRzRG9tYWluID09PSAnJyB8fCBhc3NldHNEb21haW4uZW5kc1dpdGgoJy8nKSA/ICcnIDogJy8nO1xuICAgICAgICByZXR1cm4gYCR7YXNzZXRzRG9tYWlufSR7Y29uY2F0Q2hhcn1hc3NldHMvJHtsaWJOYW1lfS9gO1xuICAgIH1cblxuICAgIGdldEFzc2V0c1RyYW5zbGF0aW9uc1N1ZmZpeChsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAuJHtsaWJOYW1lfS5qc29uYDtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNUcmFuc2xhdGlvbnNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4sIGxpYk5hbWUpfWkxOG4vYDtcbiAgICB9XG5cbiAgICBnZXRBc3NldHNJbWFnZXNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnLCBpbWFnZSA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QXNzZXRzUGF0aChhc3NldHNEb21haW4sIGxpYk5hbWUpfWltYWdlcy8ke2ltYWdlfWA7XG4gICAgfVxuXG4gICAgZ2V0U3ZnQXNJbWFnZVNyYyhzdmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbc3ZnXSwgeyB0eXBlOiAnaW1hZ2Uvc3ZnK3htbCcgfSk7XG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxufVxuIl19
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBSXZCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBOEI7UUFDcEMsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE4QjtRQUN0QyxLQUNJLElBQUksS0FBSyxHQUFHLENBQUMsRUFDYixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFDakIsS0FBSyxDQUFDLEtBQUss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QUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzsyR0EvUlEsY0FBYzsrR0FBZCxjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGVwRmlsZVR5cGUgPSAnc2NyaXB0JyB8ICdzdHlsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcEV4dGVybmFsRmlsZU1vZGVsIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgdHlwZTogUGVwRmlsZVR5cGU7XG59XG5cbmRlY2xhcmUgbGV0IGRvY3VtZW50OiBhbnk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEZpbGVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHNjcmlwdHM6IE1hcDxzdHJpbmcsIHsgbG9hZGVkOiBib29sZWFuOyBzcmM6IHN0cmluZyB9PjtcbiAgICBwcml2YXRlIHN0eWxlczogTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2NyaXB0cyA9IG5ldyBNYXA8c3RyaW5nLCB7IGxvYWRlZDogYm9vbGVhbjsgc3JjOiBzdHJpbmcgfT4oKTtcbiAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgeyBsb2FkZWQ6IGJvb2xlYW47IHNyYzogc3RyaW5nIH0+KCk7XG4gICAgfVxuXG4gICAgbG9hZEZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IGFueVtdID0gW107XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT09ICdzdHlsZScpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMubG9hZFN0eWxlKGZpbGUucGF0aCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRTY3JpcHQoZmlsZS5wYXRoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cblxuICAgIHJlbW92ZUZpbGVzKGZpbGVzOiBJUGVwRXh0ZXJuYWxGaWxlTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgIGluZGV4IDwgZmlsZXMubGVuZ3RoICYmXG4gICAgICAgICAgICBmaWxlc1tpbmRleF0ucGF0aCAmJlxuICAgICAgICAgICAgZmlsZXNbaW5kZXhdLnBhdGgudHJpbSgpICE9PSAnJztcbiAgICAgICAgICAgIGluZGV4KytcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRGaWxlTmFtZShmaWxlc1tpbmRleF0ucGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChmaWxlc1tpbmRleF0udHlwZSA9PT0gJ3NjcmlwdCcgJiYgdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5kZWxldGUobmFtZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVzW2luZGV4XS50eXBlID09PSAnc3R5bGUnICYmIHRoaXMuc3R5bGVzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRTY3JpcHQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc2NyaXB0IGlzbid0IGV4aXN0IGFkZCBpdC5cbiAgICAgICAgICAgIGlmICghdGhpcy5zY3JpcHRzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0cy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdEl0ZW0gPSB0aGlzLnNjcmlwdHMuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgICAvLyBSZXNvbHZlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgICAgICAgICBpZiAoc2NyaXB0SXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0OiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0FscmVhZHkgTG9hZGVkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBzY3JpcHRcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzY3JpcHRJdGVtLnNyYztcbiAgICAgICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdpZCcsIG5hbWUpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElFXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcnNcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ0xvYWRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnTG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkU3R5bGUocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZpbGVOYW1lKHBhdGgsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgc3R5bGUgaXNuJ3QgZXhpc3QgYWRkIGl0LlxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0eWxlcy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlcy5zZXQobmFtZSwgeyBsb2FkZWQ6IGZhbHNlLCBzcmM6IHBhdGggfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN0eWxlSXRlbSA9IHRoaXMuc3R5bGVzLmdldChuYW1lKTtcblxuICAgICAgICAgICAgLy8gUmVzb2x2ZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgICAgICAgICAgaWYgKHN0eWxlSXRlbS5sb2FkZWQpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdBbHJlYWR5IExvYWRlZCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExvYWQgc3R5bGVcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICAgICAgc3R5bGUuaHJlZiA9IHN0eWxlSXRlbS5zcmM7XG4gICAgICAgICAgICAgICAgc3R5bGUubWVkaWEgPSAnYWxsJztcbiAgICAgICAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2lkJywgbmFtZSk7XG5cbiAgICAgICAgICAgICAgICBzdHlsZUl0ZW0ubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdMb2FkZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRGb250U3R5bGUoc3R5bGVJZDogc3RyaW5nLCBocmVmOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG5cbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICBzdHlsZUlkXG4gICAgICAgICkgYXMgSFRNTExpbmtFbGVtZW50O1xuXG4gICAgICAgIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudC5ocmVmID0gaHJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgc3R5bGUuaWQgPSBzdHlsZUlkO1xuICAgICAgICAgICAgc3R5bGUucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgICAgc3R5bGUuaHJlZiA9IGAke2hyZWZ9YDtcblxuICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaWxlTmFtZShmaWxlUGF0aDogc3RyaW5nLCB3aXRoRXh0ZW5zdGlvbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gd2l0aEV4dGVuc3Rpb25cbiAgICAgICAgICAgID8gZmlsZVBhdGgubGVuZ3RoIC0gMVxuICAgICAgICAgICAgOiBmaWxlUGF0aC5sYXN0SW5kZXhPZignLicpO1xuXG4gICAgICAgIHJldHVybiBmaWxlUGF0aC5zdWJzdHIoZmlsZVBhdGgubGFzdEluZGV4T2YoJy8nKSArIDEsIGxhc3RJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZW5hbWUuc3Vic3RyaW5nKGZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxLCBmaWxlbmFtZS5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uO1xuICAgIH1cblxuICAgIC8qIFJldHVybnMgdHJ1ZSBpZiB1cmwgaXMgdmFsaWQgKi9cbiAgICBpc1ZhbGlkVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8qIFRyeSBjcmVhdGluZyBhIHZhbGlkIFVSTCAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdG1wID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBjb252ZXJ0RnJvbWI2NHRvQXJyYXlCdWZmZXIoYmFzZTY0U3RyaW5nOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFN0cmluZy5zbGljZShiYXNlNjRTdHJpbmcuaW5kZXhPZignLCcpICsgMSk7XG4gICAgICAgIGNvbnN0IGJpbmFyeV9zdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgICAgICBjb25zdCBsZW4gPSBiaW5hcnlfc3RyaW5nLmxlbmd0aDtcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgICAgICBcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgYnl0ZXNbaV0gPSBiaW5hcnlfc3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ5dGVzLmJ1ZmZlcjtcbiAgICB9XG5cbiAgICBjb252ZXJ0RnJvbWI2NHRvQmxvYihiYXNlNjRTdHJpbmc6IGFueSk6IEJsb2Ige1xuICAgICAgICAvLyBjb25zdCBieXRlQ2hhcmFjdGVycyA9IHdpbmRvdy5hdG9iKGI2NERhdGEpO1xuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gdGhpcy5jb252ZXJ0RnJvbWI2NHRvQXJyYXlCdWZmZXIoYmFzZTY0U3RyaW5nKTtcblxuICAgICAgICBjb25zdCBmaWxlU3RyQXJyID0gYmFzZTY0U3RyaW5nLnNwbGl0KCc7Jyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gZmlsZVN0ckFyclswXS5zcGxpdCgnOicpWzFdO1xuXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5c10sIHsgdHlwZTogY29udGVudFR5cGUgfSk7XG4gICAgICAgIHJldHVybiBibG9iO1xuICAgIH1cblxuICAgIGdldEJhc2U2NEZpbGVTaXplKGJhc2U2NFN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGZpbGVTaXplOiBudW1iZXI7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGJhc2U2NFN0cmluZyA9IGJhc2U2NFN0cmluZy5zbGljZShiYXNlNjRTdHJpbmcuaW5kZXhPZignLCcpICsgMSk7XG4gICAgICAgICAgICBmaWxlU2l6ZSA9IHdpbmRvdy5hdG9iKGJhc2U2NFN0cmluZykubGVuZ3RoO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBmaWxlU2l6ZSA9IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbGVTaXplOyAvLyByZXR1cm4gc2l6ZSBpbiBieXRlcztcbiAgICB9XG5cbiAgICBmaWxlVG9CYXNlNjQoZmlsZTogRmlsZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZEZpbGVFeHRlbnNpb24oXG4gICAgICAgIGZpbGVFeHRlbnNpb24sXG4gICAgICAgIGFjY2VwdGVkRXh0ZW5zaW9uc1xuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBleHRlbnNpb25PSyA9XG4gICAgICAgICAgICBhY2NlcHRlZEV4dGVuc2lvbnMgPT09ICcnIHx8XG4gICAgICAgICAgICBhY2NlcHRlZEV4dGVuc2lvbnMuaW5kZXhPZihmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBleHRlbnNpb25PSztcbiAgICB9XG5cbiAgICBpc1ZhbGlkRmlsZVNpemUoXG4gICAgICAgIGZpbGVTdHIsXG4gICAgICAgIHNpemVMaW1pdE1CID0gNVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmaWxlOiBhbnkgPSBmaWxlU3RyO1xuICAgICAgICBsZXQgZmlsZVNpemUgPSAwO1xuICAgICAgICAvLyBjaGVjayBpZiBnb3QgZmlsZSBhcyBCYXNlNjRcbiAgICAgICAgaWYgKHR5cGVvZiBmaWxlU3RyID09PSAnc3RyaW5nJyAmJiBmaWxlU3RyLmluZGV4T2YoJ2RhdGE6JykgPiAtMSkge1xuICAgICAgICAgICAgZmlsZVNpemUgPSB0aGlzLmdldEJhc2U2NEZpbGVTaXplKGZpbGVTdHIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsZVNpemUgPSBmaWxlLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2hlY2sgdGhlIHNpemVcbiAgICAgICAgY29uc3Qgc2l6ZU9LOiBib29sZWFuID0gZmlsZVNpemUgIT09IC0xICYmIGZpbGUgIT0gbnVsbCAmJiBmaWxlU2l6ZSA8IHNpemVMaW1pdE1CICogMTA0ODU3NjtcbiAgICAgICAgcmV0dXJuIHNpemVPSztcbiAgICB9XG5cbiAgICBnZXRBc3NldHNQYXRoKGFzc2V0c0RvbWFpbiA9ICcnLCBsaWJOYW1lID0gJ25neC1saWInKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY29uY2F0Q2hhciA9XG4gICAgICAgICAgICBhc3NldHNEb21haW4gPT09ICcnIHx8IGFzc2V0c0RvbWFpbi5lbmRzV2l0aCgnLycpID8gJycgOiAnLyc7XG4gICAgICAgIHJldHVybiBgJHthc3NldHNEb21haW59JHtjb25jYXRDaGFyfWFzc2V0cy8ke2xpYk5hbWV9L2A7XG4gICAgfVxuXG4gICAgZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KGxpYk5hbWUgPSAnbmd4LWxpYicpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYC4ke2xpYk5hbWV9Lmpzb25gO1xuICAgIH1cblxuICAgIGdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYXNzZXRzRG9tYWluID0gJycsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRBc3NldHNQYXRoKGFzc2V0c0RvbWFpbiwgbGliTmFtZSl9aTE4bi9gO1xuICAgIH1cblxuICAgIGdldEFzc2V0c0ltYWdlc1BhdGgoYXNzZXRzRG9tYWluID0gJycsIGltYWdlID0gJycsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRBc3NldHNQYXRoKGFzc2V0c0RvbWFpbiwgbGliTmFtZSl9aW1hZ2VzLyR7aW1hZ2V9YDtcbiAgICB9XG5cbiAgICBnZXRTdmdBc0ltYWdlU3JjKHN2Zzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtzdmddLCB7IHR5cGU6ICdpbWFnZS9zdmcreG1sJyB9KTtcbiAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@ export class PepSessionService {
|
|
|
6
6
|
constructor(jwtHelper) {
|
|
7
7
|
this.jwtHelper = jwtHelper;
|
|
8
8
|
this.IDP_TOKEN_KEY = 'idp_token';
|
|
9
|
+
this.SESSION_TOKEN = 'sessionId';
|
|
9
10
|
this.PAPI_BASE_URL_KEY = 'pepperi.baseurl';
|
|
10
11
|
// private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';
|
|
11
12
|
// private readonly WAPI_TOKEN_KEY = 'auth_token';
|
|
@@ -56,6 +57,9 @@ export class PepSessionService {
|
|
|
56
57
|
getIdpToken() {
|
|
57
58
|
return this.getObject(this.IDP_TOKEN_KEY);
|
|
58
59
|
}
|
|
60
|
+
getSessionToken() {
|
|
61
|
+
return sessionStorage.getItem(this.SESSION_TOKEN);
|
|
62
|
+
}
|
|
59
63
|
getPapiBaseUrl() {
|
|
60
64
|
const tokenObj = this.getParseToken();
|
|
61
65
|
return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;
|
|
@@ -69,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
69
73
|
providedIn: 'root',
|
|
70
74
|
}]
|
|
71
75
|
}], ctorParameters: function () { return [{ type: i1.PepJwtHelperService }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8saUJBQWlCO0lBTzFCLCtFQUErRTtJQUUvRSxZQUFvQixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQVJqQyxrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN2RCxrRUFBa0U7UUFDbEUsa0RBQWtEO1FBQ2pDLHNCQUFpQixHQUFHLGVBQWUsQ0FBQyxDQUFDLHdCQUF3QjtJQUd6QixDQUFDO0lBRTlDLGFBQWE7UUFDakIsWUFBWTtRQUNaLDJ1REFBMnVEO1FBQzN1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsOEJBQThCO1FBRTlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELHVFQUF1RTtRQUN2RSwwREFBMEQ7UUFFMUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBSSxHQUFXLEVBQUUsTUFBUztRQUMvQixNQUFNLGlCQUFpQixHQUNuQixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxZQUFZLE1BQU07WUFDbEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxTQUFTLENBQVUsR0FBVztRQUMxQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxJQUFJO1lBQ0EsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xEO1FBQUMsTUFBTTtZQUNKLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDakI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELDBDQUEwQztJQUMxQyxJQUFJO0lBRUosMENBQTBDO0lBQzFDLDBDQUEwQztJQUMxQyxJQUFJO0lBRUosWUFBWSxDQUFDLEdBQVc7UUFDcEIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGtEQUFrRDtJQUNsRCxJQUFJO0lBRUosY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDOzs4R0E3RVEsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9qd3QtaGVscGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBTZXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBJRFBfVE9LRU5fS0VZID0gJ2lkcF90b2tlbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBTRVNTSU9OX1RPS0VOID0gJ3Nlc3Npb25JZCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBQQVBJX0JBU0VfVVJMX0tFWSA9ICdwZXBwZXJpLmJhc2V1cmwnO1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgQVBJX0JBU0VfVVJMX0tFWSA9ICdwZXBwZXJpLnB1YmxpY2FwaWJhc2V1cmwnO1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgV0FQSV9UT0tFTl9LRVkgPSAnYXV0aF90b2tlbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBXQVBJX0JBU0VfVVJMX0tFWSA9ICdzZXJ2ZXJIb3N0VVJMJzsgLy8gcGVwcGVyaS53ZWJhcGliYXNldXJsXG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBQRVBQRVJJX0NPTlNVTUVSX1RPS0VOOiAnWVkycEF3eDZFeG8yTFdYclVsbEY5eHpTZldGNTN3cWMnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBqd3RIZWxwZXI6IFBlcEp3dEhlbHBlclNlcnZpY2UpIHt9XG5cbiAgICBwcml2YXRlIGdldFBhcnNlVG9rZW4oKTogYW55IHtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIC8vIGNvbnN0IHRva2VuVGVzdCA9IFwiZXlKaGJHY2lPaUpTVXpJMU5pSXNJbXRwWkNJNklqUmlZVEZqTnpKbU1USTNOVGhqWXpFek16ZzNaV1EzWVRCaVpqTmxPRGczSWl3aWRIbHdJam9pU2xkVUluMC5leUp1WW1ZaU9qRTFPVFkzTWpVNU5qa3NJbVY0Y0NJNk1UVTVOamN5TmpJMk9Td2lhWE56SWpvaWFIUjBjSE02THk5cFpIQXVjMkZ1WkdKdmVDNXdaWEJ3WlhKcExtTnZiU0lzSW1GMVpDSTZJbkJsY0hCbGNta3VkMlZpWVhCd0xtRndjQzV6WVc1a1ltOTRMbkJsY0hCbGNta3VZMjl0SWl3aWFXRjBJam94TlRrMk56STFPVFk1TENKaGRGOW9ZWE5vSWpvaVNHdG1SWEowUTJKelEzTnpPVFZLVW0wNVZtSlRkeUlzSW5OcFpDSTZJakprTnpGaU0ySmlOV1V5TmpSaU5EazJZMkptWkRrek5tWXlOVE5oTldJeklpd2ljM1ZpSWpvaVpUSmtabVEwTURZdFpETTRZeTAwWm1Zd0xUaGhaR0l0TVdSbE1qSTNPREl6WVdFeUlpd2lZWFYwYUY5MGFXMWxJam94TlRrMk56RTRPREE1TENKcFpIQWlPaUpzYjJOaGJDSXNJbTVoYldVaU9pSmtZVzVwWld3Z1pHRjJhV1J2Wm1ZaUxDSmxiV0ZwYkNJNkltUmhibWxsYkM1a1FIQmxjSEJsY21sMFpYTjBMbU52YlNJc0luQmxjSEJsY21rdWFXUWlPamcyT1RBek1EUXNJbkJsY0hCbGNta3VkWE5sY25WMWFXUWlPaUpsTW1SbVpEUXdOaTFrTXpoakxUUm1aakF0T0dGa1lpMHhaR1V5TWpjNE1qTmhZVElpTENKd1pYQndaWEpwTG1ScGMzUnlhV0oxZEc5eWFXUWlPak13TURFeU16VXhMQ0p3WlhCd1pYSnBMbVJwYzNSeWFXSjFkRzl5ZFhWcFpDSTZJakJpWkRCbFpEYzVMVGhsT1dVdE5EUm1ZaTA1Tm1ZMExUaGxOVE5sWkRsalpUZ3lZaUlzSW5CbGNIQmxjbWt1WkdGMFlXTmxiblJsY2lJNkluTmhibVJpYjNnaUxDSndaWEJ3WlhKcExtdGxaWEJzYjJkcGJpSTZabUZzYzJVc0luQmxjSEJsY21rdWFXUnNaWFJwYldWM1pXSWlPakV5TUN3aWRYQmtZWFJsWkY5aGRDSTZNVFU1Tmpjd01qZ3dNQ3dpWjJsMlpXNWZibUZ0WlNJNkltUmhibWxsYkNJc0ltWmhiV2xzZVY5dVlXMWxJam9pWkdGMmFXUnZabVlpTENKd1pYQndaWEpwTG1Gd2FXNTBZbUZ6WlhWeWJDSTZJbWgwZEhCek9pOHZjbVZ6ZEdGd2FTNXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpY0dWd2NHVnlhUzUzWldKaGNHbGlZWE5sZFhKc0lqb2lhSFIwY0hNNkx5OTNaV0poY0drdWMyRnVaR0p2ZUM1d1pYQndaWEpwTG1OdmJTOVdNVFpmTlRBdlYyVmlRWEJ3WHpZaUxDSndaWEJ3WlhKcExuQjFZbXhwWTJGd2FXSmhjMlYxY213aU9pSm9kSFJ3Y3pvdkwyRndhUzF6WVc1a1ltOTRMbkJsY0hCbGNta3VZMjl0SWl3aWNHVndjR1Z5YVM1aVlYTmxkWEpzSWpvaWFIUjBjSE02THk5d1lYQnBMbk5oYm1SaWIzZ3VjR1Z3Y0dWeWFTNWpiMjB2VmpFdU1DSXNJbkJsY0hCbGNta3VaVzF3Ykc5NVpXVjBlWEJsSWpveExDSmhiWElpT2xzaWNIZGtJbDE5LnROdFpUM0NsNGRNbVRRZnRvYU8yS1A1QnZIT2xXR0lQLTVHcEhyQWhab3ltQmt4QlN4cEtwclFHcXIwQVR0UWxOSGpYM2dEVjFXNmtfYXZhU2t5SmdEaUIyaGN3cjF0TlJpbGFzTnVNek5WOTNneExDOU9oX0hka0lONGNaMGhhaEljSnZmXzE3UEhwUzh6RF9NUnd2R0dfaTQ1d1JZSkF0aUdYQ2h4Q016b29ldGhSc0xPcTVURXd1TmJFM014ZGpaT3BJbUdZeXl0bXNmZHNkSlJXUW4xTFF3UUJ0OTVzc3V5cGNVekJzVkIzNFA1WHVGdHRqQWU5ZGhUd0hJZmdzUEctVmRmQVdIX3ItaFZlODM0d0twS3JwbFNXbENfTXVjZ1MwWDRYUF90TjRDdExuSE8yd1hLUHNvanFTVEgyTlF5Y2ZxaDZZdlQ2cnpSREJFZFFJUVwiO1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0SWRwVG9rZW4oKTtcbiAgICAgICAgLy8gdG9rZW4gPSB0b2tlbiB8fCB0b2tlblRlc3Q7XG5cbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5qd3RIZWxwZXIuZGVjb2RlVG9rZW4odG9rZW4pO1xuICAgICAgICAvLyBjb25zdCBleHBpcmF0aW9uRGF0ZSA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xuICAgICAgICAvLyBjb25zdCBpc0V4cGlyZWQgPSB0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbik7XG5cbiAgICAgICAgcmV0dXJuIGRlY29kZWRUb2tlbjtcbiAgICB9XG5cbiAgICBzZXRPYmplY3Q8VD4oa2V5OiBzdHJpbmcsIG9iamVjdDogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdHJpbmdpZmllZE9iamVjdCA9XG4gICAgICAgICAgICB0eXBlb2Ygb2JqZWN0ID09PSAnc3RyaW5nJyB8fCBvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmdcbiAgICAgICAgICAgICAgICA/IG9iamVjdFxuICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkob2JqZWN0KTtcblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGtleSwgc3RyaW5naWZpZWRPYmplY3QudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgZ2V0T2JqZWN0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogVCB7XG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgICAgICBjb25zdCBpdGVtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBpdGVtID8gKEpTT04ucGFyc2UoaXRlbSkgYXMgVCkgOiBpdGVtO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIHNldE9iamVjdChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgIC8vIH1cblxuICAgIC8vIGdldE9iamVjdChrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIC8vICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgIC8vIH1cblxuICAgIHJlbW92ZU9iamVjdChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfVxuXG4gICAgLy8gZ2V0V2FwaVRva2VuKCk6IHN0cmluZyB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmdldE9iamVjdCh0aGlzLldBUElfVE9LRU5fS0VZKTtcbiAgICAvLyB9XG5cbiAgICBnZXRXYXBpQmFzZVVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3QodGhpcy5XQVBJX0JBU0VfVVJMX0tFWSk7XG4gICAgfVxuXG4gICAgZ2V0SWRwVG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuSURQX1RPS0VOX0tFWSk7XG4gICAgfVxuXG4gICAgZ2V0U2Vzc2lvblRva2VuKCkge1xuICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlNFU1NJT05fVE9LRU4pO1xuICAgIH1cblxuICAgIGdldFBhcGlCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHRva2VuT2JqID0gdGhpcy5nZXRQYXJzZVRva2VuKCk7XG4gICAgICAgIHJldHVybiB0b2tlbk9iaiA/IHRva2VuT2JqW3RoaXMuUEFQSV9CQVNFX1VSTF9LRVldIDogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBnZXRBcGlCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgLy8gICAgIGNvbnN0IHRva2VuT2JqID0gdGhpcy5nZXRQYXJzZVRva2VuKCk7XG4gICAgLy8gICAgIHJldHVybiB0b2tlbk9iaiA/IHRva2VuT2JqW3RoaXMuQVBJX0JBU0VfVVJMX0tFWV0gOiBudWxsO1xuICAgIC8vIH1cbn1cbiJdfQ==
|