@po-ui/ng-components 17.0.0 → 17.1.0
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/esm2022/lib/components/po-accordion/po-accordion-base.component.mjs +36 -2
- package/esm2022/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.mjs +2 -2
- package/esm2022/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.mjs +1 -1
- package/esm2022/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.mjs +1 -1
- package/esm2022/lib/components/po-accordion/po-accordion-manager/po-accordion-manager.component.mjs +1 -1
- package/esm2022/lib/components/po-avatar/po-avatar-base.component.mjs +1 -1
- package/esm2022/lib/components/po-badge/po-badge-base.component.mjs +2 -2
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-base.component.mjs +17 -2
- package/esm2022/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.mjs +2 -2
- package/esm2022/lib/components/po-button/po-button-base.component.mjs +47 -2
- package/esm2022/lib/components/po-button-group/po-button-group-base.component.mjs +36 -2
- package/esm2022/lib/components/po-calendar/po-calendar-base.component.mjs +1 -1
- package/esm2022/lib/components/po-calendar/po-calendar-header/po-calendar-header.component.mjs +1 -1
- package/esm2022/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.mjs +2 -2
- package/esm2022/lib/components/po-chart/po-chart-base.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-label/po-chart-axis-label.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-path/po-chart-axis-path.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-base.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-path/po-chart-bar-path.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-label/po-chart-circular-label.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-circular-path.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-tooltip.directive.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-container.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.mjs +1 -1
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-path/po-chart-path.component.mjs +2 -2
- package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.mjs +2 -2
- package/esm2022/lib/components/po-chart/po-chart-legend/po-chart-legend.component.mjs +1 -1
- package/esm2022/lib/components/po-container/po-container-base.component.mjs +18 -2
- package/esm2022/lib/components/po-disclaimer/po-disclaimer-base.component.mjs +1 -1
- package/esm2022/lib/components/po-disclaimer-group/po-disclaimer-group-base.component.mjs +1 -1
- package/esm2022/lib/components/po-disclaimer-group/po-disclaimer-remove/po-disclaimer-remove.component.mjs +1 -1
- package/esm2022/lib/components/po-divider/po-divider-base.component.mjs +15 -2
- package/esm2022/lib/components/po-dropdown/po-dropdown-base.component.mjs +30 -2
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.mjs +2 -2
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +80 -33
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.mjs +5 -3
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-checkbox/po-checkbox-base.component.mjs +24 -2
- package/esm2022/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-clean/po-clean-base.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +38 -2
- package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +2 -6
- package/esm2022/lib/components/po-field/po-datepicker/po-datepicker-base.component.mjs +31 -2
- package/esm2022/lib/components/po-field/po-datepicker/po-datepicker.component.mjs +6 -4
- package/esm2022/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-decimal/po-decimal.component.mjs +3 -4
- package/esm2022/lib/components/po-field/po-email/po-email.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-field-container/po-field-container-bottom/po-field-container-bottom.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-field-container/po-field-container.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-field-validate.model.mjs +2 -2
- package/esm2022/lib/components/po-field/po-field.model.mjs +2 -2
- package/esm2022/lib/components/po-field/po-input/po-input-base.component.mjs +31 -2
- package/esm2022/lib/components/po-field/po-login/po-login.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -3
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +29 -2
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-number/po-number.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-password/po-password.component.mjs +3 -3
- package/esm2022/lib/components/po-field/po-radio/po-radio.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-radio-group/po-radio-group-base.component.mjs +27 -2
- package/esm2022/lib/components/po-field/po-radio-group/po-radio-group.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-body/po-rich-text-body.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-image-modal/po-rich-text-image-modal.component.mjs +7 -5
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-link-modal/po-rich-text-link-modal.component.mjs +8 -5
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-select/po-select.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-switch/po-switch.component.mjs +28 -3
- package/esm2022/lib/components/po-field/po-textarea/po-textarea-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-upload/po-upload-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area/po-upload-drag-drop-area.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area-overlay/po-upload-drag-drop-area-overlay.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.directive.mjs +2 -2
- package/esm2022/lib/components/po-field/po-upload/po-upload-file-restrictions/po-upload-file-restrictions.component.mjs +1 -1
- package/esm2022/lib/components/po-field/po-url/po-url.component.mjs +2 -2
- package/esm2022/lib/components/po-gauge/po-gauge-base.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-description/po-gauge-description.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-legend/po-gauge-legend.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-svg/po-gauge-path/po-gauge-path.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-svg/po-gauge-pointer/po-gauge-pointer.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-svg/po-gauge-svg.component.mjs +1 -1
- package/esm2022/lib/components/po-gauge/po-gauge-title/po-gauge-title.component.mjs +1 -1
- package/esm2022/lib/components/po-grid/po-grid-cell/po-grid-cell.component.mjs +6 -4
- package/esm2022/lib/components/po-grid/po-grid-cell-action/po-grid-cell-action.component.mjs +1 -1
- package/esm2022/lib/components/po-grid/po-grid-head/po-grid-head.component.mjs +1 -1
- package/esm2022/lib/components/po-grid/po-grid.component.mjs +9 -6
- package/esm2022/lib/components/po-icon/po-icon.component.mjs +1 -1
- package/esm2022/lib/components/po-image/po-image-base.component.mjs +1 -1
- package/esm2022/lib/components/po-info/po-info-base.component.mjs +1 -1
- package/esm2022/lib/components/po-label/po-label.component.mjs +1 -1
- package/esm2022/lib/components/po-link/po-link-base.component.mjs +23 -2
- package/esm2022/lib/components/po-list-view/po-list-view-base.component.mjs +1 -1
- package/esm2022/lib/components/po-list-view/po-list-view-content-template/po-list-view-content-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-list-view/po-list-view-detail-template/po-list-view-detail-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-list-view/po-list-view.component.mjs +8 -5
- package/esm2022/lib/components/po-listbox/po-item-list/po-item-list-base.component.mjs +2 -2
- package/esm2022/lib/components/po-listbox/po-listbox-base.component.mjs +2 -2
- package/esm2022/lib/components/po-listbox/po-search-list/po-search-list.component.mjs +1 -1
- package/esm2022/lib/components/po-loading/po-loading-base.component.mjs +1 -1
- package/esm2022/lib/components/po-loading/po-loading-icon/po-loading-icon.component.mjs +1 -1
- package/esm2022/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.mjs +24 -2
- package/esm2022/lib/components/po-logo/po-logo.component.mjs +1 -1
- package/esm2022/lib/components/po-menu/po-menu-base.component.mjs +43 -2
- package/esm2022/lib/components/po-menu/po-menu-filter/po-menu-filter.component.mjs +1 -1
- package/esm2022/lib/components/po-menu/po-menu-item/po-menu-item.component.mjs +1 -1
- package/esm2022/lib/components/po-menu-panel/po-menu-panel-base.component.mjs +1 -1
- package/esm2022/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.component.mjs +1 -1
- package/esm2022/lib/components/po-modal/po-modal-base.component.mjs +21 -2
- package/esm2022/lib/components/po-modal/po-modal-footer/po-modal-footer.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-actions/po-navbar-action/po-navbar-action.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-actions/po-navbar-action-popup/po-navbar-action-popup.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-base.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation-icon/po-navbar-item-navigation-icon.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-items/po-navbar-item/po-navbar-item.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-items/po-navbar-items.component.mjs +1 -1
- package/esm2022/lib/components/po-navbar/po-navbar-logo/po-navbar-logo.component.mjs +1 -1
- package/esm2022/lib/components/po-overlay/po-overlay-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page/po-page-default/po-page-default-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-detail/po-page-detail-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-edit/po-page-edit-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-header/po-page-header-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-list/po-page-list-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-slide/po-page-slide-base.component.mjs +2 -2
- package/esm2022/lib/components/po-popover/po-popover-base.component.mjs +1 -1
- package/esm2022/lib/components/po-popup/po-popup-base.component.mjs +39 -2
- package/esm2022/lib/components/po-progress/po-progress-bar/po-progress-bar.component.mjs +1 -1
- package/esm2022/lib/components/po-progress/po-progress-base.component.mjs +21 -2
- package/esm2022/lib/components/po-search/po-search-base.component.mjs +33 -2
- package/esm2022/lib/components/po-slide/po-slide-base.component.mjs +2 -2
- package/esm2022/lib/components/po-slide/po-slide-circles/po-slide-circles.component.mjs +1 -1
- package/esm2022/lib/components/po-slide/po-slide-control/po-slide-control.component.mjs +1 -1
- package/esm2022/lib/components/po-slide/po-slide-item/po-slide-item.component.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-step/po-step.component.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-stepper-base.component.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-base.component.mjs +33 -2
- package/esm2022/lib/components/po-table/po-table-column-frozen/po-table-column-frozen.directive.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-column-icon/po-table-column-icon.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-column-label/po-table-column-label.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-column-link/po-table-column-link.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +6 -4
- package/esm2022/lib/components/po-table/po-table-column-template/po-table-column-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-detail/po-table-detail.component.mjs +5 -4
- package/esm2022/lib/components/po-table/po-table-icon/po-table-icon.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-list-manager/po-table-list-manager.component.mjs +2 -2
- package/esm2022/lib/components/po-table/po-table-row-template/po-table-row-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-show-subtitle/po-table-show-subtitle.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-subtitle-circle/po-table-subtitle-circle.component.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-footer.component.mjs +1 -1
- package/esm2022/lib/components/po-tabs/po-tab/po-tab-base.component.mjs +1 -1
- package/esm2022/lib/components/po-tabs/po-tab-button/po-tab-button.component.mjs +1 -1
- package/esm2022/lib/components/po-tabs/po-tab-dropdown/po-tab-dropdown.component.mjs +1 -1
- package/esm2022/lib/components/po-tabs/po-tabs-base.component.mjs +29 -2
- package/esm2022/lib/components/po-tag/po-tag-base.component.mjs +45 -2
- package/esm2022/lib/components/po-toolbar/po-toolbar-actions/po-toolbar-actions.component.mjs +1 -1
- package/esm2022/lib/components/po-toolbar/po-toolbar-base.component.mjs +1 -1
- package/esm2022/lib/components/po-toolbar/po-toolbar-notification/po-toolbar-notification.component.mjs +2 -2
- package/esm2022/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.component.mjs +2 -2
- package/esm2022/lib/components/po-tree-view/po-tree-view-base.component.mjs +1 -1
- package/esm2022/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.mjs +1 -1
- package/esm2022/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.mjs +12 -6
- package/esm2022/lib/components/po-widget/po-widget-base.component.mjs +28 -2
- package/esm2022/lib/directives/po-tooltip/po-tooltip-base.directive.mjs +17 -2
- package/fesm2022/po-ui-ng-components.mjs +1018 -239
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-accordion/po-accordion-base.component.d.ts +34 -0
- package/lib/components/po-breadcrumb/po-breadcrumb-base.component.d.ts +15 -0
- package/lib/components/po-button/po-button-base.component.d.ts +45 -0
- package/lib/components/po-button-group/po-button-group-base.component.d.ts +34 -0
- package/lib/components/po-container/po-container-base.component.d.ts +16 -0
- package/lib/components/po-divider/po-divider-base.component.d.ts +13 -0
- package/lib/components/po-dropdown/po-dropdown-base.component.d.ts +28 -0
- package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +22 -0
- package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +36 -0
- package/lib/components/po-field/po-combo/po-combo.component.d.ts +0 -4
- package/lib/components/po-field/po-datepicker/po-datepicker-base.component.d.ts +29 -0
- package/lib/components/po-field/po-decimal/po-decimal.component.d.ts +0 -1
- package/lib/components/po-field/po-email/po-email.component.d.ts +1 -1
- package/lib/components/po-field/po-input/po-input-base.component.d.ts +29 -0
- package/lib/components/po-field/po-login/po-login.component.d.ts +1 -1
- package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +27 -0
- package/lib/components/po-field/po-password/po-password.component.d.ts +1 -1
- package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +25 -0
- package/lib/components/po-field/po-switch/po-switch.component.d.ts +25 -0
- package/lib/components/po-field/po-url/po-url.component.d.ts +1 -1
- package/lib/components/po-link/po-link-base.component.d.ts +21 -0
- package/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.d.ts +22 -0
- package/lib/components/po-menu/po-menu-base.component.d.ts +41 -0
- package/lib/components/po-modal/po-modal-base.component.d.ts +19 -0
- package/lib/components/po-popup/po-popup-base.component.d.ts +37 -0
- package/lib/components/po-progress/po-progress-base.component.d.ts +19 -0
- package/lib/components/po-search/po-search-base.component.d.ts +31 -0
- package/lib/components/po-table/po-table-base.component.d.ts +31 -0
- package/lib/components/po-tabs/po-tabs-base.component.d.ts +27 -0
- package/lib/components/po-tag/po-tag-base.component.d.ts +43 -0
- package/lib/components/po-widget/po-widget-base.component.d.ts +26 -0
- package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +15 -0
- package/package.json +15 -14
- package/po-ui-ng-components-17.1.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-17.0.0.tgz +0 -0
|
@@ -40,7 +40,6 @@ const poDecimalTotalLengthLimit = 16;
|
|
|
40
40
|
*
|
|
41
41
|
* @description
|
|
42
42
|
*
|
|
43
|
-
* <br>
|
|
44
43
|
* - O `po-decimal` é um *input* específico para receber apenas números decimais, por isso recebe as seguintes características:
|
|
45
44
|
* + Aceita apenas números;
|
|
46
45
|
* + Utiliza ',' como separador de decimal;
|
|
@@ -626,7 +625,7 @@ export class PoDecimalComponent extends PoInputBaseComponent {
|
|
|
626
625
|
} if (rf & 2) {
|
|
627
626
|
let _t;
|
|
628
627
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputEl = _t.first);
|
|
629
|
-
} }, inputs: { decimalsLength: ["p-decimals-length", "decimalsLength"], thousandMaxlength: ["p-thousand-maxlength", "thousandMaxlength"], locale: ["p-locale", "locale"], min: ["p-min", "min"], max: ["p-max", "max"] }, features: [i0.ɵɵProvidersFeature([
|
|
628
|
+
} }, inputs: { decimalsLength: [i0.ɵɵInputFlags.None, "p-decimals-length", "decimalsLength"], thousandMaxlength: [i0.ɵɵInputFlags.None, "p-thousand-maxlength", "thousandMaxlength"], locale: [i0.ɵɵInputFlags.None, "p-locale", "locale"], min: [i0.ɵɵInputFlags.None, "p-min", "min"], max: [i0.ɵɵInputFlags.None, "p-max", "max"] }, features: [i0.ɵɵProvidersFeature([
|
|
630
629
|
{
|
|
631
630
|
provide: NG_VALUE_ACCESSOR,
|
|
632
631
|
useExisting: forwardRef(() => PoDecimalComponent),
|
|
@@ -695,5 +694,5 @@ export class PoDecimalComponent extends PoInputBaseComponent {
|
|
|
695
694
|
type: Input,
|
|
696
695
|
args: ['p-max']
|
|
697
696
|
}] }); })();
|
|
698
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDecimalComponent, { className: "PoDecimalComponent", filePath: "lib/components/po-field/po-decimal/po-decimal.component.ts", lineNumber:
|
|
699
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZGVjaW1hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tZGVjaW1hbC9wby1kZWNpbWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1kZWNpbWFsL3BvLWRlY2ltYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7SUNSdkUsOEJBQXVEO0lBQ3JELDZCQUFpSDtJQUNuSCxpQkFBTTs7O0lBRHlDLGNBQXlDO0lBQXpDLHlEQUF5QztJQUFDLG9DQUFlOzs7O0lBMEJ0RyxvQ0FLQztJQURDLDhMQUFrQixlQUFBLG9CQUFhLENBQUEsSUFBQztJQUVsQyxpQkFBVzs7O0lBSFQsOENBQXlCOztBRHBCakMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUM7QUFDekMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDdEMsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFF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WUFIN0IsOEJBQWdCLGdCQUFBLGtCQUFBO1lBc0JiLGVBQXFDO1lBQXJDLGtFQUFxQztZQVFqQixjQUFlO1lBQWYsaUNBQWUsNEJBQUEsaURBQUE7OztpRkRtQy9CLGtCQUFrQjtjQWpCOUIsU0FBUzsyQkFDRSxZQUFZLG1CQUVMLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7d0JBQ2pELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzt3QkFDakQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7MkdBR3FELE9BQU87a0JBQTVELFNBQVM7bUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBMENwQixjQUFjO2tCQUE3QyxLQUFLO21CQUFDLG1CQUFtQjtZQWdDUyxpQkFBaUI7a0JBQW5ELEtBQUs7bUJBQUMsc0JBQXNCO1lBaUNOLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVTtZQVlHLEdBQUc7a0JBQXRCLEtBQUs7bUJBQUMsT0FBTztZQXVCTSxHQUFHO2tCQUF0QixLQUFLO21CQUFDLE9BQU87O2tGQS9JSCxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IG1pbkZhaWxlZCwgbWF4RmFpbGVkLCBtYXhsZW5ncG9haWxlZCB9IGZyb20gJy4uL3ZhbGlkYXRvcnMnO1xuXG5pbXBvcnQgeyBjb252ZXJ0VG9JbnQsIHV1aWQgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvSW5wdXRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcG8taW5wdXQvcG8taW5wdXQtYmFzZS5jb21wb25lbnQnO1xuXG5jb25zdCBwb0RlY2ltYWxEZWZhdWx0RGVjaW1hbHNMZW5ndGggPSAyO1xuY29uc3QgcG9EZWNpbWFsRGVmYXVsdFRob3VzYW5kTWF4bGVuZ3RoID0gMTM7XG5jb25zdCBwb0RlY2ltYWxNYXhEZWNpbWFsc0xlbmd0aCA9IDE1O1xuY29uc3QgcG9EZWNpbWFsVG90YWxMZW5ndGhMaW1pdCA9IDE2O1xuXG4vKipcbiAqXG4gKiBAZG9jc0V4dGVuZHMgUG9JbnB1dEJhc2VDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiA8YnI+XG4gKiAtIE8gYHBvLWRlY2ltYWxgIMOpIHVtICppbnB1dCogZXNwZWPDrWZpY28gcGFyYSByZWNlYmVyIGFwZW5hcyBuw7ptZXJvcyBkZWNpbWFpcywgcG9yIGlzc28gcmVjZWJlIGFzIHNlZ3VpbnRlcyBjYXJhY3RlcsOtc3RpY2FzOlxuICogICsgQWNlaXRhIGFwZW5hcyBuw7ptZXJvcztcbiAqICArIFV0aWxpemEgJywnIGNvbW8gc2VwYXJhZG9yIGRlIGRlY2ltYWw7XG4gKiAgKyBVdGlsaXphICcuJyBwYXJhIHNlcGFyYcOnw6NvIGRlIG1pbGhhcjtcbiAqICArIMOJIHBvc3PDrXZlbCBjb25maWd1cmFyIGEgcXVhbnRpZGFkZSBkZSBjYXNhcyBkZWNpbWFpcyBlIGEgcXVhbnRpZGFkZSBkZSBkaWdpdG9zIGRvIGNhbXBvLlxuICpcbiAqID4gKipJbXBvcnRhbnRlOioqXG4gKiBBdHVhbG1lbnRlIG8gSmF2YVNjcmlwdCBsaW1pdGEtc2UgYSB1bSBjb25qdW50byBkZSBkYWRvcyBkZSBgMzIgYml0c2AsIGUgcGFyYSBxdWUgb3MgdmFsb3JlcyBjb21wb3J0ZW0tc2UgZGV2aWRhbWVudGUsXG4gKiBvIGBwby1kZWNpbWFsYCBjb250w6ltIHVtIHRyYXRhbWVudG8gcXVlIGxpbWl0YSBlbSAxNiBvIG7Dum1lcm8gdG90YWwgZGUgY2FzYXMgYW50ZXMgZSBhcMOzcyBhIHbDrXJndWxhLlxuICogVmVqYSBhYmFpeG8gYXMgZGVtYWlzIHJlZ3JhcyBuYXMgZG9jdW1lbnRhw6fDtWVzIGRlIGBwLWRlY2ltYWxzLWxlbmd0aGAgZSBgcC10aG91c2FuZC1tYXhsZW5ndGhgLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWRlY2ltYWwtYmFzaWNcIiB0aXRsZT1cIlBPIERlY2ltYWwgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWRlY2ltYWwtYmFzaWMvc2FtcGxlLXBvLWRlY2ltYWwtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1iYXNpYy9zYW1wbGUtcG8tZGVjaW1hbC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1kZWNpbWFsLWxhYnNcIiB0aXRsZT1cIlBPIERlY2ltYWwgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1sYWJzL3NhbXBsZS1wby1kZWNpbWFsLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1sYWJzL3NhbXBsZS1wby1kZWNpbWFsLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZGVjaW1hbC1ob3VybHktd2FnZVwiIHRpdGxlPVwiUE8gRGVjaW1hbCAtIEhvdXJseSBXYWdlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlL3NhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2Uvc2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2UuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZGVjaW1hbC1ob3VybHktd2FnZS1yZWFjdGl2ZS1mb3JtXCIgdGl0bGU9XCJQTyBEZWNpbWFsIC0gSG91cmx5IFdhZ2UgUmVhY3RpdmUgRm9ybVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1ob3VybHktd2FnZS1yZWFjdGl2ZS1mb3JtL3NhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1ob3VybHktd2FnZS1yZWFjdGl2ZS1mb3JtL3NhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tZGVjaW1hbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1kZWNpbWFsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9EZWNpbWFsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9EZWNpbWFsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBvRGVjaW1hbENvbXBvbmVudCBleHRlbmRzIFBvSW5wdXRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnaW5wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcblxuICBpZCA9IGBwby1kZWNpbWFsWyR7dXVpZCgpfV1gO1xuXG4gIHByaXZhdGUgX2RlY2ltYWxzTGVuZ3RoPzogbnVtYmVyID0gcG9EZWNpbWFsRGVmYXVsdERlY2ltYWxzTGVuZ3RoO1xuICBwcml2YXRlIF90aG91c2FuZE1heGxlbmd0aD86IG51bWJlciA9IHBvRGVjaW1hbERlZmF1bHRUaG91c2FuZE1heGxlbmd0aDtcbiAgcHJpdmF0ZSBfbG9jYWxlPzogc3RyaW5nO1xuICBwcml2YXRlIF9taW4/OiBudW1iZXI7XG4gIHByaXZhdGUgX21heD86IG51bWJlcjtcblxuICBwcml2YXRlIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZztcbiAgcHJpdmF0ZSBmaXJlQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNLZXlib2FyZEFuZHJvaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBtaW51c1NpZ246IHN0cmluZyA9ICctJztcbiAgcHJpdmF0ZSBvbGREb3RzTGVuZ3RoID0gbnVsbDtcbiAgcHJpdmF0ZSB0aG91c2FuZFNlcGFyYXRvcjogc3RyaW5nO1xuICBwcml2YXRlIHZhbHVlQmVmb3JlQ2hhbmdlOiBhbnk7XG5cbiAgcHJpdmF0ZSByZWdleCA9IHtcbiAgICB0aG91c2FuZDogbmV3IFJlZ0V4cCgnXFxcXCcgKyAnLCcsICdnJyksXG4gICAgZGVjaW1hbDogbmV3IFJlZ0V4cCgnXFxcXCcgKyAnLicsICdnJylcbiAgfTtcblxuICBnZXQgYXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLm5vQXV0b2NvbXBsZXRlID8gJ29mZicgOiAnb24nO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUXVhbnRpZGFkZSBtw6F4aW1hIGRlIGNhc2FzIGRlY2ltYWlzLlxuICAgKlxuICAgKiA+ICoqSW1wb3J0YW50ZToqKlxuICAgKiAtIE8gdmFsb3IgbcOheGltbyBwZXJtaXRpZG8gw6kgMTU7XG4gICAqIC0gQSBzb21hIHRvdGFsIGRlIGBwLWRlY2ltYWxzLWxlbmd0aGAgY29tIGBwLXRob3VzYW5kLW1heGxlbmd0aGAgbGltaXRhLXNlIMOgIDE2O1xuICAgKiAtIEVzdGEgcHJvcHJpZWRhZGUgc29icmVww7VlIGFwZW5hcyBvIHZhbG9yICoqcGFkcsOjbyoqIGRlIGBwLXRob3VzYW5kLW1heGxlbmd0aGA7XG4gICAqIC0gQ2FzbyBgcC10aG91c2FuZC1tYXhsZW5ndGhgIHRlbmhhIHVtIHZhbG9yIGRlZmluaWRvLCBlc3RhIHByb3ByaWVkYWRlIHBvZGVyw6EgcmVjZWJlciBhcGVuYXMgbyB2YWxvciByZXN0YW50ZSBkbyBsaW1pdGUgdG90YWwgKDE2KS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDJgXG4gICAqL1xuICBASW5wdXQoJ3AtZGVjaW1hbHMtbGVuZ3RoJykgc2V0IGRlY2ltYWxzTGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICBsZXQgZGVjaW1hbHNMZW5ndGggPSBjb252ZXJ0VG9JbnQodmFsdWUpO1xuXG4gICAgZGVjaW1hbHNMZW5ndGggPSB0aGlzLmlzVmFsdWVCZXR3ZWVuQWxsb3dlZChkZWNpbWFsc0xlbmd0aCwgcG9EZWNpbWFsTWF4RGVjaW1hbHNMZW5ndGgpXG4gICAgICA/IGRlY2ltYWxzTGVuZ3RoXG4gICAgICA6IHBvRGVjaW1hbERlZmF1bHREZWNpbWFsc0xlbmd0aDtcblxuICAgIGlmICh0aGlzLmlzR3JlYXRlclRoYW5Ub3RhbExlbmd0aExpbWl0KGRlY2ltYWxzTGVuZ3RoLCB0aGlzLnRob3VzYW5kTWF4bGVuZ3RoKSkge1xuICAgICAgdGhpcy50aG91c2FuZE1heGxlbmd0aCA9IHBvRGVjaW1hbFRvdGFsTGVuZ3RoTGltaXQgLSBkZWNpbWFsc0xlbmd0aDtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWNpbWFsc0xlbmd0aCA9IGRlY2ltYWxzTGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGRlY2ltYWxzTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWNpbWFsc0xlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFF1YW50aWRhZGUgbcOheGltYSBkZSBkw61naXRvcyBhbnRlcyBkbyBzZXBhcmFkb3IgZGVjaW1hbC5cbiAgICpcbiAgICogPiAqKkltcG9ydGFudGU6KipcbiAgICogLSBPIHZhbG9yIG3DoXhpbW8gcGVybWl0aWRvIMOpIDEzO1xuICAgKiAtIEEgc29tYSB0b3RhbCBkZSBgcC1kZWNpbWFscy1sZW5ndGhgIGNvbSBgcC10aG91c2FuZC1tYXhsZW5ndGhgIGxpbWl0YS1zZSDDoCAxNjtcbiAgICogLSBFc3RhIHByb3ByaWVkYWRlIHNvYnJlcMO1ZSBvIHZhbG9yIGRlZmluaWRvIGVtIGBwLWRlY2ltYWxzLWxlbmd0aGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxM2BcbiAgICovXG4gIEBJbnB1dCgncC10aG91c2FuZC1tYXhsZW5ndGgnKSBzZXQgdGhvdXNhbmRNYXhsZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIGxldCB0aG91c2FuZE1heGxlbmd0aCA9IGNvbnZlcnRUb0ludCh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5kZWNpbWFsc0xlbmd0aCA+IHBvRGVjaW1hbERlZmF1bHREZWNpbWFsc0xlbmd0aCAmJiAhdGhvdXNhbmRNYXhsZW5ndGgpIHtcbiAgICAgIHRob3VzYW5kTWF4bGVuZ3RoID0gcG9EZWNpbWFsVG90YWxMZW5ndGhMaW1pdCAtIHRoaXMuZGVjaW1hbHNMZW5ndGg7XG4gICAgfVxuXG4gICAgdGhvdXNhbmRNYXhsZW5ndGggPSB0aGlzLmlzVmFsdWVCZXR3ZWVuQWxsb3dlZCh0aG91c2FuZE1heGxlbmd0aCwgcG9EZWNpbWFsRGVmYXVsdFRob3VzYW5kTWF4bGVuZ3RoKVxuICAgICAgPyB0aG91c2FuZE1heGxlbmd0aFxuICAgICAgOiBwb0RlY2ltYWxEZWZhdWx0VGhvdXNhbmRNYXhsZW5ndGg7XG5cbiAgICBpZiAodGhpcy5pc0dyZWF0ZXJUaGFuVG90YWxMZW5ndGhMaW1pdCh0aGlzLmRlY2ltYWxzTGVuZ3RoLCB0aG91c2FuZE1heGxlbmd0aCkpIHtcbiAgICAgIHRoaXMuZGVjaW1hbHNMZW5ndGggPSBwb0RlY2ltYWxUb3RhbExlbmd0aExpbWl0IC0gdGhvdXNhbmRNYXhsZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5fdGhvdXNhbmRNYXhsZW5ndGggPSB0aG91c2FuZE1heGxlbmd0aDtcbiAgfVxuXG4gIGdldCB0aG91c2FuZE1heGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRNYXhsZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmZvcm1hIG8gbG9jYWxlKHBhw61zKSBwYXJhIGEgZm9ybWF0YcOnw6NvIGRvIHZhbG9yLlxuICAgKiBQb3IgcGFkcsOjbyBvIHZhbG9yIHNlcsOhIGNvbmZpZ3VyYWRvIHNlZ3VuZG8gYSBvIG3Ds2R1bG8gW2BJMThuYF0oZG9jdW1lbnRhdGlvbi9wby1pMThuKVxuICAgKlxuICAgKiA+IFBhcmEgdmVyIHF1YWlzIGxpbmd1YWdlbnMgc3Vwb3J0YWRhcyBhY2Vzc2UgW2BJMThuYF0oZG9jdW1lbnRhdGlvbi9wby1pMThuKVxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWxvY2FsZScpIHNldCBsb2NhbGUobG9jYWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb2NhbGUgPSBsb2NhbGU7XG4gICAgdGhpcy5zZXROdW1iZXJzU2VwYXJhdG9ycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVmFsb3IgbcOtbmltby5cbiAgICovXG4gIEBJbnB1dCgncC1taW4nKSBzZXQgbWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhpcy5fbWluID0gdmFsdWU7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9taW4gPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVmFsb3IgbcOheGltby5cbiAgICovXG4gIEBJbnB1dCgncC1tYXgnKSBzZXQgbWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhpcy5fbWF4ID0gdmFsdWU7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXggPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoY2QpO1xuICAgIHRoaXMuaXNLZXlib2FyZEFuZHJvaWQgPSAhIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FuZHJvaWQvaSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldE51bWJlcnNTZXBhcmF0b3JzKCk7XG4gIH1cblxuICBzZXROdW1iZXJzU2VwYXJhdG9ycygpIHtcbiAgICBjb25zdCB7IGRlY2ltYWxTZXBhcmF0b3IsIHRob3VzYW5kU2VwYXJhdG9yIH0gPSB0aGlzLnBvTGFuZ3VhZ2VTZXJ2aWNlLmdldE51bWJlclNlcGFyYXRvcnModGhpcy5fbG9jYWxlKTtcbiAgICB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yO1xuICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3IgPSB0aG91c2FuZFNlcGFyYXRvcjtcbiAgICB0aGlzLnJlZ2V4ID0ge1xuICAgICAgdGhvdXNhbmQ6IG5ldyBSZWdFeHAoJ1xcXFwnICsgdGhvdXNhbmRTZXBhcmF0b3IsICdnJyksXG4gICAgICBkZWNpbWFsOiBuZXcgUmVnRXhwKCdcXFxcJyArIGRlY2ltYWxTZXBhcmF0b3IsICdnJylcbiAgICB9O1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudmVyaWZ5QXV0b0ZvY3VzKCk7XG4gICAgdGhpcy5zZXRQYWRkaW5nSW5wdXQoKTtcbiAgfVxuXG4gIGNsZWFyKHZhbHVlKSB7XG4gICAgdGhpcy5jYWxsT25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMuY29udHJvbENoYW5nZUVtaXR0ZXIoKTtcbiAgfVxuXG4gIGV4dHJhVmFsaWRhdGlvbihhYnN0cmFjdENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IHZhbHVlID0gYWJzdHJhY3RDb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRob3VzYW5kVmFsdWUgPSBNYXRoLnRydW5jKHZhbHVlKTtcblxuICAgIC8vIFZlcmlmaWNhIHNlIGrDoSBwb3NzdWkgYWxndW0gZXJyb3IgcGF0dGVybiBwYWRyw6NvLlxuICAgIHRoaXMuZXJyb3JQYXR0ZXJuID0gdGhpcy5lcnJvclBhdHRlcm4gIT09ICdWYWxvciBJbnbDoWxpZG8nID8gdGhpcy5lcnJvclBhdHRlcm4gOiAnJztcblxuICAgIGlmIChtaW5GYWlsZWQodGhpcy5taW4sIHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG1heEZhaWxlZCh0aGlzLm1heCwgdmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAobWF4bGVuZ3BvYWlsZWQodGhpcy50aG91c2FuZE1heGxlbmd0aCwgdGhvdXNhbmRWYWx1ZSkgJiZcbiAgICAgICAgdGhpcy50aG91c2FuZE1heGxlbmd0aCA8IHBvRGVjaW1hbERlZmF1bHRUaG91c2FuZE1heGxlbmd0aCkgfHxcbiAgICAgIG1heGxlbmdwb2FpbGVkKHBvRGVjaW1hbFRvdGFsTGVuZ3RoTGltaXQsIHZhbHVlKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF4OiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2NyZWVuVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbCA/IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlIDogJyc7XG4gIH1cblxuICBoYXNJbnZhbGlkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLWludmFsaWQnKSAmJlxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctZGlydHknKSAmJlxuICAgICAgdGhpcy5nZXRTY3JlZW5WYWx1ZSgpICE9PSAnJ1xuICAgICk7XG4gIH1cblxuICBoYXNMZXR0ZXJzKHZhbHVlOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvW2EtekEtWjo7Kz1fwrRgXn5cIic/IUAjJCXCqCYqKCk+PHt9w6fDh1xcW1xcXS9cXFxcfF0rLyk7XG4gIH1cblxuICBoYXNOb3RTcGFjZSh2YWx1ZTogc3RyaW5nID0gJycpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15cXFMqJC8pO1xuICB9XG5cbiAgaXNWYWxpZE51bWJlcihldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgLy8gLSBldmVudC5rZXkgbsOjbyBleGlzdGlhIGVtIGFsZ3VucyBicm93c2VycywgY29tbyBTYW1zdW5nIGJyb3dzZXIgZSBGaXJlZm94LlxuICAgIGNvbnN0IGtleVZhbHVlID0gPGFueT5TdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LndoaWNoKTtcbiAgICBjb25zdCB2YWxpZEtleSA9IGV2ZW50LndoaWNoICE9PSA4ICYmIGV2ZW50LndoaWNoICE9PSAwO1xuXG4gICAgcmV0dXJuICF0aGlzLmhhc0xldHRlcnMoa2V5VmFsdWUpICYmIHRoaXMuaGFzTm90U3BhY2Uoa2V5VmFsdWUpICYmIHZhbGlkS2V5O1xuICB9XG5cbiAgLy8gZnVuw6fDo28gcmVzcG9uc8OhdmVsIHBvciBhZGljaW9uYXIgb3MgemVyb2VzIGNvbSBhcyBjYXNhIGRlY2ltYWlzIGFvIHNhaXIgZG8gY2FtcG8uXG4gIG9uQmx1cihldmVudDogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQ/LigpO1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5oYXNMZXR0ZXJzKHZhbHVlKSB8fCB0aGlzLmNvbnRhaW5zTW9yZVRoYW5PbmVEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkge1xuICAgICAgICB0aGlzLnNldFZpZXdWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWVXaXRob3V0VGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKHZhbHVlKTtcbiAgICAgIGNvbnN0IGZvcm1hdGVkVmlld1ZhbHVlID0gdGhpcy5mb3JtYXRUb1ZpZXdWYWx1ZSh2YWx1ZVdpdGhvdXRUaG91c2FuZFNlcGFyYXRvcik7XG4gICAgICB0aGlzLnNldFZpZXdWYWx1ZShmb3JtYXRlZFZpZXdWYWx1ZSk7XG4gICAgICBpZiAoIWZvcm1hdGVkVmlld1ZhbHVlKSB7XG4gICAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xuICAgIHRoaXMuY29udHJvbENoYW5nZUVtaXR0ZXIoKTtcbiAgfVxuXG4gIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAvLyBBdHVhbGl6YSB2YWxvciBkYSB2YXJpw6F2ZWwgcXVlIHNlcsOhIHVzYWRhIHBhcmEgdmVyaWZpY2FyIHNlIG8gY2FtcG8gdGV2ZSBhbHRlcmHDp8Ojb1xuICAgIHRoaXMudmFsdWVCZWZvcmVDaGFuZ2UgPSB0aGlzLmdldFNjcmVlblZhbHVlKCk7XG5cbiAgICAvLyBEaXNwYXJhIGV2ZW50byBxdWFuZG8gbyB1c3XDoXJpbyBlbnRyYXIgbm8gY2FtcG9cbiAgICAvLyBFc3RlIGV2ZW50byB0YW1iw6ltIMOpIGRpc3BhcmFkbyBxdWFuZG8gbyBjYW1wbyBpbmljaWEgY29tIGZvY28uXG4gICAgdGhpcy5lbnRlci5lbWl0KCk7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xuXG4gICAgbGV0IG1vZGVsVmFsdWU7XG5cbiAgICAvLyAtIEJyb3dzZXJzIG5hdGl2b3MgZG8gQW5kcm9pZCBleDogU2Ftc3VuZyBCcm93c2VyLlxuICAgIGlmICh0aGlzLmlzS2V5Ym9hcmRBbmRyb2lkKSB7XG4gICAgICB0aGlzLm9uSW5wdXRLZXlib2FyZEFuZHJvaWQoZXZlbnQpO1xuICAgIH1cblxuICAgIG1vZGVsVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgbW9kZWxWYWx1ZSA9IHRoaXMuYWRkWmVyb0JlZm9yZShtb2RlbFZhbHVlKTtcbiAgICBjb25zdCB2aWV3VmFsdWUgPSB0aGlzLmZvcm1hdE1hc2sobW9kZWxWYWx1ZSk7XG5cbiAgICAvLyB2YWxpZGHDp8OjbyBwYXJhIG7Do28gcXVlYnJhciBJRSBjb20gcGxhY2Vob2xkZXIgZGVmaW5pZG8gZSBJbnB1dCB2YXppb1xuICAgIGlmICh2aWV3VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKHZpZXdWYWx1ZSk7XG4gICAgICB0aGlzLnNldEN1cnNvcklucHV0KGV2ZW50LCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLmZvcm1hdFRvTW9kZWxWYWx1ZShtb2RlbFZhbHVlKSk7XG4gIH1cblxuICBvbklucHV0S2V5Ym9hcmRBbmRyb2lkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGhhc0xldHRlcnMgPSB0aGlzLmhhc0xldHRlcnMoaW5wdXRWYWx1ZSk7XG5cbiAgICBpZiAoaGFzTGV0dGVycykge1xuICAgICAgdGhpcy5zZXRWaWV3VmFsdWUoaW5wdXRWYWx1ZS5yZXBsYWNlKGhhc0xldHRlcnNbMF0sICcnKSk7XG5cbiAgICAgIHJldHVybiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHNlbGVjdGlvblN0YXJ0IC0gMTtcbiAgICAgIGNvbnN0IGtleSA9IGlucHV0VmFsdWUuY2hhckF0KHBvc2l0aW9uKTtcblxuICAgICAgdGhpcy5zZXRQb3NpdGlvblZhbHVlKGV2ZW50KTtcblxuICAgICAgaWYgKHRoaXMuaXNWYWxpZEtleShldmVudCwga2V5KSkge1xuICAgICAgICB0aGlzLnNldFZpZXdWYWx1ZShpbnB1dFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5pc1ZhbGlkS2V5KGV2ZW50KTtcbiAgfVxuXG4gIHNldFBhZGRpbmdJbnB1dCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdG9ySWNvbnMgPSAnLnBvLWZpZWxkLWljb24tY29udGFpbmVyOm5vdCgucG8tZmllbGQtaWNvbi1jb250YWluZXItbGVmdCkgPiAucG8taWNvbic7XG4gICAgICBsZXQgaWNvbnMgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvckljb25zKS5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5jbGVhbikge1xuICAgICAgICBpY29ucysrO1xuICAgICAgfVxuICAgICAgaWYgKGljb25zKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke2ljb25zICogMzZ9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZU1vZGVsKHZhbHVlKSB7XG4gICAgbGV0IGZvcm1hdGVkVmlld1ZhbHVlO1xuICAgIGlmICh0aGlzLmlucHV0RWwpIHtcbiAgICAgIGlmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkge1xuICAgICAgICBmb3JtYXRlZFZpZXdWYWx1ZSA9IHRoaXMuZm9ybWF0VG9WaWV3VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFZpZXdWYWx1ZShmb3JtYXRlZFZpZXdWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFZpZXdWYWx1ZSgnJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdGVkVmlld1ZhbHVlKSB7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXRFcnJvclBhdHRlcm5NZXNzYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmVycm9yUGF0dGVybiAhPT0gJycgJiYgdGhpcy5oYXNJbnZhbGlkQ2xhc3MoKSA/IHRoaXMuZXJyb3JQYXR0ZXJuIDogJyc7XG4gIH1cblxuICAvLyByZXNwb25zw6F2ZWwgcG9yIGFkaWNpb25hciAwIGFudGVzIGRhIHZpcmd1bGEgKGRlY2ltYWxTZXBhcmF0b3IpLlxuICBwcml2YXRlIGFkZFplcm9CZWZvcmUodmFsdWUpIHtcbiAgICBjb25zdCBpc0RlY2ltYWxTZXBhcmF0b3IgPSB2YWx1ZSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuXG4gICAgcmV0dXJuIGlzRGVjaW1hbFNlcGFyYXRvciA/IGAwJHt2YWx1ZX1gIDogdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnRhaW5zQ29tbWEodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuaW5jbHVkZXModGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udGFpbnNNb3JlVGhhbk9uZURlY2ltYWxTZXBhcmF0b3IodmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgY29uc3QgZm91bmRDb21tYSA9IHZhbHVlLm1hdGNoKHRoaXMucmVnZXguZGVjaW1hbCk7XG5cbiAgICByZXR1cm4gISEoZm91bmRDb21tYSAmJiBmb3VuZENvbW1hLmxlbmd0aCA+IDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250cm9sQ2hhbmdlRW1pdHRlcigpIHtcbiAgICBjb25zdCBlbGVtZW50VmFsdWUgPSB0aGlzLmdldFNjcmVlblZhbHVlKCk7XG5cbiAgICAvLyBFbWl0ZSBvIGV2ZW50byBjaGFuZ2UgbWFudWFsbWVudGUgcXVhbmRvIG8gY2FtcG8gw6kgYWx0ZXJhZG9cbiAgICAvLyBFc3RlIGV2ZW50byDDqSBjb250cm9sYWRvIG1hbnVhbG1lbnRlIGRldmlkbyBhbyBwcmV2ZW50RGVmYXVsdCBleGlzdGVudGUgbmEgbcOhc2NhcmFcbiAgICAvLyBlIGRldmlkbyBhbyBjb250cm9sZSBkbyBwLWNsZWFuLCBxdWUgdGFtYsOpbSBwcmVjaXNhIGVtaXRpciBjaGFuZ2VcbiAgICBpZiAoZWxlbWVudFZhbHVlICE9PSB0aGlzLnZhbHVlQmVmb3JlQ2hhbmdlKSB7XG4gICAgICB0aGlzLmZpcmVDaGFuZ2UgPSB0cnVlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZWxlbWVudFZhbHVlKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNYXNrKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBuZWNlc3PDoXJpbyBwYXJhIG7Do28gYWRpY2lvbmFyIC4gbmFzIGNhc2EgZGVjaW1haXMuXG4gICAgLy8gcG9yIGV4ZW1wbG86IDEyLjM0NSwxMjMuNDUgKGVycmFkbylcbiAgICAvLyAxMi4zNDUsMTIzNDUgKGNvcnJldG8pXG5cbiAgICBpZiAodmFsdWUubWF0Y2godGhpcy5yZWdleC5kZWNpbWFsKSkge1xuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAoXFxcXGQpKD89KFxcXFxkezN9KSsoPyFcXFxcZCkke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn0pYCwgJ2cnKTtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UocmVnZXgsIGAkMSR7dGhpcy50aG91c2FuZFNlcGFyYXRvcn1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8oXFxkKSg/PShcXGR7M30pKyg/IVxcZCkpL2csIGAkMSR7dGhpcy50aG91c2FuZFNlcGFyYXRvcn1gKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VG9Nb2RlbFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMucmVwbGFjZUNvbW1hVG9Eb3QodmFsdWUpO1xuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUgPyBwYXJzZUZsb2F0KE51bWJlcihmb3JtYXR0ZWRWYWx1ZSkudG9GaXhlZCh0aGlzLmRlY2ltYWxzTGVuZ3RoKSkgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gcGFyc2VkVmFsdWUgPT09IDAgfHwgcGFyc2VkVmFsdWUgPyBwYXJzZWRWYWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VG9WaWV3VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIC8vIC0gTmVjZXNzw6FyaW8gcGFyYSB0cmF0YXIgdmFsb3JlcyBxdWUgY29udGVuaGFtIGRlY2ltYWxTZXBhcmF0b3JcbiAgICB2YWx1ZSA9IHRoaXMucmVwbGFjZUNvbW1hVG9Eb3QodmFsdWUpO1xuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBOdW1iZXIodmFsdWUpLnRvRml4ZWQodGhpcy5kZWNpbWFsc0xlbmd0aCk7XG5cbiAgICBjb25zdCB2YWx1ZUJlZm9yZURvdCA9IHRoaXMuZ2V0VmFsdWVCZWZvcmVTZXBhcmF0b3IobnVtYmVyVmFsdWUsICcuJyk7XG4gICAgY29uc3QgdmFsdWVBZnRlckRvdCA9IHRoaXMuZ2V0VmFsdWVBZnRlclNlcGFyYXRvcihudW1iZXJWYWx1ZSwgJy4nKTtcblxuICAgIGNvbnN0IGZvcm1hdGVkTnVtYmVyID0gdGhpcy5mb3JtYXRNYXNrKHZhbHVlQmVmb3JlRG90KTtcblxuICAgIGlmIChmb3JtYXRlZE51bWJlciA9PT0gJ05hTicpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWNpbWFsc0xlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZvcm1hdGVkTnVtYmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWROdW1iZXJ9JHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9JHt2YWx1ZUFmdGVyRG90fWA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZVdpdGhvdXRUaG91c2FuZFNlcGFyYXRvcih2YWx1ZTogc3RyaW5nID0gJycpIHtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKHRoaXMucmVnZXgudGhvdXNhbmQsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVBZnRlclNlcGFyYXRvcih2YWx1ZSA9ICcnLCBzZXBhcmF0b3IpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoc2VwYXJhdG9yKVsxXSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVCZWZvcmVTZXBhcmF0b3IodmFsdWUgPSAnJywgc2VwYXJhdG9yKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KHNlcGFyYXRvcilbMF0gfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGhhc0xlc3NEb3QodmFsdWUpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IGRvdHMgPSB2YWx1ZS5tYXRjaCh0aGlzLnJlZ2V4LnRob3VzYW5kKTtcbiAgICAgIGNvbnN0IGRvdHNMZW5ndGggPSBkb3RzICYmIGRvdHMubGVuZ3RoO1xuXG4gICAgICBpZiAoZG90c0xlbmd0aCA8IHRoaXMub2xkRG90c0xlbmd0aCkge1xuICAgICAgICB0aGlzLm9sZERvdHNMZW5ndGggPSBkb3RzTGVuZ3RoO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLm9sZERvdHNMZW5ndGggPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTW9yZURvdCh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZG90cyA9IHZhbHVlLm1hdGNoKHRoaXMucmVnZXgudGhvdXNhbmQpO1xuICAgICAgY29uc3QgZG90c0xlbmd0aCA9IGRvdHMgJiYgZG90cy5sZW5ndGg7XG5cbiAgICAgIGlmIChkb3RzTGVuZ3RoID4gdGhpcy5vbGREb3RzTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub2xkRG90c0xlbmd0aCA9IGRvdHNMZW5ndGg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMub2xkRG90c0xlbmd0aCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNaW51c1NpZ25JbnZhbGlkUG9zaXRpb24oZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtleUlzTWludXNTaWduID0gZXZlbnQua2V5ID09PSB0aGlzLm1pbnVzU2lnbjtcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydDtcblxuICAgIHJldHVybiBrZXlJc01pbnVzU2lnbiAmJiBzZWxlY3Rpb25TdGFydCAhPT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbnZhbGlkS2V5KGV2ZW50OiBhbnksIGNoYXJDb2RlOiBhbnkpIHtcbiAgICBjb25zdCBpc0ludmFsaWROdW1iZXIgPSAhdGhpcy5pc1ZhbGlkTnVtYmVyKGV2ZW50KTtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnZlcmlmeUluc2VydENvbW1hKGV2ZW50KSB8fFxuICAgICAgdGhpcy52ZXJpZnlUaG91c2FuZExlbmd0aChldmVudCkgfHxcbiAgICAgIHRoaXMudmVyaWZ5VmFsdWVBZnRlckNvbW1hKGV2ZW50KSB8fFxuICAgICAgdGhpcy52ZXJpZnlJbnNlcnRNaW51c1NpZ24oZXZlbnQpIHx8XG4gICAgICB0aGlzLmhhc01pbnVzU2lnbkludmFsaWRQb3NpdGlvbihldmVudCkgfHxcbiAgICAgIGlzSW52YWxpZE51bWJlciB8fFxuICAgICAgdGhpcy52YWxpZGF0ZUN1cnNvclBvc2l0aW9uQmVmb3JlU2VwYXJhdG9yKGV2ZW50KSB8fFxuICAgICAgdGhpcy52ZXJpZnlEZWNpbWFsTGVuZ3RoSXNaZXJvQW5kS2V5UHJlc3NlZElzQ29tbWEoY2hhckNvZGUpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNHcmVhdGVyVGhhblRvdGFsTGVuZ3RoTGltaXQoZGVjaW1hbHNNYXhMZW5ndGg6IG51bWJlciwgdGhvdXNhbmRNYXhsZW5ndGg6IG51bWJlcikge1xuICAgIHJldHVybiBkZWNpbWFsc01heExlbmd0aCArIHRob3VzYW5kTWF4bGVuZ3RoID4gcG9EZWNpbWFsVG90YWxMZW5ndGhMaW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNLZXlEZWNpbWFsU2VwYXJhdG9yKGV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yIHx8IGV2ZW50LmNoYXIgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgfVxuXG4gIHByaXZhdGUgaXNQb3NpdGlvbkFmdGVyRGVjaW1hbFNlcGFyYXRvcihwb3NpdGlvbkN1cnNvciwgdmFsdWUpIHtcbiAgICBjb25zdCBpbmRleENvbW1hID0gdmFsdWUgJiYgdmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuXG4gICAgaWYgKGluZGV4Q29tbWEgJiYgdGhpcy5kZWNpbWFsc0xlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBwb3NpdGlvbkN1cnNvciA+IGluZGV4Q29tbWE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NlbGVjdGlvblN0YXJ0RGlmZmVyZW50U2VsZWN0aW9uRW5kKHRhcmdldDogYW55KSB7XG4gICAgcmV0dXJuIHRhcmdldC5zZWxlY3Rpb25TdGFydCAhPT0gdGFyZ2V0LnNlbGVjdGlvbkVuZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEtleShldmVudDogYW55LCBrZXk/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjaGFyQ29kZSA9IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgdmFsaWRLZXkgPSBldmVudC53aGljaCA9PT0gOCB8fCBldmVudC53aGljaCA9PT0gMDtcblxuICAgIGlmICh2YWxpZEtleSAmJiAhdGhpcy5pc0tleWJvYXJkQW5kcm9pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChrZXkpIHtcbiAgICAgIGV2ZW50LmtleSA9IGtleTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0ludmFsaWRLZXkoZXZlbnQsIGNoYXJDb2RlKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsdWVCZXR3ZWVuQWxsb3dlZCh2YWx1ZTogbnVtYmVyLCBtYXhBbGxvd2VkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSBtYXhBbGxvd2VkO1xuICB9XG5cbiAgLy8gUXVhbmRvIGRlY2ltYWxzTGVuZ3RoIGZvciAwIG7Do28gZGV2ZSBwZXJtaXRpciBpbmZvcm1hciB2w61yZ3VsYSAoZGVjaW1hbFNlcGFyYXRvcilcbiAgcHJpdmF0ZSB2ZXJpZnlEZWNpbWFsTGVuZ3RoSXNaZXJvQW5kS2V5UHJlc3NlZElzQ29tbWEoY2hhckNvZGU6IG51bWJlcikge1xuICAgIHJldHVybiBjaGFyQ29kZSA9PT0gNDQgJiYgdGhpcy5kZWNpbWFsc0xlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5QXV0b0ZvY3VzKCkge1xuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbFNlbGVjdGlvblJhbmdlKHRhcmdldDogYW55LCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKSB7XG4gICAgaWYgKHNlbGVjdGlvblN0YXJ0ID09PSAxICYmIHNlbGVjdGlvbkVuZCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCArIDEsIHNlbGVjdGlvbkVuZCArIDEpO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0IC0gMSwgc2VsZWN0aW9uRW5kIC0gMSk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VBdCh2YWx1ZSwgaW5kZXgsIHJlcGxhY2UpIHtcbiAgICByZXR1cm4gdmFsdWUuc3Vic3RyaW5nKDAsIGluZGV4KSArIHJlcGxhY2UgKyB2YWx1ZS5zdWJzdHJpbmcoaW5kZXggKyAxKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUNvbW1hVG9Eb3QodmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgaWYgKHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9PT0gJywnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSh0aGlzLnJlZ2V4LmRlY2ltYWwsICcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJzb3JJbnB1dChldmVudCwgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICBjb25zdCB2aWV3VmFsdWUgPSB0YXJnZXQudmFsdWU7XG5cbiAgICAvLyBDYXNvIGhvdXZlciBtYWlzIC4gZG8gcXVlIGFudGVyaW9ybWVudGUgc29tYSBvIHZhbG9yIGNvbSAxLlxuICAgIGlmICh0aGlzLmhhc01vcmVEb3Qodmlld1ZhbHVlKSB8fCB2aWV3VmFsdWUgPT09ICcwJyArIHRoaXMuZGVjaW1hbFNlcGFyYXRvcikge1xuICAgICAgcmV0dXJuIHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCArIDEsIHNlbGVjdGlvbkVuZCArIDEpO1xuICAgIH1cblxuICAgIC8vIENhc28gaG91dmVyIG1lbm9zIC4gZG8gcXVlIGFudGVyaW9ybWVudGUgc3VidHJhaSBvIHZhbG9yIHBvciAxLlxuICAgIGlmICh0aGlzLmhhc0xlc3NEb3Qodmlld1ZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRJbml0aWFsU2VsZWN0aW9uUmFuZ2UodGFyZ2V0LCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UG9zaXRpb25WYWx1ZShldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgLSAxO1xuXG4gICAgaWYgKHBvc2l0aW9uID4gMCAmJiBldmVudC5rZXkgPT09IHRoaXMubWludXNTaWduKSB7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgcG9zaXRpb24pICsgdmFsdWUuc3Vic3RyKHBvc2l0aW9uICsgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaWV3VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ3Vyc29yUG9zaXRpb25CZWZvcmVTZXBhcmF0b3IoZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZVdpdGhvdXRUaG91c2FuZFNlcGFyYXRvcih0YXJnZXQudmFsdWUpO1xuICAgIGNvbnN0IHZhbHVlQmVmb3JlU2VwYXJhdG9yID0gdGhpcy5nZXRWYWx1ZUJlZm9yZVNlcGFyYXRvcih0YXJnZXQudmFsdWUsIHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG4gICAgY29uc3QgdmFsdWVCZWZvcmVTZXBhcmF0b3JPcmlnaW5hbCA9IHRoaXMuZ2V0VmFsdWVCZWZvcmVTZXBhcmF0b3Iob3JpZ2luYWxWYWx1ZSwgdGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uU3RhcnREaWZmZXJlbnRTZWxlY3Rpb25FbmQodGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGFyZ2V0LnNlbGVjdGlvblN0YXJ0IDw9IHZhbHVlQmVmb3JlU2VwYXJhdG9yLmxlbmd0aCAmJlxuICAgICAgdmFsdWVCZWZvcmVTZXBhcmF0b3JPcmlnaW5hbC5sZW5ndGggPT09IHRoaXMudGhvdXNhbmRNYXhsZW5ndGggJiZcbiAgICAgICF0aGlzLmlzS2V5RGVjaW1hbFNlcGFyYXRvcihldmVudClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlUaG91c2FuZExlbmd0aChldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKHRhcmdldC52YWx1ZSk7XG4gICAgY29uc3QgdmFsdWVCZWZvcmVTZXBhcmF0b3JPcmlnaW5hbCA9IHRoaXMuZ2V0VmFsdWVCZWZvcmVTZXBhcmF0b3Iob3JpZ2luYWxWYWx1ZSwgdGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIGlmICh0aGlzLmlzU2VsZWN0aW9uU3RhcnREaWZmZXJlbnRTZWxlY3Rpb25FbmQodGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWVCZWZvcmVTZXBhcmF0b3JPcmlnaW5hbC5sZW5ndGggPj0gdGhpcy50aG91c2FuZE1heGxlbmd0aCAmJlxuICAgICAgIXRoaXMuaXNLZXlEZWNpbWFsU2VwYXJhdG9yKGV2ZW50KSAmJlxuICAgICAgdGhpcy5pc1Bvc2l0aW9uQWZ0ZXJEZWNpbWFsU2VwYXJhdG9yKHRhcmdldC5zZWxlY3Rpb25TdGFydCAtIHRoaXMuZGVjaW1hbHNMZW5ndGgsIHRhcmdldC52YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlJbnNlcnRDb21tYShlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBoYXNDb21tYSA9IHRoaXMuY29udGFpbnNDb21tYShlLnRhcmdldC52YWx1ZSk7XG5cbiAgICByZXR1cm4gaGFzQ29tbWEgJiYgZS5rZXkgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5SW5zZXJ0TWludXNTaWduKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBjb25zdCBpbmRleE1pbnVzU2lnbiA9IHZhbHVlLmxhc3RJbmRleE9mKHRoaXMubWludXNTaWduKSAhPT0gLTE7XG4gICAgY29uc3QgcG9zaXRpb25NaW51c1NpZ24gPSB2YWx1ZS5sYXN0SW5kZXhPZignLScpO1xuICAgIGNvbnN0IG9jY3VyYW5jZXNNaW51c1NpZ24gPSB2YWx1ZS5tYXRjaChuZXcgUmVnRXhwKCctJywgJ2cnKSk7XG5cbiAgICBpZiAodGhpcy5pc0tleWJvYXJkQW5kcm9pZCAmJiBpbmRleE1pbnVzU2lnbiAmJiBvY2N1cmFuY2VzTWludXNTaWduLmxlbmd0aCA+IDEpIHtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHRoaXMucmVwbGFjZUF0KHZhbHVlLCBwb3NpdGlvbk1pbnVzU2lnbiwgJycpO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXhNaW51c1NpZ24gJiYgZXZlbnQua2V5ID09PSB0aGlzLm1pbnVzU2lnbjtcbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5VmFsdWVBZnRlckNvbW1hKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCB2YWx1ZUFmdGVyU2VwYXJhdG9yID0gdGhpcy5nZXRWYWx1ZUFmdGVyU2VwYXJhdG9yKHZhbHVlLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNQb3NpdGlvbkFmdGVyRGVjaW1hbFNlcGFyYXRvcihzZWxlY3Rpb25TdGFydCwgdmFsdWUpICYmIHZhbHVlQWZ0ZXJTZXBhcmF0b3IubGVuZ3RoID49IHRoaXMuZGVjaW1hbHNMZW5ndGhcbiAgICApO1xuICB9XG59XG4iLCI8cG8tZmllbGQtY29udGFpbmVyXG4gIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3AtaWRdPVwiaWRcIlxuICBbcC1sYWJlbF09XCJsYWJlbFwiXG4gIFtwLW9wdGlvbmFsXT1cIm9wdGlvbmFsXCJcbiAgW3AtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbcC1zaG93LXJlcXVpcmVkXT1cInNob3dSZXF1aXJlZFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItY29udGVudFwiPlxuICAgIDxkaXYgKm5nSWY9XCJpY29uXCIgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1sZWZ0XCI+XG4gICAgICA8cG8taWNvbiBjbGFzcz1cInBvLWZpZWxkLWljb24gcG8taWNvbi1pbnB1dFwiIFtjbGFzcy5wby1maWVsZC1pY29uLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW3AtaWNvbl09XCJpY29uXCI+PC9wby1pY29uPlxuICAgIDwvZGl2PlxuXG4gICAgPGlucHV0XG4gICAgICAjaW5wXG4gICAgICBjbGFzcz1cInBvLWlucHV0XCJcbiAgICAgIFthdHRyLm1heF09XCJtYXhcIlxuICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgW2NsYXNzLnBvLWlucHV0LWljb24tbGVmdF09XCJpY29uXCJcbiAgICAgIFtjbGFzcy5wby1pbnB1dC1pY29uLXJpZ2h0XT1cImNsZWFuXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImRpc2FibGVkID8gJycgOiBwbGFjZWhvbGRlclwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIGlucHV0bW9kZT1cImRlY2ltYWxcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgIDxwby1jbGVhblxuICAgICAgICBjbGFzcz1cInBvLWljb24taW5wdXRcIlxuICAgICAgICAqbmdJZj1cImNsZWFuICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHlcIlxuICAgICAgICBbcC1lbGVtZW50LXJlZl09XCJpbnB1dEVsXCJcbiAgICAgICAgKHAtY2hhbmdlLWV2ZW50KT1cImNsZWFyKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9wby1jbGVhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gW3AtaGVscF09XCJoZWxwXCIgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcC1lcnJvci1wYXR0ZXJuXT1cImdldEVycm9yUGF0dGVybk1lc3NhZ2UoKVwiPlxuICA8L3BvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+XG48L3BvLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
|
|
697
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDecimalComponent, { className: "PoDecimalComponent", filePath: "lib/components/po-field/po-decimal/po-decimal.component.ts", lineNumber: 81 }); })();
|
|
698
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZGVjaW1hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tZGVjaW1hbC9wby1kZWNpbWFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1kZWNpbWFsL3BvLWRlY2ltYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7SUNSdkUsOEJBQXVEO0lBQ3JELDZCQUFpSDtJQUNuSCxpQkFBTTs7O0lBRHlDLGNBQXlDO0lBQXpDLHlEQUF5QztJQUFDLG9DQUFlOzs7O0lBMEJ0RyxvQ0FLQztJQURDLDhMQUFrQixlQUFBLG9CQUFhLENBQUEsSUFBQztJQUVsQyxpQkFBVzs7O0lBSFQsOENBQXlCOztBRHBCakMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUM7QUFDekMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDdEMsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBa0JILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUFnS2hEO0lBQ0E7SUFoSzRDLE9BQU8sQ0FBYTtJQUUxRSxFQUFFLEdBQUcsY0FBYyxJQUFJLEVBQUUsR0FBRyxDQUFDO0lBRXJCLGVBQWUsR0FBWSw4QkFBOEIsQ0FBQztJQUMxRCxrQkFBa0IsR0FBWSxpQ0FBaUMsQ0FBQztJQUNoRSxPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFVO0lBQ2QsSUFBSSxDQUFVO0lBRWQsZ0JBQWdCLENBQVM7SUFDekIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsU0FBUyxHQUFXLEdBQUcsQ0FBQztJQUN4QixhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFNO0lBRXZCLEtBQUssR0FBRztRQUNkLFFBQVEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNyQyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUM7S0FDckMsQ0FBQztJQUVGLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsSUFBZ0MsY0FBYyxDQUFDLEtBQWE7UUFDMUQsSUFBSSxjQUFjLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLDBCQUEwQixDQUFDO1lBQ3JGLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDOUUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHlCQUF5QixHQUFHLGNBQWMsQ0FBQztTQUNyRTtRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsSUFBbUMsaUJBQWlCLENBQUMsS0FBYTtRQUNoRSxJQUFJLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsOEJBQThCLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM5RSxpQkFBaUIsR0FBRyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ3JFO1FBRUQsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLGlDQUFpQyxDQUFDO1lBQ2xHLENBQUMsQ0FBQyxpQkFBaUI7WUFDbkIsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDO1FBRXRDLElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsY0FBYyxHQUFHLHlCQUF5QixHQUFHLGlCQUFpQixDQUFDO1NBQ3JFO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQXVCLE1BQU0sQ0FBQyxNQUFjO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFvQixHQUFHLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBRWxCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7WUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBb0IsR0FBRyxDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUVsQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBRXRCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQ1UsRUFBYyxFQUNkLGlCQUFvQyxFQUM1QyxFQUFxQjtRQUVyQixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKRixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUk1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFFBQVEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO1lBQ25ELE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1NBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLGVBQWdDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcEYsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPO2dCQUNMLEdBQUcsRUFBRTtvQkFDSCxLQUFLLEVBQUUsS0FBSztpQkFDYjthQUNGLENBQUM7U0FDSDtRQUVELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUIsT0FBTztnQkFDTCxHQUFHLEVBQUU7b0JBQ0gsS0FBSyxFQUFFLEtBQUs7aUJBQ2I7YUFDRixDQUFDO1NBQ0g7UUFFRCxJQUNFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUM7WUFDcEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlDQUFpQyxDQUFDO1lBQzdELGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsRUFDaEQ7WUFDQSxPQUFPO2dCQUNMLEdBQUcsRUFBRTtvQkFDSCxLQUFLLEVBQUUsS0FBSztpQkFDYjthQUNGLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sQ0FDTCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQixFQUFFO1FBQzNCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0IsRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLDhFQUE4RTtRQUM5RSxNQUFNLFFBQVEsR0FBUSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUV4RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM5RSxDQUFDO0lBRUQsb0ZBQW9GO0lBQ3BGLE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFakMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3QixPQUFPO2FBQ1I7WUFFRCxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdCLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLHFGQUFxRjtRQUNyRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRS9DLGtEQUFrRDtRQUNsRCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFFL0MsSUFBSSxVQUFVLENBQUM7UUFFZixxREFBcUQ7UUFDckQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsVUFBVSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUMsdUVBQXVFO1FBQ3ZFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFVO1FBQy9CLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFekQsT0FBTyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE1BQU0sUUFBUSxHQUFHLGNBQWMsR0FBRyxDQUFDLENBQUM7WUFDcEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMvQjtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sYUFBYSxHQUFHLHdFQUF3RSxDQUFDO1lBQy9GLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN6RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLENBQUM7YUFDVDtZQUNELElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsR0FBRyxLQUFLLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDbkU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixJQUFJLGlCQUFpQixDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7UUFFRCxJQUFJLGlCQUFpQixFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxtRUFBbUU7SUFDM0QsYUFBYSxDQUFDLEtBQUs7UUFDekIsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRTNELE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQUs7UUFDekIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxtQ0FBbUMsQ0FBQyxRQUFnQixFQUFFO1FBQzVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTNDLDhEQUE4RDtRQUM5RCxxRkFBcUY7UUFDckYsb0VBQW9FO1FBQ3BFLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLHFEQUFxRDtRQUNyRCxzQ0FBc0M7UUFDdEMseUJBQXlCO1FBRXpCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLDJCQUEyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuRixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVqSCxPQUFPLFdBQVcsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBYTtRQUNyQyxrRUFBa0U7UUFDbEUsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFcEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV2RCxJQUFJLGNBQWMsS0FBSyxLQUFLLEVBQUU7WUFDNUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxjQUFjLENBQUM7U0FDdkI7YUFBTTtZQUNMLE9BQU8sR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsRUFBRSxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVPLG1DQUFtQyxDQUFDLFFBQWdCLEVBQUU7UUFDNUQsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLFNBQVM7UUFDbEQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxTQUFTO1FBQ25ELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFLO1FBQ3RCLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXZDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUNoQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBSztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUV2QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztnQkFDaEMsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzNCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sMkJBQTJCLENBQUMsS0FBVTtRQUM1QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFFbkQsT0FBTyxjQUFjLElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVUsRUFBRSxRQUFhO1FBQzVDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLGVBQWU7WUFDZixJQUFJLENBQUMscUNBQXFDLENBQUMsS0FBSyxDQUFDO1lBQ2pELElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxpQkFBeUIsRUFBRSxpQkFBeUI7UUFDeEYsT0FBTyxpQkFBaUIsR0FBRyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztJQUMzRSxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBSztRQUNqQyxPQUFPLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JGLENBQUM7SUFFTywrQkFBK0IsQ0FBQyxjQUFjLEVBQUUsS0FBSztRQUMzRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVqRSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLGNBQWMsR0FBRyxVQUFVLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU8scUNBQXFDLENBQUMsTUFBVztRQUN2RCxPQUFPLE1BQU0sQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FBQztJQUN2RCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQVUsRUFBRSxHQUFZO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUV4RCxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLEdBQUcsRUFBRTtZQUNQLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN0QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxVQUFrQjtRQUM3RCxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0ZBQW9GO0lBQzVFLDZDQUE2QyxDQUFDLFFBQWdCO1FBQ3BFLE9BQU8sUUFBUSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBVyxFQUFFLGNBQWMsRUFBRSxZQUFZO1FBQ3hFLElBQUksY0FBYyxLQUFLLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87UUFDckMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQWdCLEVBQUU7UUFDMUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssR0FBRyxFQUFFO1lBQ2pDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFBWTtRQUN4RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFL0IsOERBQThEO1FBQzlELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMzRSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELGtFQUFrRTtRQUNsRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDckU7UUFDRCxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQVU7UUFDakMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRWpELElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBRU8scUNBQXFDLENBQUMsS0FBVTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRixNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEcsSUFBSSxJQUFJLENBQUMscUNBQXFDLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FDTCxNQUFNLENBQUMsY0FBYyxJQUFJLG9CQUFvQixDQUFDLE1BQU07WUFDcEQsNEJBQTRCLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxpQkFBaUI7WUFDOUQsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBVTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXhHLElBQUksSUFBSSxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQ0wsNEJBQTRCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFDN0QsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNoRyxDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLENBQU07UUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELE9BQU8sUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFVO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksY0FBYyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDbkU7UUFDRCxPQUFPLGNBQWMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVU7UUFDdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRGLE9BQU8sQ0FDTCxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUNqSCxDQUFDO0lBQ0osQ0FBQzs0RUExcUJVLGtCQUFrQjs2REFBbEIsa0JBQWtCO21DQUNILFVBQVU7Ozs7aVhBZHpCO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2pELEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNqRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1lDOUVILDZDQU9DLGFBQUE7WUFFRyxtRUFFTTtZQUVOLG1DQW9CRTtZQUpBLGtHQUFRLGtCQUFjLElBQUMsdUZBQ2QsbUJBQWUsSUFERCx1RkFFZCxtQkFBZSxJQUZELDZGQUdYLHNCQUFrQixJQUhQO1lBaEJ6QixpQkFvQkU7WUFFRiw4QkFBMkM7WUFDekMsNkVBTVc7WUFDYixpQkFBTSxFQUFBO1lBR1IsK0NBQzRCO1lBQzlCLGlCQUFxQjs7WUEvQ25CLHlDQUF1QixnQkFBQSxzQkFBQSw0QkFBQSw0QkFBQSxxQ0FBQTtZQVFmLGVBQVU7WUFBViwrQkFBVTtZQVdkLGNBQWlDO1lBQWpDLDhDQUFpQyxrQ0FBQTtZQURqQywrQ0FBNkIsMEJBQUEsY0FBQSxvREFBQSwwQkFBQSwwQkFBQTtZQUg3Qiw4QkFBZ0IsZ0JBQUEsa0JBQUE7WUFzQmIsZUFBcUM7WUFBckMsa0VBQXFDO1lBUWpCLGNBQWU7WUFBZixpQ0FBZSw0QkFBQSxpREFBQTs7O2lGRGtDL0Isa0JBQWtCO2NBakI5QixTQUFTOzJCQUNFLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzt3QkFDakQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3dCQUNqRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjsyR0FHcUQsT0FBTztrQkFBNUQsU0FBUzttQkFBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUEwQ3BCLGNBQWM7a0JBQTdDLEtBQUs7bUJBQUMsbUJBQW1CO1lBZ0NTLGlCQUFpQjtrQkFBbkQsS0FBSzttQkFBQyxzQkFBc0I7WUFpQ04sTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVO1lBWUcsR0FBRztrQkFBdEIsS0FBSzttQkFBQyxPQUFPO1lBdUJNLEdBQUc7a0JBQXRCLEtBQUs7bUJBQUMsT0FBTzs7a0ZBL0lILGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgbWluRmFpbGVkLCBtYXhGYWlsZWQsIG1heGxlbmdwb2FpbGVkIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IGNvbnZlcnRUb0ludCwgdXVpZCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9JbnB1dEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wby1pbnB1dC9wby1pbnB1dC1iYXNlLmNvbXBvbmVudCc7XG5cbmNvbnN0IHBvRGVjaW1hbERlZmF1bHREZWNpbWFsc0xlbmd0aCA9IDI7XG5jb25zdCBwb0RlY2ltYWxEZWZhdWx0VGhvdXNhbmRNYXhsZW5ndGggPSAxMztcbmNvbnN0IHBvRGVjaW1hbE1heERlY2ltYWxzTGVuZ3RoID0gMTU7XG5jb25zdCBwb0RlY2ltYWxUb3RhbExlbmd0aExpbWl0ID0gMTY7XG5cbi8qKlxuICpcbiAqIEBkb2NzRXh0ZW5kcyBQb0lucHV0QmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIC0gTyBgcG8tZGVjaW1hbGAgw6kgdW0gKmlucHV0KiBlc3BlY8OtZmljbyBwYXJhIHJlY2ViZXIgYXBlbmFzIG7Dum1lcm9zIGRlY2ltYWlzLCBwb3IgaXNzbyByZWNlYmUgYXMgc2VndWludGVzIGNhcmFjdGVyw61zdGljYXM6XG4gKiAgKyBBY2VpdGEgYXBlbmFzIG7Dum1lcm9zO1xuICogICsgVXRpbGl6YSAnLCcgY29tbyBzZXBhcmFkb3IgZGUgZGVjaW1hbDtcbiAqICArIFV0aWxpemEgJy4nIHBhcmEgc2VwYXJhw6fDo28gZGUgbWlsaGFyO1xuICogICsgw4kgcG9zc8OtdmVsIGNvbmZpZ3VyYXIgYSBxdWFudGlkYWRlIGRlIGNhc2FzIGRlY2ltYWlzIGUgYSBxdWFudGlkYWRlIGRlIGRpZ2l0b3MgZG8gY2FtcG8uXG4gKlxuICogPiAqKkltcG9ydGFudGU6KipcbiAqIEF0dWFsbWVudGUgbyBKYXZhU2NyaXB0IGxpbWl0YS1zZSBhIHVtIGNvbmp1bnRvIGRlIGRhZG9zIGRlIGAzMiBiaXRzYCwgZSBwYXJhIHF1ZSBvcyB2YWxvcmVzIGNvbXBvcnRlbS1zZSBkZXZpZGFtZW50ZSxcbiAqIG8gYHBvLWRlY2ltYWxgIGNvbnTDqW0gdW0gdHJhdGFtZW50byBxdWUgbGltaXRhIGVtIDE2IG8gbsO6bWVybyB0b3RhbCBkZSBjYXNhcyBhbnRlcyBlIGFww7NzIGEgdsOtcmd1bGEuXG4gKiBWZWphIGFiYWl4byBhcyBkZW1haXMgcmVncmFzIG5hcyBkb2N1bWVudGHDp8O1ZXMgZGUgYHAtZGVjaW1hbHMtbGVuZ3RoYCBlIGBwLXRob3VzYW5kLW1heGxlbmd0aGAuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZGVjaW1hbC1iYXNpY1wiIHRpdGxlPVwiUE8gRGVjaW1hbCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1iYXNpYy9zYW1wbGUtcG8tZGVjaW1hbC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWJhc2ljL3NhbXBsZS1wby1kZWNpbWFsLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWRlY2ltYWwtbGFic1wiIHRpdGxlPVwiUE8gRGVjaW1hbCBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWxhYnMvc2FtcGxlLXBvLWRlY2ltYWwtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWxhYnMvc2FtcGxlLXBvLWRlY2ltYWwtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1kZWNpbWFsLWhvdXJseS13YWdlXCIgdGl0bGU9XCJQTyBEZWNpbWFsIC0gSG91cmx5IFdhZ2VcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2Uvc2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2UuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZGVjaW1hbC1ob3VybHktd2FnZS9zYW1wbGUtcG8tZGVjaW1hbC1ob3VybHktd2FnZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1kZWNpbWFsLWhvdXJseS13YWdlLXJlYWN0aXZlLWZvcm1cIiB0aXRsZT1cIlBPIERlY2ltYWwgLSBIb3VybHkgV2FnZSBSZWFjdGl2ZSBGb3JtXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2UtcmVhY3RpdmUtZm9ybS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1kZWNpbWFsLWhvdXJseS13YWdlLXJlYWN0aXZlLWZvcm0vc2FtcGxlLXBvLWRlY2ltYWwtaG91cmx5LXdhZ2UtcmVhY3RpdmUtZm9ybS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1kZWNpbWFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWRlY2ltYWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0RlY2ltYWxDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0RlY2ltYWxDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUG9EZWNpbWFsQ29tcG9uZW50IGV4dGVuZHMgUG9JbnB1dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICBAVmlld0NoaWxkKCdpbnAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuXG4gIGlkID0gYHBvLWRlY2ltYWxbJHt1dWlkKCl9XWA7XG5cbiAgcHJpdmF0ZSBfZGVjaW1hbHNMZW5ndGg/OiBudW1iZXIgPSBwb0RlY2ltYWxEZWZhdWx0RGVjaW1hbHNMZW5ndGg7XG4gIHByaXZhdGUgX3Rob3VzYW5kTWF4bGVuZ3RoPzogbnVtYmVyID0gcG9EZWNpbWFsRGVmYXVsdFRob3VzYW5kTWF4bGVuZ3RoO1xuICBwcml2YXRlIF9sb2NhbGU/OiBzdHJpbmc7XG4gIHByaXZhdGUgX21pbj86IG51bWJlcjtcbiAgcHJpdmF0ZSBfbWF4PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgZGVjaW1hbFNlcGFyYXRvcjogc3RyaW5nO1xuICBwcml2YXRlIGZpcmVDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0tleWJvYXJkQW5kcm9pZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIG1pbnVzU2lnbjogc3RyaW5nID0gJy0nO1xuICBwcml2YXRlIG9sZERvdHNMZW5ndGggPSBudWxsO1xuICBwcml2YXRlIHRob3VzYW5kU2VwYXJhdG9yOiBzdHJpbmc7XG4gIHByaXZhdGUgdmFsdWVCZWZvcmVDaGFuZ2U6IGFueTtcblxuICBwcml2YXRlIHJlZ2V4ID0ge1xuICAgIHRob3VzYW5kOiBuZXcgUmVnRXhwKCdcXFxcJyArICcsJywgJ2cnKSxcbiAgICBkZWNpbWFsOiBuZXcgUmVnRXhwKCdcXFxcJyArICcuJywgJ2cnKVxuICB9O1xuXG4gIGdldCBhdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9BdXRvY29tcGxldGUgPyAnb2ZmJyA6ICdvbic7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBRdWFudGlkYWRlIG3DoXhpbWEgZGUgY2FzYXMgZGVjaW1haXMuXG4gICAqXG4gICAqID4gKipJbXBvcnRhbnRlOioqXG4gICAqIC0gTyB2YWxvciBtw6F4aW1vIHBlcm1pdGlkbyDDqSAxNTtcbiAgICogLSBBIHNvbWEgdG90YWwgZGUgYHAtZGVjaW1hbHMtbGVuZ3RoYCBjb20gYHAtdGhvdXNhbmQtbWF4bGVuZ3RoYCBsaW1pdGEtc2Ugw6AgMTY7XG4gICAqIC0gRXN0YSBwcm9wcmllZGFkZSBzb2JyZXDDtWUgYXBlbmFzIG8gdmFsb3IgKipwYWRyw6NvKiogZGUgYHAtdGhvdXNhbmQtbWF4bGVuZ3RoYDtcbiAgICogLSBDYXNvIGBwLXRob3VzYW5kLW1heGxlbmd0aGAgdGVuaGEgdW0gdmFsb3IgZGVmaW5pZG8sIGVzdGEgcHJvcHJpZWRhZGUgcG9kZXLDoSByZWNlYmVyIGFwZW5hcyBvIHZhbG9yIHJlc3RhbnRlIGRvIGxpbWl0ZSB0b3RhbCAoMTYpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMmBcbiAgICovXG4gIEBJbnB1dCgncC1kZWNpbWFscy1sZW5ndGgnKSBzZXQgZGVjaW1hbHNMZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIGxldCBkZWNpbWFsc0xlbmd0aCA9IGNvbnZlcnRUb0ludCh2YWx1ZSk7XG5cbiAgICBkZWNpbWFsc0xlbmd0aCA9IHRoaXMuaXNWYWx1ZUJldHdlZW5BbGxvd2VkKGRlY2ltYWxzTGVuZ3RoLCBwb0RlY2ltYWxNYXhEZWNpbWFsc0xlbmd0aClcbiAgICAgID8gZGVjaW1hbHNMZW5ndGhcbiAgICAgIDogcG9EZWNpbWFsRGVmYXVsdERlY2ltYWxzTGVuZ3RoO1xuXG4gICAgaWYgKHRoaXMuaXNHcmVhdGVyVGhhblRvdGFsTGVuZ3RoTGltaXQoZGVjaW1hbHNMZW5ndGgsIHRoaXMudGhvdXNhbmRNYXhsZW5ndGgpKSB7XG4gICAgICB0aGlzLnRob3VzYW5kTWF4bGVuZ3RoID0gcG9EZWNpbWFsVG90YWxMZW5ndGhMaW1pdCAtIGRlY2ltYWxzTGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuX2RlY2ltYWxzTGVuZ3RoID0gZGVjaW1hbHNMZW5ndGg7XG4gIH1cblxuICBnZXQgZGVjaW1hbHNMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlY2ltYWxzTGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUXVhbnRpZGFkZSBtw6F4aW1hIGRlIGTDrWdpdG9zIGFudGVzIGRvIHNlcGFyYWRvciBkZWNpbWFsLlxuICAgKlxuICAgKiA+ICoqSW1wb3J0YW50ZToqKlxuICAgKiAtIE8gdmFsb3IgbcOheGltbyBwZXJtaXRpZG8gw6kgMTM7XG4gICAqIC0gQSBzb21hIHRvdGFsIGRlIGBwLWRlY2ltYWxzLWxlbmd0aGAgY29tIGBwLXRob3VzYW5kLW1heGxlbmd0aGAgbGltaXRhLXNlIMOgIDE2O1xuICAgKiAtIEVzdGEgcHJvcHJpZWRhZGUgc29icmVww7VlIG8gdmFsb3IgZGVmaW5pZG8gZW0gYHAtZGVjaW1hbHMtbGVuZ3RoYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEzYFxuICAgKi9cbiAgQElucHV0KCdwLXRob3VzYW5kLW1heGxlbmd0aCcpIHNldCB0aG91c2FuZE1heGxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgbGV0IHRob3VzYW5kTWF4bGVuZ3RoID0gY29udmVydFRvSW50KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmRlY2ltYWxzTGVuZ3RoID4gcG9EZWNpbWFsRGVmYXVsdERlY2ltYWxzTGVuZ3RoICYmICF0aG91c2FuZE1heGxlbmd0aCkge1xuICAgICAgdGhvdXNhbmRNYXhsZW5ndGggPSBwb0RlY2ltYWxUb3RhbExlbmd0aExpbWl0IC0gdGhpcy5kZWNpbWFsc0xlbmd0aDtcbiAgICB9XG5cbiAgICB0aG91c2FuZE1heGxlbmd0aCA9IHRoaXMuaXNWYWx1ZUJldHdlZW5BbGxvd2VkKHRob3VzYW5kTWF4bGVuZ3RoLCBwb0RlY2ltYWxEZWZhdWx0VGhvdXNhbmRNYXhsZW5ndGgpXG4gICAgICA/IHRob3VzYW5kTWF4bGVuZ3RoXG4gICAgICA6IHBvRGVjaW1hbERlZmF1bHRUaG91c2FuZE1heGxlbmd0aDtcblxuICAgIGlmICh0aGlzLmlzR3JlYXRlclRoYW5Ub3RhbExlbmd0aExpbWl0KHRoaXMuZGVjaW1hbHNMZW5ndGgsIHRob3VzYW5kTWF4bGVuZ3RoKSkge1xuICAgICAgdGhpcy5kZWNpbWFsc0xlbmd0aCA9IHBvRGVjaW1hbFRvdGFsTGVuZ3RoTGltaXQgLSB0aG91c2FuZE1heGxlbmd0aDtcbiAgICB9XG5cbiAgICB0aGlzLl90aG91c2FuZE1heGxlbmd0aCA9IHRob3VzYW5kTWF4bGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHRob3VzYW5kTWF4bGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLl90aG91c2FuZE1heGxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZm9ybWEgbyBsb2NhbGUocGHDrXMpIHBhcmEgYSBmb3JtYXRhw6fDo28gZG8gdmFsb3IuXG4gICAqIFBvciBwYWRyw6NvIG8gdmFsb3Igc2Vyw6EgY29uZmlndXJhZG8gc2VndW5kbyBhIG8gbcOzZHVsbyBbYEkxOG5gXShkb2N1bWVudGF0aW9uL3BvLWkxOG4pXG4gICAqXG4gICAqID4gUGFyYSB2ZXIgcXVhaXMgbGluZ3VhZ2VucyBzdXBvcnRhZGFzIGFjZXNzZSBbYEkxOG5gXShkb2N1bWVudGF0aW9uL3BvLWkxOG4pXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtbG9jYWxlJykgc2V0IGxvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvY2FsZSA9IGxvY2FsZTtcbiAgICB0aGlzLnNldE51bWJlcnNTZXBhcmF0b3JzKCk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBWYWxvciBtw61uaW1vLlxuICAgKi9cbiAgQElucHV0KCdwLW1pbicpIHNldCBtaW4odmFsdWU6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aGlzLl9taW4gPSB2YWx1ZTtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX21pbiA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBWYWxvciBtw6F4aW1vLlxuICAgKi9cbiAgQElucHV0KCdwLW1heCcpIHNldCBtYXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aGlzLl9tYXggPSB2YWx1ZTtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX21heCA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcG9MYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihjZCk7XG4gICAgdGhpcy5pc0tleWJvYXJkQW5kcm9pZCA9ICEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQW5kcm9pZC9pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0TnVtYmVyc1NlcGFyYXRvcnMoKTtcbiAgfVxuXG4gIHNldE51bWJlcnNTZXBhcmF0b3JzKCkge1xuICAgIGNvbnN0IHsgZGVjaW1hbFNlcGFyYXRvciwgdGhvdXNhbmRTZXBhcmF0b3IgfSA9IHRoaXMucG9MYW5ndWFnZVNlcnZpY2UuZ2V0TnVtYmVyU2VwYXJhdG9ycyh0aGlzLl9sb2NhbGUpO1xuICAgIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3I7XG4gICAgdGhpcy50aG91c2FuZFNlcGFyYXRvciA9IHRob3VzYW5kU2VwYXJhdG9yO1xuICAgIHRoaXMucmVnZXggPSB7XG4gICAgICB0aG91c2FuZDogbmV3IFJlZ0V4cCgnXFxcXCcgKyB0aG91c2FuZFNlcGFyYXRvciwgJ2cnKSxcbiAgICAgIGRlY2ltYWw6IG5ldyBSZWdFeHAoJ1xcXFwnICsgZGVjaW1hbFNlcGFyYXRvciwgJ2cnKVxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52ZXJpZnlBdXRvRm9jdXMoKTtcbiAgICB0aGlzLnNldFBhZGRpbmdJbnB1dCgpO1xuICB9XG5cbiAgY2xlYXIodmFsdWUpIHtcbiAgICB0aGlzLmNhbGxPbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5jb250cm9sQ2hhbmdlRW1pdHRlcigpO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0aW9uKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3QgdmFsdWUgPSBhYnN0cmFjdENvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgdGhvdXNhbmRWYWx1ZSA9IE1hdGgudHJ1bmModmFsdWUpO1xuXG4gICAgLy8gVmVyaWZpY2Egc2UgasOhIHBvc3N1aSBhbGd1bSBlcnJvciBwYXR0ZXJuIHBhZHLDo28uXG4gICAgdGhpcy5lcnJvclBhdHRlcm4gPSB0aGlzLmVycm9yUGF0dGVybiAhPT0gJ1ZhbG9yIEludsOhbGlkbycgPyB0aGlzLmVycm9yUGF0dGVybiA6ICcnO1xuXG4gICAgaWYgKG1pbkZhaWxlZCh0aGlzLm1pbiwgdmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtaW46IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAobWF4RmFpbGVkKHRoaXMubWF4LCB2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1heDoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChtYXhsZW5ncG9haWxlZCh0aGlzLnRob3VzYW5kTWF4bGVuZ3RoLCB0aG91c2FuZFZhbHVlKSAmJlxuICAgICAgICB0aGlzLnRob3VzYW5kTWF4bGVuZ3RoIDwgcG9EZWNpbWFsRGVmYXVsdFRob3VzYW5kTWF4bGVuZ3RoKSB8fFxuICAgICAgbWF4bGVuZ3BvYWlsZWQocG9EZWNpbWFsVG90YWxMZW5ndGhMaW1pdCwgdmFsdWUpXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTY3JlZW5WYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsID8gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgfVxuXG4gIGhhc0ludmFsaWRDbGFzcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctaW52YWxpZCcpICYmXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy1kaXJ0eScpICYmXG4gICAgICB0aGlzLmdldFNjcmVlblZhbHVlKCkgIT09ICcnXG4gICAgKTtcbiAgfVxuXG4gIGhhc0xldHRlcnModmFsdWU6IHN0cmluZyA9ICcnKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9bYS16QS1aOjsrPV/CtGBeflwiJz8hQCMkJcKoJiooKT48e33Dp8OHXFxbXFxdL1xcXFx8XSsvKTtcbiAgfVxuXG4gIGhhc05vdFNwYWNlKHZhbHVlOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlxcUyokLyk7XG4gIH1cblxuICBpc1ZhbGlkTnVtYmVyKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyAtIGV2ZW50LmtleSBuw6NvIGV4aXN0aWEgZW0gYWxndW5zIGJyb3dzZXJzLCBjb21vIFNhbXN1bmcgYnJvd3NlciBlIEZpcmVmb3guXG4gICAgY29uc3Qga2V5VmFsdWUgPSA8YW55PlN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQud2hpY2gpO1xuICAgIGNvbnN0IHZhbGlkS2V5ID0gZXZlbnQud2hpY2ggIT09IDggJiYgZXZlbnQud2hpY2ggIT09IDA7XG5cbiAgICByZXR1cm4gIXRoaXMuaGFzTGV0dGVycyhrZXlWYWx1ZSkgJiYgdGhpcy5oYXNOb3RTcGFjZShrZXlWYWx1ZSkgJiYgdmFsaWRLZXk7XG4gIH1cblxuICAvLyBmdW7Dp8OjbyByZXNwb25zw6F2ZWwgcG9yIGFkaWNpb25hciBvcyB6ZXJvZXMgY29tIGFzIGNhc2EgZGVjaW1haXMgYW8gc2FpciBkbyBjYW1wby5cbiAgb25CbHVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmhhc0xldHRlcnModmFsdWUpIHx8IHRoaXMuY29udGFpbnNNb3JlVGhhbk9uZURlY2ltYWxTZXBhcmF0b3IodmFsdWUpKSB7XG4gICAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5jYWxsT25DaGFuZ2UodW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZVdpdGhvdXRUaG91c2FuZFNlcGFyYXRvciA9IHRoaXMuZm9ybWF0VmFsdWVXaXRob3V0VGhvdXNhbmRTZXBhcmF0b3IodmFsdWUpO1xuICAgICAgY29uc3QgZm9ybWF0ZWRWaWV3VmFsdWUgPSB0aGlzLmZvcm1hdFRvVmlld1ZhbHVlKHZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKTtcbiAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKGZvcm1hdGVkVmlld1ZhbHVlKTtcbiAgICAgIGlmICghZm9ybWF0ZWRWaWV3VmFsdWUpIHtcbiAgICAgICAgdGhpcy5jYWxsT25DaGFuZ2UodW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gICAgdGhpcy5jb250cm9sQ2hhbmdlRW1pdHRlcigpO1xuICB9XG5cbiAgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuICAgIC8vIEF0dWFsaXphIHZhbG9yIGRhIHZhcmnDoXZlbCBxdWUgc2Vyw6EgdXNhZGEgcGFyYSB2ZXJpZmljYXIgc2UgbyBjYW1wbyB0ZXZlIGFsdGVyYcOnw6NvXG4gICAgdGhpcy52YWx1ZUJlZm9yZUNoYW5nZSA9IHRoaXMuZ2V0U2NyZWVuVmFsdWUoKTtcblxuICAgIC8vIERpc3BhcmEgZXZlbnRvIHF1YW5kbyBvIHVzdcOhcmlvIGVudHJhciBubyBjYW1wb1xuICAgIC8vIEVzdGUgZXZlbnRvIHRhbWLDqW0gw6kgZGlzcGFyYWRvIHF1YW5kbyBvIGNhbXBvIGluaWNpYSBjb20gZm9jby5cbiAgICB0aGlzLmVudGVyLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IHNlbGVjdGlvbkVuZCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQ7XG5cbiAgICBsZXQgbW9kZWxWYWx1ZTtcblxuICAgIC8vIC0gQnJvd3NlcnMgbmF0aXZvcyBkbyBBbmRyb2lkIGV4OiBTYW1zdW5nIEJyb3dzZXIuXG4gICAgaWYgKHRoaXMuaXNLZXlib2FyZEFuZHJvaWQpIHtcbiAgICAgIHRoaXMub25JbnB1dEtleWJvYXJkQW5kcm9pZChldmVudCk7XG4gICAgfVxuXG4gICAgbW9kZWxWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWVXaXRob3V0VGhvdXNhbmRTZXBhcmF0b3IoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICBtb2RlbFZhbHVlID0gdGhpcy5hZGRaZXJvQmVmb3JlKG1vZGVsVmFsdWUpO1xuICAgIGNvbnN0IHZpZXdWYWx1ZSA9IHRoaXMuZm9ybWF0TWFzayhtb2RlbFZhbHVlKTtcblxuICAgIC8vIHZhbGlkYcOnw6NvIHBhcmEgbsOjbyBxdWVicmFyIElFIGNvbSBwbGFjZWhvbGRlciBkZWZpbmlkbyBlIElucHV0IHZhemlvXG4gICAgaWYgKHZpZXdWYWx1ZSkge1xuICAgICAgdGhpcy5zZXRWaWV3VmFsdWUodmlld1ZhbHVlKTtcbiAgICAgIHRoaXMuc2V0Q3Vyc29ySW5wdXQoZXZlbnQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuZm9ybWF0VG9Nb2RlbFZhbHVlKG1vZGVsVmFsdWUpKTtcbiAgfVxuXG4gIG9uSW5wdXRLZXlib2FyZEFuZHJvaWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgY29uc3QgaGFzTGV0dGVycyA9IHRoaXMuaGFzTGV0dGVycyhpbnB1dFZhbHVlKTtcblxuICAgIGlmIChoYXNMZXR0ZXJzKSB7XG4gICAgICB0aGlzLnNldFZpZXdWYWx1ZShpbnB1dFZhbHVlLnJlcGxhY2UoaGFzTGV0dGVyc1swXSwgJycpKTtcblxuICAgICAgcmV0dXJuIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnQgLSAxO1xuICAgICAgY29uc3Qga2V5ID0gaW5wdXRWYWx1ZS5jaGFyQXQocG9zaXRpb24pO1xuXG4gICAgICB0aGlzLnNldFBvc2l0aW9uVmFsdWUoZXZlbnQpO1xuXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkS2V5KGV2ZW50LCBrZXkpKSB7XG4gICAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKGlucHV0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmlzVmFsaWRLZXkoZXZlbnQpO1xuICB9XG5cbiAgc2V0UGFkZGluZ0lucHV0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0b3JJY29ucyA9ICcucG8tZmllbGQtaWNvbi1jb250YWluZXI6bm90KC5wby1maWVsZC1pY29uLWNvbnRhaW5lci1sZWZ0KSA+IC5wby1pY29uJztcbiAgICAgIGxldCBpY29ucyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ySWNvbnMpLmxlbmd0aDtcbiAgICAgIGlmICh0aGlzLmNsZWFuKSB7XG4gICAgICAgIGljb25zKys7XG4gICAgICB9XG4gICAgICBpZiAoaWNvbnMpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7aWNvbnMgKiAzNn1weGA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlTW9kZWwodmFsdWUpIHtcbiAgICBsZXQgZm9ybWF0ZWRWaWV3VmFsdWU7XG4gICAgaWYgKHRoaXMuaW5wdXRFbCkge1xuICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwKSB7XG4gICAgICAgIGZvcm1hdGVkVmlld1ZhbHVlID0gdGhpcy5mb3JtYXRUb1ZpZXdWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKGZvcm1hdGVkVmlld1ZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0Vmlld1ZhbHVlKCcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ZWRWaWV3VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEVycm9yUGF0dGVybk1lc3NhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JQYXR0ZXJuICE9PSAnJyAmJiB0aGlzLmhhc0ludmFsaWRDbGFzcygpID8gdGhpcy5lcnJvclBhdHRlcm4gOiAnJztcbiAgfVxuXG4gIC8vIHJlc3BvbnPDoXZlbCBwb3IgYWRpY2lvbmFyIDAgYW50ZXMgZGEgdmlyZ3VsYSAoZGVjaW1hbFNlcGFyYXRvcikuXG4gIHByaXZhdGUgYWRkWmVyb0JlZm9yZSh2YWx1ZSkge1xuICAgIGNvbnN0IGlzRGVjaW1hbFNlcGFyYXRvciA9IHZhbHVlID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3I7XG5cbiAgICByZXR1cm4gaXNEZWNpbWFsU2VwYXJhdG9yID8gYDAke3ZhbHVlfWAgOiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29udGFpbnNDb21tYSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5pbmNsdWRlcyh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250YWluc01vcmVUaGFuT25lRGVjaW1hbFNlcGFyYXRvcih2YWx1ZTogc3RyaW5nID0gJycpIHtcbiAgICBjb25zdCBmb3VuZENvbW1hID0gdmFsdWUubWF0Y2godGhpcy5yZWdleC5kZWNpbWFsKTtcblxuICAgIHJldHVybiAhIShmb3VuZENvbW1hICYmIGZvdW5kQ29tbWEubGVuZ3RoID4gMSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnRyb2xDaGFuZ2VFbWl0dGVyKCkge1xuICAgIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IHRoaXMuZ2V0U2NyZWVuVmFsdWUoKTtcblxuICAgIC8vIEVtaXRlIG8gZXZlbnRvIGNoYW5nZSBtYW51YWxtZW50ZSBxdWFuZG8gbyBjYW1wbyDDqSBhbHRlcmFkb1xuICAgIC8vIEVzdGUgZXZlbnRvIMOpIGNvbnRyb2xhZG8gbWFudWFsbWVudGUgZGV2aWRvIGFvIHByZXZlbnREZWZhdWx0IGV4aXN0ZW50ZSBuYSBtw6FzY2FyYVxuICAgIC8vIGUgZGV2aWRvIGFvIGNvbnRyb2xlIGRvIHAtY2xlYW4sIHF1ZSB0YW1iw6ltIHByZWNpc2EgZW1pdGlyIGNoYW5nZVxuICAgIGlmIChlbGVtZW50VmFsdWUgIT09IHRoaXMudmFsdWVCZWZvcmVDaGFuZ2UpIHtcbiAgICAgIHRoaXMuZmlyZUNoYW5nZSA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdChlbGVtZW50VmFsdWUpO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdE1hc2sodmFsdWU6IHN0cmluZykge1xuICAgIC8vIG5lY2Vzc8OhcmlvIHBhcmEgbsOjbyBhZGljaW9uYXIgLiBuYXMgY2FzYSBkZWNpbWFpcy5cbiAgICAvLyBwb3IgZXhlbXBsbzogMTIuMzQ1LDEyMy40NSAoZXJyYWRvKVxuICAgIC8vIDEyLjM0NSwxMjM0NSAoY29ycmV0bylcblxuICAgIGlmICh2YWx1ZS5tYXRjaCh0aGlzLnJlZ2V4LmRlY2ltYWwpKSB7XG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYChcXFxcZCkoPz0oXFxcXGR7M30pKyg/IVxcXFxkKSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfSlgLCAnZycpO1xuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZShyZWdleCwgYCQxJHt0aGlzLnRob3VzYW5kU2VwYXJhdG9yfWApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLyhcXGQpKD89KFxcZHszfSkrKD8hXFxkKSkvZywgYCQxJHt0aGlzLnRob3VzYW5kU2VwYXJhdG9yfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUb01vZGVsVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5yZXBsYWNlQ29tbWFUb0RvdCh2YWx1ZSk7XG4gICAgY29uc3QgcGFyc2VkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZSA/IHBhcnNlRmxvYXQoTnVtYmVyKGZvcm1hdHRlZFZhbHVlKS50b0ZpeGVkKHRoaXMuZGVjaW1hbHNMZW5ndGgpKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBwYXJzZWRWYWx1ZSA9PT0gMCB8fCBwYXJzZWRWYWx1ZSA/IHBhcnNlZFZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUb1ZpZXdWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gLSBOZWNlc3PDoXJpbyBwYXJhIHRyYXRhciB2YWxvcmVzIHF1ZSBjb250ZW5oYW0gZGVjaW1hbFNlcGFyYXRvclxuICAgIHZhbHVlID0gdGhpcy5yZXBsYWNlQ29tbWFUb0RvdCh2YWx1ZSk7XG5cbiAgICBjb25zdCBudW1iZXJWYWx1ZSA9IE51bWJlcih2YWx1ZSkudG9GaXhlZCh0aGlzLmRlY2ltYWxzTGVuZ3RoKTtcblxuICAgIGNvbnN0IHZhbHVlQmVmb3JlRG90ID0gdGhpcy5nZXRWYWx1ZUJlZm9yZVNlcGFyYXRvcihudW1iZXJWYWx1ZSwgJy4nKTtcbiAgICBjb25zdCB2YWx1ZUFmdGVyRG90ID0gdGhpcy5nZXRWYWx1ZUFmdGVyU2VwYXJhdG9yKG51bWJlclZhbHVlLCAnLicpO1xuXG4gICAgY29uc3QgZm9ybWF0ZWROdW1iZXIgPSB0aGlzLmZvcm1hdE1hc2sodmFsdWVCZWZvcmVEb3QpO1xuXG4gICAgaWYgKGZvcm1hdGVkTnVtYmVyID09PSAnTmFOJykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlY2ltYWxzTGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ZWROdW1iZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHtmb3JtYXRlZE51bWJlcn0ke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn0ke3ZhbHVlQWZ0ZXJEb3R9YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcgPSAnJykge1xuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UodGhpcy5yZWdleC50aG91c2FuZCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZUFmdGVyU2VwYXJhdG9yKHZhbHVlID0gJycsIHNlcGFyYXRvcikge1xuICAgIHJldHVybiB2YWx1ZS5zcGxpdChzZXBhcmF0b3IpWzFdIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZUJlZm9yZVNlcGFyYXRvcih2YWx1ZSA9ICcnLCBzZXBhcmF0b3IpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoc2VwYXJhdG9yKVswXSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgaGFzTGVzc0RvdCh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZG90cyA9IHZhbHVlLm1hdGNoKHRoaXMucmVnZXgudGhvdXNhbmQpO1xuICAgICAgY29uc3QgZG90c0xlbmd0aCA9IGRvdHMgJiYgZG90cy5sZW5ndGg7XG5cbiAgICAgIGlmIChkb3RzTGVuZ3RoIDwgdGhpcy5vbGREb3RzTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub2xkRG90c0xlbmd0aCA9IGRvdHNMZW5ndGg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMub2xkRG90c0xlbmd0aCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNb3JlRG90KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBkb3RzID0gdmFsdWUubWF0Y2godGhpcy5yZWdleC50aG91c2FuZCk7XG4gICAgICBjb25zdCBkb3RzTGVuZ3RoID0gZG90cyAmJiBkb3RzLmxlbmd0aDtcblxuICAgICAgaWYgKGRvdHNMZW5ndGggPiB0aGlzLm9sZERvdHNMZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vbGREb3RzTGVuZ3RoID0gZG90c0xlbmd0aDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5vbGREb3RzTGVuZ3RoID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGhhc01pbnVzU2lnbkludmFsaWRQb3NpdGlvbihldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2V5SXNNaW51c1NpZ24gPSBldmVudC5rZXkgPT09IHRoaXMubWludXNTaWduO1xuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgcmV0dXJuIGtleUlzTWludXNTaWduICYmIHNlbGVjdGlvblN0YXJ0ICE9PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ludmFsaWRLZXkoZXZlbnQ6IGFueSwgY2hhckNvZGU6IGFueSkge1xuICAgIGNvbnN0IGlzSW52YWxpZE51bWJlciA9ICF0aGlzLmlzVmFsaWROdW1iZXIoZXZlbnQpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudmVyaWZ5SW5zZXJ0Q29tbWEoZXZlbnQpIHx8XG4gICAgICB0aGlzLnZlcmlmeVRob3VzYW5kTGVuZ3RoKGV2ZW50KSB8fFxuICAgICAgdGhpcy52ZXJpZnlWYWx1ZUFmdGVyQ29tbWEoZXZlbnQpIHx8XG4gICAgICB0aGlzLnZlcmlmeUluc2VydE1pbnVzU2lnbihldmVudCkgfHxcbiAgICAgIHRoaXMuaGFzTWludXNTaWduSW52YWxpZFBvc2l0aW9uKGV2ZW50KSB8fFxuICAgICAgaXNJbnZhbGlkTnVtYmVyIHx8XG4gICAgICB0aGlzLnZhbGlkYXRlQ3Vyc29yUG9zaXRpb25CZWZvcmVTZXBhcmF0b3IoZXZlbnQpIHx8XG4gICAgICB0aGlzLnZlcmlmeURlY2ltYWxMZW5ndGhJc1plcm9BbmRLZXlQcmVzc2VkSXNDb21tYShjaGFyQ29kZSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0dyZWF0ZXJUaGFuVG90YWxMZW5ndGhMaW1pdChkZWNpbWFsc01heExlbmd0aDogbnVtYmVyLCB0aG91c2FuZE1heGxlbmd0aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGRlY2ltYWxzTWF4TGVuZ3RoICsgdGhvdXNhbmRNYXhsZW5ndGggPiBwb0RlY2ltYWxUb3RhbExlbmd0aExpbWl0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0tleURlY2ltYWxTZXBhcmF0b3IoZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgfHwgZXZlbnQuY2hhciA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Bvc2l0aW9uQWZ0ZXJEZWNpbWFsU2VwYXJhdG9yKHBvc2l0aW9uQ3Vyc29yLCB2YWx1ZSkge1xuICAgIGNvbnN0IGluZGV4Q29tbWEgPSB2YWx1ZSAmJiB2YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICBpZiAoaW5kZXhDb21tYSAmJiB0aGlzLmRlY2ltYWxzTGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHBvc2l0aW9uQ3Vyc29yID4gaW5kZXhDb21tYTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzU2VsZWN0aW9uU3RhcnREaWZmZXJlbnRTZWxlY3Rpb25FbmQodGFyZ2V0OiBhbnkpIHtcbiAgICByZXR1cm4gdGFyZ2V0LnNlbGVjdGlvblN0YXJ0ICE9PSB0YXJnZXQuc2VsZWN0aW9uRW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkS2V5KGV2ZW50OiBhbnksIGtleT86IHN0cmluZykge1xuICAgIGNvbnN0IGNoYXJDb2RlID0gZXZlbnQud2hpY2ggfHwgZXZlbnQua2V5Q29kZTtcbiAgICBjb25zdCB2YWxpZEtleSA9IGV2ZW50LndoaWNoID09PSA4IHx8IGV2ZW50LndoaWNoID09PSAwO1xuXG4gICAgaWYgKHZhbGlkS2V5ICYmICF0aGlzLmlzS2V5Ym9hcmRBbmRyb2lkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGtleSkge1xuICAgICAgZXZlbnQua2V5ID0ga2V5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzSW52YWxpZEtleShldmVudCwgY2hhckNvZGUpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWx1ZUJldHdlZW5BbGxvd2VkKHZhbHVlOiBudW1iZXIsIG1heEFsbG93ZWQ6IG51bWJlcikge1xuICAgIHJldHVybiB2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IG1heEFsbG93ZWQ7XG4gIH1cblxuICAvLyBRdWFuZG8gZGVjaW1hbHNMZW5ndGggZm9yIDAgbsOjbyBkZXZlIHBlcm1pdGlyIGluZm9ybWFyIHbDrXJndWxhIChkZWNpbWFsU2VwYXJhdG9yKVxuICBwcml2YXRlIHZlcmlmeURlY2ltYWxMZW5ndGhJc1plcm9BbmRLZXlQcmVzc2VkSXNDb21tYShjaGFyQ29kZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNoYXJDb2RlID09PSA0NCAmJiB0aGlzLmRlY2ltYWxzTGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlBdXRvRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsU2VsZWN0aW9uUmFuZ2UodGFyZ2V0OiBhbnksIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpIHtcbiAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPT09IDEgJiYgc2VsZWN0aW9uRW5kID09PSAxKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0ICsgMSwgc2VsZWN0aW9uRW5kICsgMSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uU3RhcnQgLSAxLCBzZWxlY3Rpb25FbmQgLSAxKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUF0KHZhbHVlLCBpbmRleCwgcmVwbGFjZSkge1xuICAgIHJldHVybiB2YWx1ZS5zdWJzdHJpbmcoMCwgaW5kZXgpICsgcmVwbGFjZSArIHZhbHVlLnN1YnN0cmluZyhpbmRleCArIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlQ29tbWFUb0RvdCh2YWx1ZTogc3RyaW5nID0gJycpIHtcbiAgICBpZiAodGhpcy5kZWNpbWFsU2VwYXJhdG9yID09PSAnLCcpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKHRoaXMucmVnZXguZGVjaW1hbCwgJy4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHNldEN1cnNvcklucHV0KGV2ZW50LCBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHZpZXdWYWx1ZSA9IHRhcmdldC52YWx1ZTtcblxuICAgIC8vIENhc28gaG91dmVyIG1haXMgLiBkbyBxdWUgYW50ZXJpb3JtZW50ZSBzb21hIG8gdmFsb3IgY29tIDEuXG4gICAgaWYgKHRoaXMuaGFzTW9yZURvdCh2aWV3VmFsdWUpIHx8IHZpZXdWYWx1ZSA9PT0gJzAnICsgdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0ICsgMSwgc2VsZWN0aW9uRW5kICsgMSk7XG4gICAgfVxuXG4gICAgLy8gQ2FzbyBob3V2ZXIgbWVub3MgLiBkbyBxdWUgYW50ZXJpb3JtZW50ZSBzdWJ0cmFpIG8gdmFsb3IgcG9yIDEuXG4gICAgaWYgKHRoaXMuaGFzTGVzc0RvdCh2aWV3VmFsdWUpKSB7XG4gICAgICB0aGlzLnNldEluaXRpYWxTZWxlY3Rpb25SYW5nZSh0YXJnZXQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvblZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAtIDE7XG5cbiAgICBpZiAocG9zaXRpb24gPiAwICYmIGV2ZW50LmtleSA9PT0gdGhpcy5taW51c1NpZ24pIHtcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBwb3NpdGlvbikgKyB2YWx1ZS5zdWJzdHIocG9zaXRpb24gKyAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFZpZXdWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDdXJzb3JQb3NpdGlvbkJlZm9yZVNlcGFyYXRvcihldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlV2l0aG91dFRob3VzYW5kU2VwYXJhdG9yKHRhcmdldC52YWx1ZSk7XG4gICAgY29uc3QgdmFsdWVCZWZvcmVTZXBhcmF0b3IgPSB0aGlzLmdldFZhbHVlQmVmb3JlU2VwYXJhdG9yKHRhcmdldC52YWx1ZSwgdGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICBjb25zdCB2YWx1ZUJlZm9yZVNlcGFyYXRvck9yaWdpbmFsID0gdGhpcy5nZXRWYWx1ZUJlZm9yZVNlcGFyYXRvcihvcmlnaW5hbFZhbHVlLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuXG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25TdGFydERpZmZlcmVudFNlbGVjdGlvbkVuZCh0YXJnZXQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPD0gdmFsdWVCZWZvcmVTZXBhcmF0b3IubGVuZ3RoICYmXG4gICAgICB2YWx1ZUJlZm9yZVNlcGFyYXRvck9yaWdpbmFsLmxlbmd0aCA9PT0gdGhpcy50aG91c2FuZE1heGxlbmd0aCAmJlxuICAgICAgIXRoaXMuaXNLZXlEZWNpbWFsU2VwYXJhdG9yKGV2ZW50KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeVRob3VzYW5kTGVuZ3RoKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWVXaXRob3V0VGhvdXNhbmRTZXBhcmF0b3IodGFyZ2V0LnZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZUJlZm9yZVNlcGFyYXRvck9yaWdpbmFsID0gdGhpcy5nZXRWYWx1ZUJlZm9yZVNlcGFyYXRvcihvcmlnaW5hbFZhbHVlLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuXG4gICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25TdGFydERpZmZlcmVudFNlbGVjdGlvbkVuZCh0YXJnZXQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZUJlZm9yZVNlcGFyYXRvck9yaWdpbmFsLmxlbmd0aCA+PSB0aGlzLnRob3VzYW5kTWF4bGVuZ3RoICYmXG4gICAgICAhdGhpcy5pc0tleURlY2ltYWxTZXBhcmF0b3IoZXZlbnQpICYmXG4gICAgICB0aGlzLmlzUG9zaXRpb25BZnRlckRlY2ltYWxTZXBhcmF0b3IodGFyZ2V0LnNlbGVjdGlvblN0YXJ0IC0gdGhpcy5kZWNpbWFsc0xlbmd0aCwgdGFyZ2V0LnZhbHVlKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeUluc2VydENvbW1hKGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc0NvbW1hID0gdGhpcy5jb250YWluc0NvbW1hKGUudGFyZ2V0LnZhbHVlKTtcblxuICAgIHJldHVybiBoYXNDb21tYSAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlJbnNlcnRNaW51c1NpZ24oZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IGluZGV4TWludXNTaWduID0gdmFsdWUubGFzdEluZGV4T2YodGhpcy5taW51c1NpZ24pICE9PSAtMTtcbiAgICBjb25zdCBwb3NpdGlvbk1pbnVzU2lnbiA9IHZhbHVlLmxhc3RJbmRleE9mKCctJyk7XG4gICAgY29uc3Qgb2NjdXJhbmNlc01pbnVzU2lnbiA9IHZhbHVlLm1hdGNoKG5ldyBSZWdFeHAoJy0nLCAnZycpKTtcblxuICAgIGlmICh0aGlzLmlzS2V5Ym9hcmRBbmRyb2lkICYmIGluZGV4TWludXNTaWduICYmIG9jY3VyYW5jZXNNaW51c1NpZ24ubGVuZ3RoID4gMSkge1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5yZXBsYWNlQXQodmFsdWUsIHBvc2l0aW9uTWludXNTaWduLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiBpbmRleE1pbnVzU2lnbiAmJiBldmVudC5rZXkgPT09IHRoaXMubWludXNTaWduO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlWYWx1ZUFmdGVyQ29tbWEoZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IHZhbHVlQWZ0ZXJTZXBhcmF0b3IgPSB0aGlzLmdldFZhbHVlQWZ0ZXJTZXBhcmF0b3IodmFsdWUsIHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc1Bvc2l0aW9uQWZ0ZXJEZWNpbWFsU2VwYXJhdG9yKHNlbGVjdGlvblN0YXJ0LCB2YWx1ZSkgJiYgdmFsdWVBZnRlclNlcGFyYXRvci5sZW5ndGggPj0gdGhpcy5kZWNpbWFsc0xlbmd0aFxuICAgICk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLWxlZnRcIj5cbiAgICAgIDxwby1pY29uIGNsYXNzPVwicG8tZmllbGQtaWNvbiBwby1pY29uLWlucHV0XCIgW2NsYXNzLnBvLWZpZWxkLWljb24tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcC1pY29uXT1cImljb25cIj48L3BvLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8aW5wdXRcbiAgICAgICNpbnBcbiAgICAgIGNsYXNzPVwicG8taW5wdXRcIlxuICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICBbY2xhc3MucG8taW5wdXQtaWNvbi1sZWZ0XT1cImljb25cIlxuICAgICAgW2NsYXNzLnBvLWlucHV0LWljb24tcmlnaHRdPVwiY2xlYW5cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtpZF09XCJpZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZGlzYWJsZWQgPyAnJyA6IHBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgaW5wdXRtb2RlPVwiZGVjaW1hbFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxuICAgICAgPHBvLWNsZWFuXG4gICAgICAgIGNsYXNzPVwicG8taWNvbi1pbnB1dFwiXG4gICAgICAgICpuZ0lmPVwiY2xlYW4gJiYgIWRpc2FibGVkICYmICFyZWFkb25seVwiXG4gICAgICAgIFtwLWVsZW1lbnQtcmVmXT1cImlucHV0RWxcIlxuICAgICAgICAocC1jaGFuZ2UtZXZlbnQpPVwiY2xlYXIoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3BvLWNsZWFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBbcC1oZWxwXT1cImhlbHBcIiBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtwLWVycm9yLXBhdHRlcm5dPVwiZ2V0RXJyb3JQYXR0ZXJuTWVzc2FnZSgpXCI+XG4gIDwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuIl19
|
|
@@ -49,7 +49,7 @@ const providers = [
|
|
|
49
49
|
*
|
|
50
50
|
* @description
|
|
51
51
|
*
|
|
52
|
-
* po-email é um input específico para receber E-mail, com o pattern já configurado.
|
|
52
|
+
* O `po-email` é um input específico para receber E-mail, com o pattern já configurado.
|
|
53
53
|
*
|
|
54
54
|
* @example
|
|
55
55
|
*
|
|
@@ -150,4 +150,4 @@ export class PoEmailComponent extends PoInputGeneric {
|
|
|
150
150
|
args: [{ selector: 'po-email', changeDetection: ChangeDetectionStrategy.OnPush, providers: providers, template: "<po-field-container\n [p-disabled]=\"disabled\"\n [p-id]=\"id\"\n [p-label]=\"label\"\n [p-optional]=\"optional\"\n [p-required]=\"required\"\n [p-show-required]=\"showRequired\"\n>\n <div class=\"po-field-container-content\">\n <div *ngIf=\"icon\" class=\"po-field-icon-container-left\">\n <po-icon\n class=\"po-field-icon {{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n [class.po-field-icon-disabled]=\"disabled\"\n [p-icon]=\"icon\"\n ></po-icon>\n </div>\n\n <input\n #inp\n class=\"po-input\"\n [attr.name]=\"name\"\n [autocomplete]=\"autocomplete\"\n [class.po-input-icon-left]=\"icon\"\n [class.po-input-icon-right]=\"clean\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [placeholder]=\"disabled ? '' : placeholder\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [type]=\"type\"\n (blur)=\"eventOnBlur($event)\"\n (click)=\"eventOnClick($event)\"\n (focus)=\"eventOnFocus($event)\"\n (input)=\"eventOnInput($event)\"\n />\n\n <div class=\"po-field-icon-container-right\">\n <po-clean\n class=\"{{ disabled ? 'po-icon-input-disabled' : 'po-icon-input' }}\"\n *ngIf=\"clean && !disabled && !readonly\"\n [p-element-ref]=\"inputEl\"\n (p-change-event)=\"clear($event)\"\n >\n </po-clean>\n </div>\n </div>\n\n <po-field-container-bottom\n [p-help]=\"help\"\n [p-disabled]=\"disabled\"\n [p-error-pattern]=\"getErrorPattern()\"\n ></po-field-container-bottom>\n</po-field-container>\n" }]
|
|
151
151
|
}], () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], null); })();
|
|
152
152
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoEmailComponent, { className: "PoEmailComponent", filePath: "lib/components/po-field/po-email/po-email.component.ts", lineNumber: 63 }); })();
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWVtYWlsL3BvLWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC9wby1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztJQ0hsRSw4QkFBdUQ7SUFDckQsNkJBSVc7SUFDYixpQkFBTTs7O0lBSkYsY0FBaUY7SUFBakYsNkdBQWlGO0lBQ2pGLHlEQUF5QztJQUN6QyxvQ0FBZTs7OztJQXdCakIsb0NBS0M7SUFEQyw0TEFBa0IsZUFBQSxvQkFBYSxDQUFBLElBQUM7SUFFbEMsaUJBQVc7OztJQUxULDJFQUFtRTtJQUVuRSw4Q0FBeUI7O0FEMUJqQywwQkFBMEI7QUFDMUIsTUFBTSxTQUFTLEdBQUc7SUFDaEI7UUFDRSxPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLDJCQUEyQjtRQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLDJCQUEyQjtRQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFPSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQUNsRCxFQUFFLEdBQUcsWUFBWSxJQUFJLEVBQUUsR0FBRyxDQUFDO0lBQzNCLElBQUksR0FBRyxjQUFjLENBQUM7SUFFdEIsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUVmLGdFQUFnRTtJQUNoRSxzQkFBc0I7SUFDdEIsaUNBQWlDO0lBQ2pDLCtGQUErRjtJQUMvRixzRUFBc0U7SUFDdEUsRUFBRTtJQUNGLHVCQUF1QjtJQUN2QixvRUFBb0U7SUFDcEUsdUNBQXVDO0lBQ3ZDLG1GQUFtRjtJQUNuRix5REFBeUQ7SUFDekQsK0ZBQStGO0lBQy9GLEVBQUU7SUFDRixnREFBZ0Q7SUFDaEQsRUFBRTtJQUNGLHdFQUF3RTtJQUN4RSxFQUFFO0lBQ0YscUVBQXFFO0lBQ3JFLDJFQUEyRTtJQUMzRSx1RUFBdUU7SUFDdkUsT0FBTyxHQUFHLG1HQUFtRyxDQUFDO0lBRTlHLElBQUksR0FBRyxFQUFFLENBQUM7SUFFRixRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3RCwwQkFBMEI7SUFDMUIsWUFBWSxFQUFjLEVBQUUsRUFBcUI7UUFDL0MsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLHlFQUF5RTtZQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQWtCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzswRUF4RFUsZ0JBQWdCOzZEQUFoQixnQkFBZ0IsOERBRjNCLFNBQVM7WUM1RFgsNkNBT0MsYUFBQTtZQUVHLGlFQU1NO1lBRU4sbUNBaUJFO1lBSkEsZ0dBQVEsdUJBQW1CLElBQUMscUZBQ25CLHdCQUFvQixJQURELHFGQUVuQix3QkFBb0IsSUFGRCxxRkFHbkIsd0JBQW9CLElBSEQ7WUFiOUIsaUJBaUJFO1lBRUYsOEJBQTJDO1lBQ3pDLDJFQU1XO1lBQ2IsaUJBQU0sRUFBQTtZQUdSLCtDQUk2QjtZQUMvQixpQkFBcUI7O1lBbkRuQix5Q0FBdUIsZ0JBQUEsc0JBQUEsNEJBQUEsNEJBQUEscUNBQUE7WUFRZixlQUFVO1lBQVYsK0JBQVU7WUFhZCxjQUFpQztZQUFqQyw4Q0FBaUMsa0NBQUE7WUFEakMsK0NBQTZCLDBCQUFBLGNBQUEsb0RBQUEsMEJBQUEsMEJBQUEsa0JBQUE7WUFEN0IsZ0NBQWtCO1lBbUJmLGVBQXFDO1lBQXJDLGtFQUFxQztZQVMxQyxjQUFlO1lBQWYsaUNBQWUsNEJBQUEsMENBQUE7OztpRkRjTixnQkFBZ0I7Y0FONUIsU0FBUzsyQkFDRSxVQUFVLG1CQUVILHVCQUF1QixDQUFDLE1BQU0sYUFDL0MsU0FBUzs7a0ZBRUUsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvSW5wdXRHZW5lcmljIH0gZnJvbSAnLi4vcG8taW5wdXQtZ2VuZXJpYy9wby1pbnB1dC1nZW5lcmljJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvRW1haWxDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvRW1haWxDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvSW5wdXRCYXNlQ29tcG9uZW50XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogcG8tZW1haWwgw6kgdW0gaW5wdXQgZXNwZWPDrWZpY28gcGFyYSByZWNlYmVyIEUtbWFpbCwgY29tIG8gcGF0dGVybiBqw6EgY29uZmlndXJhZG8uXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZW1haWwtYmFzaWNcIiB0aXRsZT1cIlBPIEVtYWlsIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1iYXNpYy9zYW1wbGUtcG8tZW1haWwtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZW1haWwtYmFzaWMvc2FtcGxlLXBvLWVtYWlsLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1iYXNpYy9zYW1wbGUtcG8tZW1haWwtYmFzaWMuY29tcG9uZW50LmUyZS1zcGVjLnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWVtYWlsLWJhc2ljL3NhbXBsZS1wby1lbWFpbC1iYXNpYy5jb21wb25lbnQucG8udHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1lbWFpbC1sYWJzXCIgdGl0bGU9XCJQTyBFbWFpbCBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1sYWJzL3NhbXBsZS1wby1lbWFpbC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWVtYWlsLWxhYnMvc2FtcGxlLXBvLWVtYWlsLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZW1haWwtbmV3c2xldHRlclwiIHRpdGxlPVwiUE8gRW1haWwgLSBOZXdzbGV0dGVyXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1uZXdzbGV0dGVyL3NhbXBsZS1wby1lbWFpbC1uZXdzbGV0dGVyLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWVtYWlsLW5ld3NsZXR0ZXIvc2FtcGxlLXBvLWVtYWlsLW5ld3NsZXR0ZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tZW1haWwnLFxuICB0ZW1wbGF0ZVVybDogJy4uL3BvLWlucHV0L3BvLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyc1xufSlcbmV4cG9ydCBjbGFzcyBQb0VtYWlsQ29tcG9uZW50IGV4dGVuZHMgUG9JbnB1dEdlbmVyaWMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBpZCA9IGBwby1lbWFpbFske3V1aWQoKX1dYDtcbiAgaWNvbiA9ICdwby1pY29uLW1haWwnO1xuXG4gIHR5cGUgPSAnZW1haWwnO1xuXG4gIC8vIENvbnNpZGVyYW1vcyBvIHVzbyBkbyBub3NzbyBwYXR0ZXJuIGNvbSBhIHNlZ3VpbnRlIGV4cHJlc3PDo28uXG4gIC8vIEFudGVzIGRvIHPDrW1ib2xvIEA6XG4gIC8vIC0gbsOjbyBow6EgbGltaXRlIGRlIGNhcmFjdGVyZXMuXG4gIC8vIC0gbsOjbyBwb2RlIGhhdmVyIGVzcGHDp29zIGVtIGJyYW5jbywgY2FyYWN0ZXJlcyBhY2VudHVhZG9zLCBjYXJhY3RlcmVzIGVzcGVjaWFpcyBvdSBzw61tYm9sb3MuXG4gIC8vIC0gcG9kZSBjb21lw6dhciBjb20gbGV0cmFzLCBuw7ptZXJvcywgaMOtZmVuIG91IHVuZGVzY29yZSAodW5kZXJsaW5lKS5cbiAgLy9cbiAgLy8gRGVwb2lzIGRvIHPDrW1ib2xvIEA6XG4gIC8vIC0gbyBkb23DrW5pbyB0ZW0gdW0gbGltaXRlIGRlIGF0w6kgNjYgY2FyYWN0ZXJlcyBhcMOzcyB1bSBzZXBhcmFkb3IuXG4gIC8vIC0gc2VwYXJhZG9yIGRldmUgc2VyIHVtICdwb250bycgKC4pLlxuICAvLyAtIG8gcHJpbWVpcm8gYmxvY28gcG9kZSBjb250ZXIgbGV0cmFzLCBuw7ptZXJvcywgaMOtZmVuIG91IHVuZGVyc2NvcmUgKHVuZGVybGluZSkuXG4gIC8vIC0gYXDDs3MgbyBwcmltZWlybyBzZXBhcmFkb3Igw6kgcGVybWl0aWRvIGFwZW5hcyBsZXRyYXMuXG4gIC8vIC0gbsOjbyBwb2RlIGhhdmVyIGVzcGHDp29zIGVtIGJyYW5jbywgY2FyYWN0ZXJlcyBhY2VudHVhZG9zLCBjYXJhY3RlcmVzIGVzcGVjaWFpcyBvdSBzw61tYm9sb3MuXG4gIC8vXG4gIC8vIExpbWl0ZSB0b3RhbCBkZSAyNTQgY2FyYWN0ZXJlcyBwYXJhIG8gZS1tYWlsLlxuICAvL1xuICAvLyBBcyByZWNvbWVuZGHDp8O1ZXMgZm9yYW0gY29uc3VsdGFkYXMgbmFzIFJGQyAxMDM0LCBSRkMgNTMyMSBlIFJGQyA1MzIyLlxuICAvL1xuICAvLyBSRkMgMTAzNCAtIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMTAzNCNzZWN0aW9uLTNcbiAgLy8gUkZDIDUzMjEgLSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzUzMjEjc2VjdGlvbi00LjUuMy4xXG4gIC8vIFJGQyA1MzIyIC0gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy40XG4gIHBhdHRlcm4gPSAnXihbXFxcXHctXSsoPzpcXFxcLltcXFxcdy1dKykqKUAoKD86W1xcXFx3LV0rXFxcXC4pKlxcXFx3W1xcXFx3LV17MCw2Nn0pXFxcXC4oW0EtWmEtel17Miw2Nn0oPzpcXFxcLltBLVphLXpdezJ9KT8pJCc7XG5cbiAgbWFzayA9ICcnO1xuXG4gIHByaXZhdGUgbGlzdGVuZXIgPSB0aGlzLnZhbGlkYXRlQ2xhc3Nlc0ZvclBhdHRlcm4uYmluZCh0aGlzKTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoZWwsIGNkKTtcbiAgICB0aGlzLm1heGxlbmd0aCA9IDI1NDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIFNlIG7Do28gdGVtIG5nTW9kZWwgb3UgcmVhY3RpdmUgZm9ybSBhZGljaW9uYSB2YWxpZGHDp8OjbyBjb20gY2xhc3NlcyBjc3NcbiAgICAgIGlmICghdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSkge1xuICAgICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMubGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKCF0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlKSB7XG4gICAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMubGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIiwiPHBvLWZpZWxkLWNvbnRhaW5lclxuICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtwLWlkXT1cImlkXCJcbiAgW3AtbGFiZWxdPVwibGFiZWxcIlxuICBbcC1vcHRpb25hbF09XCJvcHRpb25hbFwiXG4gIFtwLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW3Atc2hvdy1yZXF1aXJlZF09XCJzaG93UmVxdWlyZWRcIlxuPlxuICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWNvbnRlbnRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItbGVmdFwiPlxuICAgICAgPHBvLWljb25cbiAgICAgICAgY2xhc3M9XCJwby1maWVsZC1pY29uIHt7IGRpc2FibGVkID8gJ3BvLWljb24taW5wdXQtZGlzYWJsZWQnIDogJ3BvLWljb24taW5wdXQnIH19XCJcbiAgICAgICAgW2NsYXNzLnBvLWZpZWxkLWljb24tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcC1pY29uXT1cImljb25cIlxuICAgICAgPjwvcG8taWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxpbnB1dFxuICAgICAgI2lucFxuICAgICAgY2xhc3M9XCJwby1pbnB1dFwiXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgW2NsYXNzLnBvLWlucHV0LWljb24tbGVmdF09XCJpY29uXCJcbiAgICAgIFtjbGFzcy5wby1pbnB1dC1pY29uLXJpZ2h0XT1cImNsZWFuXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImRpc2FibGVkID8gJycgOiBwbGFjZWhvbGRlclwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgKGJsdXIpPVwiZXZlbnRPbkJsdXIoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiZXZlbnRPbkNsaWNrKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cImV2ZW50T25Gb2N1cygkZXZlbnQpXCJcbiAgICAgIChpbnB1dCk9XCJldmVudE9uSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxuICAgICAgPHBvLWNsZWFuXG4gICAgICAgIGNsYXNzPVwie3sgZGlzYWJsZWQgPyAncG8taWNvbi1pbnB1dC1kaXNhYmxlZCcgOiAncG8taWNvbi1pbnB1dCcgfX1cIlxuICAgICAgICAqbmdJZj1cImNsZWFuICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHlcIlxuICAgICAgICBbcC1lbGVtZW50LXJlZl09XCJpbnB1dEVsXCJcbiAgICAgICAgKHAtY2hhbmdlLWV2ZW50KT1cImNsZWFyKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9wby1jbGVhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b21cbiAgICBbcC1oZWxwXT1cImhlbHBcIlxuICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcC1lcnJvci1wYXR0ZXJuXT1cImdldEVycm9yUGF0dGVybigpXCJcbiAgPjwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWVtYWlsL3BvLWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1pbnB1dC9wby1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7OztJQ0hsRSw4QkFBdUQ7SUFDckQsNkJBSVc7SUFDYixpQkFBTTs7O0lBSkYsY0FBaUY7SUFBakYsNkdBQWlGO0lBQ2pGLHlEQUF5QztJQUN6QyxvQ0FBZTs7OztJQXdCakIsb0NBS0M7SUFEQyw0TEFBa0IsZUFBQSxvQkFBYSxDQUFBLElBQUM7SUFFbEMsaUJBQVc7OztJQUxULDJFQUFtRTtJQUVuRSw4Q0FBeUI7O0FEMUJqQywwQkFBMEI7QUFDMUIsTUFBTSxTQUFTLEdBQUc7SUFDaEI7UUFDRSxPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLDJCQUEyQjtRQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLDJCQUEyQjtRQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFPSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsY0FBYztJQUNsRCxFQUFFLEdBQUcsWUFBWSxJQUFJLEVBQUUsR0FBRyxDQUFDO0lBQzNCLElBQUksR0FBRyxjQUFjLENBQUM7SUFFdEIsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUVmLGdFQUFnRTtJQUNoRSxzQkFBc0I7SUFDdEIsaUNBQWlDO0lBQ2pDLCtGQUErRjtJQUMvRixzRUFBc0U7SUFDdEUsRUFBRTtJQUNGLHVCQUF1QjtJQUN2QixvRUFBb0U7SUFDcEUsdUNBQXVDO0lBQ3ZDLG1GQUFtRjtJQUNuRix5REFBeUQ7SUFDekQsK0ZBQStGO0lBQy9GLEVBQUU7SUFDRixnREFBZ0Q7SUFDaEQsRUFBRTtJQUNGLHdFQUF3RTtJQUN4RSxFQUFFO0lBQ0YscUVBQXFFO0lBQ3JFLDJFQUEyRTtJQUMzRSx1RUFBdUU7SUFDdkUsT0FBTyxHQUFHLG1HQUFtRyxDQUFDO0lBRTlHLElBQUksR0FBRyxFQUFFLENBQUM7SUFFRixRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3RCwwQkFBMEI7SUFDMUIsWUFBWSxFQUFjLEVBQUUsRUFBcUI7UUFDL0MsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLHlFQUF5RTtZQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQWtCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzswRUF4RFUsZ0JBQWdCOzZEQUFoQixnQkFBZ0IsOERBRjNCLFNBQVM7WUM1RFgsNkNBT0MsYUFBQTtZQUVHLGlFQU1NO1lBRU4sbUNBaUJFO1lBSkEsZ0dBQVEsdUJBQW1CLElBQUMscUZBQ25CLHdCQUFvQixJQURELHFGQUVuQix3QkFBb0IsSUFGRCxxRkFHbkIsd0JBQW9CLElBSEQ7WUFiOUIsaUJBaUJFO1lBRUYsOEJBQTJDO1lBQ3pDLDJFQU1XO1lBQ2IsaUJBQU0sRUFBQTtZQUdSLCtDQUk2QjtZQUMvQixpQkFBcUI7O1lBbkRuQix5Q0FBdUIsZ0JBQUEsc0JBQUEsNEJBQUEsNEJBQUEscUNBQUE7WUFRZixlQUFVO1lBQVYsK0JBQVU7WUFhZCxjQUFpQztZQUFqQyw4Q0FBaUMsa0NBQUE7WUFEakMsK0NBQTZCLDBCQUFBLGNBQUEsb0RBQUEsMEJBQUEsMEJBQUEsa0JBQUE7WUFEN0IsZ0NBQWtCO1lBbUJmLGVBQXFDO1lBQXJDLGtFQUFxQztZQVMxQyxjQUFlO1lBQWYsaUNBQWUsNEJBQUEsMENBQUE7OztpRkRjTixnQkFBZ0I7Y0FONUIsU0FBUzsyQkFDRSxVQUFVLG1CQUVILHVCQUF1QixDQUFDLE1BQU0sYUFDL0MsU0FBUzs7a0ZBRUUsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvSW5wdXRHZW5lcmljIH0gZnJvbSAnLi4vcG8taW5wdXQtZ2VuZXJpYy9wby1pbnB1dC1nZW5lcmljJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvRW1haWxDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvRW1haWxDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvSW5wdXRCYXNlQ29tcG9uZW50XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tZW1haWxgIMOpIHVtIGlucHV0IGVzcGVjw61maWNvIHBhcmEgcmVjZWJlciBFLW1haWwsIGNvbSBvIHBhdHRlcm4gasOhIGNvbmZpZ3VyYWRvLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWVtYWlsLWJhc2ljXCIgdGl0bGU9XCJQTyBFbWFpbCBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZW1haWwtYmFzaWMvc2FtcGxlLXBvLWVtYWlsLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWVtYWlsLWJhc2ljL3NhbXBsZS1wby1lbWFpbC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZW1haWwtYmFzaWMvc2FtcGxlLXBvLWVtYWlsLWJhc2ljLmNvbXBvbmVudC5lMmUtc3BlYy50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1iYXNpYy9zYW1wbGUtcG8tZW1haWwtYmFzaWMuY29tcG9uZW50LnBvLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZW1haWwtbGFic1wiIHRpdGxlPVwiUE8gRW1haWwgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZW1haWwtbGFicy9zYW1wbGUtcG8tZW1haWwtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1sYWJzL3NhbXBsZS1wby1lbWFpbC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWVtYWlsLW5ld3NsZXR0ZXJcIiB0aXRsZT1cIlBPIEVtYWlsIC0gTmV3c2xldHRlclwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZW1haWwtbmV3c2xldHRlci9zYW1wbGUtcG8tZW1haWwtbmV3c2xldHRlci5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1lbWFpbC1uZXdzbGV0dGVyL3NhbXBsZS1wby1lbWFpbC1uZXdzbGV0dGVyLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWVtYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9wby1pbnB1dC9wby1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9FbWFpbENvbXBvbmVudCBleHRlbmRzIFBvSW5wdXRHZW5lcmljIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgaWQgPSBgcG8tZW1haWxbJHt1dWlkKCl9XWA7XG4gIGljb24gPSAncG8taWNvbi1tYWlsJztcblxuICB0eXBlID0gJ2VtYWlsJztcblxuICAvLyBDb25zaWRlcmFtb3MgbyB1c28gZG8gbm9zc28gcGF0dGVybiBjb20gYSBzZWd1aW50ZSBleHByZXNzw6NvLlxuICAvLyBBbnRlcyBkbyBzw61tYm9sbyBAOlxuICAvLyAtIG7Do28gaMOhIGxpbWl0ZSBkZSBjYXJhY3RlcmVzLlxuICAvLyAtIG7Do28gcG9kZSBoYXZlciBlc3Bhw6dvcyBlbSBicmFuY28sIGNhcmFjdGVyZXMgYWNlbnR1YWRvcywgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgb3Ugc8OtbWJvbG9zLlxuICAvLyAtIHBvZGUgY29tZcOnYXIgY29tIGxldHJhcywgbsO6bWVyb3MsIGjDrWZlbiBvdSB1bmRlc2NvcmUgKHVuZGVybGluZSkuXG4gIC8vXG4gIC8vIERlcG9pcyBkbyBzw61tYm9sbyBAOlxuICAvLyAtIG8gZG9tw61uaW8gdGVtIHVtIGxpbWl0ZSBkZSBhdMOpIDY2IGNhcmFjdGVyZXMgYXDDs3MgdW0gc2VwYXJhZG9yLlxuICAvLyAtIHNlcGFyYWRvciBkZXZlIHNlciB1bSAncG9udG8nICguKS5cbiAgLy8gLSBvIHByaW1laXJvIGJsb2NvIHBvZGUgY29udGVyIGxldHJhcywgbsO6bWVyb3MsIGjDrWZlbiBvdSB1bmRlcnNjb3JlICh1bmRlcmxpbmUpLlxuICAvLyAtIGFww7NzIG8gcHJpbWVpcm8gc2VwYXJhZG9yIMOpIHBlcm1pdGlkbyBhcGVuYXMgbGV0cmFzLlxuICAvLyAtIG7Do28gcG9kZSBoYXZlciBlc3Bhw6dvcyBlbSBicmFuY28sIGNhcmFjdGVyZXMgYWNlbnR1YWRvcywgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgb3Ugc8OtbWJvbG9zLlxuICAvL1xuICAvLyBMaW1pdGUgdG90YWwgZGUgMjU0IGNhcmFjdGVyZXMgcGFyYSBvIGUtbWFpbC5cbiAgLy9cbiAgLy8gQXMgcmVjb21lbmRhw6fDtWVzIGZvcmFtIGNvbnN1bHRhZGFzIG5hcyBSRkMgMTAzNCwgUkZDIDUzMjEgZSBSRkMgNTMyMi5cbiAgLy9cbiAgLy8gUkZDIDEwMzQgLSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzEwMzQjc2VjdGlvbi0zXG4gIC8vIFJGQyA1MzIxIC0gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC41LjMuMVxuICAvLyBSRkMgNTMyMiAtIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNFxuICBwYXR0ZXJuID0gJ14oW1xcXFx3LV0rKD86XFxcXC5bXFxcXHctXSspKilAKCg/OltcXFxcdy1dK1xcXFwuKSpcXFxcd1tcXFxcdy1dezAsNjZ9KVxcXFwuKFtBLVphLXpdezIsNjZ9KD86XFxcXC5bQS1aYS16XXsyfSk/KSQnO1xuXG4gIG1hc2sgPSAnJztcblxuICBwcml2YXRlIGxpc3RlbmVyID0gdGhpcy52YWxpZGF0ZUNsYXNzZXNGb3JQYXR0ZXJuLmJpbmQodGhpcyk7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGVsLCBjZCk7XG4gICAgdGhpcy5tYXhsZW5ndGggPSAyNTQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBTZSBuw6NvIHRlbSBuZ01vZGVsIG91IHJlYWN0aXZlIGZvcm0gYWRpY2lvbmEgdmFsaWRhw6fDo28gY29tIGNsYXNzZXMgY3NzXG4gICAgICBpZiAoIXRoaXMub25DaGFuZ2VQcm9wYWdhdGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLmxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICghdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSkge1xuICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLmxpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBleHRyYVZhbGlkYXRpb24oYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cInBvLWZpZWxkLWljb24tY29udGFpbmVyLWxlZnRcIj5cbiAgICAgIDxwby1pY29uXG4gICAgICAgIGNsYXNzPVwicG8tZmllbGQtaWNvbiB7eyBkaXNhYmxlZCA/ICdwby1pY29uLWlucHV0LWRpc2FibGVkJyA6ICdwby1pY29uLWlucHV0JyB9fVwiXG4gICAgICAgIFtjbGFzcy5wby1maWVsZC1pY29uLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3AtaWNvbl09XCJpY29uXCJcbiAgICAgID48L3BvLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8aW5wdXRcbiAgICAgICNpbnBcbiAgICAgIGNsYXNzPVwicG8taW5wdXRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgIFtjbGFzcy5wby1pbnB1dC1pY29uLWxlZnRdPVwiaWNvblwiXG4gICAgICBbY2xhc3MucG8taW5wdXQtaWNvbi1yaWdodF09XCJjbGVhblwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJkaXNhYmxlZCA/ICcnIDogcGxhY2Vob2xkZXJcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgIChibHVyKT1cImV2ZW50T25CbHVyKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cImV2ZW50T25DbGljaygkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJldmVudE9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAoaW5wdXQpPVwiZXZlbnRPbklucHV0KCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cbiAgICAgIDxwby1jbGVhblxuICAgICAgICBjbGFzcz1cInt7IGRpc2FibGVkID8gJ3BvLWljb24taW5wdXQtZGlzYWJsZWQnIDogJ3BvLWljb24taW5wdXQnIH19XCJcbiAgICAgICAgKm5nSWY9XCJjbGVhbiAmJiAhZGlzYWJsZWQgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgW3AtZWxlbWVudC1yZWZdPVwiaW5wdXRFbFwiXG4gICAgICAgIChwLWNoYW5nZS1ldmVudCk9XCJjbGVhcigkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tY2xlYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxwby1maWVsZC1jb250YWluZXItYm90dG9tXG4gICAgW3AtaGVscF09XCJoZWxwXCJcbiAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3AtZXJyb3ItcGF0dGVybl09XCJnZXRFcnJvclBhdHRlcm4oKVwiXG4gID48L3BvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20+XG48L3BvLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -39,7 +39,7 @@ export class PoFieldContainerBottomComponent {
|
|
|
39
39
|
disabled = false;
|
|
40
40
|
help;
|
|
41
41
|
static ɵfac = function PoFieldContainerBottomComponent_Factory(t) { return new (t || PoFieldContainerBottomComponent)(); };
|
|
42
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoFieldContainerBottomComponent, selectors: [["po-field-container-bottom"]], inputs: { errorPattern: ["p-error-pattern", "errorPattern"], disabled: ["p-disabled", "disabled"], help: ["p-help", "help"] }, decls: 3, vars: 4, consts: [[1, "po-field-container-bottom"], ["class", "po-field-container-bottom-text-error", 4, "ngIf"], ["class", "po-field-container-bottom-help-text", 4, "ngIf"], [1, "po-field-container-bottom-text-error"], ["p-icon", "po-icon-warning"], [1, "po-field-container-bottom-help-text"]], template: function PoFieldContainerBottomComponent_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoFieldContainerBottomComponent, selectors: [["po-field-container-bottom"]], inputs: { errorPattern: [i0.ɵɵInputFlags.None, "p-error-pattern", "errorPattern"], disabled: [i0.ɵɵInputFlags.None, "p-disabled", "disabled"], help: [i0.ɵɵInputFlags.None, "p-help", "help"] }, decls: 3, vars: 4, consts: [[1, "po-field-container-bottom"], ["class", "po-field-container-bottom-text-error", 4, "ngIf"], ["class", "po-field-container-bottom-help-text", 4, "ngIf"], [1, "po-field-container-bottom-text-error"], ["p-icon", "po-icon-warning"], [1, "po-field-container-bottom-help-text"]], template: function PoFieldContainerBottomComponent_Template(rf, ctx) { if (rf & 1) {
|
|
43
43
|
i0.ɵɵelementStart(0, "div", 0);
|
|
44
44
|
i0.ɵɵtemplate(1, PoFieldContainerBottomComponent_div_1_Template, 4, 1, "div", 1)(2, PoFieldContainerBottomComponent_span_2_Template, 2, 1, "span", 2);
|
|
45
45
|
i0.ɵɵelementEnd();
|
|
@@ -83,7 +83,7 @@ export class PoFieldContainerComponent {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
static ɵfac = function PoFieldContainerComponent_Factory(t) { return new (t || PoFieldContainerComponent)(i0.ɵɵdirectiveInject(i1.PoLanguageService)); };
|
|
86
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoFieldContainerComponent, selectors: [["po-field-container"]], inputs: { disabled: ["p-disabled", "disabled"], id: ["p-id", "id"], label: ["p-label", "label"], help: ["p-help", "help"], optional: ["p-optional", "optional"], required: ["p-required", "required"], showRequired: ["p-show-required", "showRequired"] }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 5, vars: 2, consts: [[1, "po-field-container"], [1, "po-field-container-title"], ["p-field", "true", 3, "p-disabled", "p-for", "p-label", "p-requirement", 4, "ngIf"], ["class", "po-field-help", 4, "ngIf"], ["p-field", "true", 3, "p-disabled", "p-for", "p-label", "p-requirement"], [1, "po-field-help"]], template: function PoFieldContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoFieldContainerComponent, selectors: [["po-field-container"]], inputs: { disabled: [i0.ɵɵInputFlags.None, "p-disabled", "disabled"], id: [i0.ɵɵInputFlags.None, "p-id", "id"], label: [i0.ɵɵInputFlags.None, "p-label", "label"], help: [i0.ɵɵInputFlags.None, "p-help", "help"], optional: [i0.ɵɵInputFlags.None, "p-optional", "optional"], required: [i0.ɵɵInputFlags.None, "p-required", "required"], showRequired: [i0.ɵɵInputFlags.None, "p-show-required", "showRequired"] }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 5, vars: 2, consts: [[1, "po-field-container"], [1, "po-field-container-title"], ["p-field", "true", 3, "p-disabled", "p-for", "p-label", "p-requirement", 4, "ngIf"], ["class", "po-field-help", 4, "ngIf"], ["p-field", "true", 3, "p-disabled", "p-for", "p-label", "p-requirement"], [1, "po-field-help"]], template: function PoFieldContainerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
87
87
|
i0.ɵɵprojectionDef();
|
|
88
88
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
89
89
|
i0.ɵɵtemplate(2, PoFieldContainerComponent_po_label_2_Template, 1, 4, "po-label", 2);
|
|
@@ -58,7 +58,7 @@ export class PoFieldValidateModel extends PoFieldModel {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
static ɵfac = /*@__PURE__*/ (() => { let ɵPoFieldValidateModel_BaseFactory; return function PoFieldValidateModel_Factory(t) { return (ɵPoFieldValidateModel_BaseFactory || (ɵPoFieldValidateModel_BaseFactory = i0.ɵɵgetInheritedFactory(PoFieldValidateModel)))(t || PoFieldValidateModel); }; })();
|
|
61
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoFieldValidateModel, inputs: { optional: ["p-optional", "optional", convertToBoolean], required: ["p-required", "required", convertToBoolean], showRequired: ["p-show-required", "showRequired"] }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] });
|
|
61
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoFieldValidateModel, inputs: { optional: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "p-optional", "optional", convertToBoolean], required: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "p-required", "required", convertToBoolean], showRequired: [i0.ɵɵInputFlags.None, "p-show-required", "showRequired"] }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature] });
|
|
62
62
|
}
|
|
63
63
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoFieldValidateModel, [{
|
|
64
64
|
type: Directive
|
|
@@ -72,4 +72,4 @@ export class PoFieldValidateModel extends PoFieldModel {
|
|
|
72
72
|
type: Input,
|
|
73
73
|
args: ['p-show-required']
|
|
74
74
|
}] }); })();
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZmllbGQtdmFsaWRhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tZmllbGQtdmFsaWRhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTlDOztHQUVHO0FBRUgsTUFBTSxPQUFnQixvQkFBd0IsU0FBUSxZQUFlO0lBQ25FOzs7Ozs7Ozs7Ozs7T0FZRztJQUMwRCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXZGOzs7Ozs7OztPQVFHO0lBQzBELFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFdkY7Ozs7O09BS0c7SUFDdUIsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUVoRCxpQkFBaUIsQ0FBQztJQUUxQixRQUFRLENBQUMsZUFBZ0M7UUFDdkMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2RSxPQUFPO2dCQUNMLFFBQVEsRUFBRTtvQkFDUixLQUFLLEVBQUUsS0FBSztpQkFDYjthQUNGLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQseUJBQXlCLENBQUMsRUFBTztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzZPQXpEbUIsb0JBQW9CLFNBQXBCLG9CQUFvQjs2REFBcEIsb0JBQW9CLDZGQWNDLGdCQUFnQixvRkFXaEIsZ0JBQWdCOztpRkF6QnJDLG9CQUFvQjtjQUR6QyxTQUFTO2dCQWVxRCxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFXRSxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFRakMsWUFBWTtrQkFBckMsS0FBSzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy91dGlscy91dGlsJztcbmltcG9ydCB7IFBvRmllbGRNb2RlbCB9IGZyb20gJy4vcG8tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgcmVxdWlyZWRGYWlsZWQgfSBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb0ZpZWxkTW9kZWxcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9GaWVsZFZhbGlkYXRlTW9kZWw8VD4gZXh0ZW5kcyBQb0ZpZWxkTW9kZWw8VD4gaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2UgYSBpbmRpY2HDp8OjbyBkZSBjYW1wbyBvcGNpb25hbCBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE8gY2FtcG8gY29udGVyIGBwLXJlcXVpcmVkYDtcbiAgICogLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1vcHRpb25hbCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBvcHRpb25hbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgbyBjYW1wbyBzZXLDoSBvYnJpZ2F0w7NyaW8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1yZXF1aXJlZCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb2JyaWdhdMOzcmlvIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqID4gTsOjbyBzZXLDoSBleGliaWRhIGEgaW5kaWNhw6fDo28gc2U6XG4gICAqIC0gTsOjbyBwb3NzdWlyIGBwLWhlbHBgIGUvb3UgYHAtbGFiZWxgLlxuICAgKi9cbiAgQElucHV0KCdwLXNob3ctcmVxdWlyZWQnKSBzaG93UmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlO1xuXG4gIHZhbGlkYXRlKGFic3RyYWN0Q29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHJlcXVpcmVkRmFpbGVkKHRoaXMucmVxdWlyZWQsIHRoaXMuZGlzYWJsZWQsIGFic3RyYWN0Q29udHJvbC52YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXh0cmFWYWxpZGF0aW9uKGFic3RyYWN0Q29udHJvbCk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZU1vZGVsKCkge1xuICAgIGlmICh0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgYWJzdHJhY3QgZXh0cmFWYWxpZGF0aW9uKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG4iXX0=
|
|
@@ -53,7 +53,7 @@ export class PoFieldModel {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
static ɵfac = function PoFieldModel_Factory(t) { return new (t || PoFieldModel)(); };
|
|
56
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoFieldModel, inputs: { label: ["p-label", "label"], name: "name", help: ["p-help", "help"], disabled: ["p-disabled", "disabled", convertToBoolean] }, outputs: { change: "p-change" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
56
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoFieldModel, inputs: { label: [i0.ɵɵInputFlags.None, "p-label", "label"], name: "name", help: [i0.ɵɵInputFlags.None, "p-help", "help"], disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "p-disabled", "disabled", convertToBoolean] }, outputs: { change: "p-change" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
57
57
|
}
|
|
58
58
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoFieldModel, [{
|
|
59
59
|
type: Directive
|
|
@@ -73,4 +73,4 @@ export class PoFieldModel {
|
|
|
73
73
|
type: Output,
|
|
74
74
|
args: ['p-change']
|
|
75
75
|
}] }); })();
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tZmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHcEQsTUFBTSxPQUFnQixZQUFZO0lBQ2hDLHNDQUFzQztJQUNwQixLQUFLLENBQVM7SUFFaEMsMEJBQTBCO0lBQ1gsSUFBSSxDQUFTO0lBRTVCLG1DQUFtQztJQUNsQixJQUFJLENBQVM7SUFFOUI7Ozs7Ozs7O09BUUc7SUFDMEQsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUV2Rjs7Ozs7O09BTUc7SUFDaUIsTUFBTSxHQUFvQixJQUFJLFlBQVksRUFBSyxDQUFDO0lBRXBFLEtBQUssQ0FBSTtJQUVDLFNBQVMsQ0FBQztJQUVaLGVBQWUsQ0FBTTtJQUU3QixnQkFBZSxDQUFDO0lBRWhCLDhDQUE4QztJQUM5QyxnRUFBZ0U7SUFDaEUsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVTLFdBQVcsQ0FBQyxLQUFRO1FBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztzRUFoRW1CLFlBQVk7NkRBQVosWUFBWSw4TUFtQlMsZ0JBQWdCOztpRkFuQnJDLFlBQVk7Y0FEakMsU0FBUztvQkFHVSxLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUFHRCxJQUFJO2tCQUFsQixLQUFLO21CQUFDLE1BQU07WUFHSSxJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFXOEMsUUFBUTtrQkFBcEUsS0FBSzttQkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBU3ZDLE1BQU07a0JBQXpCLE1BQU07bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0ZpZWxkTW9kZWw8VD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKiBSw7N0dWxvIGV4aWJpZG8gcGVsbyBjb21wb25lbnRlLiAqL1xuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBOb21lIGRvIGNvbXBvbmVudGUuICovXG4gIEBJbnB1dCgnbmFtZScpIG5hbWU6IHN0cmluZztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gcGFyYSBvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtaGVscCcpIGhlbHA6IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBjYW1wbyBzZXLDoSBkZXNhYmlsaXRhZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1kaXNhYmxlZCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gYWx0ZXJhciB2YWxvciBkbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlJykgY2hhbmdlOiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgdmFsdWU6IFQ7XG5cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZDtcblxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLm9uV3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBlbWl0Q2hhbmdlKHZhbHVlKSB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTW9kZWwodmFsdWU6IFQpIHtcbiAgICBpZiAodGhpcy5wcm9wYWdhdGVDaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBvbldyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkO1xufVxuIl19
|